1*53ee8cc1Swenshuai.xi 2*53ee8cc1Swenshuai.xihostprogs-y := genksyms 3*53ee8cc1Swenshuai.xialways := $(hostprogs-y) 4*53ee8cc1Swenshuai.xi 5*53ee8cc1Swenshuai.xigenksyms-objs := genksyms.o parse.o lex.o 6*53ee8cc1Swenshuai.xi 7*53ee8cc1Swenshuai.xi# -I needed for generated C source (shipped source) 8*53ee8cc1Swenshuai.xiHOSTCFLAGS_parse.o := -Wno-uninitialized -I$(src) 9*53ee8cc1Swenshuai.xi 10*53ee8cc1Swenshuai.xi# dependencies on generated files need to be listed explicitly 11*53ee8cc1Swenshuai.xi$(obj)/lex.o: $(obj)/parse.h $(obj)/keywords.c 12*53ee8cc1Swenshuai.xi 13*53ee8cc1Swenshuai.xi# -I needed for generated C source (shipped source) 14*53ee8cc1Swenshuai.xiHOSTCFLAGS_lex.o := -I$(src) 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xiifdef GENERATE_PARSER 17*53ee8cc1Swenshuai.xi 18*53ee8cc1Swenshuai.xi# gperf 19*53ee8cc1Swenshuai.xi 20*53ee8cc1Swenshuai.xiquiet_cmd_keywords.c = GPERF $@ 21*53ee8cc1Swenshuai.xi cmd_keywords.c = gperf -L ANSI-C -a -C -E -g -H is_reserved_hash \ 22*53ee8cc1Swenshuai.xi -k 1,3,$$ -N is_reserved_word -p -t $< > $@ 23*53ee8cc1Swenshuai.xi 24*53ee8cc1Swenshuai.xi$(obj)/keywords.c: $(obj)/keywords.gperf FORCE 25*53ee8cc1Swenshuai.xi $(call if_changed,keywords.c) 26*53ee8cc1Swenshuai.xi cp $@ $@_shipped 27*53ee8cc1Swenshuai.xi 28*53ee8cc1Swenshuai.xi# flex 29*53ee8cc1Swenshuai.xi 30*53ee8cc1Swenshuai.xiquiet_cmd_lex.c = FLEX $@ 31*53ee8cc1Swenshuai.xi cmd_lex.c = flex -o$@ -d $< 32*53ee8cc1Swenshuai.xi 33*53ee8cc1Swenshuai.xi$(obj)/lex.c: $(obj)/lex.l $(obj)/keywords.c FORCE 34*53ee8cc1Swenshuai.xi $(call if_changed,lex.c) 35*53ee8cc1Swenshuai.xi cp $@ $@_shipped 36*53ee8cc1Swenshuai.xi 37*53ee8cc1Swenshuai.xi# bison 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xiquiet_cmd_parse.c = BISON $@ 40*53ee8cc1Swenshuai.xi cmd_parse.c = bison -o$@ -dtv $(filter-out FORCE,$^) 41*53ee8cc1Swenshuai.xi 42*53ee8cc1Swenshuai.xi$(obj)/parse.c: $(obj)/parse.y FORCE 43*53ee8cc1Swenshuai.xi $(call if_changed,parse.c) 44*53ee8cc1Swenshuai.xi cp $@ $@_shipped 45*53ee8cc1Swenshuai.xi cp $(@:.c=.h) $(@:.c=.h)_shipped 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xi$(obj)/parse.h: $(obj)/parse.c ; 48*53ee8cc1Swenshuai.xi 49*53ee8cc1Swenshuai.xiclean-files += parse.output 50*53ee8cc1Swenshuai.xi 51*53ee8cc1Swenshuai.xiendif 52*53ee8cc1Swenshuai.xi 53*53ee8cc1Swenshuai.xitargets += keywords.c lex.c parse.c parse.h 54