chiark / gitweb /
Use the keymap check during “make distcheck” rather than “check”.
authorDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>
Fri, 7 Aug 2009 18:05:55 +0000 (20:05 +0200)
committerDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>
Fri, 7 Aug 2009 18:05:55 +0000 (20:05 +0200)
Since the check-keymaps.sh script checks for validity the source directory
and the Makefile.am file, instead of running it during user-oriented “make
check”, run it during developed-oriented “make distcheck”.

An invalid keymap will abort the execution which will prevent shipping
an incomplete Makefile.am.

To properly support out-of-source builds, pass as single parameter to the
test the path to the source directory.

Makefile.am
extras/keymap/check-keymaps.sh

index 7d97af51e55d634a756d9b0ebde597e70aefbc8f..c69529780d8d978a3f012cabe06345c7fa6509aa 100644 (file)
@@ -7,6 +7,7 @@ dist_udevconf_DATA = \
 EXTRA_DIST = \
        autogen.sh \
        libudev/exported_symbols \
+       extras/keymap/check-keymaps.sh \
        extras/gudev/gudevmarshal.list \
        extras/gudev/gudevenumtypes.h.template \
        extras/gudev/gudevenumtypes.c.template
@@ -386,10 +387,6 @@ BUILT_SOURCES += \
        $(nodist_extras_keymap_keymap_SOURCES) \
        $(dist_extras_gudev_libgudev_1_0_la_SOURCES)
 
-TESTS += extras/keymap/check-keymaps.sh
-
-check_DATA = extras/keymap/keys.txt
-
 CLEANFILES += \
        extras/keymap/keys.txt \
        extras/keymap/keys-from-name.gperf
@@ -476,6 +473,8 @@ install-exec-hook: $(INSTALL_EXEC_HOOKS)
 
 uninstall-hook: $(UNINSTALL_EXEC_HOOKS)
 
+distcheck-hook: keymaps-distcheck-hook
+
 # move lib from $(libdir) to $(rootlib_execdir) and update devel link, if needed
 libudev-install-move-hook:
        if test "$(libdir)" != "$(rootlib_execdir)"; then \
@@ -493,6 +492,9 @@ udevacl-install-hook:
        mkdir -p $(DESTDIR)$(prefix)/lib/ConsoleKit/run-session.d
        ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(prefix)/lib/ConsoleKit/run-session.d/udev-acl.ck
 
+keymaps-distcheck-hook: extras/keymap/keys.txt
+       ./extras/keymap/check-keymaps.sh $(top_srcdir)
+
 # ------------------------------------------------------------------------------
 # Custom rules
 # ------------------------------------------------------------------------------
index f79c3f5a823e11214a5702cb12519085b871ae86..d4e3e917605b9b50355c755ac9d36ea760d290a6 100755 (executable)
@@ -1,15 +1,19 @@
 #!/bin/bash
 
 # check that all key names in keymaps/* are known in <linux/input.h>
-KEYLIST=extras/keymap/keys.txt
-RULES=extras/keymap/95-keymap.rules
+# and that all key maps listed in the rules are valid and present in
+# Makefile.am
+SRCDIR=$1
+KEYLIST=$SRCDIR/extras/keymap/keys.txt
+KEYMAPS_DIR=$SRCDIR/extras/keymap/keymaps #extras/keymap/keymaps
+RULES=$SRCDIR/extras/keymap/95-keymap.rules
 
 [ -e "$KEYLIST" ] || {
     echo "need $KEYLIST please build first" >&2
     exit 1
 }
 
-missing=$(join -v 2 <(awk '{print tolower(substr($1,5))}' $KEYLIST | sort -u) <(awk '{print $2}' extras/keymap/keymaps/*|sort -u))
+missing=$(join -v 2 <(awk '{print tolower(substr($1,5))}' $KEYLIST | sort -u) <(awk '{print $2}' ${KEYMAPS_DIR}/*|sort -u))
 [ -z "$missing" ] || {
     echo "ERROR: unknown key names in extras/keymap/keymaps/*:" >&2
     echo "$missing" >&2
@@ -22,11 +26,11 @@ for m in $maps; do
     # ignore inline mappings
     [ "$m" = "${m#0x}" ] || continue
 
-    [ -e extras/keymap/keymaps/$m ] || {
+    [ -e ${KEYMAPS_DIR}/$m ] || {
        echo "ERROR: unknown map name in $RULES: $m" >&2
        exit 1
     }
-    grep -q "extras/keymap/keymaps/$m\>" Makefile.am || {
+    grep -q "extras/keymap/keymaps/$m\>" $SRCDIR/Makefile.am || {
        echo "ERROR: map file $m is not added to Makefile.am" >&2
        exit 1
     }