Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. hostprogs-y := genksyms
  2. always := $(hostprogs-y)
  3. genksyms-objs := genksyms.o parse.o lex.o
  4. # -I needed for generated C source (shipped source)
  5. HOSTCFLAGS_parse.o := -Wno-uninitialized -I$(src)
  6. # dependencies on generated files need to be listed explicitly
  7. $(obj)/lex.o: $(obj)/parse.h $(obj)/keywords.c
  8. # -I needed for generated C source (shipped source)
  9. HOSTCFLAGS_lex.o := -I$(src)
  10. ifdef GENERATE_PARSER
  11. # gperf
  12. quiet_cmd_keywords.c = GPERF $@
  13. cmd_keywords.c = gperf -L ANSI-C -a -C -E -g -H is_reserved_hash \
  14. -k 1,3,$$ -N is_reserved_word -p -t $< > $@
  15. $(obj)/keywords.c: $(obj)/keywords.gperf FORCE
  16. $(call if_changed,keywords.c)
  17. # flex
  18. quiet_cmd_lex.c = FLEX $@
  19. cmd_lex.c = flex -o$@ -d $(filter-out FORCE,$^)
  20. $(obj)/lex.c: $(obj)/lex.l $(obj)/parse.h FORCE
  21. $(call if_changed,lex.c)
  22. # bison
  23. quiet_cmd_parse.c = BISON $@
  24. cmd_parse.c = bison -o$@ -dtv $(filter-out FORCE,$^)
  25. $(obj)/parse.c: $(obj)/parse.y FORCE
  26. $(call if_changed,parse.c)
  27. $(obj)/parse.h: $(obj)/parse.c ;
  28. clean-files += parse.output
  29. endif
  30. targets += keywords.c lex.c parse.c parse.h