config: use xproto pkgconfig includex11dir variable
[platform/upstream/libxkbcommon.git] / configure.ac
index 61d6f2f..4fa9ea7 100644 (file)
@@ -35,17 +35,6 @@ AM_MAINTAINER_MODE
 # Initialize libtool
 AC_PROG_LIBTOOL
 
-AC_PROG_YACC
-AC_PROG_LEX
-
-m4_ifndef([PKG_PROG_PKG_CONFIG],
-    [m4_fatal([Could not locate the pkg-config autoconf macros.
-    These are usually located in /usr/share/aclocal/pkg.m4. If your
-    macros are in a different location, try setting the environment
-    variable ACLOCAL="aclocal -I/other/macro/dir" before running
-    autoreconf/autogen.sh.])])
-PKG_PROG_PKG_CONFIG
-
 # Require xorg-macros minimum of 1.8 for AM_SILENT_RULES
 m4_ifndef([XORG_MACROS_VERSION],
          [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
@@ -53,7 +42,20 @@ XORG_MACROS_VERSION(1.8)
 XORG_DEFAULT_OPTIONS
 XORG_CHECK_MALLOC_ZERO
 
-dnl Build native compiler needed for makekeys
+# Check for programs
+AC_PROG_LEX
+AC_PROG_YACC
+AC_PATH_PROG([YACC_INST], $YACC)
+if test ! -f "src/xkbcomp/xkbparse.c"; then
+   if test -z "$YACC_INST"; then
+      AC_MSG_ERROR([yacc not found - unable to compile src/xkbcomp/xkbparse.y])
+   fi
+fi
+
+# Checks for library functions.
+AC_CHECK_FUNCS([strcasecmp])
+
+# Build native compiler needed for makekeys
 AC_ARG_VAR([CC_FOR_BUILD], [Build native C compiler program])
 if test "x$CC_FOR_BUILD" = x; then
     if test "$cross_compiling" != no; then
@@ -63,33 +65,36 @@ if test "x$CC_FOR_BUILD" = x; then
     fi
 fi
 
-AC_CHECK_FUNCS([strcasecmp])
-
 if  test "x$GCC" = xyes ; then
   CFLAGS="$CFLAGS -fvisibility=hidden"
 fi
 
+# Obtain protocols headers include directives
 PKG_CHECK_MODULES([X11], [xproto kbproto >= 1.0.5])
 
-dnl Ensure we have keysym headers
+# Obtain the path to the X Window System Core Protocol
 AC_MSG_CHECKING([for X11 includedir])
-x11includedir="`$PKG_CONFIG --variable=includedir xproto`/X11"
-AC_MSG_RESULT([$x11includedir])
+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="$x11includedir/keysymdef.h"
-test -f "$KEYSYMDEF_H" || AC_MSG_ERROR([can't locate keysymdef.h in $x11includedir])
+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="$x11includedir/XF86keysym.h"
-test -f "$XF86KEYSYM_H" || AC_MSG_ERROR([can't locate XF86keysym.h in $x11includedir])
+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])
 
+# Aggregate the headers full paths for makekeys
 AC_SUBST([KS_HEADERS], ['$(KEYSYMDEF_H) $(XF86KEYSYM_H)'])
 
+# Define a configuration option for the XKB config root
 AC_ARG_WITH([xkb_config_root],
     [AS_HELP_STRING([--with-xkb-config-root=<paths>],
         [Set default XKB config root (default: ${datadir}/X11/xkb)])],
@@ -98,12 +103,11 @@ AC_ARG_WITH([xkb_config_root],
 AC_SUBST([XKBCONFIGROOT])
 
 AC_CONFIG_FILES([
-Makefile
-xkbcommon.pc
-include/Makefile
-src/Makefile
-src/makekeys/Makefile
-src/xkbcomp/Makefile
-test/Makefile
-])
+       Makefile
+       xkbcommon.pc
+       include/Makefile
+       src/Makefile
+       src/makekeys/Makefile
+       src/xkbcomp/Makefile
+       test/Makefile])
 AC_OUTPUT