From a1e2c43f81967e547669f4aed0a389011f8d815f Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Sat, 17 Jun 2006 22:26:04 +0200
Subject: [PATCH] Cleaned up propagation of CFLAGS, CPPFLAGS and LDFLAGS.

Rev: src/aclocal.m4:1.121
Rev: src/configure.in:1.954
Rev: src/make_variables.in:1.20
Rev: src/modules/common_module_makefile.in:1.36
---
 src/aclocal.m4                        | 21 +++++++++++----------
 src/configure.in                      | 16 ++++++++++------
 src/make_variables.in                 |  4 ++--
 src/modules/common_module_makefile.in | 15 ++-------------
 4 files changed, 25 insertions(+), 31 deletions(-)

diff --git a/src/aclocal.m4 b/src/aclocal.m4
index 68958d9ea6..984020e9f2 100644
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.120 2006/06/17 19:58:50 mast Exp $
+dnl $Id: aclocal.m4,v 1.121 2006/06/17 20:26:04 mast Exp $
 
 dnl Some compatibility with Autoconf 2.50+. Not complete.
 dnl newer Autoconf calls substr m4_substr
@@ -383,12 +383,19 @@ define([PIKE_RETAIN_VARIABLES],
     sed -e 's/}/\\}/g' -e 's/\$/\\$/g' -e 's/^\([[^=]]*\)=\(.*\)$/\1=${\1=\2}/' < propagated_variables > propvars.sh
     . ./propvars.sh && rm propvars.sh
   fi
+
+  dnl This allows module configure scripts to extend these variables, as
+  dnl they often do (they should perhaps use the MODULE_* varieties
+  dnl instead).
+  CFLAGS=$BASE_CFLAGS
+  CPPFLAGS=$BASE_CPPFLAGS
+  LDFLAGS=$BASE_LDFLAGS
 ])
 
 
 define([AC_LOW_MODULE_INIT],
 [
-  # $Id: aclocal.m4,v 1.120 2006/06/17 19:58:50 mast Exp $
+  # $Id: aclocal.m4,v 1.121 2006/06/17 20:26:04 mast Exp $
 
   MY_AC_PROG_CC
 
@@ -504,18 +511,12 @@ pushdef([AC_OUTPUT],
 
   AC_SUBST(prefix)
   export prefix
-  AC_SUBST(exec_prefix)
-  export exec_prefix
-  AC_SUBST(BINDIR)
-  export BINDIR
   AC_SUBST(CFLAGS)
   export CFLAGS
   AC_SUBST(CPPFLAGS)
   export CPPFLAGS
-  AC_SUBST(OPTIMIZE)
-  export OPTIMIZE
-  AC_SUBST(WARN)
-  export WARN
+  AC_SUBST(LDFLAGS)
+  export LDFLAGS
   AC_SUBST(CCSHARED)
   export CCSHARED
 
diff --git a/src/configure.in b/src/configure.in
index 07d1eae9d6..cbfe9b3f58 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $")
+AC_REVISION("$Id: configure.in,v 1.954 2006/06/17 20:26:04 mast Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -2225,7 +2225,7 @@ if test "x$PIKE_PATH_TRANSLATE" = "x"; then
     # MinGW system.
     cat <<\EOF
 #!/bin/sh
-# Automatically generated by $Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $.
+# Automatically generated by $Id: configure.in,v 1.954 2006/06/17 20:26:04 mast Exp $.
 # MinGW-version. Do NOT edit.
 posix_name="`cat`"
 posix_prefix="/"
@@ -2263,7 +2263,7 @@ EOF
     # Native POSIX system.
   cat <<\EOF
 #!/bin/sh
-# Automatically generated by $Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $.
+# Automatically generated by $Id: configure.in,v 1.954 2006/06/17 20:26:04 mast Exp $.
 # POSIX-version. Do NOT edit.
 cat
 EOF
@@ -2272,7 +2272,7 @@ else
   # rntcl-style
   cat <<\EOF
 #!/bin/sh
-# Automatically generated by $Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $.
+# Automatically generated by $Id: configure.in,v 1.954 2006/06/17 20:26:04 mast Exp $.
 # RNTCL-version. Do NOT edit.
 sed -e "$PIKE_PATH_TRANSLATE"
 EOF
@@ -7611,8 +7611,12 @@ AC_SUBST_FILE(common_module_makefile)
 
 # Afaik BUILDDIR/TMP_BUILDDIR and BINDIR/TMP_BINDIR are always the
 # same thing. Can it be cleaned up? /mast
-TMP_BUILDDIR=${BUILDDIR}
-TMP_BINDIR=${BINDIR}
+TMP_BUILDDIR=$BUILDDIR
+TMP_BINDIR=$BINDIR
+
+BASE_CFLAGS=$CFLAGS
+BASE_CPPFLAGS=$CPPFLAGS
+BASE_LDFLAGS=$LDFLAGS
 
 #
 # Note: We must output before visiting the subdirs,
diff --git a/src/make_variables.in b/src/make_variables.in
index 67dcc35530..7a8702b5ef 100644
--- a/src/make_variables.in
+++ b/src/make_variables.in
@@ -1,6 +1,6 @@
 # -*- Makefile -*-
 #
-# $Id: make_variables.in,v 1.19 2006/06/17 19:58:50 mast Exp $
+# $Id: make_variables.in,v 1.20 2006/06/17 20:26:04 mast Exp $
 #
 # Note: This template is actually used only for make_variables in the
 # subdirectories; the one created in the build base dir is just an
@@ -22,7 +22,7 @@
 # top directory).
 @propagated_variables@
 #propagated_variables: CC CPP LDSHARED AR INSTALL
-#propagated_variables: OPTIMIZE WARN
+#propagated_variables: BASE_CFLAGS BASE_CPPFLAGS BASE_LDFLAGS OPTIMIZE WARN
 #propagated_variables: TMP_BUILDDIR TMP_BINDIR PIKE_SRC_DIR BUILD_BASE
 
 @SET_MAKE@
diff --git a/src/modules/common_module_makefile.in b/src/modules/common_module_makefile.in
index 0c5e4ed7fd..d4491d3c31 100644
--- a/src/modules/common_module_makefile.in
+++ b/src/modules/common_module_makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: common_module_makefile.in,v 1.35 2006/06/17 19:58:50 mast Exp $
+# $Id: common_module_makefile.in,v 1.36 2006/06/17 20:26:04 mast Exp $
 #
 # Contains stuff common to both dynamic_module_makefile and
 # static_module_makefile.
@@ -8,15 +8,6 @@
 # dynamic_module_makefile or static_module_makefile as appropriate.
 #
 
-# These are set by make_variables.
-# CC=@CC@
-# CPP=@CPP@
-# AR=@AR@
-REAL_LDFLAGS=@LDFLAGS@
-REAL_LDSHARED=@LDSHARED@
-REAL_CFLAGS=@CFLAGS@
-REAL_CPPFLAGS=@CPPFLAGS@
-
 PREFLAGS=-I. -I$(SRCDIR) -I$(BUILD_BASE) -I$(PIKE_SRC_DIR) $(LINKAGE_CPPFLAGS) $(MODULE_CPPFLAGS) $(DEFINES)
 CFLAGS=$(MODULE_CFLAGS) $(PREFLAGS) $(OTHERFLAGS) $(LINKAGE_CFLAGS)
 NOOPT_CFLAGS=$(MODULE_CFLAGS) $(PREFLAGS) $(NOOPTFLAGS) $(LINKAGE_CFLAGS)
@@ -102,10 +93,8 @@ $(CONFIG_HEADERS) dummy_config_header: config.status
 $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 	cd $(SRCDIR) && $(PIKE_SRC_DIR)/run_autoconfig .
 
-propagated_variables:
-
 config.status: $(SRCDIR)/configure propagated_variables
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" ./config.status --recheck
+	./config.status --recheck
 
 module.pmod: Makefile $(MODULE_PMOD_IN)
 	@if [ "x$(MODULE_PMOD_IN)" != "x" ]; then \
-- 
GitLab