Blame configure.ac

Packit 57e92c
# Copyright © 2013 Red Hat, Inc.
Packit 57e92c
#
Packit 57e92c
# Permission to use, copy, modify, distribute, and sell this software and its
Packit 57e92c
# documentation for any purpose is hereby granted without fee, provided that
Packit 57e92c
# the above copyright notice appear in all copies and that both that copyright
Packit 57e92c
# notice and this permission notice appear in supporting documentation, and
Packit 57e92c
# that the name of the copyright holders not be used in advertising or
Packit 57e92c
# publicity pertaining to distribution of the software without specific,
Packit 57e92c
# written prior permission.  The copyright holders make no representations
Packit 57e92c
# about the suitability of this software for any purpose.  It is provided "as
Packit 57e92c
# is" without express or implied warranty.
Packit 57e92c
#
Packit 57e92c
# THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
Packit 57e92c
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
Packit 57e92c
# EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
Packit 57e92c
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
Packit 57e92c
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
Packit 57e92c
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
Packit 57e92c
# OF THIS SOFTWARE.
Packit 57e92c
Packit 57e92c
AC_PREREQ([2.62])
Packit 57e92c
Packit 57e92c
AC_INIT([libevdev],
Packit 57e92c
        [1.8.0],
Packit 57e92c
        [https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev],
Packit 57e92c
        [libevdev],
Packit 57e92c
        [http://freedesktop.org/wiki/Software/libevdev/])
Packit 57e92c
Packit 57e92c
AC_CONFIG_SRCDIR([libevdev/libevdev.c])
Packit 57e92c
AC_CONFIG_HEADERS([config.h])
Packit 57e92c
AC_CONFIG_MACRO_DIR([m4])
Packit 57e92c
AC_CONFIG_AUX_DIR([build-aux])
Packit 57e92c
AC_USE_SYSTEM_EXTENSIONS
Packit 57e92c
Packit 57e92c
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz subdir-objects])
Packit 57e92c
Packit 57e92c
# Before making a release, the LIBEVDEV_LT_VERSION string should be
Packit 57e92c
# modified.
Packit 57e92c
# The string is of the form C:R:A.
Packit 57e92c
# - If interfaces have been changed or added, but binary compatibility has
Packit 57e92c
#   been preserved, change to C+1:0:A+1
Packit 57e92c
# - If binary compatibility has been broken (eg removed or changed interfaces)
Packit 57e92c
#   change to C+1:0:0
Packit 57e92c
# - If the interface is the same as the previous version, change to C:R+1:A
Packit 57e92c
LIBEVDEV_LT_VERSION=5:0:3
Packit 57e92c
AC_SUBST(LIBEVDEV_LT_VERSION)
Packit 57e92c
Packit 57e92c
Packit 57e92c
AM_SILENT_RULES([yes])
Packit 57e92c
Packit 57e92c
# Check for programs
Packit 57e92c
AC_PROG_CC_C99
Packit 57e92c
Packit 57e92c
# Initialize libtool
Packit 57e92c
LT_PREREQ([2.2])
Packit 57e92c
LT_INIT
Packit 57e92c
LT_PATH_LD
Packit 57e92c
Packit Service 42bd35
with_ldflags=""
Packit Service 42bd35
if test "x$lt_cv_prog_gnu_ld" = "xyes"; then
Packit Service 42bd35
	CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
Packit Service 42bd35
				-Wl,--as-needed \
Packit Service 42bd35
				-Wl,--gc-sections \
Packit Service 42bd35
				-Wl,-z,relro \
Packit Service 42bd35
				-Wl,-z,now])
Packit Service 42bd35
fi
Packit Service 42bd35
AC_SUBST([GNU_LD_FLAGS], $with_ldflags)
Packit Service 42bd35
Packit 57e92c
AC_CHECK_LIB([m], [round])
Packit 57e92c
Packit 57e92c
PKG_PROG_PKG_CONFIG()
Packit 57e92c
PKG_CHECK_MODULES(CHECK, [check >= 0.9.9], [HAVE_CHECK="yes"], [HAVE_CHECK="no"])
Packit 57e92c
if test "x$HAVE_CHECK" = "xyes"; then
Packit 57e92c
	AC_PATH_PROG(VALGRIND, [valgrind])
Packit 57e92c
else
Packit 57e92c
	AC_MSG_WARN([check not found - skipping building unit tests])
Packit 57e92c
fi
Packit 57e92c
AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
Packit 57e92c
AM_CONDITIONAL(ENABLE_RUNTIME_TESTS, [test "x$HAVE_CHECK" = "xyes"])
Packit 57e92c
AM_CONDITIONAL(ENABLE_STATIC_LINK_TEST, [test "x$enable_static" = "xyes"])
Packit 57e92c
Packit 57e92c
with_cflags=""
Packit 57e92c
if test "x$GCC" = "xyes"; then
Packit 57e92c
	CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
