source: trunk/src/Makefile @ 400

Last change on this file since 400 was 399, checked in by dkearney, 18 years ago

improved the tcl bindings,
added units code to core so tcl can show compatible conversions,
added installdir to tcl pkg index file,
added rappture exec for tcl

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