xref: /utopia/UTPA2-700.0.x/projects/build/scripts/genksyms/Makefile (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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