From ffabeddf805804a49caa0e8a5f9f4ca661d8f892 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Sun, 18 Nov 2012 07:40:22 -0800 Subject: autoconf-2.13-make-defs-62361 --- acgeneral.m4 | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/acgeneral.m4 b/acgeneral.m4 index d00872f..38f2601 100644 --- a/acgeneral.m4 +++ b/acgeneral.m4 @@ -2156,20 +2156,38 @@ dnl It is called inside configure, outside of config.status. dnl AC_OUTPUT_MAKE_DEFS() define(AC_OUTPUT_MAKE_DEFS, [# Transform confdefs.h into DEFS. -dnl Using a here document instead of a string reduces the quoting nightmare. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF changequote(<<, >>)dnl -s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~<<#>>$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p changequote([, ])dnl -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed ]) dnl Do the variable substitutions to create the Makefiles or whatever. -- cgit v1.2.3