API: add _context prefix to log-related functions
[platform/upstream/libxkbcommon.git] / configure.ac
index 093038f..f2a1ead 100644 (file)
@@ -20,24 +20,55 @@ dnl  PERFORMANCE OF THIS SOFTWARE.
 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])
+    [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 color-tests parallel-tests])
 AM_MAINTAINER_MODE
 
-AC_PROG_LIBTOOL
-AC_PROG_CC
+# Get _GNU_SOURCE and friends
+AC_USE_SYSTEM_EXTENSIONS
+
+# Initialize 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_MEMORY_CHECK_FLAGS
+
+# 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
 
-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
+AC_CHECK_FUNCS([eaccess euidaccess])
 
-dnl Build native compiler needed for makekeys
+# 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
@@ -47,35 +78,47 @@ if test "x$CC_FOR_BUILD" = x; then
     fi
 fi
 
-PKG_CHECK_MODULES([X11], [xproto])
+XORG_TESTSET_CFLAG([CFLAGS], [-fvisibility=hidden])
 
-dnl Ensure we have keysym headers
-AC_MSG_CHECKING([for X11 includedir])
-x11includedir="`$PKG_CONFIG --variable=includedir xproto`/X11"
-AC_MSG_RESULT([$x11includedir])
+# 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_MSG_CHECKING([for keysymdef.h])
-KEYSYMDEF_H="$x11includedir/keysymdef.h"
-test -f "$KEYSYMDEF_H" || AC_MSG_ERROR([can't locate keysymdef.h in $x11includedir])
-AC_MSG_RESULT([$KEYSYMDEF_H])
-AC_SUBST([KEYSYMDEF_H])
+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_MSG_CHECKING([for XF86keysym.h])
-XF86KEYSYM_H="$x11includedir/XF86keysym.h"
-test -f "$XF86KEYSYM_H" || AC_MSG_ERROR([can't locate XF86keysym.h in $x11includedir])
-AC_MSG_RESULT([$XF86KEYSYM_H])
-AC_SUBST([XF86KEYSYM_H])
+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])
 
-# Require xorg-macros version 1.2.0 or newer for XORG_CHANGELOG macro
-m4_ifndef([XORG_MACROS_VERSION],
-    [m4_fatal([must install xorg-macros before running autoconf/autogen.sh])])
-XORG_MACROS_VERSION([1.2.0])
-XORG_RELEASE_VERSION
-XORG_CHANGELOG
-
-AC_OUTPUT([
-Makefile
-include/Makefile
-src/Makefile
-test/Makefile
-])
+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
+    makekeys/Makefile
+    xkbcommon-uninstalled.pc
+    xkbcommon.pc])
+AC_OUTPUT