source: trunk/src/Makefile @ 165

Last change on this file since 165 was 165, checked in by dkearney, 16 years ago

1) removing matlab and octave tests for put*id functions
2) adding old fortran examples
3) minor changes to matlab and octave to fix rpUnitsGetBasis
4) rpUnitsMakeMetric does not work in matlab
5) changes to fortran bindings to return proper error codes.
6) added debugging to matlab compiling options and changed outdir location in Makefile

File size: 12.1 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              = $(RP_INSTALL_BASE)/bin/python
42MEX             = mex
43OCT             = mkoctfile
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
59OCTAVE_SRC      = $(SRC_DIR)/octave
60
61LIB_INC_PREFIX  = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR)
62LIB_RP_OBJECTS  = $(LIB_INC_PREFIX) -lRpObjects
63LIB_RAPPTURE    = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR) -lrappture
64
65INCL_CORE       = -I$(INCLUDES_DIR)/core
66INCL_CEE        = -I$(INCLUDES_DIR)/cee
67INCL_FORTRAN    = -I$(INCLUDES_DIR)/fortran
68INCL_PY         = -I$(INCLUDES_DIR)/python
69INCL_MATLAB     = -I$(INCLUDES_DIR)/matlab
70INCL_OCTAVE     = -I$(INCLUDES_DIR)/octave
71
72CFLAGS = -fPIC
73
74# default:
75
76all: ${PROGS}
77install: all install_py install_rappture install_rpobjs #install_matlab #install_octave
78
79RP_IO_DEPS      = RpLibrary.o RpLibraryCInterface.o RpLibraryFInterface.o \
80                  scew_extras.o
81RP_UNITS_DEPS   = RpUnitsStd.o RpUnits.o RpUnitsCInterface.o RpUnitsFInterface.o
82RP_OTHER_DEPS   = RpFortranCommon.o RpBindingsDict.o
83RP_OBJS_DEP     = RpVariable.o RpAbout.o RpNumber.o RpString.o RpBoolean.o \
84                  RpChoice.o RpOption.o RpUnitsStd.o RpUnits.o #RpValue.o\
85                  # RpValueDouble.o RpValueString.o
86
87LDLIB_MACOSX = -dynamiclib -o $(LIB_DIR)/$@.dylib
88LDLIB_LINUX = -shared -Wl,-rpath,$(LIB_DIR)/ -Wl,-soname,$@.so -o $(LIB_DIR)/$@.so.0.0
89
90# include rappture library definitions
91
92#### librappture shared object ###########################################
93
94librappture: $(RP_IO_DEPS) $(RP_UNITS_DEPS) $(RP_OTHER_DEPS)
95        if test "`uname`" == "Darwin"; then \
96                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ $(LIB_SCEW_FLAG) -lm; \
97                ar -r $@.a $^; \
98                ranlib -s $@.a; \
99        else \
100                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ $(LIB_SCEW_FLAG) -lm; \
101                /sbin/ldconfig -n $(LIB_DIR); \
102                ar -r $@.a $^; \
103                ranlib $@.a; \
104        fi
105
106install_rappture: librappture
107        if test "`uname`" == "Darwin"; then \
108                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
109                cp $<.a $(RP_INSTALL_BASE)/lib; \
110        else \
111                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
112                cp -d $<.a $(RP_INSTALL_BASE)/lib; \
113        fi
114
115#### libRpObjects ########################################################
116libRpObjects: $(RP_OBJS_DEP)
117        if test "`uname`" == "Darwin"; then \
118                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ -lstdc++; \
119        else \
120                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ -lstdc++; \
121                /sbin/ldconfig -n $(LIB_DIR); \
122        fi
123
124install_rpobjs: libRpObjects
125        if test "`uname`" == "Darwin"; then \
126                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
127        else \
128                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
129        fi
130
131#### Python ########################################################
132Rappture.Units: RpUnits.o RpUnitsStd.o
133        $(PY) $(PY_SRC)/setup.py build
134
135install_py: RpUnits.o RpUnitsStd.o
136        $(PY) $(PY_SRC)/setup.py install
137
138
139#### Matlab ########################################################
140install_matlab: librappture RpMatlab
141        if test ! -d $(RP_INSTALL_BASE)/lib/matlab; then \
142                mkdir $(RP_INSTALL_BASE)/lib/matlab; \
143        fi
144        cp -d $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib/matlab
145
146#### Octave ########################################################
147install_octave: librappture RpOctave
148        if test ! -d $(RP_INSTALL_BASE)/lib/octave; then \
149                mkdir $(RP_INSTALL_BASE)/lib/octave; \
150        fi
151        cp -d $(OCTAVE_SRC)/*.oct* $(RP_INSTALL_BASE)/lib/octave
152
153
154###############################################
155
156# include core source files
157
158RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
159        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
160
161scew_extras.o: $(CORE_SRC)/scew_extras.c
162        $(CC) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
163
164RpVariable.o: $(CORE_SRC)/RpVariable.cc
165        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
166
167RpAbout.o: $(CORE_SRC)/RpAbout.cc
168        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
169
170RpNumber.o: $(CORE_SRC)/RpNumber.cc
171        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
172
173RpString.o: $(CORE_SRC)/RpString.cc
174        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
175
176RpBoolean.o: $(CORE_SRC)/RpBoolean.cc
177        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
178
179RpChoice.o: $(CORE_SRC)/RpChoice.cc
180        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
181
182RpOption.o: $(CORE_SRC)/RpOption.cc
183        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
184
185RpUnitsStd.o: $(CORE_SRC)/RpUnitsStd.cc
186        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
187
188RpUnits.o: $(CORE_SRC)/RpUnits.cc
189        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
190
191RpBindingsDict.o: $(CORE_SRC)/RpBindingsDict.cc
192        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
193
194RpValue.o: $(CORE_SRC)/RpValue.cc
195        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
196
197RpValueDouble.o: $(CORE_SRC)/RpValueDouble.cc
198        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
199
200RpValueString.o: $(CORE_SRC)/RpValueString.cc
201        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
202
203
204
205# include cee binding definitions
206
207RpUnitsCInterface.o: $(CEE_SRC)/RpUnitsCInterface.cc
208        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
209
210RpLibraryCInterface.o: $(CEE_SRC)/RpLibraryCInterface.cc
211        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $?
212
213
214
215
216# include fortran binding definitions
217
218RpUnitsFInterface.o: $(FORT_SRC)/RpUnitsFInterface.cc
219        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) -o $@ -c $?
220
221RpFortranCommon.o: $(FORT_SRC)/RpFortranCommon.c
222        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_FORTRAN) -o $@ -c $<
223
224RpLibraryFInterface.o: $(FORT_SRC)/RpLibraryFInterface.cc
225        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) $(INCL_RP_DEPS) -o $@ -c $?
226
227
228# matlab bindings
229MEX_INCLS = $(INCL_MATLAB) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS)
230MEX_OPTS = -g -outdir $(MATLAB_SRC) -L$(LIB_DIR) -lrappture
231MATLAB_COMP_ARGS = $(MATLAB_SRC)/RpMatlabInterface.cc $(MEX_INCLS) $(MEX_OPTS)
232
233RpMatlab:
234        $(MEX) $(MATLAB_SRC)/rpLib.cc                   $(MATLAB_COMP_ARGS)
235        $(MEX) $(MATLAB_SRC)/rpLibXml.cc                $(MATLAB_COMP_ARGS)
236        $(MEX) $(MATLAB_SRC)/rpLibElement.cc            $(MATLAB_COMP_ARGS)
237        $(MEX) $(MATLAB_SRC)/rpLibElementAsObject.cc    $(MATLAB_COMP_ARGS)
238        $(MEX) $(MATLAB_SRC)/rpLibElementAsType.cc      $(MATLAB_COMP_ARGS)
239        $(MEX) $(MATLAB_SRC)/rpLibElementAsComp.cc      $(MATLAB_COMP_ARGS)
240        $(MEX) $(MATLAB_SRC)/rpLibElementAsId.cc        $(MATLAB_COMP_ARGS)
241        $(MEX) $(MATLAB_SRC)/rpLibChildren.cc           $(MATLAB_COMP_ARGS)
242        $(MEX) $(MATLAB_SRC)/rpLibChildrenByType.cc     $(MATLAB_COMP_ARGS)
243#$(MEX) $(MATLAB_SRC)/rpChildrenAsObject.cc         $(MATLAB_COMP_ARGS)
244#$(MEX) $(MATLAB_SRC)/rpChildrenAsType.cc           $(MATLAB_COMP_ARGS)
245#$(MEX) $(MATLAB_SRC)/rpChildrenAsComp.cc           $(MATLAB_COMP_ARGS)
246#$(MEX) $(MATLAB_SRC)/rpChildrenAsId.cc             $(MATLAB_COMP_ARGS)
247        $(MEX) $(MATLAB_SRC)/rpLibGet.cc                $(MATLAB_COMP_ARGS)
248        $(MEX) $(MATLAB_SRC)/rpLibGetString.cc          $(MATLAB_COMP_ARGS)
249        $(MEX) $(MATLAB_SRC)/rpLibGetDouble.cc          $(MATLAB_COMP_ARGS)
250        $(MEX) $(MATLAB_SRC)/rpLibPut.cc                $(MATLAB_COMP_ARGS)
251        $(MEX) $(MATLAB_SRC)/rpLibPutString.cc          $(MATLAB_COMP_ARGS)
252        $(MEX) $(MATLAB_SRC)/rpLibPutDouble.cc          $(MATLAB_COMP_ARGS)
253        $(MEX) $(MATLAB_SRC)/rpLibNodeComp.cc           $(MATLAB_COMP_ARGS)
254        $(MEX) $(MATLAB_SRC)/rpLibNodeType.cc           $(MATLAB_COMP_ARGS)
255        $(MEX) $(MATLAB_SRC)/rpLibNodeId.cc             $(MATLAB_COMP_ARGS)
256        $(MEX) $(MATLAB_SRC)/rpLibResult.cc             $(MATLAB_COMP_ARGS)
257        $(MEX) $(MATLAB_SRC)/rpUnitsDefineUnit.cc       $(MATLAB_COMP_ARGS)
258#$(MEX) $(MATLAB_SRC)/rpDefineConv.cc               $(MATLAB_COMP_ARGS)
259        $(MEX) $(MATLAB_SRC)/rpUnitsGetUnits.cc         $(MATLAB_COMP_ARGS)
260        $(MEX) $(MATLAB_SRC)/rpUnitsGetUnitsName.cc     $(MATLAB_COMP_ARGS)
261        $(MEX) $(MATLAB_SRC)/rpUnitsGetExponent.cc      $(MATLAB_COMP_ARGS)
262        $(MEX) $(MATLAB_SRC)/rpUnitsGetBasis.cc         $(MATLAB_COMP_ARGS)
263        $(MEX) $(MATLAB_SRC)/rpUnitsFind.cc             $(MATLAB_COMP_ARGS)
264        $(MEX) $(MATLAB_SRC)/rpUnitsMakeMetric.cc       $(MATLAB_COMP_ARGS)
265        $(MEX) $(MATLAB_SRC)/rpUnitsConvert.cc          $(MATLAB_COMP_ARGS)
266        $(MEX) $(MATLAB_SRC)/rpUnitsConvertStr.cc       $(MATLAB_COMP_ARGS)
267        $(MEX) $(MATLAB_SRC)/rpUnitsConvertObjStr.cc    $(MATLAB_COMP_ARGS)
268        $(MEX) $(MATLAB_SRC)/rpUnitsConvertDbl.cc       $(MATLAB_COMP_ARGS)
269        $(MEX) $(MATLAB_SRC)/rpUnitsConvertObjDbl.cc    $(MATLAB_COMP_ARGS)
270        $(MEX) $(MATLAB_SRC)/rpAddPresets.cc            $(MATLAB_COMP_ARGS)
271
272OCT_INCLS = $(INCL_OCTAVE) $(INCL_CORE) $(INCL_RP_DEPS)
273OCTAVE_COMP_ARGS = $(OCT_INCLS) -L$(LIB_DIR) -lrappture
274RpOctave:
275        $(OCT) $(OCTAVE_SRC)/rpAddPresets.cc            $(OCTAVE_COMP_ARGS)
276        $(OCT) $(OCTAVE_SRC)/rpLib.cc                   $(OCTAVE_COMP_ARGS)
277        $(OCT) $(OCTAVE_SRC)/rpLibChildrenByType.cc     $(OCTAVE_COMP_ARGS)
278        $(OCT) $(OCTAVE_SRC)/rpLibChildren.cc           $(OCTAVE_COMP_ARGS)
279        $(OCT) $(OCTAVE_SRC)/rpLibElementAsComp.cc      $(OCTAVE_COMP_ARGS)
280        $(OCT) $(OCTAVE_SRC)/rpLibElementAsId.cc        $(OCTAVE_COMP_ARGS)
281        $(OCT) $(OCTAVE_SRC)/rpLibElementAsObject.cc    $(OCTAVE_COMP_ARGS)
282        $(OCT) $(OCTAVE_SRC)/rpLibElementAsType.cc      $(OCTAVE_COMP_ARGS)
283        $(OCT) $(OCTAVE_SRC)/rpLibElement.cc            $(OCTAVE_COMP_ARGS)
284        $(OCT) $(OCTAVE_SRC)/rpLibGet.cc                $(OCTAVE_COMP_ARGS)
285        $(OCT) $(OCTAVE_SRC)/rpLibGetString.cc          $(OCTAVE_COMP_ARGS)
286        $(OCT) $(OCTAVE_SRC)/rpLibGetDouble.cc          $(OCTAVE_COMP_ARGS)
287        $(OCT) $(OCTAVE_SRC)/rpLibNodeComp.cc           $(OCTAVE_COMP_ARGS)
288        $(OCT) $(OCTAVE_SRC)/rpLibNodeId.cc             $(OCTAVE_COMP_ARGS)
289        $(OCT) $(OCTAVE_SRC)/rpLibNodeType.cc           $(OCTAVE_COMP_ARGS)
290        $(OCT) $(OCTAVE_SRC)/rpLibPut.cc                $(OCTAVE_COMP_ARGS)
291        $(OCT) $(OCTAVE_SRC)/rpLibPutDouble.cc          $(OCTAVE_COMP_ARGS)
292        $(OCT) $(OCTAVE_SRC)/rpLibPutString.cc          $(OCTAVE_COMP_ARGS)
293        $(OCT) $(OCTAVE_SRC)/rpLibResult.cc             $(OCTAVE_COMP_ARGS)
294        $(OCT) $(OCTAVE_SRC)/rpLibXml.cc                $(OCTAVE_COMP_ARGS)
295        $(OCT) $(OCTAVE_SRC)/rpUnitsConvert.cc          $(OCTAVE_COMP_ARGS)
296        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertDbl.cc       $(OCTAVE_COMP_ARGS)
297        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertStr.cc       $(OCTAVE_COMP_ARGS)
298        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertObjDbl.cc    $(OCTAVE_COMP_ARGS)
299        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertObjStr.cc    $(OCTAVE_COMP_ARGS)
300        $(OCT) $(OCTAVE_SRC)/rpUnitsDefineUnit.cc       $(OCTAVE_COMP_ARGS)
301        $(OCT) $(OCTAVE_SRC)/rpUnitsFind.cc             $(OCTAVE_COMP_ARGS)
302        $(OCT) $(OCTAVE_SRC)/rpUnitsGetBasis.cc         $(OCTAVE_COMP_ARGS)
303        $(OCT) $(OCTAVE_SRC)/rpUnitsGetExponent.cc      $(OCTAVE_COMP_ARGS)
304        $(OCT) $(OCTAVE_SRC)/rpUnitsGetUnits.cc         $(OCTAVE_COMP_ARGS)
305        $(OCT) $(OCTAVE_SRC)/rpUnitsGetUnitsName.cc     $(OCTAVE_COMP_ARGS)
306        $(OCT) $(OCTAVE_SRC)/rpUnitsMakeMetric.cc       $(OCTAVE_COMP_ARGS)
307
308docs:
309        if test ! -d docs; then \
310                mkdir docs; \
311        fi
312        if test ! -d docs/doxygen; then \
313                mkdir docs/doxygen; \
314        fi
315        doxygen
316
317#### CLEAN UP ############################################################
318clean:
319        - rm -f *.o librappture.so* librappture.a libRp*.so* rp*.mex* $(OCTAVE_SRC)/rp*.o*
320        - rm -rf build
Note: See TracBrowser for help on using the repository browser.