Add API for getting unicode representation of a keysym
[profile/ivi/libxkbcommon.git] / configure.ac
index 6b695b9..227026d 100644 (file)
@@ -29,11 +29,14 @@ AC_CONFIG_HEADERS([src/config.h])
 AC_CONFIG_MACRO_DIR([m4])
 
 # Initialize Automake
-AM_INIT_AUTOMAKE([foreign dist-bzip2])
+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],
@@ -42,18 +45,28 @@ 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/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
 
 # Checks for library functions.
-AC_CHECK_FUNCS([strcasecmp])
+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])
@@ -65,47 +78,52 @@ if test "x$CC_FOR_BUILD" = x; then
     fi
 fi
 
-if  test "x$GCC" = xyes ; then
-  CFLAGS="$CFLAGS -fvisibility=hidden"
+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])
+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])
-
-# 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)
 
 # 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_CONFIG_FILES([
-       Makefile
-       xkbcommon.pc
-       include/Makefile
-       makekeys/Makefile
-       src/Makefile
-       src/xkbcomp/Makefile
-       test/Makefile])
+    Makefile
+    makekeys/Makefile
+    xkbcommon-uninstalled.pc
+    xkbcommon.pc])
 AC_OUTPUT