1 # SPDX-License-Identifier: GPL-2.0 << 2 1 3 hostprogs-always-y += genksyms !! 2 host-progs := genksyms >> 3 always := $(host-progs) 4 4 5 genksyms-objs := genksyms.o parse.tab.o lex. !! 5 genksyms-objs := genksyms.o parse.o lex.o 6 6 7 # FIXME: fix the ambiguous grammar in parse.y !! 7 # -I needed for generated C source (shipped source) 8 # !! 8 HOSTCFLAGS_parse.o := -Wno-uninitialized -I$(src) 9 # Suppress shift/reduce, reduce/reduce conflic << 10 # unless W=1 is specified. << 11 # << 12 # Just in case, run "$(YACC) --version" withou << 13 # so that 'bison: not found' will be displayed << 14 ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),) << 15 << 16 quiet_cmd_bison_no_warn = $(quiet_cmd_bison) << 17 cmd_bison_no_warn = $(YACC) --version >/ << 18 $(cmd_bison) 2>/dev/ << 19 9 20 $(obj)/pars%.tab.c $(obj)/pars%.tab.h: $(src)/ !! 10 # dependencies on generated files need to be listed explicitly 21 $(call if_changed,bison_no_warn) !! 11 $(obj)/lex.o: $(obj)/parse.h $(obj)/keywords.c 22 12 23 endif !! 13 # -I needed for generated C source (shipped source) >> 14 HOSTCFLAGS_lex.o := -I$(src) 24 15 25 # -I needed for generated C source to include !! 16 ifdef GENERATE_PARSER 26 HOSTCFLAGS_parse.tab.o := -I $(src) << 27 HOSTCFLAGS_lex.lex.o := -I $(src) << 28 17 29 # dependencies on generated files need to be l !! 18 # gperf 30 $(obj)/lex.lex.o: $(obj)/parse.tab.h !! 19 >> 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 $< > $@ >> 23 >> 24 $(obj)/keywords.c: $(obj)/keywords.gperf FORCE >> 25 $(call if_changed,keywords.c) >> 26 >> 27 # flex >> 28 >> 29 quiet_cmd_lex.c = FLEX $@ >> 30 cmd_lex.c = flex -o$@ -d $(filter-out FORCE,$^) >> 31 >> 32 $(obj)/lex.c: $(obj)/lex.l $(obj)/parse.h FORCE >> 33 $(call if_changed,lex.c) >> 34 >> 35 # bison >> 36 >> 37 quiet_cmd_parse.c = BISON $@ >> 38 cmd_parse.c = bison -o$@ -dtv $(filter-out FORCE,$^) >> 39 >> 40 $(obj)/parse.c: $(obj)/parse.y FORCE >> 41 $(call if_changed,parse.c) >> 42 >> 43 $(obj)/parse.h: $(obj)/parse.c ; >> 44 >> 45 clean-files += parse.output >> 46 >> 47 endif >> 48 >> 49 targets += keywords.c lex.c parse.c parse.h
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.