Skip to content

Commit

Permalink
[PATCH] kconfig: use gperf for kconfig keywords
Browse files Browse the repository at this point in the history
Use gperf to generate a hash for the kconfig keywords.  This greatly reduces
the size of the generated scanner and makes it easier to extend kconfig.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Roman Zippel authored and Linus Torvalds committed Nov 9, 2005
1 parent 491d711 commit 7a88488
Show file tree
Hide file tree
Showing 8 changed files with 760 additions and 1,805 deletions.
11 changes: 8 additions & 3 deletions scripts/kconfig/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
endif

clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
.tmp_gtkcheck zconf.tab.c lex.zconf.c
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c

# Needed for systems without gettext
KBUILD_HAVE_NLS := $(shell \
Expand Down Expand Up @@ -201,7 +201,7 @@ $(obj)/.tmp_gtkcheck:
fi
endif

$(obj)/zconf.tab.o: $(obj)/lex.zconf.c
$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c

$(obj)/kconfig_load.o: $(obj)/lkc_defs.h

Expand All @@ -217,7 +217,7 @@ $(obj)/lkc_defs.h: $(src)/lkc_proto.h


###
# The following requires flex/bison
# The following requires flex/bison/gperf
# By default we use the _shipped versions, uncomment the following line if
# you are modifying the flex/bison src.
# LKC_GENPARSER := 1
Expand All @@ -226,6 +226,7 @@ ifdef LKC_GENPARSER

$(obj)/zconf.tab.c: $(src)/zconf.y
$(obj)/lex.zconf.c: $(src)/zconf.l
$(obj)/zconf.hash.c: $(src)/zconf.gperf

%.tab.c: %.y
bison -l -b $* -p $(notdir $*) $<
Expand All @@ -235,4 +236,8 @@ lex.%.c: %.l
flex -L -P$(notdir $*) -o$@ $<
cp $@ $@_shipped

%.hash.c: %.gperf
gperf < $< > $@
cp $@ $@_shipped

endif
Loading

0 comments on commit 7a88488

Please sign in to comment.