OSDN Git Service

More options in Create GAMESS dialog.
[molby/Molby.git] / Makefile
1 ifeq ($(TARGET_PLATFORM),MAC)
2  WX_DIR = $(PWD)/../../wxWidgets-3.0.0
3  WX_LIB_DIR = $(WX_DIR)/osx-build/lib
4  WX_ARCH_DIR = $(WX_LIB_DIR)/wx/include/osx_cocoa-unicode-static-3.0
5  WX_CPPFLAGS = -isystem $(WX_ARCH_DIR) -isystem $(WX_DIR)/include -D_FILE_OFFSET_BITS=64 -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__
6  WX_LDFLAGS = -L$(WX_LIB_DIR)  -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -framework QuickTime -lwx_osx_cocoau-3.0 -lwx_osx_cocoau_gl-3.0 -framework WebKit -lwxregexu-3.0 -lwxtiff-3.0 -lwxjpeg-3.0 -lwxpng-3.0 -lz -lpthread -liconv 
7  CPP_EXTRA_FLAGS = -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch ppc -arch i386 -DUSE_RUBY=1 -g -isystem $(PWD)/../../fftw-3.3.2/osx-build/include
8  LD_EXTRA_FLAGS = -framework Accelerate -framework GLUT -L$(PWD)/../../fftw-3.3.2/osx-build/lib -lfftw3
9  RUBY_DIR = $(PWD)/../../ruby-1.8.7-p160
10  RUBY_CFLAGS = -isystem $(RUBY_DIR)/osx-build/include
11  RUBY_LDFLAGS = -L$(RUBY_DIR)/osx-build/lib -lruby-static -lenc -ltrans
12  EXECUTABLE = Molby
13  EXE_SUFFIX =
14 endif
15
16 ifeq ($(TARGET_PLATFORM),MSW)
17  ifneq ($(CROSS_COMPILE),)
18   TOOL_PREFIX = i686-w64-mingw32-
19   CPP_EXTRA_FLAGS += -isystem /usr/local/mingw-w32/mingw/include
20   MSW_BUILD = mswx-build
21   LIB_SUFFIX = -3.0-i686-w64-mingw32
22   WINE_PATH=/Applications/EasyWine.app/Contents/Resources/wine/bin
23  else
24   MSW_BUILD = msw-build
25   LIB_SUFFIX = -3.0
26  endif
27  WX_DIR = $(PWD)/../../wxWidgets-3.0.0
28  WX_LIB_DIR = $(WX_DIR)/$(MSW_BUILD)/lib
29  WX_ARCH_DIR = $(WX_LIB_DIR)/wx/include/$(TOOL_PREFIX)msw-unicode-static-3.0
30  WX_CPPFLAGS = -isystem $(WX_ARCH_DIR) -isystem $(WX_DIR)/include -D_LARGEFIILE_SOURCE=unknown -D__WXMSW__
31  WX_LDFLAGS = -L$(WX_LIB_DIR) -Wl,--subsystem,windows -mwindows -lwx_mswu_gl$(LIB_SUFFIX) -lopengl32 -lglu32 -lwx_mswu$(LIB_SUFFIX) -lwxregexu$(LIB_SUFFIX) -lwxexpat$(LIB_SUFFIX) -lwxtiff$(LIB_SUFFIX) -lwxjpeg$(LIB_SUFFIX) -lwxpng$(LIB_SUFFIX) -lwxzlib$(LIB_SUFFIX) -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
32  CPP_EXTRA_FLAGS = -isystem $(PWD)/../../CLAPACK-3.1.1.1-mingw/INCLUDE -isystem $(PWD)/../../fftw-3.3.2/$(MSW_BUILD)/include -I$(PWD)/../MolLib
33  LD_EXTRA_FLAGS = -L$(PWD)/../../CLAPACK-3.1.1.1-mingw/$(MSW_BUILD)/lib -L$(PWD)/../../fftw-3.3.2/$(MSW_BUILD)/lib -llapackMinGW -lblasMinGW -lf2c_nomain -lfftw3 -static-libgcc -static-libstdc++
34  RUBY_DIR = $(PWD)/../../ruby-2.0.0-p353
35  RUBY_CFLAGS = -isystem $(RUBY_DIR)/$(MSW_BUILD)/include/ruby-2.0.0 -I$(RUBY_DIR) -I$(RUBY_DIR)/$(MSW_BUILD)/include/ruby-2.0.0/i386-mingw32
36 # RUBY_LDFLAGS = -L$(RUBY_DIR)/$(MSW_BUILD)/lib -lmsvcrt-ruby200-static -lmsvcrt-ruby200 -lws2_32 -lshlwapi -limagehlp -lenc -ltrans
37  RUBY_LDFLAGS = -L$(RUBY_DIR)/$(MSW_BUILD)/lib -lmsvcrt-ruby200-static -lws2_32 -lshlwapi -limagehlp -lenc -ltrans
38  EXECUTABLE = _Molby.exe_
39  FINAL_EXECUTABLE = Molby.exe
40  EXE_SUFFIX = .exe
41 endif
42
43 WXLIB_LIST = core,base,gl,adv
44 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 RubyDialogFrame.o MyIPCSupport.o MyVersion.o MyThread.o MyProgressIndicator.o modalwindow.o MyTextCtrl.o docview.o
45 LIBS = MolLib.a Ruby_bind.a
46 RUBY_EXTLIB = scanf.rb
47
48 ifeq ($(TARGET_PLATFORM),MAC)
49 PRODUCT = Molby.app
50 else
51 PRODUCT_DIR = Molby
52 PRODUCT = $(PRODUCT_DIR)/$(EXECUTABLE)
53 endif
54
55 CPP = $(TOOL_PREFIX)g++
56 CC = $(TOOL_PREFIX)gcc
57 AR = $(TOOL_PREFIX)ar
58 RANLIB = $(TOOL_PREFIX)ranlib
59
60 ifeq ($(MAKECMDGOALS),debug)
61  DEBUG = 1
62 endif
63
64 ifeq ($(DEBUG),1)
65  DESTPREFIX = build/debug
66  COPT = -O0 -g
67 else
68  DESTPREFIX = build/release
69  COPT = -O2 -g
70 endif
71 MAKEDIR = $(PWD)
72 DESTDIR = $(PWD)/$(DESTPREFIX)
73 CFLAGS = $(CPPFLAGS) $(COPT) $(CPP_EXTRA_FLAGS) $(RUBY_CFLAGS) $(WX_CPPFLAGS)
74 LDFLAGS = $(WX_LDFLAGS) $(LD_EXTRA_FLAGS) $(RUBY_LDFLAGS)
75 export CFLAGS
76 export LDFLAGS
77 export DESTDIR
78 export CC
79 export CPP
80 export AR
81 export TARGET_PLATFORM
82 export RANLIB
83
84 release: all
85
86 debug: all
87
88 all: $(DESTPREFIX) $(DESTPREFIX)/$(PRODUCT)
89
90 $(DESTPREFIX) :
91         mkdir -p $(DESTPREFIX)
92
93 amber11 : ../amber11/src/antechamber/*.[ch] ../amber11/src/sqm/*.f ../amber11/src/config.h
94         make -f ../Makefile_amber11
95
96 ortep3/ortep3$(EXE_SUFFIX) :
97         make -f ../Makefile_ortep3
98
99 ifeq ($(TARGET_PLATFORM),MSW)
100 EXTRA_OBJECTS = listctrl.o window_msw.o textctrl_msw.o OpenGL_extensions.o
101 RESOURCE = molby_rc.o
102 #  The following HOMETEMP kludges are to work around a bug where '#include "..."' 
103 #  does not work when the include path is on the C: drive whereas the source is 
104 #  on the Z: drive. 2009.7.24. Toshi Nagata
105 HOMETEMP = $(HOME)/__molby_temp_build__
106 $(DESTPREFIX)/$(RESOURCE) : molby.rc
107         mkdir -p $(HOMETEMP)/$(MSW_BUILD) $(HOMETEMP)/bitmaps
108         cp molby.rc $(HOMETEMP)/$(MSW_BUILD)
109         cp ../bitmaps/*.ico $(HOMETEMP)/bitmaps
110         (cd $(HOMETEMP)/$(MSW_BUILD); $(TOOL_PREFIX)windres -i molby.rc -o molby_rc.o -I$(WX_DIR)/include)
111         cp $(HOMETEMP)/$(MSW_BUILD)/molby_rc.o $@
112         rm -rf $(HOMETEMP)
113 endif
114
115 depend: cleandep $(DESTPREFIX) $(OBJECTS:%.o=$(DESTPREFIX)/%.d) $(EXTRA_OBJECTS:%.o=$(DESTPREFIX)/%.d)
116         cat $(DESTPREFIX)/*.d > build/Makefile.depend
117
118 cleandep:
119         rm -f build/Makefile.depend
120
121 -include build/Makefile.depend
122
123 #  For unknown reasons, OpenGL_extensions.c needs to be compiled with -O0.
124 $(DESTPREFIX)/OpenGL_extensions.o : ../wxSources/OpenGL_extensions.c
125         $(CC) -c $< -o $@ $(CPPFLAGS) -O0 -g $(CPP_EXTRA_FLAGS) $(RUBY_CFLAGS) $(WX_CPPFLAGS)
126
127 $(DESTPREFIX)/%.d : ../wxSources/%.cpp
128         $(CPP) -MM $< >$@ $(subst -arch ppc,,$(CFLAGS))
129
130 $(DESTPREFIX)/%.d : ../wxSources/%.c
131         $(CC) -MM $< >$@ $(subst -arch ppc,,$(CFLAGS))
132
133 $(DESTPREFIX)/%.o : ../wxSources/%.cpp
134         $(CPP) -c $< -o $@ $(CFLAGS)
135
136 $(DESTPREFIX)/%.o : ../wxSources/%.c
137         $(CC) -c $< -o $@ $(CFLAGS)
138
139 $(DESTPREFIX)/MolLib.a : ../MolLib/*.[ch] ../MolLib/MD/*.[ch]
140         mkdir -p $(DESTPREFIX)/MolLib/MD; cd ../MolLib; $(MAKE)
141
142 $(DESTPREFIX)/Ruby_bind.a : ../MolLib/Ruby_bind/*.[ch]
143         mkdir -p $(DESTPREFIX)/MolLib/Ruby_bind; cd ../MolLib/Ruby_bind; $(MAKE)
144
145 ALL_OBJECTS = $(OBJECTS) $(EXTRA_OBJECTS) $(LIBS) $(RESOURCE)
146 DESTOBJECTS = $(addprefix $(DESTPREFIX)/,$(ALL_OBJECTS))
147 $(DESTPREFIX)/$(EXECUTABLE) : $(DESTOBJECTS) ../revisionInfo.txt
148 ifeq ($(TARGET_PLATFORM),MAC)
149         sh ../record_build_date.sh --with-svn-status
150 endif
151 ifeq ($(TARGET_PLATFORM),MSW)
152         sh ../record_build_date.sh
153 endif
154         $(CC) -c buildInfo.c -o $(DESTPREFIX)/buildInfo.o $(CFLAGS)
155         $(CPP) -o $@ $(DESTOBJECTS) $(DESTPREFIX)/buildInfo.o $(CFLAGS) $(LDFLAGS)
156
157 $(DESTPREFIX)/$(PRODUCT) : $(DESTPREFIX)/$(EXECUTABLE) ../Scripts/*.rb amber11 ortep3/ortep3$(EXE_SUFFIX)
158 ifeq ($(TARGET_PLATFORM),MAC)
159         rm -rf $(DESTPREFIX)/$(PRODUCT)
160         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/MacOS
161         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
162         cp -f Info.plist $(DESTPREFIX)/$(PRODUCT)/Contents
163         echo -n "APPL????" > $(DESTPREFIX)/$(PRODUCT)/Contents/PkgInfo
164         cp -r ../Scripts $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
165         cp -r amber11 $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
166         cp -r ortep3 $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
167         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/Resources/Scripts/lib
168         for i in $(RUBY_EXTLIB); do cp $(RUBY_DIR)/lib/$$i $(DESTPREFIX)/$(PRODUCT)/Contents/Resources/Scripts/lib; done
169         cp $(DESTPREFIX)/$(EXECUTABLE) $(DESTPREFIX)/$(PRODUCT)/Contents/MacOS
170 endif
171 ifeq ($(TARGET_PLATFORM),MSW)
172         echo PWD = $(PWD)
173         rm -rf $(DESTPREFIX)/$(PRODUCT_DIR)
174         mkdir -p $(DESTPREFIX)/$(PRODUCT_DIR)
175         cp $(DESTPREFIX)/$(EXECUTABLE) $(DESTPREFIX)/$(PRODUCT_DIR)/$(FINAL_EXECUTABLE)
176         cp mingwm10.dll $(DESTPREFIX)/$(PRODUCT_DIR)
177         cp -r ../Scripts $(DESTPREFIX)/$(PRODUCT_DIR)
178         cp -r amber11 $(DESTPREFIX)/$(PRODUCT_DIR)
179         cp -r ortep3 $(DESTPREFIX)/$(PRODUCT_DIR)
180         mkdir -p $(DESTPREFIX)/$(PRODUCT_DIR)/Scripts/lib
181         for i in $(RUBY_EXTLIB); do cp $(RUBY_DIR)/lib/$$i $(DESTPREFIX)/$(PRODUCT_DIR)/Scripts/lib; done
182 endif
183
184 ifeq ($(TARGET_PLATFORM),MSW)
185 install: setup
186
187 setup: build/release/$(PRODUCT_DIR)/$(FINAL_EXECUTABLE)
188         mkdir -p ../latest_binaries
189 ifneq ($(CROSS_COMPILE),)
190         ($(WINE_PATH)/wine ../../Inno\ Setup\ 5/ISCC.exe molby.iss || exit 1)
191 else
192         (/c/Program\ Files\ \(x86\)/Inno\ Setup\ 5/iscc molby.iss || exit 1)
193 endif
194         mv Output/SetupMolbyWin.exe ../latest_binaries
195         (cd build/release/$(PRODUCT_DIR) && rm -rf $(MAKEDIR)/../latest_binaries/MolbyWin.zip && zip -r $(MAKEDIR)/../latest_binaries/MolbyWin.zip * -x \*.DS_Store \*.svn*)
196 endif
197
198 clean:
199         rm -f $(DESTPREFIX)/*.o $(DESTPREFIX)/*.a $(DESTPREFIX)/$(EXECUTABLE)
200         rm -rf $(DESTPREFIX)/$(PRODUCT_DIR)
201         rm -f $(DESTPREFIX)/MolLib/*.o
202         rm -f $(DESTPREFIX)/MolLib/MD/*.o
203         rm -f $(DESTPREFIX)/MolLib/Ruby_bind/*.o
204
205 #       rm -f $(EXECUTABLE) $(OBJECTS)
206 #       rm -rf $(PRODUCT)
207 #       cd ../MolLib; $(MAKE) clean
208 #       cd ../MolLib/Ruby_bind; $(MAKE) clean
209