source: trunk/src/Makefile.in @ 489

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

new configure and make scripts to help automate the build process

File size: 7.0 KB
Line 
1
2ifndef RP_INSTALL_BASE
3RP_INSTALL_BASE = @prefix@
4endif
5
6# tell make where to find the expat & libscew headers
7INCL_RP_DEPS    = -I$(RP_INSTALL_BASE)/include
8
9LIB_SCEW_FLAG   = -L$(RP_INSTALL_BASE)/lib -lscew
10
11# define the top of the rappture directory structure
12RP_BASE   = @RP_BASE@
13
14# define which programs can be made
15PROGS           =   librappture    \
16                    libRpObjects   \
17                    Rappture.Units
18
19# define our compiling environment
20#
21CC              = @CC@
22CXX             = @CXX@
23DEBUG           = -g -Wall
24DEBUG_PLUS      = -g -DDEBUG
25PY              = $(RP_INSTALL_BASE)/bin/python
26MEX             = mex
27OCT             = mkoctfile
28LN              = ln
29
30# define our directories
31#
32INCLUDES_DIR    = $(RP_BASE)/include
33BIN_DIR         = $(RP_BASE)/bin
34LIB_DIR         = $(RP_BASE)/src
35SRC_DIR         = $(RP_BASE)/src
36TEST_DIR        = $(RP_BASE)/test
37
38CORE_SRC        = $(SRC_DIR)/core
39FORT_SRC        = $(SRC_DIR)/fortran
40CEE_SRC         = $(SRC_DIR)/cee
41PY_SRC          = $(SRC_DIR)/python
42MATLAB_SRC      = $(SRC_DIR)/matlab
43OCTAVE_SRC      = $(SRC_DIR)/octave
44TCL_SRC         = $(SRC_DIR)/tcl
45
46LIB_INC_PREFIX  = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR)
47LIB_RP_OBJECTS  = $(LIB_INC_PREFIX) -lRpObjects
48LIB_RAPPTURE    = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR) -lrappture
49
50INCL_CORE       = -I$(INCLUDES_DIR)/core
51INCL_CEE        = -I$(INCLUDES_DIR)/cee
52INCL_FORTRAN    = -I$(INCLUDES_DIR)/fortran
53INCL_PY         = -I$(INCLUDES_DIR)/python
54INCL_MATLAB     = -I$(INCLUDES_DIR)/matlab
55INCL_OCTAVE     = -I$(INCLUDES_DIR)/octave
56
57CFLAGS = -fPIC
58
59# default:
60
61all: ${PROGS}
62install:        install_py                      \
63                        install_rappture        \
64                        install_rpobjs          \
65                        install_matlab          \
66                        install_octave
67#                       install_tcl
68
69RP_IO_DEPS      = RpLibrary.o RpLibraryCInterface.o RpLibraryFInterface.o \
70                  scew_extras.o RpEntityRef.o
71RP_UNITS_DEPS   = RpUnitsStd.o RpUnits.o RpUnitsCInterface.o RpUnitsFInterface.o
72RP_OTHER_DEPS   = RpFortranCommon.o RpBindingsDict.o
73RP_OBJS_DEP     = RpVariable.o RpAbout.o RpNumber.o RpString.o RpBoolean.o \
74                  RpChoice.o RpOption.o RpUnitsStd.o RpUnits.o #RpValue.o\
75                  # RpValueDouble.o RpValueString.o
76
77LDLIB_MACOSX = -dynamiclib -o $(LIB_DIR)/$@.dylib
78LDLIB_LINUX = -shared -Wl,-rpath,$(LIB_DIR)/ -Wl,-soname,$@.so -o $(LIB_DIR)/$@.so.0.0
79
80# include rappture library definitions
81
82#### librappture shared object ###########################################
83
84librappture: $(RP_IO_DEPS) $(RP_UNITS_DEPS) $(RP_OTHER_DEPS)
85        if test "`uname`" == "Darwin"; then \
86                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ $(LIB_SCEW_FLAG) -lm; \
87                ar -r $@.a $^; \
88                ranlib -s $@.a; \
89        else \
90                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ $(LIB_SCEW_FLAG) -lm; \
91                /sbin/ldconfig -n $(LIB_DIR); \
92                ar -r $@.a $^; \
93                ranlib $@.a; \
94        fi
95
96install_rappture: librappture
97        if test "`uname`" == "Darwin"; then \
98                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
99                cp $<.a $(RP_INSTALL_BASE)/lib; \
100        else \
101                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
102                cp -d $<.a $(RP_INSTALL_BASE)/lib; \
103        fi
104
105#### libRpObjects ########################################################
106libRpObjects: $(RP_OBJS_DEP)
107        if test "`uname`" == "Darwin"; then \
108                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ -lstdc++; \
109        else \
110                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ -lstdc++; \
111                /sbin/ldconfig -n $(LIB_DIR); \
112        fi
113
114install_rpobjs: libRpObjects
115        if test "`uname`" == "Darwin"; then \
116                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
117        else \
118                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
119        fi
120
121#### Python ########################################################
122Rappture.Units: RpUnits.o RpUnitsStd.o
123        $(PY) $(PY_SRC)/setup.py build
124
125install_py: RpUnits.o RpUnitsStd.o
126        $(PY) $(PY_SRC)/setup.py install
127
128
129#### Matlab ########################################################
130install_matlab: librappture
131        cd $(MATLAB_SRC); make install; cd -
132
133#       if test ! -d $(RP_INSTALL_BASE)/lib/matlab; then \
134#               mkdir $(RP_INSTALL_BASE)/lib/matlab; \
135#       fi
136#       cp $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib/matlab
137
138#### Octave ########################################################
139install_octave: librappture
140        cd $(OCTAVE_SRC); make install; cd -
141
142#       if test ! -d $(RP_INSTALL_BASE)/lib/octave; then \
143#               mkdir $(RP_INSTALL_BASE)/lib/octave; \
144#       fi
145#       cp $(OCTAVE_SRC)/*.oct* $(RP_INSTALL_BASE)/lib/octave
146
147#### Tcl ###########################################################
148install_tcl: librappture
149        cd $(TCL_SRC) && make install && cd -
150
151####################################################################
152
153# include core source files
154
155RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
156        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
157
158scew_extras.o: $(CORE_SRC)/scew_extras.c
159        $(CC) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
160
161RpEntityRef.o: $(CORE_SRC)/RpEntityRef.cc
162        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -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
229RpMatlab: librappture
230        cd $(MATLAB_SRC); make clean; make RpMatlab; cd -
231
232# octave bindings
233RpOctave: librappture
234        cd $(OCTAVE_SRC); make clean; make RpOctave; cd -
235
236docs:
237        if test ! -d docs; then \
238                mkdir docs; \
239        fi
240        if test ! -d docs/doxygen; then \
241                mkdir docs/doxygen; \
242        fi
243        doxygen
244
245#### CLEAN UP ############################################################
246clean:
247        - rm -f *.o librappture.so* librappture.a libRp*.so*
248        - rm -rf build
249
250distclean: clean
251        - rm Makefile
Note: See TracBrowser for help on using the repository browser.