source: trunk/src/Makefile @ 135

Last change on this file since 135 was 135, checked in by dkearney, 17 years ago

1) fixed children function in c++'s library module so users can now
search for children by type.
2) adjusted bindings dictionary module for storing lib's to allow caller
to set the key of the value being stored.
3) removed old targets for rappture_interface.o and rappture_fortran.o
from makefile
4) renamed matlab and octave binding functions names to match the module
they came from.
5) adjusted matlab/octave example in examples/app_fermi/matlab
6) added matlab and octave search paths environment variables to
gui/apps/rappture

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