source: trunk/src/Makefile.in @ 656

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

added progress function for c, c++ and fortran, so people dont have to generate the cryptic progress string themselves to get a progress bar in the gui.

File size: 7.9 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 RpUtils.o
71RP_UNITS_DEPS   = RpUnitsStd.o RpUnits.o RpUnitsCInterface.o RpUnitsFInterface.o
72RP_UTILS_DEPS   = RpUtils.o RpUtilsCInterface.o RpUtilsFInterface.o
73RP_OTHER_DEPS   = RpFortranCommon.o RpBindingsDict.o \
74                  RpBufferCInterface.o RpOutcomeCInterface.o
75RP_OBJS_DEP     = RpVariable.o RpAbout.o RpNumber.o RpString.o RpBoolean.o \
76                  RpChoice.o RpOption.o RpUnitsStd.o RpUnits.o #RpValue.o\
77                  # RpValueDouble.o RpValueString.o
78RP2_OBJ_DEP     = $(CORE2_SRC)/Outcome.o $(CORE2_SRC)/Ptr.o $(CORE2_SRC)/RpBuffer.o
79
80
81LDLIB_MACOSX = -dynamiclib -o $(LIB_DIR)/$@.dylib
82LDLIB_LINUX = -shared -Wl,-rpath,$(LIB_DIR)/ -Wl,-soname,$@.so -o $(LIB_DIR)/$@.so.0.0
83
84# include rappture library definitions
85
86#### librappture shared object ###########################################
87
88librappture: $(RP_IO_DEPS) $(RP_UTILS_DEPS) $(RP_UNITS_DEPS) $(RP_OTHER_DEPS)
89        (cd ../src2/core/; make Outcome.o Ptr.o RpBuffer.o)
90        if test "`uname`" == "Darwin"; then \
91                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ $(RP2_OBJ_DEP) $(EXTERNAL_RP_LIBS); \
92                ar -r $@.a $^; \
93                ranlib -s $@.a; \
94        else \
95                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ $(RP2_OBJ_DEP) $(EXTERNAL_RP_LIBS); \
96                /sbin/ldconfig -n $(LIB_DIR); \
97                ar -r $@.a $^; \
98                ranlib $@.a; \
99        fi
100
101install_rappture: librappture
102        if test "`uname`" == "Darwin"; then \
103                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
104                cp $<.a $(RP_INSTALL_BASE)/lib; \
105        else \
106                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
107                cp -d $<.a $(RP_INSTALL_BASE)/lib; \
108        fi
109        cp $(CORE_SRC)/*.h $(RP_INSTALL_BASE)/include; \
110        cp $(CEE_SRC)/*.h $(RP_INSTALL_BASE)/include; \
111        cp $(FORT_SRC)/*.h $(RP_INSTALL_BASE)/include; \
112        cp $(CORE2_SRC)/Outcome.h $(RP_INSTALL_BASE)/include; \
113        cp $(CORE2_SRC)/Ptr.h $(RP_INSTALL_BASE)/include; \
114        cp $(CORE2_SRC)/RpBuffer.h $(RP_INSTALL_BASE)/include; \
115        cp $(CORE2_SRC)/rappture2.h $(RP_INSTALL_BASE)/include;
116
117#### libRpObjects ########################################################
118libRpObjects: $(RP_OBJS_DEP)
119        if test "`uname`" == "Darwin"; then \
120                $(CXX) $(DEGUG) $(LDLIB_MACOSX) $^ -lstdc++; \
121        else \
122                $(CXX) $(DEGUG) $(LDLIB_LINUX) $^ -lstdc++; \
123                /sbin/ldconfig -n $(LIB_DIR); \
124        fi
125
126install_rpobjs: libRpObjects
127        if test "`uname`" == "Darwin"; then \
128                cp $<.dylib $(RP_INSTALL_BASE)/lib; \
129        else \
130                cp -d $<.so* $(RP_INSTALL_BASE)/lib; \
131        fi
132
133#### Matlab ########################################################
134install_matlab: librappture
135        cd $(MATLAB_SRC); make install; cd -
136
137#### Octave ########################################################
138install_octave: librappture
139        cd $(OCTAVE_SRC); make install; cd -
140
141#### Tcl ###########################################################
142install_tcl: librappture
143        cd $(TCL_SRC) && make install && cd -
144
145####################################################################
146
147# include core source files
148
149RpLibrary.o: $(CORE_SRC)/RpLibrary.cc
150        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_RP_DEPS) -o $@ -c $?
151
152scew_extras.o: $(CORE_SRC)/scew_extras.c
153        $(CC) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_RP_DEPS) -o $@ -c $?
154
155RpEntityRef.o: $(CORE_SRC)/RpEntityRef.cc
156        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) -o $@ -c $?
157
158RpUtils.o: $(CORE_SRC)/RpUtils.cc
159        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
160
161RpVariable.o: $(CORE_SRC)/RpVariable.cc
162        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
163
164RpAbout.o: $(CORE_SRC)/RpAbout.cc
165        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
166
167RpNumber.o: $(CORE_SRC)/RpNumber.cc
168        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
169
170RpString.o: $(CORE_SRC)/RpString.cc
171        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
172
173RpBoolean.o: $(CORE_SRC)/RpBoolean.cc
174        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
175
176RpChoice.o: $(CORE_SRC)/RpChoice.cc
177        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
178
179RpOption.o: $(CORE_SRC)/RpOption.cc
180        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
181
182RpUnitsStd.o: $(CORE_SRC)/RpUnitsStd.cc
183        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
184
185RpUnits.o: $(CORE_SRC)/RpUnits.cc
186        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
187
188RpBindingsDict.o: $(CORE_SRC)/RpBindingsDict.cc
189        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
190
191RpValue.o: $(CORE_SRC)/RpValue.cc
192        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
193
194RpValueDouble.o: $(CORE_SRC)/RpValueDouble.cc
195        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
196
197RpValueString.o: $(CORE_SRC)/RpValueString.cc
198        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) -o $@ -c $?
199
200
201# include cee binding definitions
202
203RpUtilsCInterface.o: $(CEE_SRC)/RpUtilsCInterface.cc
204        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
205
206RpUnitsCInterface.o: $(CEE_SRC)/RpUnitsCInterface.cc
207        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CEE) -o $@ -c $?
208
209RpLibraryCInterface.o: $(CEE_SRC)/RpLibraryCInterface.cc $(CEE_SRC)/RpLibraryCInterface.h $(CEE_SRC)/RpBufferCInterface.h
210        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $<
211
212RpBufferCInterface.o: $(CEE_SRC)/RpBufferCInterface.cc $(CEE_SRC)/RpBufferCInterface.h $(CEE_SRC)/RpOutcomeCInterface.h
213        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $<
214
215RpOutcomeCInterface.o: $(CEE_SRC)/RpOutcomeCInterface.cc
216        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_CEE) $(INCL_RP_DEPS) -o $@ -c $<
217
218
219
220# include fortran binding definitions
221
222RpUtilsFInterface.o: $(FORT_SRC)/RpUtilsFInterface.cc
223        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) -o $@ -c $?
224
225RpUnitsFInterface.o: $(FORT_SRC)/RpUnitsFInterface.cc
226        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_FORTRAN) -o $@ -c $?
227
228RpFortranCommon.o: $(FORT_SRC)/RpFortranCommon.cc
229        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_FORTRAN) -o $@ -c $<
230
231RpLibraryFInterface.o: $(FORT_SRC)/RpLibraryFInterface.cc
232        $(CXX) $(CFLAGS) $(DEBUG) $(INCL_CORE) $(INCL_CORE2) $(INCL_FORTRAN) $(INCL_RP_DEPS) -o $@ -c $?
233
234
235# matlab bindings
236RpMatlab: librappture
237        cd $(MATLAB_SRC); make clean; make RpMatlab; cd -
238
239# octave bindings
240RpOctave: librappture
241        cd $(OCTAVE_SRC); make clean; make RpOctave; cd -
242
243docs:
244        if test ! -d docs; then \
245                mkdir docs; \
246        fi
247        if test ! -d docs/doxygen; then \
248                mkdir docs/doxygen; \
249        fi
250        doxygen
251
252#### CLEAN UP ############################################################
253clean:
254        - rm -f *.o librappture.so* librappture.a libRp*.so*
255        - rm -rf build
256
257distclean: clean
258        - rm Makefile
Note: See TracBrowser for help on using the repository browser.