• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © 2013 Red Hat, Inc.
2#
3# Permission to use, copy, modify, distribute, and sell this software and its
4# documentation for any purpose is hereby granted without fee, provided that
5# the above copyright notice appear in all copies and that both that copyright
6# notice and this permission notice appear in supporting documentation, and
7# that the name of the copyright holders not be used in advertising or
8# publicity pertaining to distribution of the software without specific,
9# written prior permission.  The copyright holders make no representations
10# about the suitability of this software for any purpose.  It is provided "as
11# is" without express or implied warranty.
12#
13# THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
14# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
15# EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
16# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
17# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
19# OF THIS SOFTWARE.
20
21AC_PREREQ([2.62])
22
23# change meson version too
24AC_INIT([libevdev],
25        [1.10.0],
26        [https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev],
27        [libevdev],
28        [http://freedesktop.org/wiki/Software/libevdev/])
29
30AC_CONFIG_SRCDIR([libevdev/libevdev.c])
31AC_CONFIG_HEADERS([config.h])
32AC_CONFIG_MACRO_DIR([m4])
33AC_CONFIG_AUX_DIR([build-aux])
34AC_USE_SYSTEM_EXTENSIONS
35
36AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz subdir-objects])
37
38# DO NOT MODIFY THIS
39# Use symbol versioning instead.
40LIBEVDEV_LT_VERSION=5:0:3
41AC_SUBST(LIBEVDEV_LT_VERSION)
42
43
44AM_SILENT_RULES([yes])
45
46# Check for programs
47AC_PROG_CC_C99
48
49# Initialize libtool
50LT_PREREQ([2.2])
51LT_INIT
52LT_PATH_LD
53
54with_ldflags=""
55if test "x$lt_cv_prog_gnu_ld" = "xyes"; then
56	CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
57				-Wl,--as-needed \
58				-Wl,--gc-sections \
59				-Wl,-z,relro \
60				-Wl,-z,now])
61fi
62AC_SUBST([GNU_LD_FLAGS], $with_ldflags)
63
64case "${host_os}" in
65    freebsd*)
66AC_SUBST([OS], [freebsd])
67        ;;
68    *)
69AC_SUBST([OS], [linux])
70        ;;
71esac
72
73AC_CHECK_LIB([m], [round])
74
75PKG_PROG_PKG_CONFIG()
76PKG_CHECK_MODULES(CHECK, [check >= 0.9.9], [HAVE_CHECK="yes"], [HAVE_CHECK="no"])
77if test "x$HAVE_CHECK" = "xyes"; then
78	AC_PATH_PROG(VALGRIND, [valgrind])
79else
80	AC_MSG_WARN([check not found - skipping building unit tests])
81fi
82AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
83AM_CONDITIONAL(ENABLE_RUNTIME_TESTS, [test "x$HAVE_CHECK" = "xyes"])
84AM_CONDITIONAL(ENABLE_STATIC_LINK_TEST, [test "x$enable_static" = "xyes"])
85
86with_cflags=""
87if test "x$GCC" = "xyes"; then
88	CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
89				-Wall \
90				-Wextra \
91				-Wno-unused-parameter \
92				-Wstrict-prototypes \
93				-Wmissing-prototypes \
94				-fvisibility=hidden \
95				-pipe \
96				-fno-strict-aliasing \
97				-ffunction-sections \
98				-fdata-sections \
99				-fno-strict-aliasing \
100				-fdiagnostics-show-option \
101				-fno-common])
102fi
103AC_SUBST([GCC_CFLAGS], $with_cflags)
104
105AC_PATH_PROG(DOXYGEN, [doxygen])
106if test "x$DOXYGEN" = "x"; then
107	AC_MSG_WARN([doxygen not found - required for documentation])
108	have_doxygen="no"
109else
110	have_doxygen="yes"
111fi
112AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$have_doxygen" = "xyes"])
113
114AC_MSG_CHECKING([whether to build with gcov])
115AC_ARG_ENABLE([gcov],
116	      [AS_HELP_STRING([--enable-gcov],
117			      [Whether to enable coverage testing (default:disabled)])],
118	      [],
119	      [enable_gcov=no],
120	      )
121AS_IF([test "x$enable_gcov" != "xno"],
122      [
123       GCOV_CFLAGS="-fprofile-arcs -ftest-coverage"
124       GCOV_LDFLAGS="-lgcov"
125       enable_gcov=yes
126       ],
127)
128AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" != "xno"])
129AC_SUBST([GCOV_CFLAGS])
130AC_SUBST([GCOV_LDFLAGS])
131AC_MSG_RESULT([$enable_gcov])
132
133AC_MSG_CHECKING([whether to build with coverity support])
134AC_ARG_ENABLE([coverity],
135	      [AS_HELP_STRING([--enable-coverity],
136			      [Whether to build with coverity support (default: disabled)])],
137	      [],
138	      [enable_coverity=no],
139	      )
140AS_IF([test "x$enable_coverity" != "xno"],
141      [
142       AC_DEFINE([_Float128], [__uint128_t], [Override for coverity])
143       AC_DEFINE([_Float32], [int], [Override for coverity])
144       AC_DEFINE([_Float32x], [int], [Override for coverity])
145       AC_DEFINE([_Float64], [long], [Override for coverity])
146       AC_DEFINE([_Float64x], [long], [Override for coverity])
147       enable_coverity=yes
148       ],
149)
150AC_MSG_RESULT([$enable_coverity])
151
152
153AM_PATH_PYTHON([2.6])
154
155# nm to check for leaking symbols in the static library
156AC_PATH_PROG(NM, [nm])
157AM_CONDITIONAL(HAVE_NM, [test "x$NM" != "x"])
158if test "x$enable_static" = "xno"; then
159	static_symbol_leaks_test="no - static build disabled"
160else
161	if test "x$NM" = "x"; then
162		AC_MSG_WARN([nm not found - skipping symbol leak test])
163		have_nm="no"
164		static_symbol_leaks_test="no - nm not found"
165	else
166		have_nm="yes"
167		static_symbol_leaks_test="yes"
168	fi
169fi
170
171AM_CONDITIONAL(ENABLE_STATIC_SYMBOL_LEAKS_TEST, [test "x$static_symbol_leaks_test" = "xyes"])
172
173AC_CONFIG_FILES([Makefile
174		 libevdev/Makefile
175		 doc/Makefile
176		 doc/libevdev.doxygen
177		 doc/libevdev.man
178		 tools/Makefile
179		 test/Makefile
180		 libevdev.pc])
181AC_OUTPUT
182
183AC_MSG_RESULT([
184	       Prefix				${prefix}
185	       Libdir				${libdir}
186
187	       Build documentation		${have_doxygen}
188	       Enable unit-tests		${HAVE_CHECK}
189	       Enable profiling			${enable_gcov}
190	       Enable coverity support		${enable_coverity}
191	       Static library symbol check	${static_symbol_leaks_test}
192	       ])
193