project = ../bin/acse objects = Acse.tab.c lex.yy.c hfiles = $(wildcard *.h) cfiles = $(filter-out $(objects), $(wildcard *.c)) .PHONY: all clean all: $(project) $(project) : $(objects) $(cfiles) $(hfiles) gcc -o $@ $(objects) $(cfiles) Acse.tab.c : Acse.y bison -d $< lex.yy.c : Acse.lex Acse.tab.h flex $< clean : rm -f Acse.tab.c Acse.tab.h lex.yy.c $(project) $(project:=.exe) # This rule keeps Make happy, while the %.tab.h file is generated by # the bison rule above %.tab.h: %.tab.c if [ -a $@ ]; then touch $@; else false; fi