source: trunk/src/Makefile @ 511

Last change on this file since 511 was 486, checked in by nkissebe, 18 years ago

RpFortranCommon?.c renamed to RpFortranCommon?.cc as it a C++ file (this makes Microsoft C++ happier)

File size: 12.5 KB
Line 
1# you need to change this to where your version of rappture
2# is (or should be) installed.
3ifndef RP_INSTALL_BASE
4RP_INSTALL_BASE = /opt/rappture
5endif
6
7# tell make where to find the expat & libscew sources
8INCL_RP_DEPS    = -I$(RP_INSTALL_BASE)/include
9
10#EXPAT_HEADERS   = $(RP_INSTALL_BASE)/include
11#LIB_EXPAT_INCL  = -I $(EXPAT_HEADERS)
12#SCEW_HEADERS    = $(RP_INSTALL_BASE)/include/scew
13#LIB_SCEW_INCL   = -I $(SCEW_HEADERS) -I $(EXPAT_HEADERS)
14
15LIB_SCEW_FLAG   = -L$(RP_INSTALL_BASE)/lib -lscew
16
17#LIB_SCEW_FLAG   = /opt/rappture/lib/libscew.a
18#LIB_SCEW_FLAG   = -static -L/opt/rappture/lib -lscew
19
20
21# everything below should be ok, but check to make sure
22#
23# define the top of our directory structure
24# replace this with the full path of the directory
25# containing the rappture directory
26TOP_DIR         = ../..
27
28# define the top of the rappture directory structure
29RP_BASE   = $(TOP_DIR)/rappture
30
31# define which programs can be made
32PROGS           =   librappture    \
33                    libRpObjects   \
34                    Rappture.Units
35
36# define our compiling environment
37#
38CC              = gcc
39CXX             = g++
40DEBUG           = -g -Wall
41DEBUG_PLUS      = -g -DDEBUG
42PY              = $(RP_INSTALL_BASE)/bin/python
43MEX             = mex
44OCT             = mkoctfile
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
61TCL_SRC         = $(SRC_DIR)/tcl
62
63LIB_INC_PREFIX  = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR)
64LIB_RP_OBJECTS  = $(LIB_INC_PREFIX) -lRpObjects
65LIB_RAPPTURE    = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR) -lrappture
66
67INCL_CORE       = -I$(INCLUDES_DIR)/core
68INCL_CEE        = -I$(INCLUDES_DIR)/cee
69INCL_FORTRAN    = -I$(INCLUDES_DIR)/fortran
70INCL_PY         = -I$(INCLUDES_DIR)/python
71INCL_MATLAB     = -I$(INCLUDES_DIR)/matlab
72INCL_OCTAVE     = -I$(INCLUDES_DIR)/octave
73
74CFLAGS = -fPIC
75
76# default:
77
78all: ${PROGS}
79install:        install_py                      \
80                        install_rappture        \
81                        install_rpobjs          \
82                        install_matlab          \
83                        install_octave
84#                       install_tcl
85
86RP_IO_DEPS      = RpLibrary.o RpLibraryCInterface.o RpLibraryFInterface.o \
87                  scew_extras.o RpEntityRef.o
88RP_UNITS_DEPS   = RpUnitsStd.o RpUnits.o RpUnitsCInterface.o RpUnitsFInterface.o
89RP_OTHER_DEPS   = RpFortranCommon.o RpBindingsDict.o
90RP_OBJS_DEP     = RpVariable.o RpAbout.o RpNumber.o RpString.o RpBoolean.o \
91                  RpChoice.o RpOption.o RpUnitsStd.o RpUnits.o #RpValue.o\
92                  # RpValueDouble.o RpValueString.o
93
94LDLIB_MACOSX = -dynamiclib -o $(LIB_DIR)/$@.dylib
95LDLIB_LINUX = -shared -Wl,-rpath,$(LIB_DIR)/ -Wl,-soname,$@.so -o $(LIB_DIR)/$@.so.0.0
96
97# include rappture library definitions
98
99#### librappture shared object ###########################################
100
101librappture: $(RP_IO_DEPS) $(RP_UNITS_DEPS) $(RP_OTHER_DEPS)
102        if test "`uname`" == "Darwin"; then \
103                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ $(LIB_SCEW_FLAG) -lm; \
104                ar -r $@.a $^; \
105                ranlib -s $@.a; \
106        else \
107                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ $(LIB_SCEW_FLAG) -lm; \
108                /sbin/ldconfig -n $(LIB_DIR); \
109                ar -r $@.a $^; \
110                ranlib $@.a; \
111        fi
112
113install_rappture: librappture
114        if test "`uname`" == "Darwin"; then \
115                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
116                cp $<.a $(RP_INSTALL_BASE)/lib; \
117        else \
118                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
119                cp -d $<.a $(RP_INSTALL_BASE)/lib; \
120        fi
121
122#### libRpObjects ########################################################
123libRpObjects: $(RP_OBJS_DEP)
124        if test "`uname`" == "Darwin"; then \
125                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ -lstdc++; \
126        else \
127                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ -lstdc++; \
128                /sbin/ldconfig -n $(LIB_DIR); \
129        fi
130
131install_rpobjs: libRpObjects
132        if test "`uname`" == "Darwin"; then \
133                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
134        else \
135                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
136        fi
137
138#### Python ########################################################
139Rappture.Units: RpUnits.o RpUnitsStd.o
140        $(PY) $(PY_SRC)/setup.py build
141
142install_py: RpUnits.o RpUnitsStd.o
143        $(PY) $(PY_SRC)/setup.py install
144
145
146#### Matlab ########################################################
147install_matlab: librappture RpMatlab
148        if test ! -d $(RP_INSTALL_BASE)/lib/matlab; then \
149                mkdir $(RP_INSTALL_BASE)/lib/matlab; \
150        fi
151        cp $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib/matlab
152#       cp -d $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib/matlab
153
154#### Octave ########################################################
155install_octave: librappture RpOctave
156        if test ! -d $(RP_INSTALL_BASE)/lib/octave; then \
157                mkdir $(RP_INSTALL_BASE)/lib/octave; \
158        fi
159        cp $(OCTAVE_SRC)/*.oct* $(RP_INSTALL_BASE)/lib/octave
160#       cp -d $(OCTAVE_SRC)/*.oct* $(RP_INSTALL_BASE)/lib/octave
161
162#### Tcl ###########################################################
163install_tcl: librappture
164        cd $(TCL_SRC) && make install && cd -
165
166###############################################
167
168# include core source files
169
170RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
171        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
172
173scew_extras.o: $(CORE_SRC)/scew_extras.c
174        $(CC) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
175
176RpEntityRef.o: $(CORE_SRC)/RpEntityRef.cc
177        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
178
179RpVariable.o: $(CORE_SRC)/RpVariable.cc
180        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
181
182RpAbout.o: $(CORE_SRC)/RpAbout.cc
183        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
184
185RpNumber.o: $(CORE_SRC)/RpNumber.cc
186        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
187
188RpString.o: $(CORE_SRC)/RpString.cc
189        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
190
191RpBoolean.o: $(CORE_SRC)/RpBoolean.cc
192        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
193
194RpChoice.o: $(CORE_SRC)/RpChoice.cc
195        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
196
197RpOption.o: $(CORE_SRC)/RpOption.cc
198        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
199
200RpUnitsStd.o: $(CORE_SRC)/RpUnitsStd.cc
201        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
202
203RpUnits.o: $(CORE_SRC)/RpUnits.cc
204        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
205
206RpBindingsDict.o: $(CORE_SRC)/RpBindingsDict.cc
207        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
208
209RpValue.o: $(CORE_SRC)/RpValue.cc
210        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
211
212RpValueDouble.o: $(CORE_SRC)/RpValueDouble.cc
213        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
214
215RpValueString.o: $(CORE_SRC)/RpValueString.cc
216        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
217
218
219
220# include cee binding definitions
221
222RpUnitsCInterface.o: $(CEE_SRC)/RpUnitsCInterface.cc
223        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
224
225RpLibraryCInterface.o: $(CEE_SRC)/RpLibraryCInterface.cc
226        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $?
227
228
229
230
231# include fortran binding definitions
232
233RpUnitsFInterface.o: $(FORT_SRC)/RpUnitsFInterface.cc
234        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) -o $@ -c $?
235
236RpFortranCommon.o: $(FORT_SRC)/RpFortranCommon.cc
237        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_FORTRAN) -o $@ -c $<
238
239RpLibraryFInterface.o: $(FORT_SRC)/RpLibraryFInterface.cc
240        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) $(INCL_RP_DEPS) -o $@ -c $?
241
242
243# matlab bindings
244MEX_INCLS = $(INCL_MATLAB) $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS)
245MEX_OPTS = -g -outdir $(MATLAB_SRC) -L$(LIB_DIR) -lrappture $(LIB_SCEW_FLAG)
246MATLAB_COMP_ARGS = $(MATLAB_SRC)/RpMatlabInterface.cc $(MEX_INCLS) $(MEX_OPTS)
247
248RpMatlab:
249        $(MEX) $(MATLAB_SRC)/rpLib.cc                   $(MATLAB_COMP_ARGS)
250        $(MEX) $(MATLAB_SRC)/rpLibXml.cc                $(MATLAB_COMP_ARGS)
251        $(MEX) $(MATLAB_SRC)/rpLibElement.cc            $(MATLAB_COMP_ARGS)
252        $(MEX) $(MATLAB_SRC)/rpLibElementAsObject.cc    $(MATLAB_COMP_ARGS)
253        $(MEX) $(MATLAB_SRC)/rpLibElementAsType.cc      $(MATLAB_COMP_ARGS)
254        $(MEX) $(MATLAB_SRC)/rpLibElementAsComp.cc      $(MATLAB_COMP_ARGS)
255        $(MEX) $(MATLAB_SRC)/rpLibElementAsId.cc        $(MATLAB_COMP_ARGS)
256        $(MEX) $(MATLAB_SRC)/rpLibChildren.cc           $(MATLAB_COMP_ARGS)
257        $(MEX) $(MATLAB_SRC)/rpLibChildrenByType.cc     $(MATLAB_COMP_ARGS)
258#$(MEX) $(MATLAB_SRC)/rpChildrenAsObject.cc         $(MATLAB_COMP_ARGS)
259#$(MEX) $(MATLAB_SRC)/rpChildrenAsType.cc           $(MATLAB_COMP_ARGS)
260#$(MEX) $(MATLAB_SRC)/rpChildrenAsComp.cc           $(MATLAB_COMP_ARGS)
261#$(MEX) $(MATLAB_SRC)/rpChildrenAsId.cc             $(MATLAB_COMP_ARGS)
262        $(MEX) $(MATLAB_SRC)/rpLibGet.cc                $(MATLAB_COMP_ARGS)
263        $(MEX) $(MATLAB_SRC)/rpLibGetString.cc          $(MATLAB_COMP_ARGS)
264        $(MEX) $(MATLAB_SRC)/rpLibGetDouble.cc          $(MATLAB_COMP_ARGS)
265        $(MEX) $(MATLAB_SRC)/rpLibPut.cc                $(MATLAB_COMP_ARGS)
266        $(MEX) $(MATLAB_SRC)/rpLibPutString.cc          $(MATLAB_COMP_ARGS)
267        $(MEX) $(MATLAB_SRC)/rpLibPutDouble.cc          $(MATLAB_COMP_ARGS)
268        $(MEX) $(MATLAB_SRC)/rpLibNodeComp.cc           $(MATLAB_COMP_ARGS)
269        $(MEX) $(MATLAB_SRC)/rpLibNodeType.cc           $(MATLAB_COMP_ARGS)
270        $(MEX) $(MATLAB_SRC)/rpLibNodeId.cc             $(MATLAB_COMP_ARGS)
271        $(MEX) $(MATLAB_SRC)/rpLibResult.cc             $(MATLAB_COMP_ARGS)
272        $(MEX) $(MATLAB_SRC)/rpUnitsDefineUnit.cc       $(MATLAB_COMP_ARGS)
273#$(MEX) $(MATLAB_SRC)/rpDefineConv.cc               $(MATLAB_COMP_ARGS)
274        $(MEX) $(MATLAB_SRC)/rpUnitsGetUnits.cc         $(MATLAB_COMP_ARGS)
275        $(MEX) $(MATLAB_SRC)/rpUnitsGetUnitsName.cc     $(MATLAB_COMP_ARGS)
276        $(MEX) $(MATLAB_SRC)/rpUnitsGetExponent.cc      $(MATLAB_COMP_ARGS)
277        $(MEX) $(MATLAB_SRC)/rpUnitsGetBasis.cc         $(MATLAB_COMP_ARGS)
278        $(MEX) $(MATLAB_SRC)/rpUnitsFind.cc             $(MATLAB_COMP_ARGS)
279        $(MEX) $(MATLAB_SRC)/rpUnitsMakeMetric.cc       $(MATLAB_COMP_ARGS)
280        $(MEX) $(MATLAB_SRC)/rpUnitsConvert.cc          $(MATLAB_COMP_ARGS)
281        $(MEX) $(MATLAB_SRC)/rpUnitsConvertStr.cc       $(MATLAB_COMP_ARGS)
282        $(MEX) $(MATLAB_SRC)/rpUnitsConvertObjStr.cc    $(MATLAB_COMP_ARGS)
283        $(MEX) $(MATLAB_SRC)/rpUnitsConvertDbl.cc       $(MATLAB_COMP_ARGS)
284        $(MEX) $(MATLAB_SRC)/rpUnitsConvertObjDbl.cc    $(MATLAB_COMP_ARGS)
285        $(MEX) $(MATLAB_SRC)/rpAddPresets.cc            $(MATLAB_COMP_ARGS)
286
287OCT_INCLS = $(INCL_OCTAVE) $(INCL_CORE) $(INCL_RP_DEPS)
288OCTAVE_COMP_ARGS = $(OCT_INCLS) -L$(LIB_DIR) -lrappture $(LIB_SCEW_FLAG)
289RpOctave:
290        $(OCT) $(OCTAVE_SRC)/rpAddPresets.cc            $(OCTAVE_COMP_ARGS)
291        $(OCT) $(OCTAVE_SRC)/rpLib.cc                   $(OCTAVE_COMP_ARGS)
292        $(OCT) $(OCTAVE_SRC)/rpLibChildrenByType.cc     $(OCTAVE_COMP_ARGS)
293        $(OCT) $(OCTAVE_SRC)/rpLibChildren.cc           $(OCTAVE_COMP_ARGS)
294        $(OCT) $(OCTAVE_SRC)/rpLibElementAsComp.cc      $(OCTAVE_COMP_ARGS)
295        $(OCT) $(OCTAVE_SRC)/rpLibElementAsId.cc        $(OCTAVE_COMP_ARGS)
296        $(OCT) $(OCTAVE_SRC)/rpLibElementAsObject.cc    $(OCTAVE_COMP_ARGS)
297        $(OCT) $(OCTAVE_SRC)/rpLibElementAsType.cc      $(OCTAVE_COMP_ARGS)
298        $(OCT) $(OCTAVE_SRC)/rpLibElement.cc            $(OCTAVE_COMP_ARGS)
299        $(OCT) $(OCTAVE_SRC)/rpLibGet.cc                $(OCTAVE_COMP_ARGS)
300        $(OCT) $(OCTAVE_SRC)/rpLibGetString.cc          $(OCTAVE_COMP_ARGS)
301        $(OCT) $(OCTAVE_SRC)/rpLibGetDouble.cc          $(OCTAVE_COMP_ARGS)
302        $(OCT) $(OCTAVE_SRC)/rpLibNodeComp.cc           $(OCTAVE_COMP_ARGS)
303        $(OCT) $(OCTAVE_SRC)/rpLibNodeId.cc             $(OCTAVE_COMP_ARGS)
304        $(OCT) $(OCTAVE_SRC)/rpLibNodeType.cc           $(OCTAVE_COMP_ARGS)
305        $(OCT) $(OCTAVE_SRC)/rpLibPut.cc                $(OCTAVE_COMP_ARGS)
306        $(OCT) $(OCTAVE_SRC)/rpLibPutDouble.cc          $(OCTAVE_COMP_ARGS)
307        $(OCT) $(OCTAVE_SRC)/rpLibPutString.cc          $(OCTAVE_COMP_ARGS)
308        $(OCT) $(OCTAVE_SRC)/rpLibResult.cc             $(OCTAVE_COMP_ARGS)
309        $(OCT) $(OCTAVE_SRC)/rpLibXml.cc                $(OCTAVE_COMP_ARGS)
310        $(OCT) $(OCTAVE_SRC)/rpUnitsConvert.cc          $(OCTAVE_COMP_ARGS)
311        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertDbl.cc       $(OCTAVE_COMP_ARGS)
312        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertStr.cc       $(OCTAVE_COMP_ARGS)
313        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertObjDbl.cc    $(OCTAVE_COMP_ARGS)
314        $(OCT) $(OCTAVE_SRC)/rpUnitsConvertObjStr.cc    $(OCTAVE_COMP_ARGS)
315        $(OCT) $(OCTAVE_SRC)/rpUnitsDefineUnit.cc       $(OCTAVE_COMP_ARGS)
316        $(OCT) $(OCTAVE_SRC)/rpUnitsFind.cc             $(OCTAVE_COMP_ARGS)
317        $(OCT) $(OCTAVE_SRC)/rpUnitsGetBasis.cc         $(OCTAVE_COMP_ARGS)
318        $(OCT) $(OCTAVE_SRC)/rpUnitsGetExponent.cc      $(OCTAVE_COMP_ARGS)
319        $(OCT) $(OCTAVE_SRC)/rpUnitsGetUnits.cc         $(OCTAVE_COMP_ARGS)
320        $(OCT) $(OCTAVE_SRC)/rpUnitsGetUnitsName.cc     $(OCTAVE_COMP_ARGS)
321        $(OCT) $(OCTAVE_SRC)/rpUnitsMakeMetric.cc       $(OCTAVE_COMP_ARGS)
322
323docs:
324        if test ! -d docs; then \
325                mkdir docs; \
326        fi
327        if test ! -d docs/doxygen; then \
328                mkdir docs/doxygen; \
329        fi
330        doxygen
331
332#### CLEAN UP ############################################################
333clean:
334        - rm -f *.o librappture.so* librappture.a libRp*.so* rp*.mex* $(OCTAVE_SRC)/rp*.o*
335        - rm -rf build
Note: See TracBrowser for help on using the repository browser.