Packit 57e92c
				-Wall \
Packit 57e92c
				-Wextra \
Packit 57e92c
				-Wno-unused-parameter \
Packit 57e92c
				-Wstrict-prototypes \
Packit 57e92c
				-Wmissing-prototypes \
Packit Service 42bd35
				-fvisibility=hidden \
Packit Service 42bd35
				-pipe \
Packit Service 42bd35
				-fno-strict-aliasing \
Packit Service 42bd35
				-ffunction-sections \
Packit Service 42bd35
				-fdata-sections \
Packit Service 42bd35
				-fno-strict-aliasing \
Packit Service 42bd35
				-fdiagnostics-show-option \
Packit Service 42bd35
				-fno-common])
Packit 57e92c
fi
Packit 57e92c
AC_SUBST([GCC_CFLAGS], $with_cflags)
Packit 57e92c
Packit 57e92c
AC_PATH_PROG(DOXYGEN, [doxygen])
Packit 57e92c
if test "x$DOXYGEN" = "x"; then
Packit 57e92c
	AC_MSG_WARN([doxygen not found - required for documentation])
Packit 57e92c
	have_doxygen="no"
Packit 57e92c
else
Packit 57e92c
	have_doxygen="yes"
Packit 57e92c
fi
Packit 57e92c
AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$have_doxygen" = "xyes"])
Packit 57e92c
Packit 57e92c
AC_MSG_CHECKING([whether to build with gcov])
Packit 57e92c
AC_ARG_ENABLE([gcov],
Packit 57e92c
	      [AS_HELP_STRING([--enable-gcov],
Packit 57e92c
			      [Whether to enable coverage testing (default:disabled)])],
Packit 57e92c
	      [],
Packit 57e92c
	      [enable_gcov=no],
Packit 57e92c
	      )
Packit 57e92c
AS_IF([test "x$enable_gcov" != "xno"],
Packit 57e92c
      [
Packit 57e92c
       GCOV_CFLAGS="-fprofile-arcs -ftest-coverage"
Packit 57e92c
       GCOV_LDFLAGS="-lgcov"
Packit 57e92c
       enable_gcov=yes
Packit 57e92c
       ],
Packit 57e92c
)
Packit 57e92c
AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" != "xno"])
Packit 57e92c
AC_SUBST([GCOV_CFLAGS])
Packit 57e92c
AC_SUBST([GCOV_LDFLAGS])
Packit 57e92c
AC_MSG_RESULT([$enable_gcov])
Packit 57e92c
Packit 57e92c
AM_PATH_PYTHON([2.6])
Packit 57e92c
AC_PATH_PROG(CAT, [cat])
Packit 57e92c
Packit 57e92c
# nm to check for leaking symbols in the static library
Packit 57e92c
AC_PATH_PROG(NM, [nm])
Packit 57e92c
AM_CONDITIONAL(HAVE_NM, [test "x$NM" != "x"])
Packit 57e92c
if test "x$enable_static" = "xno"; then
Packit 57e92c
	static_symbol_leaks_test="no - static build disabled"
Packit 57e92c
else
Packit 57e92c
	if test "x$NM" = "x"; then
Packit 57e92c
		AC_MSG_WARN([nm not found - skipping symbol leak test])
Packit 57e92c
		have_nm="no"
Packit 57e92c
		static_symbol_leaks_test="no - nm not found"
Packit 57e92c
	else
Packit 57e92c
		have_nm="yes"
Packit 57e92c
		static_symbol_leaks_test="yes"
Packit 57e92c
	fi
Packit 57e92c
fi
Packit 57e92c
Packit 57e92c
AM_CONDITIONAL(ENABLE_STATIC_SYMBOL_LEAKS_TEST, [test "x$static_symbol_leaks_test" = "xyes"])
Packit 57e92c
Packit 57e92c
AC_CONFIG_FILES([Makefile
Packit 57e92c
		 libevdev/Makefile
Packit 57e92c
		 doc/Makefile
Packit 57e92c
		 doc/libevdev.doxygen
Packit 57e92c
		 doc/libevdev.man
Packit 57e92c
		 tools/Makefile
Packit 57e92c
		 test/Makefile
Packit 57e92c
		 libevdev.pc])
Packit 57e92c
AC_OUTPUT
Packit 57e92c
Packit 57e92c
AC_MSG_RESULT([
Packit 57e92c
	       Prefix				${prefix}
Packit 57e92c
	       Libdir				${libdir}
Packit 57e92c
Packit 57e92c
	       Build documentation		${have_doxygen}
Packit 57e92c
	       Enable unit-tests		${HAVE_CHECK}
Packit 57e92c
	       Enable profiling			${enable_gcov}
Packit 57e92c
	       Static library symbol check	${static_symbol_leaks_test}
Packit 57e92c
	       ])