CC = /usr/bin/gcc CFLAGS = LD = $(CC) LDFLAGS = -lm RM = /bin/rm EXAMPLES = rectangle sharp sinusoid EXECS = $(EXAMPLES:%=gen_data_%) Z_FIGURES = rectangle.png sinusoid.png XYZ_FIGURES = sharp.png FIGURES = $(Z_FIGURES) $(XYZ_FIGURES) all: $(FIGURES) %.o : %.c $(CC) -c $(CFLAGS) -o $@ $^ $(EXECS) : % : %.o $(LD) $(LDFLAGS) -o $@ $^ $(Z_FIGURES) : %.png : gen_data_% plot_image.py ./$< | ./plot_image.py -t "$(<:%.png=%)" -s 300,200 -o "$@" $(XYZ_FIGURES) : %.png : gen_data_% plot_image.py ./$< | ./plot_image.py -t "$(<:%.png=%)" --xyz -o "$@" clean: $(RM) -f *.o $(EXECS) $(FIGURES) # Interesting Makefile sections # 4.12.1 Syntax of Static Pattern Rules