| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 |  | 
 | 2 | hostprogs-y	:= genksyms | 
 | 3 | always		:= $(hostprogs-y) | 
 | 4 |  | 
 | 5 | genksyms-objs	:= genksyms.o parse.o lex.o | 
 | 6 |  | 
 | 7 | # -I needed for generated C source (shipped source) | 
 | 8 | HOSTCFLAGS_parse.o := -Wno-uninitialized -I$(src) | 
 | 9 |  | 
 | 10 | # dependencies on generated files need to be listed explicitly | 
 | 11 | $(obj)/lex.o: $(obj)/parse.h $(obj)/keywords.c | 
 | 12 |  | 
 | 13 | # -I needed for generated C source (shipped source) | 
 | 14 | HOSTCFLAGS_lex.o := -I$(src) | 
 | 15 |  | 
 | 16 | ifdef GENERATE_PARSER | 
 | 17 |  | 
 | 18 | # gperf | 
 | 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) | 
| Sam Ravnborg | a3a6261 | 2007-09-01 10:24:58 +0200 | [diff] [blame] | 26 | 	cp $@ $@_shipped | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 |  | 
 | 28 | # flex | 
 | 29 |  | 
 | 30 | quiet_cmd_lex.c = FLEX    $@ | 
| Sam Ravnborg | a3a6261 | 2007-09-01 10:24:58 +0200 | [diff] [blame] | 31 |       cmd_lex.c = flex -o$@ -d $< $(obj)/parse.h | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 |  | 
| Sam Ravnborg | a3a6261 | 2007-09-01 10:24:58 +0200 | [diff] [blame] | 33 | $(obj)/lex.c: $(obj)/lex.l $(obj)/parse.h $(obj)/keywords.c FORCE | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 34 | 	$(call if_changed,lex.c) | 
| Sam Ravnborg | a3a6261 | 2007-09-01 10:24:58 +0200 | [diff] [blame] | 35 | 	cp $@ $@_shipped | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 36 |  | 
 | 37 | # bison | 
 | 38 |  | 
 | 39 | quiet_cmd_parse.c = BISON   $@ | 
 | 40 |       cmd_parse.c = bison -o$@ -dtv $(filter-out FORCE,$^) | 
 | 41 |  | 
 | 42 | $(obj)/parse.c: $(obj)/parse.y FORCE | 
 | 43 | 	$(call if_changed,parse.c) | 
| Sam Ravnborg | a3a6261 | 2007-09-01 10:24:58 +0200 | [diff] [blame] | 44 | 	cp $@ $@_shipped | 
 | 45 | 	cp $(@:.c=.h) $(@:.c=.h)_shipped | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 46 |  | 
 | 47 | $(obj)/parse.h: $(obj)/parse.c ; | 
 | 48 |  | 
 | 49 | clean-files	+= parse.output | 
 | 50 |  | 
 | 51 | endif | 
 | 52 |  | 
 | 53 | targets += keywords.c lex.c parse.c parse.h |