diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-12-12 16:54:33 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-12-12 16:54:33 +0000 |
commit | 996c1b3e07f6c74aff4299c31f0d71b3226a46a9 (patch) | |
tree | 06d5806f733157f0e1a861cb8bb5f5e33f32fabc /m4 | |
parent | c3050365d194debf6052d0f11118d68c8db60892 (diff) |
Add compiler.m4 and linker.m4 (MIT licensed, from libfshare) and use them for optionally disabling optimization, optionally enabling coverage, and version script detection
Diffstat (limited to 'm4')
-rw-r--r-- | m4/Makefile.am | 4 | ||||
-rw-r--r-- | m4/compiler.m4 | 67 | ||||
-rw-r--r-- | m4/linker.m4 | 73 |
3 files changed, 143 insertions, 1 deletions
diff --git a/m4/Makefile.am b/m4/Makefile.am index 08aa0a1f3..a2a68e9f1 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -1,4 +1,6 @@ EXTRA_DIST = \ as-compiler-flag.m4 \ as-ac-expand.m4 \ -gtk-doc.m4 +compiler.m4 \ +gtk-doc.m4 \ +linker.m4 diff --git a/m4/compiler.m4 b/m4/compiler.m4 new file mode 100644 index 000000000..5aff5d819 --- /dev/null +++ b/m4/compiler.m4 @@ -0,0 +1,67 @@ +# compiler.m4 - autoconf macros for compiler settings +# +# Copyright © 2005 Scott James Remnant <scott@netsplit.com>. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +# COMPILER_WARNINGS +# ---------------------- +# Add configure option to enable additional compiler warnings and treat +# them as errors. +AC_DEFUN([COMPILER_WARNINGS], +[AC_ARG_ENABLE(compiler-warnings, + AS_HELP_STRING([--enable-compiler-warnings], + [Enable additional compiler warnings]), +[if test "x$enable_compiler_warnings" = "xyes"; then + if test "x$GCC" = "xyes"; then + CFLAGS="-Wall -Werror $CFLAGS" + fi + if test "x$GXX" = "xyes"; then + CXXFLAGS="-Wall -Werror $CXXFLAGS" + fi +fi])dnl +])# COMPILER_WARNINGS + +# COMPILER_OPTIMISATIONS +# --------------------------- +# Add configure option to disable optimisations. +AC_DEFUN([COMPILER_OPTIMISATIONS], +[AC_ARG_ENABLE(compiler-optimisations, + AS_HELP_STRING([--disable-compiler-optimisations], + [Disable compiler optimisations]), +[if test "x$enable_compiler_optimisations" = "xno"; then + [CFLAGS=`echo "$CFLAGS" | sed -e "s/ -O[1-9]*\b/ -O0/g"`] +fi])dnl +])# COMPILER_OPTIMISATIONS + +# COMPILER_COVERAGE +# ---------------------- +# Add configure option to enable coverage data. +AC_DEFUN([COMPILER_COVERAGE], +[AC_ARG_ENABLE(compiler-coverage, + AS_HELP_STRING([--enable-compiler-coverage], + [Enable generation of coverage data]), +[if test "x$enable_compiler_coverage" = "xyes"; then + if test "x$GCC" = "xyes"; then + CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" + fi +fi])dnl +])# COMPILER_COVERAGE diff --git a/m4/linker.m4 b/m4/linker.m4 new file mode 100644 index 000000000..8093cb88e --- /dev/null +++ b/m4/linker.m4 @@ -0,0 +1,73 @@ +# linker.m4 - autoconf macros for linker settings +# +# Copyright © 2005 Scott James Remnant <scott@netsplit.com>. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +# LINKER_OPTIMISATIONS +# -------------------- +# Add configure option to disable linker optimisations. +AC_DEFUN([LINKER_OPTIMISATIONS], +[AC_ARG_ENABLE(linker-optimisations, + AS_HELP_STRING([--disable-linker-optimisations], + [Disable linker optimisations]), +[if test "x$enable_linker_optimisations" = "xno"; then + [LDFLAGS=`echo "$LDFLAGS" | sed -e "s/ -Wl,-O[0-9]*\b//g"`] +else + [LDFLAGS="$LDFLAGS -Wl,-O1"] +fi], [LDFLAGS="$LDFLAGS -Wl,-O1"])dnl +])# LINKER_OPTIMISATIONS + +# LINKER_VERSION_SCRIPT +# -------------------------- +# Detect whether the linker supports version scripts +AC_DEFUN([LINKER_VERSION_SCRIPT], +[AC_MSG_CHECKING([for linker version script argument]) +for aranha_try_arg in "-Wl,--version-script"; do + aranha_old_libs="$LIBS" + LIBS="$LIBS $aranha_try_arg=conftest.ver" + + cat >conftest.ver <<EOF +TEST { + global: + *; +}; +EOF + + AC_TRY_LINK([], [], [ + rm -f conftest.ver + LIBS="$aranha_old_libs" + + AC_MSG_RESULT([$aranha_try_arg]) + AC_SUBST(VERSION_SCRIPT_ARG, [$aranha_try_arg]) + break + ]) + + rm -f conftest.ver + LIBS="$aranha_old_libs" +done + +AM_CONDITIONAL(HAVE_VERSION_SCRIPT_ARG, [test -n "$VERSION_SCRIPT_ARG"]) +if test -z "$VERSION_SCRIPT_ARG"; then + AC_MSG_RESULT([unknown]) +fi +])dnl +])# LINKER_VERSION_SCRIPT |