makefile-incl.keymap 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. # Custom systemd Makefile include that builds/installs keymap tool only for LFS
  2. # vim: tabstop=3
  3. KEYMAPS = \
  4. keymaps/acer \
  5. keymaps/acer-aspire_5720 \
  6. keymaps/acer-aspire_5920g \
  7. keymaps/acer-aspire_6920 \
  8. keymaps/acer-aspire_8930 \
  9. keymaps/acer-travelmate_c300 \
  10. keymaps/asus \
  11. keymaps/compaq-e_evo \
  12. keymaps/dell \
  13. keymaps/dell-latitude-xt2 \
  14. keymaps/everex-xt5000 \
  15. keymaps/fujitsu-amilo_li_2732 \
  16. keymaps/fujitsu-amilo_pa_2548 \
  17. keymaps/fujitsu-amilo_pro_edition_v3505 \
  18. keymaps/fujitsu-amilo_pro_v3205 \
  19. keymaps/fujitsu-amilo_si_1520 \
  20. keymaps/fujitsu-esprimo_mobile_v5 \
  21. keymaps/fujitsu-esprimo_mobile_v6 \
  22. keymaps/genius-slimstar-320 \
  23. keymaps/hewlett-packard \
  24. keymaps/hewlett-packard-2510p_2530p \
  25. keymaps/hewlett-packard-compaq_elitebook \
  26. keymaps/hewlett-packard_elitebook-8440p \
  27. keymaps/hewlett-packard-hdx9494nr \
  28. keymaps/hewlett-packard-pavilion \
  29. keymaps/hewlett-packard-presario-2100 \
  30. keymaps/hewlett-packard-tablet \
  31. keymaps/hewlett-packard-tx2 \
  32. keymaps/ibm-thinkpad-usb-keyboard-trackpoint \
  33. keymaps/inventec-symphony_6.0_7.0 \
  34. keymaps/lenovo-3000 \
  35. keymaps/lenovo-ideapad \
  36. keymaps/lenovo-thinkpad-usb-keyboard-trackpoint \
  37. keymaps/lenovo-thinkpad_x200_tablet \
  38. keymaps/lenovo-thinkpad_x6_tablet \
  39. keymaps/lg-x110 \
  40. keymaps/logitech-wave \
  41. keymaps/logitech-wave-cordless \
  42. keymaps/logitech-wave-pro-cordless \
  43. keymaps/maxdata-pro_7000 \
  44. keymaps/medion-fid2060 \
  45. keymaps/medionnb-a555 \
  46. keymaps/micro-star \
  47. keymaps/module-asus-w3j \
  48. keymaps/module-ibm \
  49. keymaps/module-lenovo \
  50. keymaps/module-sony \
  51. keymaps/module-sony-old \
  52. keymaps/module-sony-vgn \
  53. keymaps/module-sony-vpc \
  54. keymaps/olpc-xo \
  55. keymaps/onkyo \
  56. keymaps/oqo-model2 \
  57. keymaps/samsung-other \
  58. keymaps/samsung-series-9 \
  59. keymaps/samsung-sq1us \
  60. keymaps/samsung-sx20s \
  61. keymaps/toshiba-satellite_a100 \
  62. keymaps/toshiba-satellite_a110 \
  63. keymaps/toshiba-satellite_m30x \
  64. keymaps/zepto-znote
  65. KEYMAPS_FR = \
  66. keymaps-force-release/common-volume-keys \
  67. keymaps-force-release/dell-touchpad \
  68. keymaps-force-release/dell-xps \
  69. keymaps-force-release/hp-other \
  70. keymaps-force-release/samsung-other \
  71. keymaps-force-release/samsung-series-9 \
  72. KEYMAP_DEPS = common src/udev/keymap/keys-from-name.h src/udev/keymap/keys-to-name.h
  73. src/udev/keymap/keys.txt:
  74. @echo GEN $@
  75. $(VB)awk '/^#define.*KEY_[^ ]+[ \t]+[0-9]/ \
  76. { \
  77. if ($$2 != "KEY_MAX") { print $$2 } \
  78. }' \
  79. /usr/include/linux/input.h | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
  80. src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt
  81. @echo GEN $@
  82. $(VB)awk 'BEGIN \
  83. { \
  84. print "struct key \
  85. { \
  86. const char* name; \
  87. unsigned short id; \
  88. };"; \
  89. \
  90. print "%null-strings"; print "%%"; \
  91. } \
  92. { \
  93. print $$1 ", " $$1 \
  94. }' $< > $@
  95. src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf
  96. @echo GEN $@
  97. $(VB)gperf -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C $< > $@
  98. src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt
  99. @echo GEN $@
  100. $(VB)awk 'BEGIN \
  101. { \
  102. print "const char* const key_names[KEY_CNT] = { " \
  103. } \
  104. { \
  105. print "[" $$1 "] = \"" $$1 "\"," \
  106. } \
  107. END{print "};" \
  108. }' $< > $@
  109. build/keymap: src/udev/keymap/keymap.c build/$(COMMON_LIB) $(KEYMAP_DEPS)
  110. @echo LINK $@
  111. $(VB)gcc $< -o $@ -I src/udev/keymap $(WARN) $(OPTIONS2) $(INCLUDE) $(DEF) \
  112. build/$(COMMON_LIB) $(LDFLAGS)
  113. $(VB)strip --strip-unneeded $@
  114. keymap: build/keymap
  115. install-keymap: keymap
  116. @mkdir -pv $(DESTDIR)/lib/udev/keymaps/force-release \
  117. $(DESTDIR)/lib/udev/rules.d \
  118. $(DESTDIR)/usr/share/doc/udev
  119. @cp -v build/keymap $(DESTDIR)/lib/udev
  120. @cp -v $(KEYMAPS) $(DESTDIR)/lib/udev/keymaps
  121. @cp -v $(KEYMAPS_FR) $(DESTDIR)/lib/udev/keymaps/force-release
  122. @cp -v src/udev/keymap/*.rules $(DESTDIR)/lib/udev/rules.d
  123. @cp -v src/udev/keymap/findkeyboards $(DESTDIR)/lib/udev
  124. @cp -v src/udev/keymap/*.txt $(DESTDIR)/usr/share/doc/udev
  125. @sed -e 's|@udevlibexecdir@|/lib/udev|g' \
  126. src/udev/keymap/keyboard-force-release.sh.in \
  127. > $(DESTDIR)/lib/udev/keyboard-force-release.sh
  128. @chmod 0755 $(DESTDIR)/lib/udev/keyboard-force-release.sh
  129. clean-keymap:
  130. rm -f src/udev/keymap/keys.txt
  131. rm -f src/udev/keymap/keys-from-name.gperf
  132. rm -f src/udev/keymap/keys-from-name.h
  133. rm -f src/udev/keymap/keys-to-name.h
  134. rm -f build/keymap
  135. .PHONY: clean-keymap