source: trunk/src/Makefile.in @ 624

Last change on this file since 624 was 624, checked in by dkearney, 14 years ago

adjusted makefile to correctly compile libraries after recent repository changes.

File size: 7.5 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
9EXTERNAL_RP_LIBS   = -L$(RP_INSTALL_BASE)/lib -lscew -lz -lb64 -lm
10
11
12# define the top of the rappture directory structure
13RP_BASE   = @RP_BASE@
14
15# define which programs can be made
16PROGS           =   librappture    \
17                    libRpObjects   \
18                    Rappture.Units
19
20# define our compiling environment
21#
22CC              = @CC@
23CXX             = @CXX@
24DEBUG           = -g -Wall
25DEBUG_PLUS      = -g -DDEBUG
26MEX             = @MEX@
27OCT             = @MKOCTFILE@
28LN              = ln
29
30# define our directories
31#
32INCLUDES_DIR    = $(RP_BASE)/src
33BIN_DIR         = $(RP_BASE)/bin
34LIB_DIR         = $(RP_BASE)/src
35SRC_DIR         = $(RP_BASE)/src
36SRC2_DIR        = $(RP_BASE)/src2
37TEST_DIR        = $(RP_BASE)/test
38
39CORE_SRC        = $(SRC_DIR)/core
40CORE2_SRC       = $(SRC2_DIR)/core
41FORT_SRC        = $(SRC_DIR)/fortran
42CEE_SRC         = $(SRC_DIR)/cee
43MATLAB_SRC      = $(SRC_DIR)/matlab
44OCTAVE_SRC      = $(SRC_DIR)/octave
45TCL_SRC         = $(SRC_DIR)/tcl
46
47LIB_INC_PREFIX  = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR)
48LIB_RP_OBJECTS  = $(LIB_INC_PREFIX) -lRpObjects
49LIB_RAPPTURE    = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR) -lrappture
50
51INCL_CORE       = -I$(CORE_SRC)
52INCL_CORE2      = -I$(CORE2_SRC)
53INCL_CEE        = -I$(CEE_SRC)
54INCL_FORTRAN    = -I$(FORT_SRC)
55INCL_MATLAB     = -I$(MATLAB_SRC)
56INCL_OCTAVE     = -I$(OCTAVE_SRC)
57
58CFLAGS = -fPIC
59
60# default:
61
62all: ${PROGS}
63install:        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 \
73                  RpBufferCInterface.o RpOutcomeCInterface.o
74RP_OBJS_DEP     = RpVariable.o RpAbout.o RpNumber.o RpString.o RpBoolean.o \
75                  RpChoice.o RpOption.o RpUnitsStd.o RpUnits.o #RpValue.o\
76                  # RpValueDouble.o RpValueString.o
77RP2_OBJ_DEP     = $(CORE2_SRC)/Outcome.o $(CORE2_SRC)/Ptr.o $(CORE2_SRC)/RpBuffer.o
78
79
80LDLIB_MACOSX = -dynamiclib -o $(LIB_DIR)/$@.dylib
81LDLIB_LINUX = -shared -Wl,-rpath,$(LIB_DIR)/ -Wl,-soname,$@.so -o $(LIB_DIR)/$@.so.0.0
82
83# include rappture library definitions
84
85#### librappture shared object ###########################################
86
87librappture: $(RP_IO_DEPS) $(RP_UNITS_DEPS) $(RP_OTHER_DEPS)
88        (cd ../src2/core/; make Outcome.o Ptr.o RpBuffer.o)
89        if test "`uname`" == "Darwin"; then \
90                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ $(RP2_OBJ_DEP) $(EXTERNAL_RP_LIBS); \
91                ar -r $@.a $^; \
92                ranlib -s $@.a; \
93        else \
94                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ $(RP2_OBJ_DEP) $(EXTERNAL_RP_LIBS); \
95                /sbin/ldconfig -n $(LIB_DIR); \
96                ar -r $@.a $^; \
97                ranlib $@.a; \
98        fi
99
100install_rappture: librappture
101        if test "`uname`" == "Darwin"; then \
102                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
103                cp $<.a $(RP_INSTALL_BASE)/lib; \
104        else \
105                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
106                cp -d $<.a $(RP_INSTALL_BASE)/lib; \
107        fi
108        cp $(CORE_SRC)/*.h $(RP_INSTALL_BASE)/include; \
109        cp $(CEE_SRC)/*.h $(RP_INSTALL_BASE)/include; \
110        cp $(FORT_SRC)/*.h $(RP_INSTALL_BASE)/include; \
111        cp $(CORE2_SRC)/Outcome.h $(RP_INSTALL_BASE)/include; \
112        cp $(CORE2_SRC)/Ptr.h $(RP_INSTALL_BASE)/include; \
113        cp $(CORE2_SRC)/RpBuffer.h $(RP_INSTALL_BASE)/include; \
114        cp $(CORE2_SRC)/rappture2.h $(RP_INSTALL_BASE)/include;
115
116#### libRpObjects ########################################################
117libRpObjects: $(RP_OBJS_DEP)
118        if test "`uname`" == "Darwin"; then \
119                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ -lstdc++; \
120        else \
121                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ -lstdc++; \
122                /sbin/ldconfig -n $(LIB_DIR); \
123        fi
124
125install_rpobjs: libRpObjects
126        if test "`uname`" == "Darwin"; then \
127                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
128        else \
129                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
130        fi
131
132#### Matlab ########################################################
133install_matlab: librappture
134        cd $(MATLAB_SRC); make install; cd -
135
136#### Octave ########################################################
137install_octave: librappture
138        cd $(OCTAVE_SRC); make install; cd -
139
140#### Tcl ###########################################################
141install_tcl: librappture
142        cd $(TCL_SRC) && make install && cd -
143
144####################################################################
145
146# include core source files
147
148RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
149        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_RP_DEPS) -o $@ -c $?
150
151scew_extras.o: $(CORE_SRC)/scew_extras.c
152        $(CC) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
153
154RpEntityRef.o: $(CORE_SRC)/RpEntityRef.cc
155        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) -o $@ -c $?
156
157RpVariable.o: $(CORE_SRC)/RpVariable.cc
158        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
159
160RpAbout.o: $(CORE_SRC)/RpAbout.cc
161        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
162
163RpNumber.o: $(CORE_SRC)/RpNumber.cc
164        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
165
166RpString.o: $(CORE_SRC)/RpString.cc
167        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
168
169RpBoolean.o: $(CORE_SRC)/RpBoolean.cc
170        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
171
172RpChoice.o: $(CORE_SRC)/RpChoice.cc
173        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
174
175RpOption.o: $(CORE_SRC)/RpOption.cc
176        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
177
178RpUnitsStd.o: $(CORE_SRC)/RpUnitsStd.cc
179        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
180
181RpUnits.o: $(CORE_SRC)/RpUnits.cc
182        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
183
184RpBindingsDict.o: $(CORE_SRC)/RpBindingsDict.cc
185        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
186
187RpValue.o: $(CORE_SRC)/RpValue.cc
188        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
189
190RpValueDouble.o: $(CORE_SRC)/RpValueDouble.cc
191        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
192
193RpValueString.o: $(CORE_SRC)/RpValueString.cc
194        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
195
196
197# include cee binding definitions
198
199RpUnitsCInterface.o: $(CEE_SRC)/RpUnitsCInterface.cc
200        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
201
202RpLibraryCInterface.o: $(CEE_SRC)/RpLibraryCInterface.cc $(CEE_SRC)/RpLibraryCInterface.h $(CEE_SRC)/RpBufferCInterface.h
203        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $<
204
205RpBufferCInterface.o: $(CEE_SRC)/RpBufferCInterface.cc $(CEE_SRC)/RpBufferCInterface.h $(CEE_SRC)/RpOutcomeCInterface.h
206        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $<
207
208RpOutcomeCInterface.o: $(CEE_SRC)/RpOutcomeCInterface.cc
209        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $<
210
211
212
213# include fortran binding definitions
214
215RpUnitsFInterface.o: $(FORT_SRC)/RpUnitsFInterface.cc
216        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) -o $@ -c $?
217
218RpFortranCommon.o: $(FORT_SRC)/RpFortranCommon.cc
219        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_FORTRAN) -o $@ -c $<
220
221RpLibraryFInterface.o: $(FORT_SRC)/RpLibraryFInterface.cc
222        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_FORTRAN) $(INCL_RP_DEPS) -o $@ -c $?
223
224
225# matlab bindings
226RpMatlab: librappture
227        cd $(MATLAB_SRC); make clean; make RpMatlab; cd -
228
229# octave bindings
230RpOctave: librappture
231        cd $(OCTAVE_SRC); make clean; make RpOctave; cd -
232
233docs:
234        if test ! -d docs; then \
235                mkdir docs; \
236        fi
237        if test ! -d docs/doxygen; then \
238                mkdir docs/doxygen; \
239        fi
240        doxygen
241
242#### CLEAN UP ############################################################
243clean:
244        - rm -f *.o librappture.so* librappture.a libRp*.so*
245        - rm -rf build
246
247distclean: clean
248        - rm Makefile
Note: See TracBrowser for help on using the repository browser.