doxygen: specifying builddir is not required
[platform/upstream/libevdev.git] / configure.ac
index d296f49..2e53d95 100644 (file)
@@ -1,13 +1,35 @@
-AC_PREREQ([2.64])
+# Copyright © 2013 Red Hat, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that copyright
+# notice and this permission notice appear in supporting documentation, and
+# that the name of the copyright holders not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  The copyright holders make no representations
+# about the suitability of this software for any purpose.  It is provided "as
+# is" without express or implied warranty.
+#
+# THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+
+AC_PREREQ([2.62])
 
 AC_INIT([libevdev],
-        [0.1],
-        [],
+        [0.5],
+        [https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev],
         [libevdev],
         [])
 
+AC_CONFIG_SRCDIR([libevdev/libevdev.c])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
+AC_USE_SYSTEM_EXTENSIONS
 
 AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
 
@@ -26,36 +48,64 @@ AC_SUBST(LIBEVDEV_LT_VERSION)
 AM_SILENT_RULES([yes])
 
 # Check for programs
-AC_PROG_CC
+AC_PROG_CC_C99
 
 # Initialize libtool
 LT_PREREQ([2.2])
 LT_INIT
+LT_PATH_LD
+
+with_ldflags=""
+if test "x$lt_cv_prog_gnu_ld" = "xyes"; then
+       CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
+                               -Wl,--as-needed \
+                               -Wl,--gc-sections \
+                               -Wl,-z,relro \
+                               -Wl,-z,now])
+fi
+AC_SUBST([GNU_LD_FLAGS], $with_ldflags)
 
 PKG_PROG_PKG_CONFIG()
-PKG_CHECK_MODULES(CHECK, [check])
+PKG_CHECK_MODULES(CHECK, [check >= 0.9.9], [HAVE_CHECK="yes"], [HAVE_CHECK="no"])
+if test "x$HAVE_CHECK" != "xyes"; then
+       AC_MSG_WARN([check not found - skipping building unit tests])
+fi
+AM_CONDITIONAL(BUILD_TESTS, [test "x$HAVE_CHECK" = "xyes"])
 
+with_cflags=""
 if test "x$GCC" = "xyes"; then
-       GCC_CFLAGS="-Wall -Wextra -Wno-unused-parameter -g -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden"
+       CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
+                               -Wall \
+                               -Wextra \
+                               -Wno-unused-parameter \
+                               -Wstrict-prototypes \
+                               -Wmissing-prototypes \
+                               -fvisibility=hidden \
+                               -pipe \
+                               -fno-strict-aliasing \
+                               -ffunction-sections \
+                               -fdata-sections \
+                               -fno-strict-aliasing \
+                               -fdiagnostics-show-option \
+                               -fno-common])
 fi
-AC_SUBST(GCC_CFLAGS)
+AC_SUBST([GCC_CFLAGS], $with_cflags)
 
-AC_PATH_PROG(ASCIIDOC, [a2x])
-if test "x$ASCIIDOC" = "x"; then
-       AC_MSG_WARN([asciidoc not found - unable to build man pages])
-       have_asciidoc=no
+AC_PATH_PROG(DOXYGEN, [doxygen])
+if test "x$DOXYGEN" = "x"; then
+       AC_MSG_WARN([doxygen not found - required for documentation])
+       have_doxygen="no"
 else
-       have_asciidoc=yes
+       have_doxygen="yes"
 fi
-AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
-
+AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$have_doxygen" = "xyes"])
 
 AC_MSG_CHECKING([whether to build with gcov])
 AC_ARG_ENABLE([gcov],
              [AS_HELP_STRING([--enable-gcov],
-                             [Whether to enable coverage testing (default:enabled)])]
+                             [Whether to enable coverage testing (default:disabled)])],
              [],
-             [enable_gcov=yes],
+             [enable_gcov=no],
              )
 AS_IF([test "x$enable_gcov" != "xno"],
       [
@@ -65,6 +115,10 @@ AS_IF([test "x$enable_gcov" != "xno"],
        ],
 )
 
+AM_PATH_PYTHON([2.6])
+AS_IF([$($PYTHON -c "import argparse")], [:],
+       AC_MSG_ERROR([python argparse module is missing]))
+
 AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" != "xno"])
 AC_SUBST([GCOV_CFLAGS])
 AC_SUBST([GCOV_LDFLAGS])
@@ -72,8 +126,15 @@ AC_MSG_RESULT([$enable_gcov])
 
 AC_CONFIG_FILES([Makefile
                 libevdev/Makefile
-                man/Makefile
+                doc/Makefile
+                doc/libevdev.doxygen
                 tools/Makefile
                 test/Makefile
                 libevdev.pc])
 AC_OUTPUT
+
+AC_MSG_RESULT([
+              Build documentation      ${have_doxygen}
+              Build unit-tests         ${HAVE_CHECK}
+              Enable profiling         ${enable_gcov}
+              ])