source: trunk/src/Makefile @ 116

Last change on this file since 116 was 107, checked in by cxsong, 19 years ago

adjusted lib flags for mac builds

File size: 8.8 KB
Line 
1# you need to change this to where your version of python is installed.
2# tell make where to find python header files
3RP_INSTALL_BASE = /opt/rappture
4
5# tell make where to find the expat & libscew sources
6INCL_RP_DEPS    = -I$(RP_INSTALL_BASE)/include
7
8#EXPAT_HEADERS   = $(RP_INSTALL_BASE)/include
9#LIB_EXPAT_INCL  = -I $(EXPAT_HEADERS)
10#SCEW_HEADERS    = $(RP_INSTALL_BASE)/include/scew
11#LIB_SCEW_INCL   = -I $(SCEW_HEADERS) -I $(EXPAT_HEADERS)
12
13LIB_SCEW_FLAG   = -L$(RP_INSTALL_BASE)/lib -lscew
14
15#LIB_SCEW_FLAG   = /opt/rappture/lib/libscew.a
16#LIB_SCEW_FLAG   = -static -L/opt/rappture/lib -lscew
17
18
19# everything below should be ok, but check to make sure
20#
21# define the top of our directory structure
22# replace this with the full path of the directory
23# containing the rappture directory
24TOP_DIR         = ../..
25
26# define the top of the rappture directory structure
27RP_BASE   = $(TOP_DIR)/rappture
28
29# define which programs can be made
30PROGS           =   librappture    \
31                    libRpObjects   \
32                    Rappture.Units
33#                    RpMatlab
34
35# define our compiling environment
36#
37CC              = gcc
38CXX             = g++
39DEBUG           = -g -Wall
40DEBUG_PLUS      = -g -DDEBUG
41PY              = python
42MEX             = mex
43
44LN              = ln
45
46# define our directories
47#
48INCLUDES_DIR    = $(RP_BASE)/include
49BIN_DIR         = $(RP_BASE)/bin
50LIB_DIR         = $(RP_BASE)/src
51SRC_DIR         = $(RP_BASE)/src
52TEST_DIR        = $(RP_BASE)/test
53
54CORE_SRC        = $(SRC_DIR)/core
55FORT_SRC        = $(SRC_DIR)/fortran
56CEE_SRC         = $(SRC_DIR)/cee
57PY_SRC          = $(SRC_DIR)/python
58MATLAB_SRC      = $(SRC_DIR)/matlab
59
60LIB_INC_PREFIX  = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR)
61LIB_RP_OBJECTS  = $(LIB_INC_PREFIX) -lRpObjects
62LIB_RAPPTURE    = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR) -lrappture
63
64INCL_CORE       = -I$(INCLUDES_DIR)/core
65INCL_CEE        = -I$(INCLUDES_DIR)/cee
66INCL_FORTRAN    = -I$(INCLUDES_DIR)/fortran
67INCL_PY         = -I$(INCLUDES_DIR)/python
68INCL_MATLAB     = -I$(INCLUDES_DIR)/matlab
69
70
71# default:
72
73all: ${PROGS}
74install: all install_py install_rappture install_rpobjs #install_matlab
75
76RP_IO_DEPS      = RpLibrary.o RpLibraryCInterface.o RpLibraryFInterface.o \
77                  scew_extras.o
78RP_UNITS_DEPS   = RpUnitsStd.o RpUnits.o RpUnitsCInterface.o RpUnitsFInterface.o
79RP_OTHER_DEPS   = RpFortranCommon.o RpBindingsDict.o
80RP_OBJS_DEP     = RpVariable.o RpAbout.o RpNumber.o RpString.o RpBoolean.o \
81                  RpChoice.o RpOption.o RpUnitsStd.o RpUnits.o
82
83LDLIB_MACOSX = -dynamiclib -o $(LIB_DIR)/$@.dylib
84LDLIB_LINUX = -shared -Wl,-rpath,$(LIB_DIR)/ -Wl,-soname,$@.so -o $(LIB_DIR)/$@.so.0.0
85# include rappture library definitions
86
87#### librappture shared object ###########################################
88
89librappture: $(RP_IO_DEPS) $(RP_UNITS_DEPS) $(RP_OTHER_DEPS)
90        if test "`uname`" == "Darwin"; then \
91                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ $(LIB_SCEW_FLAG) -lm; \
92        else \
93                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ $(LIB_SCEW_FLAG) -lm; \
94                /sbin/ldconfig -n $(LIB_DIR); \
95        fi
96
97install_rappture: librappture
98        if test "`uname`" == "Darwin"; then \
99                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
100        else \
101                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
102        fi
103
104#### libRpObjects ########################################################
105libRpObjects: $(RP_OBJS_DEP)
106        if test "`uname`" == "Darwin"; then \
107                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ -lstdc++; \
108        else \
109                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ -lstdc++; \
110                /sbin/ldconfig -n $(LIB_DIR); \
111        fi
112
113install_rpobjs: libRpObjects
114        if test "`uname`" == "Darwin"; then \
115                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
116        else \
117                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
118        fi
119
120#### Python ########################################################
121Rappture.Units: RpUnits.o RpUnitsStd.o
122        $(PY) $(PY_SRC)/setup.py build
123
124install_py: RpUnits.o RpUnitsStd.o
125        $(PY) $(PY_SRC)/setup.py install
126
127
128#### Matlab ########################################################
129install_matlab: RpMatlab
130        cp -d $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib
131
132
133# include core source files
134
135RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
136        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
137
138scew_extras.o: $(CORE_SRC)/scew_extras.c
139        $(CC) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
140
141RpVariable.o: $(CORE_SRC)/RpVariable.cc
142        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
143
144RpAbout.o: $(CORE_SRC)/RpAbout.cc
145        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
146
147RpNumber.o: $(CORE_SRC)/RpNumber.cc
148        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
149
150RpString.o: $(CORE_SRC)/RpString.cc
151        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
152
153RpBoolean.o: $(CORE_SRC)/RpBoolean.cc
154        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
155
156RpChoice.o: $(CORE_SRC)/RpChoice.cc
157        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
158
159RpOption.o: $(CORE_SRC)/RpOption.cc
160        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
161
162RpUnitsStd.o: $(CORE_SRC)/RpUnitsStd.cc
163        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
164
165RpUnits.o: $(CORE_SRC)/RpUnits.cc
166        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
167
168RpBindingsDict.o: $(CORE_SRC)/RpBindingsDict.cc
169        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
170
171
172
173
174# include cee binding definitions
175
176rappture_interface.o: $(CEE_SRC)/rappture_interface.c
177        $(CXX) -fPIC $(DEBUG) $(INCL_CEE) $(INCL_PY) -o $@ -c $<
178
179RpUnitsCInterface.o: $(CEE_SRC)/RpUnitsCInterface.cc
180        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
181
182RpLibraryCInterface.o: $(CEE_SRC)/RpLibraryCInterface.cc
183        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $?
184
185
186
187
188# include fortran binding definitions
189
190rappture_fortran.o: $(FORT_SRC)/rappture_fortran.c
191        $(CXX) -fPIC $(DEBUG) $(INCL_FORTRAN) $(INCL_CORE) $(INCL_CEE) $(INCL_PY) -o $@ -c $<
192
193RpUnitsFInterface.o: $(FORT_SRC)/RpUnitsFInterface.cc
194        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) -o $@ -c $?
195
196RpFortranCommon.o: $(FORT_SRC)/RpFortranCommon.c
197        $(CXX) -fPIC $(DEBUG) $(INCL_FORTRAN) -o $@ -c $<
198
199RpLibraryFInterface.o: $(FORT_SRC)/RpLibraryFInterface.cc
200        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) $(INCL_RP_DEPS) -o $@ -c $?
201
202
203# matlab bindings
204MEX_INCLS = $(INCL_MATLAB) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS)
205MATLAB_COMP_ARGS = $(MATLAB_SRC)/RpMatlabInterface.cc $(MEX_INCLS) -L$(LIB_DIR) -lrappture
206
207RpMatlab:
208        $(MEX) $(MATLAB_SRC)/rpLib.cc              $(MATLAB_COMP_ARGS)
209        $(MEX) $(MATLAB_SRC)/rpXml.cc              $(MATLAB_COMP_ARGS)
210        $(MEX) $(MATLAB_SRC)/rpElement.cc          $(MATLAB_COMP_ARGS)
211        $(MEX) $(MATLAB_SRC)/rpElementAsObject.cc  $(MATLAB_COMP_ARGS)
212        $(MEX) $(MATLAB_SRC)/rpElementAsType.cc    $(MATLAB_COMP_ARGS)
213        $(MEX) $(MATLAB_SRC)/rpElementAsComp.cc    $(MATLAB_COMP_ARGS)
214        $(MEX) $(MATLAB_SRC)/rpElementAsId.cc      $(MATLAB_COMP_ARGS)
215        $(MEX) $(MATLAB_SRC)/rpChildren.cc         $(MATLAB_COMP_ARGS)
216        $(MEX) $(MATLAB_SRC)/rpChildrenByType.cc   $(MATLAB_COMP_ARGS)
217#$(MEX) $(MATLAB_SRC)/rpChildrenAsObject.cc    $(MATLAB_COMP_ARGS)
218#$(MEX) $(MATLAB_SRC)/rpChildrenAsType.cc      $(MATLAB_COMP_ARGS)
219#$(MEX) $(MATLAB_SRC)/rpChildrenAsComp.cc      $(MATLAB_COMP_ARGS)
220#$(MEX) $(MATLAB_SRC)/rpChildrenAsId.cc        $(MATLAB_COMP_ARGS)
221        $(MEX) $(MATLAB_SRC)/rpGet.cc              $(MATLAB_COMP_ARGS)
222        $(MEX) $(MATLAB_SRC)/rpGet.cc              $(MATLAB_COMP_ARGS)
223        $(MEX) $(MATLAB_SRC)/rpGetString.cc        $(MATLAB_COMP_ARGS)
224        $(MEX) $(MATLAB_SRC)/rpGetDouble.cc        $(MATLAB_COMP_ARGS)
225        $(MEX) $(MATLAB_SRC)/rpPut.cc              $(MATLAB_COMP_ARGS)
226        $(MEX) $(MATLAB_SRC)/rpPutString.cc        $(MATLAB_COMP_ARGS)
227        $(MEX) $(MATLAB_SRC)/rpPutStringId.cc      $(MATLAB_COMP_ARGS)
228        $(MEX) $(MATLAB_SRC)/rpPutDouble.cc        $(MATLAB_COMP_ARGS)
229        $(MEX) $(MATLAB_SRC)/rpPutDoubleId.cc      $(MATLAB_COMP_ARGS)
230        $(MEX) $(MATLAB_SRC)/rpNodeComp.cc         $(MATLAB_COMP_ARGS)
231        $(MEX) $(MATLAB_SRC)/rpNodeType.cc         $(MATLAB_COMP_ARGS)
232        $(MEX) $(MATLAB_SRC)/rpNodeId.cc           $(MATLAB_COMP_ARGS)
233        $(MEX) $(MATLAB_SRC)/rpResult.cc           $(MATLAB_COMP_ARGS)
234        $(MEX) $(MATLAB_SRC)/rpDefineUnit.cc       $(MATLAB_COMP_ARGS)
235#$(MEX) $(MATLAB_SRC)/rpDefineConv.cc          $(MATLAB_COMP_ARGS)
236        $(MEX) $(MATLAB_SRC)/rpGetUnits.cc         $(MATLAB_COMP_ARGS)
237        $(MEX) $(MATLAB_SRC)/rpGetUnitsName.cc     $(MATLAB_COMP_ARGS)
238        $(MEX) $(MATLAB_SRC)/rpGetExponent.cc      $(MATLAB_COMP_ARGS)
239        $(MEX) $(MATLAB_SRC)/rpGetBasis.cc         $(MATLAB_COMP_ARGS)
240        $(MEX) $(MATLAB_SRC)/rpFind.cc             $(MATLAB_COMP_ARGS)
241        $(MEX) $(MATLAB_SRC)/rpMakeMetric.cc       $(MATLAB_COMP_ARGS)
242        $(MEX) $(MATLAB_SRC)/rpConvert.cc          $(MATLAB_COMP_ARGS)
243        $(MEX) $(MATLAB_SRC)/rpConvertStr.cc       $(MATLAB_COMP_ARGS)
244        $(MEX) $(MATLAB_SRC)/rpConvertObjStr.cc    $(MATLAB_COMP_ARGS)
245        $(MEX) $(MATLAB_SRC)/rpConvertDbl.cc       $(MATLAB_COMP_ARGS)
246        $(MEX) $(MATLAB_SRC)/rpConvertObjDbl.cc    $(MATLAB_COMP_ARGS)
247        $(MEX) $(MATLAB_SRC)/rpAddPresets.cc       $(MATLAB_COMP_ARGS)
248
249
250
251
252
253#### CLEAN UP ############################################################
254clean:
255        - rm -f *.o librappture.so* libRp*.so* rp*.mex*
256        - rm -rf build
Note: See TracBrowser for help on using the repository browser.