# $Id: Makefile,v 1.2 2003/04/15 03:40:58 cher Exp $ # Copyright (C) 2003 Alexander Chernov # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # See the `COPYING' file for the full terms and conditions. # This makefile works on linux 2.4.20/glibc 2.3.2/gcc 3.2.2 VERSION = 0.0.1 MAJOR = 0 CC = gcc CXX = g++ CFLAGS = -g -Wall -D_ISOC99_SOURCE -Iinclude -Idouble CXXFLAGS = -g -Wall -Iinclude -Idouble -Ic++ -fno-rtti AR = ar CFILES =\ double/bdtr.c\ double/beta.c\ double/btdtr.c\ double/cbrt.c\ double/chbevl.c\ double/chdtr.c\ double/const.c\ double/dawsn.c\ double/drand.c\ double/ei.c\ double/ellie.c\ double/ellik.c\ double/ellpe.c\ double/ellpj.c\ double/ellpk.c\ double/fdtr.c\ double/fresnl.c\ double/gamma.c\ double/gdtr.c\ double/hyp2f1.c\ double/hyperg.c\ double/i0.c\ double/i1.c\ double/igam.c\ double/igami.c\ double/incbet.c\ double/incbi.c\ double/kolmogor.c\ double/mtherr.c\ double/nbdtr.c\ double/ndtr.c\ double/ndtri.c\ double/polevl.c\ double/pdtr.c\ double/psi.c\ double/rgamma.c\ double/round.c\ double/stdtr.c\ double/zeta.c\ double/zetac.c CXXFILES =\ c++/BinomialVariation.cpp\ c++/BitSource.cpp\ c++/DiscreteVariation.cpp\ c++/ExternalEnthropy.cpp\ c++/FileByteSource.cpp\ c++/OpenError.cpp\ c++/PseudoEnthropy.cpp\ c++/Random.cpp\ c++/SeededEnthropy.cpp HPPFILES =\ c++/BadArgsError.hpp\ c++/BinomialVariation.hpp\ c++/BitSource.hpp\ c++/ByteSource.hpp\ c++/DiscreteVariation.hpp\ c++/EnthropySource.hpp\ c++/Error.hpp\ c++/ExternalEnthropy.hpp\ c++/FileByteSource.hpp\ c++/OpenError.hpp\ c++/PseudoEnthropy.hpp\ c++/Random.hpp\ c++/ReadError.hpp\ c++/SeededEnthropy.hpp HFILES =\ double/cephes.h OFILES = ${CFILES:double/%.c=obj/%.o} ${CXXFILES:c++/%.cpp=obj/%.o} PFILES = ${CFILES:double/%.c=pic/%.o} ${CXXFILES:c++/%.cpp=pic/%.o} IFILES = ${HPPFILES:c++/%.hpp=include/%.hpp} ${HFILES:double/%.h=include/%.h} all : obj pic lib include lib/librandom.a shared_lib ${IFILES} lib/librandom.a : ${OFILES} ${AR} cvr $@ $? shared_lib: lib/librandom.so.${VERSION} lib/librandom.so lib/librandom.so.${MAJOR} lib/librandom.so.${VERSION} : ${PFILES} ${CC} -Wl,-soname,librandom.so.${MAJOR} -shared -o $@ $^ lib/librandom.so.${MAJOR} : lib/librandom.so.${VERSION} -rm -f lib/librandom.so.${MAJOR} ln -s librandom.so.${VERSION} lib/librandom.so.${MAJOR} lib/librandom.so : lib/librandom.so.${VERSION} -rm -f lib/librandom.so ln -s librandom.so.${VERSION} lib/librandom.so obj: mkdir obj pic: mkdir pic lib: mkdir lib include: mkdir include obj/%.o : double/%.c ${CC} ${CFLAGS} -c -o $@ $< pic/%.o : double/%.c ${CC} ${CFLAGS} -fPIC -DPIC -c -o $@ $< obj/%.o : c++/%.cpp ${CXX} ${CXXFLAGS} -c -o $@ $< pic/%.o : c++/%.cpp ${CXX} ${CXXFLAGS} -c -o $@ $< include/%.hpp : c++/%.hpp ln -sf ../$< $@ include/%.h : double/%.h ln -sf ../$< $@ clean: -rm -rf obj pic lib include ${MAKE} -C tests $@