# This Makefile builds MathLink binaries # lerch.exe, cdf.exe, and optim.exe # that are used by Mathematica package SDistribution. # # Revision of 23/9/02 # # SDistribution is copyright by # Sergej V. Aksenov and Michael A. Savageau, 2001-2 # http://aksenov.freeshell.org/ # # At the command prompt, say "make lerch" (or "make cdf", or "make optim") # to make a binary, or just "make" to make all targets. # Say "make clean" to remove object files (binaries will remain). # Please adjust the following variables for your particular system. # By default, paths point to subdirectories inside the SDistribution tree, # but you can modify them if you prefer to store libraries elsewhere. # Note that if you are compiling on Sun Solaris, link to libsocket and libnsl (COMMONLIBS below) CC = cc MPREP = mprep #/usr/local/packages/mathematica-4.1/AddOns/MathLink/DevelopersKits/Solaris/CompilerAdditions/mprep COMMONLIBS = -lML -lm #-lsocket -lnsl MATHLIB = -L./ #/usr/local/packages/mathematica-4.1/AddOns/MathLink/DevelopersKits/Solaris/CompilerAdditions/ MATHINC = -I./ #/usr/local/packages/mathematica-4.1/AddOns/MathLink/DevelopersKits/Solaris/CompilerAdditions/ CVODELIB = -L./CVODE CVODEINC = -I./CVODE F2CLIB = -L./LIBF2C F2CINC = -I./LIBF2C DFOLIB = -L./DFO DFOINC = -I./DFO CLAPACKLIB = -L./CLAPACK CLAPACKINC = -I./CLAPACK CCOPTS = -g -O #-Wno-long-double # all all: lerch cdf optim .PHONY: all # Common dependencies lerchphi.o: LERCHPHI/lerchphi.c $(CC) $(CCOPTS) -c LERCHPHI/lerchphi.c sdqnt.o: SRC/sdqnt.c $(CC) $(CCOPTS) -c SRC/sdqnt.c sdode.o: SRC/sdode.c $(CC) $(CCOPTS) $(CVODEINC) $(F2CINC) -c SRC/sdode.c sdcdf.o: SRC/sdcdf.c $(CC) $(CCOPTS) -c SRC/sdcdf.c zeroin.o: ZEROIN/zeroin.c $(CC) $(CCOPTS) $(F2CINC) -c ZEROIN/zeroin.c # lerch LERCHLIB = $(MATHLIB) $(COMMONLIBS) LERCHINC = $(MATHINC) LERCHOBJ = lerchtm.o LERCHSRC = lerchtm.c lerch: $(LERCHOBJ) lerchphi.o $(CC) $(LERCHOBJ) lerchphi.o -o lerch.exe $(LERCHLIB) $(LERCHOBJ): $(LERCHSRC) $(CC) $(CCOPTS) $(LERCHINC) -c $(LERCHSRC) lerchtm.c: SRC/lerch.tm $(MPREP) -o lerchtm.c SRC/lerch.tm # cdf CDFLIB = $(MATHLIB) $(CVODELIB) $(F2CLIB) -lcvode -lF77 $(COMMONLIBS) CDFINC = $(MATHINC) #$(CVODEINC) $(F2CINC) CDFOBJ = cdftm.o CDFSRC = cdftm.c cdf: $(CDFOBJ) lerchphi.o sdode.o sdcdf.o sdqnt.o zeroin.o $(CC) $(CDFOBJ) lerchphi.o sdode.o sdcdf.o sdqnt.o zeroin.o -o cdf.exe $(CDFLIB) $(CDFOBJ): $(CDFSRC) $(CC) $(CCOPTS) $(CDFINC) -c $(CDFSRC) cdftm.c: SRC/cdf.tm $(MPREP) -o cdftm.c SRC/cdf.tm # optim OPTIMLIB = $(MATHLIB) $(CVODELIB) $(F2CLIB) $(DFOLIB) $(CLAPACKLIB) -lcvode -ldfo -llapack -lblas -lI77 -lF77 $(COMMONLIBS) OPTIMINC = $(MATHINC) $(CLAPACKINC) -I./CFSQP $(F2CINC) #$(CVODEINC) OPTIMOBJ = optimtm.o gofdef.o zqnt.o cfsqp.o qld.o OPTIMSRC = optimtm.c SRC/gofdef.c SRC/zqnt.c CFSQP/cfsqp.c CFSQP/qld.c optim: $(OPTIMOBJ) lerchphi.o zeroin.o sdqnt.o sdcdf.o sdode.o $(CC) $(OPTIMOBJ) lerchphi.o zeroin.o sdqnt.o sdcdf.o sdode.o -o optim.exe $(OPTIMLIB) $(OPTIMOBJ): $(OPTIMSRC) $(CC) $(CCOPTS) $(OPTIMINC) -c $(OPTIMSRC) optimtm.c: SRC/optim.tm $(MPREP) -o optimtm.c SRC/optim.tm # clean clean: rm *.o *tm.c