2 # Process this file with autoconf to produce a configure script.
7 AC_INIT([corosync-qdevice],
8 m4_esyscmd([build-aux/git-version-gen .tarball-version .gitarchivever]),
9 [users@clusterlabs.org])
11 AC_USE_SYSTEM_EXTENSIONS
13 AM_INIT_AUTOMAKE([foreign 1.11])
18 AM_SILENT_RULES([yes])
20 AC_CONFIG_SRCDIR([qdevices/corosync-qdevice.c])
21 AC_CONFIG_HEADER([config.h])
22 AC_CONFIG_MACRO_DIR([m4])
28 dnl Fix default variables - "prefix" variable if not specified
29 if test "$prefix" = "NONE"; then
32 dnl Fix "localstatedir" variable if not specified
33 if test "$localstatedir" = "\${prefix}/var"; then
36 dnl Fix "sysconfdir" variable if not specified
37 if test "$sysconfdir" = "\${prefix}/etc"; then
40 dnl Fix "libdir" variable if not specified
41 if test "$libdir" = "\${exec_prefix}/lib"; then
42 if test -e /usr/lib64; then
50 if test "$srcdir" = "."; then
51 AC_MSG_NOTICE([building in place srcdir:$srcdir])
52 AC_DEFINE([BUILDING_IN_PLACE], 1, [building in place])
54 AC_MSG_NOTICE([building out of tree srcdir:$srcdir])
57 # Checks for programs.
59 # check stolen from gnulib/m4/gnu-make.m4
60 if ! ${MAKE-make} --version /cannot/make/this >/dev/null 2>&1; then
61 AC_MSG_ERROR([you don't seem to have GNU make; it is required])
70 if test "x$ac_cv_prog_cc_c99" = "xno"; then
71 AC_MSG_ERROR(["C99 support is required"])
77 AC_PATH_PROG([BASHPATH], [bash])
78 AC_CHECK_PROGS([GROFF], [groff])
80 # Checks for typedefs.
93 # Checks for libraries.
94 PKG_CHECK_MODULES([nss],[nss])
95 PKG_CHECK_MODULES([qb], [libqb])
96 PKG_CHECK_MODULES([corosync_common], [libcorosync_common])
97 PKG_CHECK_MODULES([cmap], [libcmap])
98 PKG_CHECK_MODULES([votequorum], [libvotequorum])
100 AC_CONFIG_FILES([Makefile
106 # ===============================================
108 # ===============================================
110 ## helper for CC stuff
113 CPPFLAGS="$CPPFLAGS $@ $unknown_warnings_as_errors"
114 AC_MSG_CHECKING([whether $CC supports "$@"])
115 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
116 [RC=0; AC_MSG_RESULT([yes])],
117 [RC=1; AC_MSG_RESULT([no])])
126 AC_ARG_ENABLE([fatal-warnings],
127 [ --enable-fatal-warnings : enable fatal warnings. ],
130 AC_ARG_ENABLE([debug],
131 [ --enable-debug : enable debug build. ],
134 AC_ARG_ENABLE([secure-build],
135 [ --enable-secure-build : enable PIE/RELRO build. ],
137 [enable_secure_build="yes"])
139 AC_ARG_ENABLE([user-flags],
140 [ --enable-user-flags : rely on user environment. ],
142 AM_CONDITIONAL(BUILD_USERFLAGS, test x$enable_user_flags = xyes)
144 AC_ARG_ENABLE([systemd],
145 [ --enable-systemd : Build with libsystemd and install systemd service files],,
146 [ enable_systemd="no" ])
147 AM_CONDITIONAL(INSTALL_SYSTEMD, test x$enable_systemd = xyes)
149 AC_ARG_WITH([initconfigdir],
150 [AS_HELP_STRING([--with-initconfigdir=DIR],
151 [configuration directory @<:@SYSCONFDIR/sysconfig@:>@])],
152 [INITCONFIGDIR="$withval"],
153 [INITCONFIGDIR='${sysconfdir}/sysconfig'])
154 AC_SUBST([INITCONFIGDIR])
156 AC_ARG_WITH([initddir],
157 [ --with-initddir=DIR : path to init script directory. ],
158 [ INITDDIR="$withval" ],
159 [ INITDDIR="$sysconfdir/init.d" ])
161 AC_ARG_WITH([systemddir],
162 [ --with-systemddir=DIR : path to systemd unit files directory. ],
163 [ SYSTEMDDIR="$withval" ],
164 [ SYSTEMDDIR="/lib/systemd/system" ])
166 AC_ARG_ENABLE([qdevices],
167 [ --disable-qdevices : Quorum devices support ],,
168 [ enable_qdevices="yes" ])
169 AM_CONDITIONAL(BUILD_QDEVICES, test x$enable_qdevices = xyes)
170 AC_ARG_ENABLE([qnetd],
171 [ --disable-qnetd : Quorum Net Daemon support ],,
172 [ enable_qnetd="yes" ])
173 AM_CONDITIONAL(BUILD_QNETD, test x$enable_qnetd = xyes)
174 AC_ARG_ENABLE([runautogen],
175 [ --enable-runautogen : run autogen.sh (RPM specfile)],,
176 [ enable_runautogen="no" ])
177 AM_CONDITIONAL([BUILD_RUNAUTOGEN], [test x$enable_runautogen = xyes])
179 # *FLAGS handling goes here
182 ENV_CPPFLAGS="$CPPFLAGS"
183 ENV_LDFLAGS="$LDFLAGS"
186 if test "x${enable_debug}" = xyes; then
187 AC_DEFINE_UNQUOTED([DEBUG], [1], [Compiling Debugging code])
189 PACKAGE_FEATURES="$PACKAGE_FEATURES debug"
195 if test "x${GCC}" = xyes; then
201 if test "x${enable_systemd}" = xyes; then
202 PKG_CHECK_MODULES([libsystemd], [libsystemd])
203 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [have systemd interface library])
204 PACKAGE_FEATURES="$PACKAGE_FEATURES systemd"
206 if test "x${enable_qdevices}" = xyes; then
207 PACKAGE_FEATURES="$PACKAGE_FEATURES qdevices"
209 if test "x${enable_qnetd}" = xyes; then
210 PACKAGE_FEATURES="$PACKAGE_FEATURES qnetd"
222 declaration-after-statement
227 missing-format-attribute
237 for j in $WARNLIST; do
238 if cc_supports_flag -W$j; then
239 EXTRA_WARNINGS="$EXTRA_WARNINGS -W$j";
243 if test "x${enable_fatal_warnings}" = xyes && \
244 cc_supports_flag -Werror ; then
245 AC_MSG_NOTICE([Enabling Fatal Warnings (-Werror)])
246 WERROR_CFLAGS="-Werror"
247 PACKAGE_FEATURES="$PACKAGE_FEATURES fatal-warnings"
252 # don't add addtional cflags
253 if test "x${enable_user_flags}" = xyes; then
259 if test "x${enable_secure_build}" = xyes; then
260 # stolen from apache configure snippet
261 AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
263 save_LDFLAGS=$LDFLAGS
264 CFLAGS="$CFLAGS -fPIE"
265 LDFLAGS="$LDFLAGS -pie"
266 AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
267 [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no], [ap_cv_cc_pie=yes])
269 LDFLAGS=$save_LDFLAGS
271 if test "$ap_cv_cc_pie" = "yes"; then
272 SEC_FLAGS="$SEC_FLAGS -fPIE"
273 SEC_LDFLAGS="$SEC_LDFLAGS -pie"
274 PACKAGE_FEATURES="$PACKAGE_FEATURES pie"
278 AC_CACHE_CHECK([whether $CC accepts RELRO flags], [ap_cv_cc_relro], [
279 save_LDFLAGS=$LDFLAGS
280 LDFLAGS="$LDFLAGS -Wl,-z,relro"
281 AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
282 [ap_cv_cc_relro=yes], [ap_cv_cc_relro=no], [ap_cv_cc_relro=yes])
283 LDFLAGS=$save_LDFLAGS
285 if test "$ap_cv_cc_relro" = "yes"; then
286 SEC_LDFLAGS="$SEC_LDFLAGS -Wl,-z,relro"
287 PACKAGE_FEATURES="$PACKAGE_FEATURES relro"
290 AC_CACHE_CHECK([whether $CC accepts BINDNOW flags], [ap_cv_cc_bindnow], [
291 save_LDFLAGS=$LDFLAGS
292 LDFLAGS="$LDFLAGS -Wl,-z,now"
293 AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
294 [ap_cv_cc_bindnow=yes], [ap_cv_cc_bindnow=no], [ap_cv_cc_bindnow=yes])
295 LDFLAGS=$save_LDFLAGS
297 if test "$ap_cv_cc_bindnow" = "yes"; then
298 SEC_LDFLAGS="$SEC_LDFLAGS -Wl,-z,now"
299 PACKAGE_FEATURES="$PACKAGE_FEATURES bindnow"
303 AC_CACHE_CHECK([whether $CC accepts "--as-needed"], [ap_cv_cc_as_needed], [
304 save_LDFLAGS=$LDFLAGS
305 LDFLAGS="$LDFLAGS -Wl,--as-needed"
306 AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
307 [ap_cv_cc_as_needed=yes], [ap_cv_cc_as_needed=no], [ap_cv_cc_as_needed=yes])
308 LDFLAGS=$save_LDFLAGS
311 # define global include dirs
312 INCLUDE_DIRS="$INCLUDE_DIRS -I\$(top_builddir)/include -I\$(top_srcdir)/include"
314 # final build of *FLAGS
315 CFLAGS="$ENV_CFLAGS $lt_prog_compiler_pic $SEC_FLAGS $OPT_CFLAGS $GDB_FLAGS \
318 CPPFLAGS="$ENV_CPPFLAGS $INCLUDE_DIRS"
319 LDFLAGS="$ENV_LDFLAGS $lt_prog_compiler_pic $SEC_LDFLAGS"
321 if test "$ap_cv_cc_as_needed" = "yes"; then
322 LDFLAGS="$LDFLAGS -Wl,--as-needed"
325 # substitute what we need:
328 AC_SUBST([SYSTEMDDIR])
330 AC_SUBST([LOGROTATEDIR])
337 AC_SUBST([NSS_LDFLAGS])
339 AM_CONDITIONAL(BUILD_HTML_DOCS, test -n "${GROFF}")
341 AC_DEFINE_UNQUOTED([LOCALSTATEDIR], "$(eval echo ${localstatedir})", [localstate directory])
343 COROSYSCONFDIR=${sysconfdir}/corosync
344 AC_SUBST([COROSYSCONFDIR])
345 AC_DEFINE_UNQUOTED([COROSYSCONFDIR], "$(eval echo ${COROSYSCONFDIR})", [corosync-qdevice config directory])
347 AC_DEFINE_UNQUOTED([PACKAGE_FEATURES], "${PACKAGE_FEATURES}", [corosync-qdevice built-in features])
352 AC_MSG_RESULT([$PACKAGE configuration:])
353 AC_MSG_RESULT([ Version = ${VERSION}])
354 AC_MSG_RESULT([ Prefix = ${prefix}])
355 AC_MSG_RESULT([ Executables = ${sbindir}])
356 AC_MSG_RESULT([ Man pages = ${mandir}])
357 AC_MSG_RESULT([ Doc dir = ${docdir}])
358 AC_MSG_RESULT([ Libraries = ${libdir}])
359 AC_MSG_RESULT([ Header files = ${includedir}])
360 AC_MSG_RESULT([ Arch-independent files = ${datadir}])
361 AC_MSG_RESULT([ State information = ${localstatedir}])
362 AC_MSG_RESULT([ System configuration = ${sysconfdir}])
363 AC_MSG_RESULT([ System init.d directory = ${INITDDIR}])
364 AC_MSG_RESULT([ System systemd directory = ${SYSTEMDDIR}])
365 AC_MSG_RESULT([ Log directory = ${LOGDIR}])
366 AC_MSG_RESULT([ Log rotate directory = ${LOGROTATEDIR}])
367 AC_MSG_RESULT([ corosync config dir = ${COROSYSCONFDIR}])
368 AC_MSG_RESULT([ init config directory = ${INITCONFIGDIR}])
369 AC_MSG_RESULT([ Features = ${PACKAGE_FEATURES}])
371 AC_MSG_RESULT([$PACKAGE build info:])
372 AC_MSG_RESULT([ Default optimization = ${OPT_CFLAGS}])
373 AC_MSG_RESULT([ Default debug options = ${GDB_FLAGS}])
374 AC_MSG_RESULT([ Extra compiler warnings = ${EXTRA_WARNING}])
375 AC_MSG_RESULT([ Env. defined CFLAG = ${ENV_CFLAGS}])
376 AC_MSG_RESULT([ Env. defined CPPFLAGS = ${ENV_CPPFLAGS}])
377 AC_MSG_RESULT([ Env. defined LDFLAGS = ${ENV_LDFLAGS}])
378 AC_MSG_RESULT([ Fatal War. CFLAGS = ${WERROR_CFLAGS}])
379 AC_MSG_RESULT([ Final CFLAGS = ${CFLAGS}])
380 AC_MSG_RESULT([ Final CPPFLAGS = ${CPPFLAGS}])
381 AC_MSG_RESULT([ Final LDFLAGS = ${LDFLAGS}])