-includex11dir="`$PKG_CONFIG --variable=includex11dir xproto`"
-AC_MSG_RESULT([$includex11dir])
-
-# Obtain full path for keysymdef header file
-AC_MSG_CHECKING([for keysymdef.h])
-KEYSYMDEF_H="$includex11dir/keysymdef.h"
-test -f "$KEYSYMDEF_H" || AC_MSG_ERROR([can't locate keysymdef.h in $includex11dir])
-AC_MSG_RESULT([$KEYSYMDEF_H])
-AC_SUBST([KEYSYMDEF_H])
-
-# Obtain full path for XF86keysym header file
-AC_MSG_CHECKING([for XF86keysym.h])
-XF86KEYSYM_H="$includex11dir/XF86keysym.h"
-test -f "$XF86KEYSYM_H" || AC_MSG_ERROR([can't locate XF86keysym.h in $includex11dir])
-AC_MSG_RESULT([$XF86KEYSYM_H])
-AC_SUBST([XF86KEYSYM_H])
+AC_ARG_VAR([X11_INCLUDEDIR], [Path to X protocol keysym headers])
+if test "x$X11_INCLUDEDIR" = x; then
+ X11_INCLUDEDIR="`$PKG_CONFIG --variable=includex11dir xproto`"
+fi
+if ! test -d "$X11_INCLUDEDIR"; then
+ AC_MSG_ERROR([invalid X11 include path $X11_INCLUDEDIR])
+fi
+AC_MSG_RESULT([$X11_INCLUDEDIR])
+
+AC_MSG_CHECKING([keysym definition files])
+FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h"
+for i in $FILES; do
+ if test -f "$X11_INCLUDEDIR/$i"; then
+ KEYSYMDEFS="$KEYSYMDEFS $X11_INCLUDEDIR/$i"
+ else
+ AC_MSG_ERROR([cannot find $i in $X11_INCLUDEDIR])
+ fi
+done
+AC_MSG_RESULT([$KEYSYMDEFS])
+AC_SUBST(KEYSYMDEFS)