OSDN Git Service

MOPAC 6.06 is included in the binary
[molby/Molby.git] / Makefile
1 ifeq ($(TARGET_PLATFORM),MAC)
2  WXCONFIG_PREFIX = $(HOME)/Development/wxMac/osx-build/
3  CPP_EXTRA_FLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch ppc -arch i386 -DUSE_RUBY=1 -g -I$(PWD)/../../fftw-3.3.2/osx-build/include
4  LD_EXTRA_FLAGS = -framework Accelerate -framework GLUT -L$(PWD)/../../fftw-3.3.2/osx-build/lib -lfftw3
5  RUBY_DIR = $(HOME)/Development/ruby-1.8.7-static
6  RUBY_CFLAGS = -I$(RUBY_DIR)
7  RUBY_LDFLAGS = -L$(RUBY_DIR) -lruby-static
8  EXECUTABLE = Molby
9  EXE_SUFFIX =
10 endif
11
12 ifeq ($(TARGET_PLATFORM),MSW)
13  WXCONFIG_PREFIX = $(HOME)/wxMSW-2.8.9/msw-build/
14  CPP_EXTRA_FLAGS = -O2 -I/lib/clapack -I$(PWD)/../../fftw-3.3.2/msw-build/include -g
15  LD_EXTRA_FLAGS = -L/lib/clapack  -L$(PWD)/../../fftw-3.3.2/msw-build/lib -llapack -lblas -lf2c_nomain -lfftw3
16  RUBY_DIR = $(HOME)/ruby-1.8.7-static
17  RUBY_CFLAGS = -I$(RUBY_DIR)
18 # RUBY_LDFLAGS = -L$(RUBY_DIR) -lruby-static /c/Ruby/bin/msvcrt-ruby18.dll
19  RUBY_LDFLAGS = -L$(RUBY_DIR) -lmsvcrt-ruby18-static -lws2_32
20  EXECUTABLE = _Molby.exe_
21  FINAL_EXECUTABLE = Molby.exe
22  EXE_SUFFIX = .exe
23 endif
24
25 WXLIB_LIST = core,base,gl,adv
26 OBJECTS = ConsoleFrame.o GlobalParameterFrame.o GlobalParameterFilesFrame.o MoleculeView.o MyApp.o MyCommand.o MyDocument.o MyGLCanvas.o MySlider.o MyClipboardData.o ProgressFrame.o MyListCtrl.o MyDocManager.o wxKillAddition.o docview.o RubyDialogFrame.o MyIPCSupport.o MyVersion.o MyThread.o MyProgressIndicator.o
27 LIBS = MolLib.a Ruby_bind.a
28 RUBY_EXTLIB = scanf.rb
29
30 ifeq ($(TARGET_PLATFORM),MAC)
31 PRODUCT = Molby.app
32 else
33 PRODUCT_DIR = Molby
34 PRODUCT = $(PRODUCT_DIR)/$(EXECUTABLE)
35 endif
36
37 CC = g++
38 CFLAGS = $(CPPFLAGS) $(CPP_EXTRA_FLAGS) $(RUBY_CFLAGS) $(shell $(WXCONFIG_PREFIX)wx-config --cppflags)
39 LDFLAGS = $(shell $(WXCONFIG_PREFIX)wx-config --libs $(WXLIB_LIST)) $(LD_EXTRA_FLAGS) $(RUBY_LDFLAGS)
40 DESTPREFIX = build
41 DESTDIR = $(PWD)/$(DESTPREFIX)
42 export CFLAGS
43 export LDFLAGS
44 export DESTDIR
45
46 all: $(DESTPREFIX) $(DESTPREFIX)/$(PRODUCT)
47
48 $(DESTPREFIX) :
49         mkdir -p $(DESTPREFIX)
50
51 amber11 : ../amber11/src/antechamber/*.[ch] ../amber11/src/sqm/*.f ../amber11/src/config.h
52         make -f ../Makefile_amber11
53
54 $(DESTPREFIX)/mopac-build/mopac/mopac606$(EXE_SUFFIX) : 
55         make -f ../Makefile_mopac606_nbo
56
57 ifeq ($(TARGET_PLATFORM),MSW)
58 EXTRA_OBJECTS = listctrl.o event.o
59 RESOURCE = molby_rc.o
60 #  The following HOMETEMP kludges are to work around a bug where '#include "..."' 
61 #  does not work when the include path is on the C: drive whereas the source is 
62 #  on the Z: drive. 2009.7.24. Toshi Nagata
63 HOMETEMP = $(HOME)/__molby_temp_build__
64 $(DESTPREFIX)/$(RESOURCE) : molby.rc
65         mkdir -p $(HOMETEMP)/msw_build $(HOMETEMP)/bitmaps
66         cp molby.rc $(HOMETEMP)/msw_build
67         cp ../bitmaps/*.ico $(HOMETEMP)/bitmaps
68         (cd $(HOMETEMP)/msw_build; windres -i molby.rc -o molby_rc.o -I$(HOME)/wxMSW-2.8.9/include)
69         cp $(HOMETEMP)/msw_build/molby_rc.o $@
70         rm -rf $(HOMETEMP)
71 endif
72
73 depend: cleandep $(DESTPREFIX) $(OBJECTS:%.o=$(DESTPREFIX)/%.d) $(EXTRA_OBJECTS:%.o=$(DESTPREFIX)/%.d)
74         cat $(DESTPREFIX)/*.d > $(DESTPREFIX)/Makefile.depend
75
76 cleandep:
77         rm -f $(DESTPREFIX)/Makefile.depend
78
79 -include $(DESTPREFIX)/Makefile.depend
80
81 $(DESTPREFIX)/%.d : ../wxSources/%.cpp
82         $(CC) -MM $< >$@ $(subst -arch ppc,,$(CFLAGS))
83
84 $(DESTPREFIX)/%.d : ../wxSources/%.c
85         $(CC) -MM $< >$@ $(subst -arch ppc,,$(CFLAGS))
86
87 $(DESTPREFIX)/%.o : ../wxSources/%.cpp
88         $(CC) -c $< -o $@ $(CFLAGS)
89
90 $(DESTPREFIX)/%.o : ../wxSources/%.c
91         $(CC) -c $< -o $@ $(CFLAGS)
92
93 $(DESTPREFIX)/MolLib.a : ../MolLib/*.[ch] ../MolLib/MD/*.[ch]
94         mkdir -p $(DESTPREFIX)/MolLib/MD; cd ../MolLib; $(MAKE)
95
96 $(DESTPREFIX)/Ruby_bind.a : ../MolLib/Ruby_bind/*.[ch]
97         mkdir -p $(DESTPREFIX)/MolLib/Ruby_bind; cd ../MolLib/Ruby_bind; $(MAKE)
98
99 ALL_OBJECTS = $(OBJECTS) $(EXTRA_OBJECTS) $(LIBS) $(RESOURCE)
100 DESTOBJECTS = $(addprefix $(DESTPREFIX)/,$(ALL_OBJECTS))
101 $(DESTPREFIX)/$(EXECUTABLE) : $(DESTOBJECTS)
102 ifeq ($(TARGET_PLATFORM),MAC)
103         sh ../record_build_date.sh --with-svn-status
104 endif
105 ifeq ($(TARGET_PLATFORM),MSW)
106         sh ../record_build_date.sh
107 endif
108         $(CC) -c $(DESTPREFIX)/buildInfo.c -o $(DESTPREFIX)/buildInfo.o
109         $(CC) -o $@ $(DESTOBJECTS) $(DESTPREFIX)/buildInfo.o $(CFLAGS) $(LDFLAGS)
110
111 $(DESTPREFIX)/$(PRODUCT) : $(DESTPREFIX)/$(EXECUTABLE) ../Scripts/*.rb amber11 $(DESTPREFIX)/mopac-build/mopac/mopac606$(EXE_SUFFIX)
112 ifeq ($(TARGET_PLATFORM),MAC)
113         rm -rf $(DESTPREFIX)/$(PRODUCT)
114         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/MacOS
115         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
116         cp -f Info.plist $(DESTPREFIX)/$(PRODUCT)/Contents
117         echo -n "APPL????" > $(DESTPREFIX)/$(PRODUCT)/Contents/PkgInfo
118         cp -r ../Scripts $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
119         cp -r amber11 $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
120         cp -r $(DESTPREFIX)/mopac-build/mopac $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
121         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/Resources/Scripts/lib
122         for i in $(RUBY_EXTLIB); do cp $(RUBY_DIR)/lib/$$i $(DESTPREFIX)/$(PRODUCT)/Contents/Resources/Scripts/lib; done
123         cp $(DESTPREFIX)/$(EXECUTABLE) $(DESTPREFIX)/$(PRODUCT)/Contents/MacOS
124 endif
125 ifeq ($(TARGET_PLATFORM),MSW)
126         rm -rf $(DESTPREFIX)/$(PRODUCT_DIR)
127         mkdir -p $(DESTPREFIX)/$(PRODUCT_DIR)
128         cp $(DESTPREFIX)/$(EXECUTABLE) $(DESTPREFIX)/$(PRODUCT_DIR)/$(FINAL_EXECUTABLE)
129         cp `which mingwm10.dll` $(DESTPREFIX)/$(PRODUCT_DIR)
130         cp -r ../Scripts $(DESTPREFIX)/$(PRODUCT_DIR)
131         cp -r amber11 $(DESTPREFIX)/$(PRODUCT_DIR)
132         cp -r $(DESTPREFIX)/mopac-build/mopac $(DESTPREFIX)/$(PRODUCT_DIR)
133         mkdir -p $(DESTPREFIX)/$(PRODUCT_DIR)/Scripts/lib
134         for i in $(RUBY_EXTLIB); do cp $(RUBY_DIR)/lib/$$i $(DESTPREFIX)/$(PRODUCT_DIR)/Scripts/lib; done
135 endif
136
137 ifeq ($(TARGET_PLATFORM),MSW)
138 setup: $(DESTPREFIX)/$(PRODUCT_DIR)/$(FINAL_EXECUTABLE)
139         /c/Program\ Files/Inno\ Setup\ 5/iscc molby.iss
140 endif
141
142 clean:
143         rm -rf $(DESTPREFIX)
144 #       rm -f $(EXECUTABLE) $(OBJECTS)
145 #       rm -rf $(PRODUCT)
146 #       cd ../MolLib; $(MAKE) clean
147 #       cd ../MolLib/Ruby_bind; $(MAKE) clean
148