CC = cc CFLAGS = -Wall -g -O0 LDFLAGS = -lreadline .PHONY: all clear all: adventure OBJ = save.o match.o parseexec.o toggle.c inventory.o \ misc.o object.o io.o adventure.o # making every object depending on object.h may be too aggressive, # but will surely avoid some nasty bugs (I hope at least.) ${OBJ}: adventure.h config.h object.h adventure: ${OBJ} ${CC} -o adventure ${OBJ} ${LDFLAGS} object.c: object.data data_to_c.awk awk -v pass=c1 -f data_to_c.awk object.data > object.c awk -v pass=c2 -f data_to_c.awk object.data >> object.c object.h: object.data data_to_c.awk awk -v pass=h -f data_to_c.awk object.data > object.h .SUFFIXES: .c .o .c.o: ${CC} ${CFLAGS} -c $< -o $@ clear: rm -f *.o adventure object.c object.h map.gv map.png map.gv: map.awk object.data awk -f map.awk object.data > $@ map.png: map.gv dot -Tpng -o $@ map.gv