diff options
author | Yang Tse <yangsita@gmail.com> | 2013-01-20 20:23:20 +0100 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2013-01-20 20:23:20 +0100 |
commit | 9d1effad0524bcb4763e06659b728ba134464608 (patch) | |
tree | 98c89886306a3f8de163cf32978c0860b0890e0d /m4/xc-cc-check.m4 | |
parent | e5ea45ec2ea6034900c83b932398400923a35137 (diff) | |
download | curl-9d1effad0524bcb4763e06659b728ba134464608.tar.gz |
configure: autotools compatibility fixes - step I
Fix proper macro expansion order across autotools versions for
C compiler and preprocessor program checks.
Diffstat (limited to 'm4/xc-cc-check.m4')
-rw-r--r-- | m4/xc-cc-check.m4 | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/m4/xc-cc-check.m4 b/m4/xc-cc-check.m4 new file mode 100644 index 000000000..5e5af9c69 --- /dev/null +++ b/m4/xc-cc-check.m4 @@ -0,0 +1,102 @@ +#--------------------------------------------------------------------------- +# +# xc-cc-check.m4 +# +# Copyright (c) 2013 Daniel Stenberg <daniel@haxx.se> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# serial 1 + + +dnl _XC_PROG_CC_PREAMBLE +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_PROG_CC_PREAMBLE], [ + xc_prog_cc_prev_IFS=$IFS + xc_prog_cc_prev_LIBS=$LIBS + xc_prog_cc_prev_CFLAGS=$CFLAGS + xc_prog_cc_prev_LDFLAGS=$LDFLAGS + xc_prog_cc_prev_CPPFLAGS=$CPPFLAGS +]) + + +dnl _XC_PROG_CC_POSTLUDE +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_PROG_CC_POSTLUDE], [ + IFS=$xc_prog_cc_prev_IFS + LIBS=$xc_prog_cc_prev_LIBS + CFLAGS=$xc_prog_cc_prev_CFLAGS + LDFLAGS=$xc_prog_cc_prev_LDFLAGS + CPPFLAGS=$xc_prog_cc_prev_CPPFLAGS + export CC + export CPP + export LIBS + export CFLAGS + export LDFLAGS + export CPPFLAGS + AC_SUBST([CC])dnl + AC_SUBST([CPP])dnl + AC_SUBST([LIBS])dnl + AC_SUBST([CFLAGS])dnl + AC_SUBST([LDFLAGS])dnl + AC_SUBST([CPPFLAGS])dnl +]) + + +dnl _XC_PROG_CC +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_PROG_CC], [ + AC_REQUIRE([_XC_PROG_CC_PREAMBLE])dnl + AC_REQUIRE([XC_CHECK_USER_FLAGS])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AM_PROG_CC_C_O])dnl + AC_REQUIRE([AC_PROG_CPP])dnl + AC_REQUIRE([_XC_PROG_CC_POSTLUDE])dnl +]) + + +dnl XC_CHECK_PROG_CC +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl Checks for C compiler and C preprocessor programs, +dnl while doing some previous sanity validation on user +dnl provided LIBS, LDFLAGS, CPPFLAGS and CFLAGS values +dnl that must succeed in order to continue execution. +dnl +dnl This sets variables CC and CPP, while preventing +dnl LIBS, LDFLAGS, CFLAGS, CPPFLAGS and IFS from being +dnl unexpectedly changed by underlying macros. + +AC_DEFUN([XC_CHECK_PROG_CC], [ + AC_PREREQ([2.50])dnl + AC_BEFORE([$0],[_XC_PROG_CC_PREAMBLE])dnl + AC_BEFORE([$0],[AC_PROG_INSTALL])dnl + AC_BEFORE([$0],[AC_PROG_CC])dnl + AC_BEFORE([$0],[AM_PROG_CC_C_O])dnl + AC_BEFORE([$0],[AC_PROG_CPP])dnl + AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl + AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl + AC_BEFORE([$0],[_XC_PROG_CC_POSTLUDE])dnl + AC_REQUIRE([_XC_PROG_CC])dnl +]) + |