From c5ae567837db878600eee7f8f15bb62d98e1df7b Mon Sep 17 00:00:00 2001
From: "K. Richard Pixley" <rich@cygnus>
Date: Wed, 23 Oct 1991 21:48:28 +0000
Subject: [PATCH] Makefiles should include the makefile frag names even if the
 makefile frag doesn't exist in *this* directory.  Otherwise we inherit the
 variable setting from our parent Makefile.

---
 configure | 130 +++++++++++++++++++++++++++++++-----------------------
 1 file changed, 74 insertions(+), 56 deletions(-)

diff --git a/configure b/configure
index 6586640ed2b..1091de467ca 100755
--- a/configure
+++ b/configure
@@ -33,7 +33,9 @@
 # 	config.status is removed.
 #
 
-set -e
+export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0 $argv; kill $$)
+
+#set -e
 
 remove=rm
 hard_link=ln
@@ -174,9 +176,11 @@ else
 	fi
 fi
 
-configsub=`echo ${progname} | sed 's/configure\$/config.sub/'`
+configsub=`echo ${progname} | sed 's/configure$/config.sub/'`
 
-if [ ! -f ${configsub} ] ; then
+if ${configsub} none >/dev/null 2>&1 ; then
+	true
+else
 	echo '***' cannot find config.sub.
 	echo 1
 fi
@@ -238,16 +242,19 @@ if [ -r configure.in ] ; then
 		TMPDIR=/tmp ; export TMPDIR
 	fi
 
+	# keep this filename short for &%*%$*# 14 char file names
+	tmpfile=${TMPDIR}/cONf$$
+
 	# split configure.in into common, per-host, per-target,
 	# and post-target parts.  Post-target is optional.
-	sed -e '/^# per\-host:/,$d' configure.in > ${TMPDIR}/configure.$$.com
-	sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' configure.in > ${TMPDIR}/configure.$$.hst
-	if grep -s '^# post-target:' configure.in ; then
-	  sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' configure.in > ${TMPDIR}/configure.$$.tgt
-	  sed -e '1,/^# post\-target:/d' configure.in > ${TMPDIR}/configure.$$.pos
+	sed -e '/^# per\-host:/,$d' configure.in > ${tmpfile}.com
+	sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' configure.in > ${tmpfile}.hst
+	if grep '^# post-target:' configure.in >/dev/null ; then
+	  sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' configure.in > ${tmpfile}.tgt
+	  sed -e '1,/^# post\-target:/d' configure.in > ${tmpfile}.pos
 	else
-	  sed -e '1,/^# per\-target:/d' configure.in > ${TMPDIR}/configure.$$.tgt
-	  echo >${TMPDIR}/configure.$$.pos
+	  sed -e '1,/^# per\-target:/d' configure.in > ${tmpfile}.tgt
+	  echo >${tmpfile}.pos
 	fi
 
 else
@@ -257,7 +264,7 @@ fi
 
 ### do common part of configure.in
 
-. ${TMPDIR}/configure.$$.com
+. ${tmpfile}.com
 
 # some sanity checks on configure.in
 if [ -z "${srctrigger}" ] ; then
@@ -281,7 +288,7 @@ for host in ${hosts} ; do
 	host=${host_cpu}-${host_vendor}-${host_os}
 	host_makefile_frag=config/hmake-${host}
 
-	. ${TMPDIR}/configure.$$.hst
+	. ${tmpfile}.hst
 
 	for target in ${targets} ; do
 
@@ -293,7 +300,7 @@ for host in ${hosts} ; do
 		target=${target_cpu}-${target_vendor}-${target_os}
 		target_makefile_frag=config/tmake-${target}
 
-		. ${TMPDIR}/configure.$$.tgt
+		. ${tmpfile}.tgt
 
 		# Temporarily, we support only direct subdir builds.
 		hostsubdir=H-${host_alias}
@@ -466,28 +473,22 @@ for host in ${hosts} ; do
 			cat ${srcdir}/${Makefile_in} >> ${Makefile}
 
 			# Conditionalize the makefile for this host.
-			if [ -f ${srcdir}/${host_makefile_frag} ] ; then
-				(echo "host_makefile_frag = ${srcdir}/${host_makefile_frag}" ; 
-					sed -e "/^####/  r ${srcdir}/${host_makefile_frag}" ${Makefile}) > Makefile.tem
-				mv Makefile.tem ${Makefile}
-			fi
+			(echo "host_makefile_frag = ${srcdir}/${host_makefile_frag}" ; 
+				sed -e "/^####/  r ${srcdir}/${host_makefile_frag}" ${Makefile}) > Makefile.tem
+			mv Makefile.tem ${Makefile}
 
 			# Conditionalize the makefile for this target.
-			if [ -f ${srcdir}/${target_makefile_frag} ] ; then
-				(echo "target_makefile_frag = ${srcdir}/${target_makefile_frag}" ; 
-					sed -e "/^####/  r ${srcdir}/${target_makefile_frag}" ${Makefile}) > Makefile.tem
-				mv Makefile.tem ${Makefile}
-			fi
+			(echo "target_makefile_frag = ${srcdir}/${target_makefile_frag}" ; 
+				sed -e "/^####/  r ${srcdir}/${target_makefile_frag}" ${Makefile}) > Makefile.tem
+			mv Makefile.tem ${Makefile}
 
 			# Conditionalize the makefile for this site.
 			if [ -n "${site}" ] ; then
 				site_makefile_frag=smake-${site}
 
