-WGCFLAGS=-Wall -Wextra -Wno-unused-parameter
+WGCFLAGS=-Wall -Wextra -Wmissing-prototypes -Wno-unused-parameter -Wno-sign-compare `pkg-config --cflags goocanvas`
+FANCYLIBS=`pkg-config --libs goocanvas`
-PROGRAMS=grid
+PROGRAMS=grid4 grid5 drill2 rack rack-fancy
+all: $(PROGRAMS)
-LIBRARY=dict.o
+LIBRARY=bag.o dict.o grid.o subanagram.o word-game.o
+FANCYLIBRARY=demo-item.o
-all: $(PROGRAMS)
+%: %.o $(LIBRARY)
+ $(CC) $(CFLAGS) $(WGCFLAGS) $(LDFLAGS) -lreadline -lm -o $@ $^
-%.o: %.c
- $(CC) $(CFLAGS) $(WGCFLAGS) -c -o $@ $^
+%-fancy: %-fancy.o $(LIBRARY) $(FANCYLIBRARY)
+ $(CC) $(CFLAGS) $(WGCFLAGS) $(LDFLAGS) $(FANCYLIBS) -lreadline -lm -o $@ $^
-%.c: dict.h
+%.o: %.c
+ $(CC) $(CFLAGS) $(WGCFLAGS) -c -o $@ $<
-grid: grid.o $(LIBRARY)
- $(CC) $(CFLAGS) $(WGCFLAGS) $(LDFLAGS) -lreadline -lm -o $@ $^
+Makefile.dep: *.c
+ $(CC) -M $(CPPFLAGS) $(WGCFLAGS) $^ > $@
+-include Makefile.dep
+.PHONY: clean
clean:
- rm -f $(PROGRAMS) *.o
+ rm -f $(PROGRAMS) *.o Makefile.dep