1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # Custom systemd Makefile include that builds/installs keymap tool only for LFS
- # vim: tabstop=3
- KEYMAPS = $(shell ls keymaps/* | sort)
- KEYMAPS_FR = $(shell ls keymaps-force-release/* | sort)
- KEYMAP_DEPS = common src/udev/keymap/keys-from-name.h src/udev/keymap/keys-to-name.h
- src/udev/keymap/keys.txt:
- @echo GEN $@
- $(VB)awk '/^#define.*KEY_[^ ]+[ \t]+[0-9]/ \
- { \
- if ($$2 != "KEY_MAX") { print $$2 } \
- }' \
- /usr/include/linux/input.h | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
- src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt
- @echo GEN $@
- $(VB)awk 'BEGIN \
- { \
- print "struct key \
- { \
- const char* name; \
- unsigned short id; \
- };"; \
- \
- print "%null-strings"; print "%%"; \
- } \
- { \
- print $$1 ", " $$1 \
- }' $< > $@
- src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf
- @echo GEN $@
- $(VB)gperf -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C $< > $@
- src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt
- @echo GEN $@
- $(VB)awk 'BEGIN \
- { \
- print "const char* const key_names[KEY_CNT] = { " \
- } \
- { \
- print "[" $$1 "] = \"" $$1 "\"," \
- } \
- END{print "};" \
- }' $< > $@
- build/keymap: src/udev/keymap/keymap.c build/$(COMMON_LIB) $(KEYMAP_DEPS)
- @echo LINK $@
- $(VB)gcc $< -o $@ -I src/udev/keymap $(WARN) $(OPTIONS2) $(INCLUDE) $(DEF) \
- build/$(COMMON_LIB) $(LDFLAGS)
- $(VB)strip --strip-unneeded $@
- keymap: build/keymap
- install-keymap: keymap
- @mkdir -pv $(DESTDIR)/lib/udev/keymaps/force-release \
- $(DESTDIR)/lib/udev/rules.d \
- $(DESTDIR)/usr/share/doc/udev
- @cp -v build/keymap $(DESTDIR)/lib/udev
- @cp -v $(KEYMAPS) $(DESTDIR)/lib/udev/keymaps
- @cp -v $(KEYMAPS_FR) $(DESTDIR)/lib/udev/keymaps/force-release
- @cp -v src/udev/keymap/*.rules $(DESTDIR)/lib/udev/rules.d
- @cp -v src/udev/keymap/findkeyboards $(DESTDIR)/lib/udev
- @cp -v src/udev/keymap/*.txt $(DESTDIR)/usr/share/doc/udev
- @sed -e 's|@udevlibexecdir@|/lib/udev|g' \
- src/udev/keymap/keyboard-force-release.sh.in \
- > $(DESTDIR)/lib/udev/keyboard-force-release.sh
- @chmod 0755 $(DESTDIR)/lib/udev/keyboard-force-release.sh
- clean-keymap:
- rm -f src/udev/keymap/keys.txt
- rm -f src/udev/keymap/keys-from-name.gperf
- rm -f src/udev/keymap/keys-from-name.h
- rm -f src/udev/keymap/keys-to-name.h
- rm -f build/keymap
- .PHONY: clean-keymap
|