-				if [ -f ${srcdir}/${site_makefile_frag} ] ; then
-					(echo "site_makefile_frag = ${srcdir}/${site_makefile_frag}" ; 
-						sed -e "/^####/  r ${srcdir}/${site_makefile_frag}" ${Makefile}) > Makefile.tem
-					mv Makefile.tem ${Makefile}
-				fi
+				(echo "site_makefile_frag = ${srcdir}/${site_makefile_frag}" ; 
+					sed -e "/^####/  r ${srcdir}/${site_makefile_frag}" ${Makefile}) > Makefile.tem
+				mv Makefile.tem ${Makefile}
 			fi
 
 			# set srcdir
@@ -514,36 +515,23 @@ for host in ${hosts} ; do
 
 			using=
 			if [ -f ${srcdir}/${host_makefile_frag} ] ; then
-				using=" using \"${host_makefile_frag}\""
+				using="${using} and \"${host_makefile_frag}\""
 			fi
-
 			if [ -f ${srcdir}/${target_makefile_frag} ] ; then
-				if [ -z "${using}" ] ; then
-					andusing=" using \"${target_makefile_frag}\""
-				else
-					andusing="${using} and \"${target_makefile_frag}\""
-				fi
-			else
-				andusing=${using}
+				using="${using} and \"${target_makefile_frag}\""
 			fi
-
-			if [ -f ${srcdir}/${site_makefile_frag} ] ; then
-				if [ -z "${andusing}" ] ; then
-					andandusing=" using \"${site_makefile_frag}\""
-				else
-					andandusing="${andusing} and \"${site_makefile_frag}\""
-				fi
-			else
-				andandusing=${andusing}
+			if [ -n "${site}" -a \
+			     -f ${srcdir}/${site_makefile_frag} ] ; then
+				using="${using} and \"${site_makefile_frag}\""
 			fi
+			using=`echo "${using}" | sed 's/and/using/'`
+			using="Created \"${Makefile}\" in `pwd`${using}."
 
 			if [ -n "${verbose}" -o -z "${recurring}" ] ; then
-				echo "Created \"${Makefile}\"" in `pwd`${andandusing}.
+				echo ${using}
 			fi
 
-			if [ -f ${TMPDIR}/configure.$$.pos ] ; then
-				. ${TMPDIR}/configure.$$.pos
-			fi
+			. ${tmpfile}.pos
 
 			# describe the chosen configuration in config.status.
 			# Make that file a shellscript which will reestablish
@@ -552,7 +540,8 @@ for host in ${hosts} ; do
 
 			echo "#!/bin/sh
 # `pwd` was configured as follows:
-(cd ${srcdir} ; ${progname}" ${arguments} `if [ -z "${norecursion}" ] ; then echo +norecursion ; else true ; fi` ")" > config.status
+(cd ${srcdir} ; ${progname}" ${arguments} `if [ -z "${norecursion}" ] ; then echo +norecursion ; else true ; fi` ")
+# ${using}" > config.status
 			chmod a+x config.status
 
 			originaldir=`pwd`
@@ -576,10 +565,14 @@ for host in ${hosts} ; do
 					POPDIR=`pwd`
 					cd ${configdir} 
 
-					${progname} +recurring ${host_alias} +target=${target_alias} \
+					if (${progname} +recurring ${host_alias} +target=${target_alias} \
 						${verbose} ${subdirs} ${removing} +destdir=${destdir} \
 						`if [ -n "${objdir}" ] ; then echo +objdir=${objdir}/${configdir} ; fi` \
-						${tmpdiroption}
+						${tmpdiroption}) ; then
+						true
+					else
+						exit 1
+					fi
 
 					cd ${POPDIR}
 
@@ -607,7 +600,7 @@ for host in ${hosts} ; do
 		fi
 
 		cd ${hostsubdir}
-		cat > GNUmakefile << E!O!F
+		cat > GNUmakefile << 'E!O!F'
 # Makefile generated by configure for host ${host_alias}.
 
 ALL := $(shell ls -d T-*)
@@ -623,14 +616,39 @@ done # for each host
 
 ### clean up.
 
-rm -f ${TMPDIR}/configure.$$.com ${TMPDIR}/configure.$$.tgt ${TMPDIR}/configure.$$.hst ${TMPDIR}/configure.$$.pos
+rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
 
 exit 0
 
 #
 #
 # $Log$
-# Revision 1.55  1991/10/10 04:57:23  rich
+# Revision 1.60  1991/10/23 21:48:28  rich
+# Makefiles should include the makefile frag names even if the makefile
+# frag doesn't exist in *this* directory.  Otherwise we inherit the
+# variable setting from our parent Makefile.
+#
+# Revision 1.59  1991/10/16  19:53:31  gnu
+# Update for SCO problems.
+#
+# * Fix "Larry Wall kludge" line so it works.  If this script is run by csh,
+# it will complain, feed itself to sh, and complain some more.  But will work.
+#
+# * Use <14 char file names in /tmp.
+#
+# Revision 1.58  1991/10/16  06:12:52  rich
+# Two small bugs.  First, single quoted sed line doesn't need to quote
+# '$'.  Second, use quotes around the hereis document trigger in order
+# to quote the entire contents of the hereis document.
+#
+# Revision 1.57  1991/10/11  05:31:05  gnu
+# Simplify "Using" message code.  Put the message that configure prints
+# (or suppresses) into the config.status file as a comment.
+#
+# Revision 1.56  1991/10/10  05:01:47  rich
+# Remove the set -e but protect the recusion call.
+#
+# Revision 1.55  1991/10/10  04:57:23  rich
 # * Die when sub-configure's do.
 # * get the makefile building message line correct.
 # * set -e