OSDN Git Service

Change GUI toolkit from wxWidgets 2.8.9 to wxWidgets 3.0.0
[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  WX_DIR = $(PWD)/../../wxWidgets-3.0.0
14  WX_LIB_DIR = $(WX_DIR)/msw-build-3/lib
15  WX_ARCH_DIR = $(WX_LIB_DIR)/wx/include/msw-unicode-static-3.0
16  WX_CPPFLAGS = -I$(WX_ARCH_DIR) -I$(WX_DIR)/include -D_LARGEFIILE_SOURCE=unknown -D__WXMSW__
17  WX_LDFLAGS = -L$(WX_LIB_DIR) -Wl,--subsystem,windows -mwindows -lwx_mswu_gl-3.0 -lopengl32 -lglu32 -lwx_mswu-3.0 -lwxregexu-3.0 -lwxexpat-3.0 -lwxtiff-3.0 -lwxjpeg-3.0 -lwxpng-3.0 -lwxzlib-3.0 -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
18  CPP_EXTRA_FLAGS = -O2 -I$(PWD)/../../CLAPACK-3.1.1.1-mingw/INCLUDE -I$(PWD)/../../fftw-3.3.2/msw-build-3/include
19  LD_EXTRA_FLAGS = -L$(PWD)/../../CLAPACK-3.1.1.1-mingw/lib -L$(PWD)/../../fftw-3.3.2/msw-build-3/lib -llapackMinGW -lblasMinGW -lf2c_nomain -lfftw3
20  RUBY_DIR = $(PWD)/../../ruby-1.8.7-p160
21  RUBY_CFLAGS = -I$(RUBY_DIR)/msw-build-3/include
22  RUBY_LDFLAGS = -L$(RUBY_DIR)/msw-build-3/lib -lmsvcrt-ruby18-static -lws2_32
23  EXECUTABLE = _Molby.exe_
24  FINAL_EXECUTABLE = Molby.exe
25  EXE_SUFFIX = .exe
26 endif
27
28 WXLIB_LIST = core,base,gl,adv
29 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
30 LIBS = MolLib.a Ruby_bind.a
31 RUBY_EXTLIB = scanf.rb
32
33 ifeq ($(TARGET_PLATFORM),MAC)
34 PRODUCT = Molby.app
35 else
36 PRODUCT_DIR = Molby
37 PRODUCT = $(PRODUCT_DIR)/$(EXECUTABLE)
38 endif
39
40 CPP = g++
41 CC = gcc
42 CFLAGS = $(CPPFLAGS) $(CPP_EXTRA_FLAGS) $(RUBY_CFLAGS) $(WX_CPPFLAGS)
43 LDFLAGS = $(WX_LDFLAGS) $(LD_EXTRA_FLAGS) $(RUBY_LDFLAGS)
44 DESTPREFIX = build
45 DESTDIR = $(PWD)/$(DESTPREFIX)
46 export CFLAGS
47 export LDFLAGS
48 export DESTDIR
49 export CC
50
51 all: $(DESTPREFIX) $(DESTPREFIX)/$(PRODUCT)
52
53 $(DESTPREFIX) :
54         mkdir -p $(DESTPREFIX)
55
56 amber11 : ../amber11/src/antechamber/*.[ch] ../amber11/src/sqm/*.f ../amber11/src/config.h
57         make -f ../Makefile_amber11
58
59 $(DESTPREFIX)/mopac-build/mopac/mopac606$(EXE_SUFFIX) : 
60         make -f ../Makefile_mopac606_nbo
61
62 ifeq ($(TARGET_PLATFORM),MSW)
63 EXTRA_OBJECTS = listctrl.o window_msw.o textctrl_msw.o
64 RESOURCE = molby_rc.o
65 #  The following HOMETEMP kludges are to work around a bug where '#include "..."' 
66 #  does not work when the include path is on the C: drive whereas the source is 
67 #  on the Z: drive. 2009.7.24. Toshi Nagata
68 HOMETEMP = $(HOME)/__molby_temp_build__
69 $(DESTPREFIX)/$(RESOURCE) : molby.rc
70         mkdir -p $(HOMETEMP)/msw_build $(HOMETEMP)/bitmaps
71         cp molby.rc $(HOMETEMP)/msw_build
72         cp ../bitmaps/*.ico $(HOMETEMP)/bitmaps
73         (cd $(HOMETEMP)/msw_build; windres -i molby.rc -o molby_rc.o -I$(WX_DIR)/include)
74         cp $(HOMETEMP)/msw_build/molby_rc.o $@
75         rm -rf $(HOMETEMP)
76 endif
77
78 depend: cleandep $(DESTPREFIX) $(OBJECTS:%.o=$(DESTPREFIX)/%.d) $(EXTRA_OBJECTS:%.o=$(DESTPREFIX)/%.d)
79         cat $(DESTPREFIX)/*.d > $(DESTPREFIX)/Makefile.depend
80
81 cleandep:
82         rm -f $(DESTPREFIX)/Makefile.depend
83
84 -include $(DESTPREFIX)/Makefile.depend
85
86 $(DESTPREFIX)/%.d : ../wxSources/%.cpp
87         $(CPP) -MM $< >$@ $(subst -arch ppc,,$(CFLAGS))
88
89 $(DESTPREFIX)/%.d : ../wxSources/%.c
90         $(CC) -MM $< >$@ $(subst -arch ppc,,$(CFLAGS))
91
92 $(DESTPREFIX)/%.o : ../wxSources/%.cpp
93         $(CPP) -c $< -o $@ $(CFLAGS)
94
95 $(DESTPREFIX)/%.o : ../wxSources/%.c
96         $(CC) -c $< -o $@ $(CFLAGS)
97
98 $(DESTPREFIX)/MolLib.a : ../MolLib/*.[ch] ../MolLib/MD/*.[ch]
99         mkdir -p $(DESTPREFIX)/MolLib/MD; cd ../MolLib; $(MAKE)
100
101 $(DESTPREFIX)/Ruby_bind.a : ../MolLib/Ruby_bind/*.[ch]
102         mkdir -p $(DESTPREFIX)/MolLib/Ruby_bind; cd ../MolLib/Ruby_bind; $(MAKE)
103
104 ALL_OBJECTS = $(OBJECTS) $(EXTRA_OBJECTS) $(LIBS) $(RESOURCE)
105 DESTOBJECTS = $(addprefix $(DESTPREFIX)/,$(ALL_OBJECTS))
106 $(DESTPREFIX)/$(EXECUTABLE) : $(DESTOBJECTS)
107 ifeq ($(TARGET_PLATFORM),MAC)
108         sh ../record_build_date.sh --with-svn-status
109 endif
110 ifeq ($(TARGET_PLATFORM),MSW)
111         sh ../record_build_date.sh
112 endif
113         $(CC) -c $(DESTPREFIX)/buildInfo.c -o $(DESTPREFIX)/buildInfo.o
114         $(CPP) -o $@ $(DESTOBJECTS) $(DESTPREFIX)/buildInfo.o $(CFLAGS) $(LDFLAGS)
115
116 $(DESTPREFIX)/$(PRODUCT) : $(DESTPREFIX)/$(EXECUTABLE) ../Scripts/*.rb amber11 $(DESTPREFIX)/mopac-build/mopac/mopac606$(EXE_SUFFIX)
117 ifeq ($(TARGET_PLATFORM),MAC)
118         rm -rf $(DESTPREFIX)/$(PRODUCT)
119         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/MacOS
120         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
121         cp -f Info.plist $(DESTPREFIX)/$(PRODUCT)/Contents
122         echo -n "APPL????" > $(DESTPREFIX)/$(PRODUCT)/Contents/PkgInfo
123         cp -r ../Scripts $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
124         cp -r amber11 $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
125         cp -r $(DESTPREFIX)/mopac-build/mopac $(DESTPREFIX)/$(PRODUCT)/Contents/Resources
126         mkdir -p $(DESTPREFIX)/$(PRODUCT)/Contents/Resources/Scripts/lib
127         for i in $(RUBY_EXTLIB); do cp $(RUBY_DIR)/lib/$$i $(DESTPREFIX)/$(PRODUCT)/Contents/Resources/Scripts/lib; done
128         cp $(DESTPREFIX)/$(EXECUTABLE) $(DESTPREFIX)/$(PRODUCT)/Contents/MacOS
129 endif
130 ifeq ($(TARGET_PLATFORM),MSW)
131         rm -rf $(DESTPREFIX)/$(PRODUCT_DIR)
132         mkdir -p $(DESTPREFIX)/$(PRODUCT_DIR)
133         cp $(DESTPREFIX)/$(EXECUTABLE) $(DESTPREFIX)/$(PRODUCT_DIR)/$(FINAL_EXECUTABLE)
134         cp `which mingwm10.dll` $(DESTPREFIX)/$(PRODUCT_DIR)
135         cp -r ../Scripts $(DESTPREFIX)/$(PRODUCT_DIR)
136         cp -r amber11 $(DESTPREFIX)/$(PRODUCT_DIR)
137         cp -r $(DESTPREFIX)/mopac-build/mopac $(DESTPREFIX)/$(PRODUCT_DIR)
138         mkdir -p $(DESTPREFIX)/$(PRODUCT_DIR)/Scripts/lib
139         for i in $(RUBY_EXTLIB); do cp $(RUBY_DIR)/lib/$$i $(DESTPREFIX)/$(PRODUCT_DIR)/Scripts/lib; done
140 endif
141
142 ifeq ($(TARGET_PLATFORM),MSW)
143 setup: $(DESTPREFIX)/$(PRODUCT_DIR)/$(FINAL_EXECUTABLE)
144         /c/Program\ Files\ \(x86\)/Inno\ Setup\ 5/iscc molby.iss
145 endif
146
147 clean:
148         rm -f $(DESTPREFIX)/*.o $(DESTPREFIX)/*.a $(DESTPREFIX)/$(EXECUTABLE)
149         rm -rf $(DESTPREFIX)/$(PRODUCT_DIR)
150         rm -f $(DESTPREFIX)/MolLib/*.o
151         rm -f $(DESTPREFIX)/MolLib/MD/*.o
152         rm -f $(DESTPREFIX)/MolLib/Ruby_bind/*.o
153
154 #       rm -f $(EXECUTABLE) $(OBJECTS)
155 #       rm -rf $(PRODUCT)
156 #       cd ../MolLib; $(MAKE) clean
157 #       cd ../MolLib/Ruby_bind; $(MAKE) clean
158