summaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index c0b154a..8e04f69 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,7 +18,7 @@
sbin_PROGRAMS = keyfuzz
-keyfuzz_SOURCES = keyfuzz.c cmdline.c cmdline.h
+keyfuzz_SOURCES = keyfuzz.c cmdline.c cmdline.h keys-from-name.h keys-to-name.h
keyfuzz_CFLAGS = $(AM_CFLAGS) -DPKGSYSCONFDIR="\"${sysconfdir}/@PACKAGE@\""
EXTRA_DIST = keyfuzz.ggo
@@ -29,9 +29,24 @@ CLEANFILES =
if USE_GENGETOPT
CLEANFILES += cmdline.c cmdline.h
-BUILT_SOURCES += cmdline.c cmdline.h
+BUILT_SOURCES += cmdline.c cmdline.h
cmdline.c cmdline.h: keyfuzz.ggo Makefile
gengetopt < $<
endif
+
+keys.txt: input.h Makefile
+ awk '/^#define.*KEY_/ { if ($$2 != "KEY_MAX") { print $$2 } }' < $< > $@
+
+keys-from-name.gperf: keys.txt Makefile
+ awk 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
+
+keys-from-name.h: keys-from-name.gperf Makefile
+ gperf -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
+
+keys-to-name.h: keys.txt Makefile
+ awk 'BEGIN{ print "const char* const key_names[KEY_MAX] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@
+
+CLEANFILES += keys-from-name.h keys-to-name.h
+BUILT_SOURCES += keys-from-name.h keys-to-name.h