From 93523366378540c41cee98114989ff654d71dcb2 Mon Sep 17 00:00:00 2001 From: enge Date: Wed, 2 Mar 2011 16:42:29 +0000 Subject: configure: added macro to output the gcc version git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@979 211d60ee-9f03-0410-a15a-8952a2c7a4e4 --- m4/ax_gcc_option.m4 | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++ m4/ax_gcc_version.m4 | 65 ++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) create mode 100644 m4/ax_gcc_option.m4 create mode 100644 m4/ax_gcc_version.m4 (limited to 'm4') diff --git a/m4/ax_gcc_option.m4 b/m4/ax_gcc_option.m4 new file mode 100644 index 0000000..f8c7cd1 --- /dev/null +++ b/m4/ax_gcc_option.m4 @@ -0,0 +1,130 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_gcc_option.html +# =========================================================================== +# +# OBSOLETE MACRO +# +# Deprecated in favor of AX_C_CHECK_FLAG, AX_CXX_CHECK_FLAG, +# AX_CPP_CHECK_FLAG, AX_CXXCPP_CHECK_FLAG and AX_LD_CHECK_FLAG. +# +# SYNOPSIS +# +# AX_GCC_OPTION(OPTION,EXTRA-OPTIONS,TEST-PROGRAM,ACTION-IF-SUCCESSFUL,ACTION-IF-NOT-SUCCESFUL) +# +# DESCRIPTION +# +# AX_GCC_OPTION checks wheter gcc accepts the passed OPTION. If it accepts +# the OPTION then ACTION-IF-SUCCESSFUL will be executed, otherwise +# ACTION-IF-UNSUCCESSFUL. +# +# A typical usage should be the following one: +# +# AX_GCC_OPTION([-fomit-frame-pointer],[],[],[ +# AC_MSG_NOTICE([The option is supported])],[ +# AC_MSG_NOTICE([No luck this time]) +# ]) +# +# The macro doesn't discriminate between languages so, if you are testing +# for an option that works for C++ but not for C you should use '-x c++' +# as EXTRA-OPTIONS: +# +# AX_GCC_OPTION([-fno-rtti],[-x c++],[],[ ... ],[ ... ]) +# +# OPTION is tested against the following code: +# +# int main() +# { +# return 0; +# } +# +# The optional TEST-PROGRAM comes handy when the default main() is not +# suited for the option being checked +# +# So, if you need to test for -fstrict-prototypes option you should +# probably use the macro as follows: +# +# AX_GCC_OPTION([-fstrict-prototypes],[-x c++],[ +# int main(int argc, char ** argv) +# { +# (void) argc; +# (void) argv; +# +# return 0; +# } +# ],[ ... ],[ ... ]) +# +# Note that the macro compiles but doesn't link the test program so it is +# not suited for checking options that are passed to the linker, like: +# +# -Wl,-L +# +# In order to avoid such kind of problems you should think about usinguse +# the AX_*_CHECK_FLAG family macros +# +# LICENSE +# +# Copyright (c) 2008 Francesco Salvestrini +# Copyright (c) 2008 Bogdan Drozdowski +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 13 + +AC_DEFUN([AX_GCC_OPTION], [ + AC_REQUIRE([AC_PROG_CC]) + + AC_MSG_CHECKING([if gcc accepts $1 option]) + + AS_IF([ test "x$GCC" = "xyes" ],[ + AS_IF([ test -z "$3" ],[ + ax_gcc_option_test="int main() +{ + return 0; +}" + ],[ + ax_gcc_option_test="$3" + ]) + + # Dump the test program to file + cat < conftest.c +$ax_gcc_option_test +EOF + + # Dump back the file to the log, useful for debugging purposes + AC_TRY_COMMAND(cat conftest.c 1>&AS_MESSAGE_LOG_FD) + + AS_IF([ AC_TRY_COMMAND($CC $2 $1 -c conftest.c 1>&AS_MESSAGE_LOG_FD) ],[ + AC_MSG_RESULT([yes]) + $4 + ],[ + AC_MSG_RESULT([no]) + $5 + ]) + ],[ + AC_MSG_RESULT([no gcc available]) + ]) +]) diff --git a/m4/ax_gcc_version.m4 b/m4/ax_gcc_version.m4 new file mode 100644 index 0000000..9923c08 --- /dev/null +++ b/m4/ax_gcc_version.m4 @@ -0,0 +1,65 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_gcc_version.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_GCC_VERSION +# +# DESCRIPTION +# +# This macro retrieves the gcc version and returns it in the GCC_VERSION +# variable if available, an empty string otherwise. +# +# LICENSE +# +# Copyright (c) 2009 Francesco Salvestrini +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 7 + +AC_DEFUN([AX_GCC_VERSION], [ + GCC_VERSION="" + AX_GCC_OPTION([-dumpversion],[],[],[ + ax_gcc_version_option=yes + ],[ + ax_gcc_version_option=no + ]) + AS_IF([test "x$GCC" = "xyes"],[ + AS_IF([test "x$ax_gcc_version_option" != "xno"],[ + AC_CACHE_CHECK([gcc version],[ax_cv_gcc_version],[ + ax_cv_gcc_version="`$CC -dumpversion`" + AS_IF([test "x$ax_cv_gcc_version" = "x"],[ + ax_cv_gcc_version="" + ]) + ]) + GCC_VERSION=$ax_cv_gcc_version + ]) + ]) + AC_SUBST([GCC_VERSION]) +]) -- cgit v1.2.1