[b2b1e1a] | 1 | # Custom systemd Makefile include that builds/installs keymap tool only for LFS
|
---|
| 2 |
|
---|
| 3 | # vim: tabstop=3
|
---|
| 4 |
|
---|
[028c886] | 5 | KEYMAPS = $(shell ls keymaps/* | sort)
|
---|
| 6 | KEYMAPS_FR = $(shell ls keymaps-force-release/* | sort)
|
---|
[b2b1e1a] | 7 |
|
---|
| 8 | KEYMAP_DEPS = common src/udev/keymap/keys-from-name.h src/udev/keymap/keys-to-name.h
|
---|
| 9 |
|
---|
| 10 | src/udev/keymap/keys.txt:
|
---|
| 11 | @echo GEN $@
|
---|
| 12 | $(VB)awk '/^#define.*KEY_[^ ]+[ \t]+[0-9]/ \
|
---|
| 13 | { \
|
---|
| 14 | if ($$2 != "KEY_MAX") { print $$2 } \
|
---|
| 15 | }' \
|
---|
| 16 | /usr/include/linux/input.h | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
|
---|
| 17 |
|
---|
| 18 | src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt
|
---|
| 19 | @echo GEN $@
|
---|
| 20 | $(VB)awk 'BEGIN \
|
---|
| 21 | { \
|
---|
| 22 | print "struct key \
|
---|
| 23 | { \
|
---|
| 24 | const char* name; \
|
---|
| 25 | unsigned short id; \
|
---|
| 26 | };"; \
|
---|
| 27 | \
|
---|
| 28 | print "%null-strings"; print "%%"; \
|
---|
| 29 | } \
|
---|
| 30 | { \
|
---|
| 31 | print $$1 ", " $$1 \
|
---|
| 32 | }' $< > $@
|
---|
| 33 |
|
---|
| 34 | src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf
|
---|
| 35 | @echo GEN $@
|
---|
| 36 | $(VB)gperf -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C $< > $@
|
---|
| 37 |
|
---|
| 38 | src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt
|
---|
| 39 | @echo GEN $@
|
---|
| 40 | $(VB)awk 'BEGIN \
|
---|
| 41 | { \
|
---|
| 42 | print "const char* const key_names[KEY_CNT] = { " \
|
---|
| 43 | } \
|
---|
| 44 | { \
|
---|
| 45 | print "[" $$1 "] = \"" $$1 "\"," \
|
---|
| 46 | } \
|
---|
| 47 | END{print "};" \
|
---|
| 48 | }' $< > $@
|
---|
| 49 |
|
---|
| 50 | build/keymap: src/udev/keymap/keymap.c build/$(COMMON_LIB) $(KEYMAP_DEPS)
|
---|
| 51 | @echo LINK $@
|
---|
| 52 | $(VB)gcc $< -o $@ -I src/udev/keymap $(WARN) $(OPTIONS2) $(INCLUDE) $(DEF) \
|
---|
| 53 | build/$(COMMON_LIB) $(LDFLAGS)
|
---|
| 54 | $(VB)strip --strip-unneeded $@
|
---|
| 55 |
|
---|
| 56 | keymap: build/keymap
|
---|
| 57 |
|
---|
| 58 | install-keymap: keymap
|
---|
| 59 | @mkdir -pv $(DESTDIR)/lib/udev/keymaps/force-release \
|
---|
| 60 | $(DESTDIR)/lib/udev/rules.d \
|
---|
| 61 | $(DESTDIR)/usr/share/doc/udev
|
---|
| 62 |
|
---|
| 63 | @cp -v build/keymap $(DESTDIR)/lib/udev
|
---|
| 64 |
|
---|
| 65 | @cp -v $(KEYMAPS) $(DESTDIR)/lib/udev/keymaps
|
---|
| 66 | @cp -v $(KEYMAPS_FR) $(DESTDIR)/lib/udev/keymaps/force-release
|
---|
| 67 |
|
---|
| 68 | @cp -v src/udev/keymap/*.rules $(DESTDIR)/lib/udev/rules.d
|
---|
| 69 | @cp -v src/udev/keymap/findkeyboards $(DESTDIR)/lib/udev
|
---|
| 70 |
|
---|
| 71 | @cp -v src/udev/keymap/*.txt $(DESTDIR)/usr/share/doc/udev
|
---|
| 72 |
|
---|
| 73 | @sed -e 's|@udevlibexecdir@|/lib/udev|g' \
|
---|
| 74 | src/udev/keymap/keyboard-force-release.sh.in \
|
---|
| 75 | > $(DESTDIR)/lib/udev/keyboard-force-release.sh
|
---|
| 76 |
|
---|
| 77 | @chmod 0755 $(DESTDIR)/lib/udev/keyboard-force-release.sh
|
---|
| 78 |
|
---|
| 79 | clean-keymap:
|
---|
| 80 | rm -f src/udev/keymap/keys.txt
|
---|
| 81 | rm -f src/udev/keymap/keys-from-name.gperf
|
---|
| 82 | rm -f src/udev/keymap/keys-from-name.h
|
---|
| 83 | rm -f src/udev/keymap/keys-to-name.h
|
---|
| 84 | rm -f build/keymap
|
---|
| 85 |
|
---|
| 86 | .PHONY: clean-keymap
|
---|