source: trunk/src/Makefile @ 125

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

1) removed "as" string from c++'s element() function because
the function does not have the capacity to return anything
other than RpLibrary? Instances
2) changed get() functions in library module to return strings.
this change was propagated to matlab, octave, c, fortran, c++
bindings.
3) fixed rpFreeLibrary inside of c interface, now function accepts
a pointer to a pointer to RpLibrary? (lib) and sets *lib equal to
null
4) added doxygen target to makefile. (make docs), to get graphics
you need the program named dot (debian: apt-get install graphviz)
otherwise you will get errors for the portion of the proceedure
where it is trying to create the graphics.

File size: 11.5 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: RpMatlab
133        cp -d $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib
134
135#### Octave ########################################################
136install_octave: RpOctave
137        cp -d $(OCTAVE_SRC)/*.oct* $(RP_INSTALL_BASE)/lib
138
139# include core source files
140
141RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
142        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
143
144scew_extras.o: $(CORE_SRC)/scew_extras.c
145        $(CC) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
146
147RpVariable.o: $(CORE_SRC)/RpVariable.cc
148        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
149
150RpAbout.o: $(CORE_SRC)/RpAbout.cc
151        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
152
153RpNumber.o: $(CORE_SRC)/RpNumber.cc
154        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
155
156RpString.o: $(CORE_SRC)/RpString.cc
157        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
158
159RpBoolean.o: $(CORE_SRC)/RpBoolean.cc
160        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
161
162RpChoice.o: $(CORE_SRC)/RpChoice.cc
163        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
164
165RpOption.o: $(CORE_SRC)/RpOption.cc
166        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
167
168RpUnitsStd.o: $(CORE_SRC)/RpUnitsStd.cc
169        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
170
171RpUnits.o: $(CORE_SRC)/RpUnits.cc
172        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
173
174RpBindingsDict.o: $(CORE_SRC)/RpBindingsDict.cc
175        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) -o $@ -c $?
176
177
178
179
180# include cee binding definitions
181
182rappture_interface.o: $(CEE_SRC)/rappture_interface.c
183        $(CXX) -fPIC $(DEBUG) $(INCL_CEE) $(INCL_PY) -o $@ -c $<
184
185RpUnitsCInterface.o: $(CEE_SRC)/RpUnitsCInterface.cc
186        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
187
188RpLibraryCInterface.o: $(CEE_SRC)/RpLibraryCInterface.cc
189        $(CXX) -fPIC $(DEBUG) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $?
190
191
192
193
194# include fortran binding definitions
195
196rappture_fortran.o: $(FORT_SRC)/rappture_fortran.c
197        $(CXX) -fPIC $(DEBUG) $(INCL_FORTRAN) $(INCL_CORE) $(INCL_CEE) $(INCL_PY) -o $@ -c $<
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)/rpXml.cc              $(MATLAB_COMP_ARGS)
216        $(MEX) $(MATLAB_SRC)/rpElement.cc          $(MATLAB_COMP_ARGS)
217        $(MEX) $(MATLAB_SRC)/rpElementAsObject.cc  $(MATLAB_COMP_ARGS)
218        $(MEX) $(MATLAB_SRC)/rpElementAsType.cc    $(MATLAB_COMP_ARGS)
219        $(MEX) $(MATLAB_SRC)/rpElementAsComp.cc    $(MATLAB_COMP_ARGS)
220        $(MEX) $(MATLAB_SRC)/rpElementAsId.cc      $(MATLAB_COMP_ARGS)
221        $(MEX) $(MATLAB_SRC)/rpChildren.cc         $(MATLAB_COMP_ARGS)
222        $(MEX) $(MATLAB_SRC)/rpChildrenByType.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)/rpGet.cc              $(MATLAB_COMP_ARGS)
228        $(MEX) $(MATLAB_SRC)/rpGet.cc              $(MATLAB_COMP_ARGS)
229        $(MEX) $(MATLAB_SRC)/rpGetString.cc        $(MATLAB_COMP_ARGS)
230        $(MEX) $(MATLAB_SRC)/rpGetDouble.cc        $(MATLAB_COMP_ARGS)
231        $(MEX) $(MATLAB_SRC)/rpPut.cc              $(MATLAB_COMP_ARGS)
232        $(MEX) $(MATLAB_SRC)/rpPutString.cc        $(MATLAB_COMP_ARGS)
233        $(MEX) $(MATLAB_SRC)/rpPutStringId.cc      $(MATLAB_COMP_ARGS)
234        $(MEX) $(MATLAB_SRC)/rpPutDouble.cc        $(MATLAB_COMP_ARGS)
235        $(MEX) $(MATLAB_SRC)/rpPutDoubleId.cc      $(MATLAB_COMP_ARGS)
236        $(MEX) $(MATLAB_SRC)/rpNodeComp.cc         $(MATLAB_COMP_ARGS)
237        $(MEX) $(MATLAB_SRC)/rpNodeType.cc         $(MATLAB_COMP_ARGS)
238        $(MEX) $(MATLAB_SRC)/rpNodeId.cc           $(MATLAB_COMP_ARGS)
239        $(MEX) $(MATLAB_SRC)/rpResult.cc           $(MATLAB_COMP_ARGS)
240        $(MEX) $(MATLAB_SRC)/rpDefineUnit.cc       $(MATLAB_COMP_ARGS)
241#$(MEX) $(MATLAB_SRC)/rpDefineConv.cc          $(MATLAB_COMP_ARGS)
242        $(MEX) $(MATLAB_SRC)/rpGetUnits.cc         $(MATLAB_COMP_ARGS)
243        $(MEX) $(MATLAB_SRC)/rpGetUnitsName.cc     $(MATLAB_COMP_ARGS)
244        $(MEX) $(MATLAB_SRC)/rpGetExponent.cc      $(MATLAB_COMP_ARGS)
245        $(MEX) $(MATLAB_SRC)/rpGetBasis.cc         $(MATLAB_COMP_ARGS)
246        $(MEX) $(MATLAB_SRC)/rpFind.cc             $(MATLAB_COMP_ARGS)
247        $(MEX) $(MATLAB_SRC)/rpMakeMetric.cc       $(MATLAB_COMP_ARGS)
248        $(MEX) $(MATLAB_SRC)/rpConvert.cc          $(MATLAB_COMP_ARGS)
249        $(MEX) $(MATLAB_SRC)/rpConvertStr.cc       $(MATLAB_COMP_ARGS)
250        $(MEX) $(MATLAB_SRC)/rpConvertObjStr.cc    $(MATLAB_COMP_ARGS)
251        $(MEX) $(MATLAB_SRC)/rpConvertDbl.cc       $(MATLAB_COMP_ARGS)
252        $(MEX) $(MATLAB_SRC)/rpConvertObjDbl.cc    $(MATLAB_COMP_ARGS)
253        $(MEX) $(MATLAB_SRC)/rpAddPresets.cc       $(MATLAB_COMP_ARGS)
254
255OCT_INCLS = $(INCL_OCTAVE) $(INCL_CORE) $(INCL_RP_DEPS)
256OCTAVE_COMP_ARGS = $(OCT_INCLS) -L$(LIB_DIR) -lrappture
257RpOctave:
258        $(OCT) $(OCTAVE_SRC)/rpAddPresets.cc       $(OCTAVE_COMP_ARGS)
259        $(OCT) $(OCTAVE_SRC)/rpChildrenByType.cc   $(OCTAVE_COMP_ARGS)
260        $(OCT) $(OCTAVE_SRC)/rpChildren.cc         $(OCTAVE_COMP_ARGS)
261        $(OCT) $(OCTAVE_SRC)/rpConvert.cc          $(OCTAVE_COMP_ARGS)
262        $(OCT) $(OCTAVE_SRC)/rpConvertDbl.cc       $(OCTAVE_COMP_ARGS)
263        $(OCT) $(OCTAVE_SRC)/rpConvertStr.cc       $(OCTAVE_COMP_ARGS)
264        $(OCT) $(OCTAVE_SRC)/rpConvertObjDbl.cc    $(OCTAVE_COMP_ARGS)
265        $(OCT) $(OCTAVE_SRC)/rpConvertObjStr.cc    $(OCTAVE_COMP_ARGS)
266        $(OCT) $(OCTAVE_SRC)/rpDefineUnit.cc       $(OCTAVE_COMP_ARGS)
267        $(OCT) $(OCTAVE_SRC)/rpElementAsComp.cc    $(OCTAVE_COMP_ARGS)
268        $(OCT) $(OCTAVE_SRC)/rpElementAsId.cc      $(OCTAVE_COMP_ARGS)
269        $(OCT) $(OCTAVE_SRC)/rpElementAsObject.cc  $(OCTAVE_COMP_ARGS)
270        $(OCT) $(OCTAVE_SRC)/rpElementAsType.cc    $(OCTAVE_COMP_ARGS)
271        $(OCT) $(OCTAVE_SRC)/rpElement.cc          $(OCTAVE_COMP_ARGS)
272        $(OCT) $(OCTAVE_SRC)/rpFind.cc             $(OCTAVE_COMP_ARGS)
273        $(OCT) $(OCTAVE_SRC)/rpGetBasis.cc         $(OCTAVE_COMP_ARGS)
274        $(OCT) $(OCTAVE_SRC)/rpGet.cc              $(OCTAVE_COMP_ARGS)
275        $(OCT) $(OCTAVE_SRC)/rpGetString.cc        $(OCTAVE_COMP_ARGS)
276        $(OCT) $(OCTAVE_SRC)/rpGetDouble.cc        $(OCTAVE_COMP_ARGS)
277        $(OCT) $(OCTAVE_SRC)/rpGetExponent.cc      $(OCTAVE_COMP_ARGS)
278        $(OCT) $(OCTAVE_SRC)/rpGetUnits.cc         $(OCTAVE_COMP_ARGS)
279        $(OCT) $(OCTAVE_SRC)/rpGetUnitsName.cc     $(OCTAVE_COMP_ARGS)
280        $(OCT) $(OCTAVE_SRC)/rpLib.cc              $(OCTAVE_COMP_ARGS)
281        $(OCT) $(OCTAVE_SRC)/rpMakeMetric.cc       $(OCTAVE_COMP_ARGS)
282        $(OCT) $(OCTAVE_SRC)/rpNodeComp.cc         $(OCTAVE_COMP_ARGS)
283        $(OCT) $(OCTAVE_SRC)/rpNodeId.cc           $(OCTAVE_COMP_ARGS)
284        $(OCT) $(OCTAVE_SRC)/rpNodeType.cc         $(OCTAVE_COMP_ARGS)
285        $(OCT) $(OCTAVE_SRC)/rpPut.cc              $(OCTAVE_COMP_ARGS)
286        $(OCT) $(OCTAVE_SRC)/rpPutDouble.cc        $(OCTAVE_COMP_ARGS)
287        $(OCT) $(OCTAVE_SRC)/rpPutDoubleId.cc      $(OCTAVE_COMP_ARGS)
288        $(OCT) $(OCTAVE_SRC)/rpPutDoubleId.cc      $(OCTAVE_COMP_ARGS)
289        $(OCT) $(OCTAVE_SRC)/rpPutString.cc        $(OCTAVE_COMP_ARGS)
290        $(OCT) $(OCTAVE_SRC)/rpPutStringId.cc      $(OCTAVE_COMP_ARGS)
291        $(OCT) $(OCTAVE_SRC)/rpResult.cc           $(OCTAVE_COMP_ARGS)
292        $(OCT) $(OCTAVE_SRC)/rpXml.cc              $(OCTAVE_COMP_ARGS)
293
294docs:
295        if test ! -d docs; then \
296                mkdir docs; \
297        fi
298        if test ! -d docs/doxygen; then \
299                mkdir docs/doxygen; \
300        fi
301        doxygen
302
303#### CLEAN UP ############################################################
304clean:
305        - rm -f *.o librappture.so* libRp*.so* rp*.mex* $(OCTAVE_SRC)/rp*.o*
306        - rm -rf build
Note: See TracBrowser for help on using the repository browser.