dnl
dnl Process this file with autoconf to create configure.
-AC_PREREQ([2.57])
+# Initialize Autoconf
+AC_PREREQ([2.60])
AC_INIT([libxkbcommon], [0.1.0],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
-AM_INIT_AUTOMAKE([dist-bzip2 foreign])
+AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_HEADERS([src/config.h])
+AC_CONFIG_MACRO_DIR([m4])
+
+# Initialize Automake
+AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects color-tests parallel-tests])
AM_MAINTAINER_MODE
-AC_PROG_LIBTOOL
+# Get _GNU_SOURCE and friends
+AC_USE_SYSTEM_EXTENSIONS
+
+# Initialize libtool
+LT_INIT
-# Require xorg-macros version 1.1.0 or newer for XORG_WITH_LINT macro
+# Require xorg-macros minimum of 1.8 for AM_SILENT_RULES
m4_ifndef([XORG_MACROS_VERSION],
- [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION([1.1])
-XORG_RELEASE_VERSION
-XORG_CHANGELOG
-
-AC_OUTPUT([
-Makefile
-])
+ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.8)
+XORG_DEFAULT_OPTIONS
+XORG_CHECK_MALLOC_ZERO
+
+# Check for compiler features
+AC_C_INLINE
+AC_C_TYPEOF
+
+# Check for programs
+AC_PROG_LEX
+AC_PROG_YACC
+AC_PATH_PROG([YACC_INST], $YACC)
+if test ! -f "src/xkbcomp/parser.c"; then
+ if test -z "$YACC_INST"; then
+ AC_MSG_ERROR([yacc not found - unable to compile src/xkbcomp/parser.y])
+ fi
+fi
+
+# Checks for library functions.
+AC_CHECK_FUNCS([strcasecmp strncasecmp])
+if test "x$ac_cv_func_strcasecmp" = xno || \
+ test "x$ac_cv_func_strncasecmp" = xno; then
+ AC_MSG_ERROR([C library does not support strcasecmp/strncasecmp])
+fi
+
+AC_CHECK_FUNCS([eaccess euidaccess])
+
+# 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
+ AC_PATH_PROGS([CC_FOR_BUILD], [gcc cc], [cc])
+ else
+ CC_FOR_BUILD="$CC"
+ fi
+fi
+
+if test "x$GCC" = xyes ; then
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+fi
+
+# Obtain protocols headers include directives
+PKG_CHECK_MODULES([X11], [xproto kbproto >= 1.0.4])
+
+# Obtain the path to the X Window System Core Protocol
+AC_MSG_CHECKING([for X11 includedir])
+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)
+
+# Define a configuration option for the XKB config root
+xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config`
+if test "x$xkb_base" = x; then
+ xkb_base=$datadir/X11/xkb
+fi
+AC_ARG_WITH([xkb_config_root],
+ [AS_HELP_STRING([--with-xkb-config-root=<path>],
+ [Set default XKB config root (default: xkeyboard-config install path)])],
+ [XKBCONFIGROOT="$withval"],
+ [XKBCONFIGROOT="$xkb_base"])
+AC_SUBST([XKBCONFIGROOT])
+
+
+AC_CONFIG_FILES([
+ Makefile
+ makekeys/Makefile
+ xkbcommon-uninstalled.pc
+ xkbcommon.pc])
+AC_OUTPUT