2 hostprogs-y
:= genksyms
3 always
:= $(hostprogs-y
)
5 genksyms-objs
:= genksyms.o parse.o
lex.o
7 # -I needed for generated C source (shipped source)
8 HOSTCFLAGS_parse.o
:= -Wno-uninitialized
-I
$(src
)
10 # dependencies on generated files need to be listed explicitly
11 $(obj
)/lex.o
: $(obj
)/parse.h
$(obj
)/keywords.c
13 # -I needed for generated C source (shipped source)
14 HOSTCFLAGS_lex.o
:= -I
$(src
)
20 quiet_cmd_keywords.c
= GPERF
$@
21 cmd_keywords.c
= gperf
-L ANSI-C
-a
-C
-E
-g
-H is_reserved_hash \
22 -k
1,3,$$ -N is_reserved_word
-p
-t
$< > $@
24 $(obj
)/keywords.c
: $(obj
)/keywords.gperf FORCE
25 $(call if_changed
,keywords.c
)
30 quiet_cmd_lex.c
= FLEX
$@
31 cmd_lex.c
= flex
-o
$@
-d
$< $(obj
)/parse.h
33 $(obj
)/lex.c
: $(obj
)/lex.l
$(obj
)/parse.h
$(obj
)/keywords.c FORCE
34 $(call if_changed
,lex.c
)
39 quiet_cmd_parse.c
= BISON
$@
40 cmd_parse.c
= bison
-o
$@
-dtv
$(filter-out FORCE
,$^
)
42 $(obj
)/parse.c
: $(obj
)/parse.y FORCE
43 $(call if_changed
,parse.c
)
45 cp
$(@
:.c
=.h
) $(@
:.c
=.h
)_shipped
47 $(obj
)/parse.h
: $(obj
)/parse.c
;
49 clean-files
+= parse.output
53 targets
+= keywords.c
lex.c parse.c parse.h