# Makefile for Rappture2 # Copyright (C) 2004-2007 Derrick S. Kearney. # For conditions of distribution and use, see license.terms # To compile and test, type: # ./configure; make test # The call of configure is optional if you don't have special requirements # # To install librappture2.* and rappture2.h, type: # make install # To install in $HOME instead of /usr/local, use: # make install prefix=$HOME CXX = @CXX@ CFLAGS=-g -Wall -fPIC #CFLAGS=-O #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 #CFLAGS=-g -DDEBUG #CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ # -Wstrict-prototypes -Wmissing-prototypes LDFLAGS=librappture2.a LDSHARED=$(CXX) CPP=$(CC) -E LIBS=librappture2.a SHAREDLIB=librappture2.so SHAREDLIBV=librappture2.so.0.0 SHAREDLIBM=librappture2.so.1 AR=ar rcv RANLIB=ranlib TAR=tar SHELL=/bin/sh EXE= prefix = @prefix@ exec_prefix = ${prefix} libdir = ${exec_prefix}/lib includedir = ${prefix}/include mandir = ${prefix}/share/man man3dir = ${mandir}/man3 OBJS = RpMesh1D.o RpField1D.o RpMeshTri2D.o RpMeshRect3D.o \ RpFieldRect3D.o RpMeshPrism3D.o RpFieldPrism3D.o RpSerialBuffer.o \ RpSerializer.o RpSerializable.o RpBuffer.o RpEncode.o Ptr.o Outcome.o # Lookup.o OBJA = # to use the asm code: make OBJA=match.o TEST_OBJS = test.o RpBuffer_test.o all: test$(EXE) RpBuffer_test$(EXE) check: testall testall: all @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \ if ./test; then \ echo ' *** test test OK ***'; \ else \ echo ' *** test test FAILED ***'; \ fi if ./RpBuffer_test; then \ echo ' *** RpBuffer_test test OK ***'; \ else \ echo ' *** RpBuffer_test test FAILED ***'; \ fi librappture2.a: $(OBJS) $(OBJA) $(AR) $@ $(OBJS) $(OBJA) -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 $(SHAREDLIBV): $(OBJS) $(LDSHARED) -shared -o $@ $(OBJS) @LIB_SEARCH_DIRS@ -lz -lb64 rm -f $(SHAREDLIB) $(SHAREDLIBM) ln -s $@ $(SHAREDLIB) ln -s $@ $(SHAREDLIBM) test(EXE): test.o Ptr.o Outcome.o Lookup.o $(CXX) $(CFLAGS) -o $@ test.o Ptr.o Outcome.o Lookup.o RpBuffer_test$(EXE): RpBuffer_test.o $(LIBS) $(CXX) $(CFLAGS) -o $@ RpBuffer_test.o $(LDFLAGS) @LIB_SEARCH_DIRS@ -lz -lb64 install: $(LIBS) $(SHAREDLIBV) -@if [ ! -d $(exec_prefix) ]; then mkdir -p $(exec_prefix); fi -@if [ ! -d $(includedir)/rappture2 ]; then mkdir -p $(includedir)/rappture2; fi -@if [ ! -d $(libdir) ]; then mkdir -p $(libdir); fi -@if [ ! -d $(man3dir) ]; then mkdir -p $(man3dir); fi cp *.h $(includedir)/rappture2 chmod 644 $(includedir)/rappture2/*.h cp $(LIBS) $(libdir) cp $(SHAREDLIBV) $(libdir) cd $(libdir); chmod 755 $(LIBS) -@(cd $(libdir); $(RANLIB) librappture2.a || true) >/dev/null 2>&1 cd $(libdir); if test -f $(SHAREDLIBV); then \ rm -f $(SHAREDLIB) $(SHAREDLIBM); \ ln -s $(SHAREDLIBV) $(SHAREDLIB); \ ln -s $(SHAREDLIBV) $(SHAREDLIBM); \ (ldconfig || true) >/dev/null 2>&1; \ fi # cp rappture.3 $(man3dir) # chmod 644 $(man3dir)/rappture.3 # The ranlib in install is needed on NeXTSTEP which checks file times # ldconfig is for Linux uninstall: cd $(includedir)/rappture2; rm *.h; \ cd $(libdir); rm -f librappture2.a; \ if test -f $(SHAREDLIBV); then \ rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \ fi cd $(man3dir); rm -f rappture.3 mostlyclean: clean clean: rm -f *.o *~ viz buffer1.txt test$(EXE) RpBuffer_test$(EXE) librappture2.* maintainer-clean: distclean distclean: clean rm Makefile depend: makedepend -- $(CFLAGS) -- *.[ch] # DO NOT DELETE THIS LINE -- make depend depends on it. viz: viz.o librappture2.a $(CXX) $(CFLAGS) -o viz $^ libviz.a: Outcome.o RpMesh1D.o RpField1D.o RpMeshTri2D.o RpMeshRect3D.o RpFieldRect3D.o RpMeshPrism3D.o RpFieldPrism3D.o RpSerialBuffer.o RpSerializer.o RpSerializable.o RpBuffer.o $(AR) $@ $^ viz.o: viz.cc $(CXX) $(CFLAGS) -c -o viz.o viz.cc test: test.o Ptr.o Outcome.o Lookup.o $(CXX) $(CFLAGS) -o test test.o Ptr.o Outcome.o Lookup.o docs: if test ! -d ../../docs/rappture2; then \ mkdir ../../docs; \ mkdir ../../docs/rappture2; \ fi doxygen test.o: test.cc Ptr.h $(CXX) $(CFLAGS) -c -o test.o test.cc Ptr.o: Ptr.h Ptr.cpp $(CXX) $(CFLAGS) -c -o Ptr.o Ptr.cpp Outcome.o: Outcome.cpp Ptr.h $(CXX) $(CFLAGS) -c -o Outcome.o Outcome.cpp Lookup.o: Lookup.cpp Ptr.h $(CXX) $(CFLAGS) -c -o Lookup.o Lookup.cpp RpMesh1D.o: RpMesh1D.cc RpMesh1D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpMesh1D.o RpMesh1D.cc RpField1D.o: RpField1D.cc RpField1D.h RpMesh1D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpField1D.o RpField1D.cc RpMeshTri2D.o: RpMeshTri2D.cc RpMeshTri2D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpMeshTri2D.o RpMeshTri2D.cc RpFieldTri2D.o: RpFieldTri2D.cc RpFieldTri2D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpFieldTri2D.o RpFieldTri2D.cc RpMeshRect3D.o: RpMeshRect3D.cc RpMeshRect3D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpMeshRect3D.o RpMeshRect3D.cc RpFieldRect3D.o: RpFieldRect3D.cc RpFieldRect3D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpFieldRect3D.o RpFieldRect3D.cc RpMeshPrism3D.o: RpMeshPrism3D.cc RpMeshPrism3D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpMeshPrism3D.o RpMeshPrism3D.cc RpFieldPrism3D.o: RpFieldPrism3D.cc RpFieldPrism3D.h RpNode.h $(CXX) $(CFLAGS) -c -o RpFieldPrism3D.o RpFieldPrism3D.cc RpSerialBuffer.o: RpSerialBuffer.cc RpSerialBuffer.h $(CXX) $(CFLAGS) -c -o RpSerialBuffer.o RpSerialBuffer.cc RpSerializer.o: RpSerializer.cc RpSerializer.h $(CXX) $(CFLAGS) -c -o RpSerializer.o RpSerializer.cc RpSerializable.o: RpSerializable.cc RpSerializable.h $(CXX) $(CFLAGS) -c -o RpSerializable.o RpSerializable.cc RpEncode.o: RpEncode.cc RpEncode.h $(CXX) $(CFLAGS) -c -o RpEncode.o RpEncode.cc RpBuffer.o: RpBuffer.cc RpBuffer.h $(CXX) $(CFLAGS) -c -o $@ -I ${includedir} RpBuffer.cc RpBuffer_test.o: RpBuffer_test.cc $(CXX) $(CFLAGS) -c -o $@ -I ${includedir} RpBuffer_test.cc