Makefile 582 B

12345678910111213141516171819202122232425
  1. project = ../bin/asm
  2. objects = assembler.tab.c lex.yy.c
  3. hfiles = $(wildcard *.h)
  4. cfiles = $(filter-out $(objects), $(wildcard *.c))
  5. .PHONY: all clean
  6. all: $(project)
  7. $(project) : $(objects) $(cfiles) $(hfiles)
  8. gcc -o $@ $(objects) $(cfiles)
  9. assembler.tab.c : assembler.y
  10. bison -d $<
  11. lex.yy.c : assembler.lex assembler.tab.h
  12. flex $<
  13. clean :
  14. rm -f assembler.tab.c assembler.tab.h lex.yy.c $(project) $(project:=.exe)
  15. # This rule keeps Make happy, while the %.tab.h file is generated by
  16. # the bison rule above
  17. %.tab.h: %.tab.c
  18. if [ -a $@ ]; then touch $@; else false; fi