# Last edited on 2003-09-25 10:18:26 by stolfi INC = /home/staff/stolfi/PUB/include LIB = /home/staff/stolfi/PUB/${PLATFORM}/lib FUNCTIONS = \ gexp \ gasqrt \ gsin3 \ glog4 \ ginv \ giaboom \ g1 g2 g3 g4 g5 g6 g6 g7 g8 \ g10 g11 g12 \ g14 \ gbadia \ gbadmul \ gdiv \ gsqr \ gsqrt .PHONY: all clean run clean-single single show-ps # all: clean run all: run run: @for fn in ${FUNCTIONS} ; do \ make FUNCTION=$$fn single ; \ done clean: /bin/rm -f *.o *.ho core @for fn in ${FUNCTIONS} ; do \ make FUNCTION=$$fn clean-single ; \ done HFILES = \ allgraphs.h HOFILES = \ allgraphs.ho OFILES = \ allgraphs.o GCCFLAGS = \ -I. -I${INC} \ -g \ -ansi \ -Wall -Wpointer-arith -Wmissing-prototypes %.o: %.c gcc -c ${GCCFLAGS} $*.c %.ho: %.h gcc -o $*.ho -c ${GCCFLAGS} -x c $*.h \ || /bin/rm -f $*.ho ###################################################################### # For recursive "make" of single function: # Caller must define ${FUNCTION} FUNCTION = FUNCTION.IS.UNDEFINED ifneq "${FUNCTION}" "FUNCTION.IS.UNDEFINED" PROG = plot-test-${FUNCTION} MAINC = plot-test.c LIBS = \ ${LIB}/libfgraph.a \ ${LIB}/libps.a \ ${LIB}/libaa.a \ ${LIB}/libia.a \ ${LIB}/libflt.a \ ${LIB}/libjs.a MAINPS = ${PROG}.ps EPSFILES = \ ${PROG}-ia.eps \ ${PROG}-aa.eps \ ${PROG}-ar.eps PSFILES = \ ${MAINPS} \ ${EPSFILES} SHOWPS = kghostview single: ${MAINPS} show-ps clean-single: /bin/rm -f ${PROG} ${PROG}.o ${PSFILES} # Special rule for ${PROG}.o: ${PROG}.o: ${FUNCTION}.c ${MAINC} allgraphs.ho \ ${INC}/aa.ho ${INC}/ia.ho ${INC}/flt.ho \ ${INC}/js.ho gcc -o ${PROG}.o -DFUNCTION=${FUNCTION} -c ${GCCFLAGS} ${MAINC} ${PROG}: ${OFILES} ${PROG}.o ${LIBS} gcc -o ${PROG} ${PROG}.o ${OFILES} ${LIBS} -lm ${MAINPS}: ${PROG} ${PROG} show-ps: ${MAINPS} ${SHOWPS} ${MAINPS} endif # ${FUNCTION} ###################################################################### # Dependencies of .h files: allgraphs.ho:: allgraphs.h ${INC}/flt.ho ${INC}/ia.ho ${INC}/aa.ho # Dependencies for .c files: allgraphs.o:: allgraphs.c allgraphs.ho \ ${INC}/fltgraph.ho ${INC}/iagraph.ho ${INC}/aagraph.ho \ ${INC}/js.ho ${INC}/flt.ho ${INC}/ia.ho ${INC}/aa.ho \ ${INC}/ps.ho ${INC}/ioprotos.ho