X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=227026d55169b0432590e2551025e772ffd5df2e;hb=e0524296d2e07426c2979025c81bb261d59e74cd;hp=e4019996f30f47147658b502a4e1025fadb9b1bd;hpb=036c23eaf2cd4b0cfa348cbae63908806b94e52f;p=profile%2Fivi%2Flibxkbcommon.git diff --git a/configure.ac b/configure.ac index e401999..227026d 100644 --- a/configure.ac +++ b/configure.ac @@ -20,25 +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]) -AM_MAINTAINER_MODE +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 + +# 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_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 -AC_PROG_LIBTOOL -AC_PROG_CC +# 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 @@ -48,37 +78,52 @@ if test "x$CC_FOR_BUILD" = x; then fi fi -PKG_CHECK_MODULES([X11], [xproto]) +if test "x$GCC" = xyes ; then + CFLAGS="$CFLAGS -fvisibility=hidden" +fi -dnl Ensure we have keysym headers +# 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]) -x11includedir="`$PKG_CONFIG --variable=includedir xproto`/X11" -AC_MSG_RESULT([$x11includedir]) - -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_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]) - -# 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_CWARNFLAGS -XORG_CHANGELOG - -AC_OUTPUT([ -Makefile -include/Makefile -src/Makefile -src/makekeys/Makefile -test/Makefile -]) +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=], + [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