CC=g++ cc=gcc FC=gfortran CFLAGS=-c -Wall -O3 TARGETS=spring-euler spring-euler2 spring-euler-cromer \ spring-midpoint spring-midpoint-fn spring-midpoint-fnc \ spring-midpoint-fnf all: ${TARGETS} euler.pdf midpoint.pdf spring-euler: spring-euler.o ${CC} $^ -o $@ spring-euler2: spring-euler2.o ${CC} $^ -o $@ spring-euler-cromer: spring-euler-cromer.o ${CC} $^ -o $@ spring-midpoint: spring-midpoint.o ${CC} $^ -o $@ spring-midpoint-fn: spring-midpoint-fn.o ${CC} $^ -o $@ spring-midpoint-fnc: spring-midpoint-fnc.o ${cc} -lm $^ -o $@ spring-midpoint-fnf: spring-midpoint-fnf.o ${FC} $^ -o $@ %.o: %.cpp ${CC} ${CFLAGS} $^ %.o: %.c ${cc} ${CFLAGS} $^ %.o: %.f90 ${FC} ${CFLAGS} $^ euler.pdf: spring.dat spring.gnu gnuplot spring.gnu spring.dat: spring-euler ./spring-euler > spring.dat midpoint.pdf: spring_midpoint.dat plot_spring_midpoint.py python plot_spring_midpoint.py spring_midpoint.dat: spring-midpoint ./spring-midpoint > spring_midpoint.dat clean: -rm *.o -rm ${TARGETS} -rm euler.pdf -rm euler.eps -rm midpoint.pdf -rm spring.dat -rm spring_midpoint.dat # The leading dash "-" means to ignore errors # i.e. not stop the cleaning process if, say, euler.eps # is missing