project = 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 acse acse.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
