# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([libxkbcommon], [0.1.0],
- [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon])
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])
+AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects color-tests parallel-tests])
AM_MAINTAINER_MODE
+# Get _GNU_SOURCE and friends
+AC_USE_SYSTEM_EXTENSIONS
+
# Initialize libtool
-AC_PROG_LIBTOOL
+LT_INIT
# 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])])
XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS
-XORG_CHECK_MALLOC_ZERO
+XORG_MEMORY_CHECK_FLAGS
-# Get _GNU_SOURCE and friends
-AC_USE_SYSTEM_EXTENSIONS
+# 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/xkbparse.c"; then
+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/xkbparse.y])
+ AC_MSG_ERROR([yacc not found - unable to compile src/xkbcomp/parser.y])
fi
fi
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
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])
-includex11dir="`$PKG_CONFIG --variable=includex11dir xproto`"
-AC_MSG_RESULT([$includex11dir])
-
-AC_MSG_CHECKING([keysym definitions])
-KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11
-FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h"
-for i in $FILES; do
- if test -f "$KEYSYMDEFDIR/$i"; then
- KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i"
- elif test "x$i" = "xkeysymdef.h"; then
- AC_MSG_ERROR([Cannot find keysymdef.h])
- fi
-done
-AC_MSG_RESULT([$KEYSYMDEFS])
-AC_SUBST(KEYSYMDEFS)
+XORG_TESTSET_CFLAG([CFLAGS], [-fvisibility=hidden])
# 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=<paths>],
- [Set default XKB config root (default: ${datadir}/X11/xkb)])],
+ [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_ARG_WITH([default_rules],
+ [AS_HELP_STRING([--with-default-rules=<path>],
+ [Default XKB ruleset (default: evdev)])],
+ [DEFAULT_XKB_RULES="$withval"],
+ [DEFAULT_XKB_RULES="evdev"])
+AC_DEFINE_UNQUOTED([DEFAULT_XKB_RULES], ["$DEFAULT_XKB_RULES"],
+ [Default XKB ruleset])
+
+AC_ARG_WITH([default_model],
+ [AS_HELP_STRING([--with-default-model=<path>],
+ [Default XKB model (default: pc105)])],
+ [DEFAULT_XKB_MODEL="$withval"],
+ [DEFAULT_XKB_MODEL="pc105"])
+AC_DEFINE_UNQUOTED([DEFAULT_XKB_MODEL], ["$DEFAULT_XKB_MODEL"],
+ [Default XKB model])
+
+AC_ARG_WITH([default_layout],
+ [AS_HELP_STRING([--with-default-layout=<path>],
+ [Default XKB layout (default: us)])],
+ [DEFAULT_XKB_LAYOUT="$withval"],
+ [DEFAULT_XKB_LAYOUT="us"])
+AC_DEFINE_UNQUOTED([DEFAULT_XKB_LAYOUT], ["$DEFAULT_XKB_LAYOUT"],
+ [Default XKB layout])
+
AC_CONFIG_FILES([
- Makefile
- test/Makefile
- xkbcommon.pc])
+ Makefile
+ makekeys/Makefile
+ xkbcommon-uninstalled.pc
+ xkbcommon.pc])
AC_OUTPUT