From 2e8be3fa0df7b6ccf953572ab341ddd9c45db878 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 15 May 2012 15:24:31 +0200 Subject: build-sys: modernize build system --- configure.ac | 99 ++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 36 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 7024cbc..5a77363 100644 --- a/configure.ac +++ b/configure.ac @@ -18,23 +18,27 @@ # You should have received a copy of the GNU General Public License # along with RealtimeKit. If not, see . -AC_PREREQ(2.63) +AC_PREREQ(2.68) + +AC_INIT([rtkit], + [0.11], + [mzegxvg (at) 0pointer (dot) net], + [rtkit], + [http://git.0pointer.de/?p=rtkit.git]) -AC_INIT([rtkit], 0.10, [mzegxvg (at) 0pointer (dot) net]) AC_CONFIG_SRCDIR([rtkit-daemon.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR(m4) +AC_CONFIG_AUX_DIR([build-aux]) -AM_INIT_AUTOMAKE([foreign 1.11 -Wno-portability silent-rules -Wall]) -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -AC_SUBST(PACKAGE_URL, [http://git.0pointer.de/?p=rtkit.git]) +AM_INIT_AUTOMAKE([foreign 1.11 -Wno-portability silent-rules -Wall tar-pax no-dist-gzip dist-xz]) +AM_SILENT_RULES([yes]) AC_CANONICAL_HOST if type -p stow > /dev/null && test -d /usr/local/stow ; then - AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***]) - ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}" + AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***]) + ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}" fi #### Checks for programs. #### @@ -46,43 +50,66 @@ AC_PROG_CC_C99 AM_PROG_CC_C_O AC_PROG_GCC_TRADITIONAL AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE # GCC flags -test_gcc_flag() { - AC_LANG_CONFTEST([int main(int argc, char*argv[]) {}]) - $CC -c conftest.c $CFLAGS "$1" -o conftest.o > /dev/null 2> /dev/null - ret=$? - rm -f conftest.o - return $ret -} - -# If using GCC specify some additional parameters -if test "x$GCC" = "xyes" ; then - - # We use gnu99 instead of c99 because many have interpreted the standard - # in a way that int64_t isn't defined on non-64 bit platforms. - DESIRED_FLAGS="-std=gnu99 -Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math" - - for flag in $DESIRED_FLAGS ; do - AC_MSG_CHECKING([whether $CC accepts $flag]) - if test_gcc_flag $flag ; then - CFLAGS="$CFLAGS $flag" - CXXFLAGS="$CXXFLAGS $flag" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - done -fi +CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ + -pipe \ + -Wall \ + -W \ + -Wextra \ + -Winline \ + -Wvla \ + -Wundef \ + -Wformat=2 \ + -Wlogical-op \ + -Wsign-compare \ + -Wformat-security \ + -Wmissing-include-dirs \ + -Wformat-nonliteral \ + -Wold-style-definition \ + -Wpointer-arith \ + -Winit-self \ + -Wdeclaration-after-statement \ + -Wfloat-equal \ + -Wmissing-prototypes \ + -Wstrict-prototypes \ + -Wredundant-decls \ + -Wmissing-declarations \ + -Wmissing-noreturn \ + -Wshadow \ + -Wendif-labels \ + -Wcast-align \ + -Wstrict-aliasing=2 \ + -Wwrite-strings \ + -Wno-long-long \ + -Wno-overlength-strings \ + -Wno-unused-parameter \ + -Wno-missing-field-initializers \ + -Wno-unused-result \ + -Wunsafe-loop-optimizations \ + -Wpacked \ + -Werror=overflow \ + -Wp,-D_FORTIFY_SOURCE=2 \ + -ffast-math \ + -fno-common \ + -fdiagnostics-show-option \ + -fno-strict-aliasing \ + -ffunction-sections \ + -fdata-sections]) +AC_SUBST([WARNINGFLAGS], $with_cflags) + +CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ + -Wl,--as-needed \ + -Wl,--gc-sections]) +AC_SUBST([GCLDFLAGS], $with_ldflags) ACX_PTHREAD LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" -AC_SYS_LARGEFILE - AC_SEARCH_LIBS([sched_setscheduler], [rt]) AC_SEARCH_LIBS([clock_gettime], [rt]) AC_SEARCH_LIBS([cap_init], [cap]) -- cgit