From 4101d8683819f444840a46569202d92b6a47fd1d Mon Sep 17 00:00:00 2001 From: "K. Richard Pixley" Date: Tue, 6 Aug 1991 19:12:55 +0000 Subject: [PATCH] Host-level GNUmakefiles. --- bfd/configure | 49 ++++++++----- binutils/configure | 201 ++++++++++++++++++++++++++++++-------------------- configure | 48 +++++++----- gas/configure | 6 +- gdb/configure | 63 +++++++++------- ld/configure | 212 ++++++++++++++++++++++++++++++----------------------- readline/configure | 49 ++++++++----- 7 files changed, 373 insertions(+), 255 deletions(-) diff --git a/bfd/configure b/bfd/configure index 789c23a..a919a12 100755 --- a/bfd/configure +++ b/bfd/configure @@ -518,19 +518,21 @@ links= fi done # for each target -# # Now build a Makefile for this host. -# if [ -n "${forcesubdirs}" ] ; then -# cd ${hostsubdir} -# cat > GNUmakefile << E!O!F -## Makefile generated by configure for host ${host}. -# -#%: -# for i in ${targets} ; do \ -# $(MAKE) -C Target-\$i \$@ -# -#all clean stage1 stage2 stage3 stage4etags tags TAGS -#E!O!F -# fi + # Now build a Makefile for this host. + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then + cd ${hostsubdir} + cat > GNUmakefile << E!O!F +# Makefile generated by configure for host ${host}. + +ALL := $(shell ls -d Target-*) + +%: + $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true + +all: +E!O!F + cd .. + fi done # for each host # If there are subdirectories, then recurse. @@ -557,7 +559,7 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${commons} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -568,7 +570,7 @@ for configdir in ${configdirs} ; do for host in ${specifics} ; do echo Configuring target specific directory ${configdir}.${host}... (cd ${configdir}.${host} ; - ./configure ${host} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${host} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' done # for host in specifics fi # if there are any specifics @@ -593,7 +595,8 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} ${commons}) \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + ${commons} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -604,7 +607,8 @@ for configdir in ${configdirs} ; do for target in ${specifics} ; do echo Configuring target specific directory ${configdir}.${target}... (cd ${configdir}.${target} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} "+target=${target}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + "+target=${target}" +destdir=${destdir}) \ | sed 's/^/ /' done fi # if any specifics @@ -615,8 +619,15 @@ exit 0 # # $Log$ -# Revision 1.12 1991/07/20 00:56:41 gnu -# Roll in configure that handles GDB. +# Revision 1.15 1991/08/06 19:12:11 rich +# Host-level GNUmakefiles. +# +# Revision 1.22 1991/07/20 01:22:30 rich +# propogate gdb changes and destdir fix +# +# Revision 1.21 1991/07/20 00:55:20 gnu +# Roll in new configure that handles GDB. Make sure that the "configure" +# that is checked-in reflects the latest "configure.in", which includes gdb. # # Revision 1.9 1991/07/06 04:35:51 gnu # Fix bug in configure when iterating targets. diff --git a/binutils/configure b/binutils/configure index d033ebc..edec0a1 100755 --- a/binutils/configure +++ b/binutils/configure @@ -3,9 +3,6 @@ # configure.in and a configure template. configdirs= -# the debugger. -#set -x - #!/bin/sh # Configuration script template @@ -13,19 +10,19 @@ configdirs= #This file is part of GNU. -#GNU CC 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 1, or (at your option) -#any later version. - -#GNU CC 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 GNU CC; see the file COPYING. If not, write to -#the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +# 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, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # $Id$ @@ -55,6 +52,8 @@ defaulttargets= destdir= fatal= hostsubdir= +Makefile=Makefile +Makefile_in=Makefile.in norecurse= removing= srcdir= @@ -203,6 +202,9 @@ if [ -n "${template}" ] ; then -e '/^#### configure.in per-target parts come in here.$/,/^## end of per-target part.$/c\ #### configure.in per-target parts come in here.\ ## end of per-target part.' \ + -e '/^#### configure.in post-target parts come in here.$/,/^## end of post-target part.$/c\ +#### configure.in post-target parts come in here.\ +## end of post-target part.' \ < ${template} > template.new if [ -r configure.in ] ; then @@ -216,18 +218,26 @@ if [ -n "${template}" ] ; then exit 1 fi - # split configure.in into common, per-host, and per-target parts + # split configure.in into common, per-host, per-target, + # and post-target parts. Post-target is optional. sed -e '/^# per\-host:/,$d' configure.in > configure.com sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' configure.in > configure.hst - sed -e '1,/^# per\-target:/d' configure.in > configure.tgt + if grep -s '^# post-target:' configure.in ; then + sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' configure.in > configure.tgt + sed -e '1,/^# post\-target:/d' configure.in > configure.pos + else + sed -e '1,/^# per\-target:/d' configure.in > configure.tgt + echo >configure.pos + fi # and insert them sed -e '/^#### configure.in common parts come in here.$/ r configure.com' \ -e '/^#### configure.in per\-host parts come in here.$/ r configure.hst' \ -e '/^#### configure.in per\-target parts come in here.$/ r configure.tgt' \ + -e '/^#### configure.in post\-target parts come in here.$/ r configure.pos' \ template.new > configure.new - rm -f configure.com configure.tgt configure.hst + rm -f configure.com configure.tgt configure.hst configure.pos else echo Warning: no configure.in in `pwd` cat ${template} >> configure @@ -240,6 +250,13 @@ if [ -n "${template}" ] ; then echo Rebuilt configure in `pwd` if [ -z "${norecurse}" ] ; then + # If template is relative path, make it absolute for recursing. + if echo "${template}" | grep -s '^/' ; then + true + else + template=`pwd`/${template} + fi + while [ -n "${configdirs}" ] ; do # set configdir to car of configdirs, configdirs to cdr of configdirs set ${configdirs}; configdir=$1; shift; configdirs=$* @@ -291,7 +308,7 @@ for host in ${hosts} ; do for target in ${targets} ; do if [ -n "${verbose}" ] ; then - echo host \= \"${host}\", target \= \"${target}\". + echo " target=\"${target}\"" fi target_makefile_frag=config/tmake-${target} @@ -319,13 +336,13 @@ links= echo Warning: no `pwd`/${hostsubdir} to remove. fi else - rm -f Makefile config.status ${links} + rm -f ${Makefile} config.status ${links} fi else if [ -n "${forcesubdirs}" ] ; then # check for existing status before allowing forced subdirs. - if [ -f Makefile ] ; then - echo "Makefile already exists in source directory. `pwd` not configured." + if [ -f ${Makefile} ] ; then + echo "${Makefile} already exists in source directory. `pwd` not configured." exit 1 fi @@ -414,62 +431,57 @@ links= # Define macro CROSS_COMPILE in compilation if this is a cross-compiler. if [ "${host}" != "${target}" ] ; then - echo "CROSS=-DCROSS_COMPILE" > Makefile - echo "ALL=start.encap" >> Makefile + echo "CROSS=-DCROSS_COMPILE" > ${Makefile} + echo "ALL=start.encap" >> ${Makefile} else - echo "ALL=all.internal" > Makefile + echo "ALL=all.internal" > ${Makefile} fi # set target, host, VPATH - echo "host = ${host}" >> Makefile - echo "target = ${target}" >> Makefile + echo "host = ${host}" >> ${Makefile} + echo "target = ${target}" >> ${Makefile} if [ -n "${forcesubdirs}" ] ; then - echo "subdir = /${hostsubdir}/${targetsubdir}" >> Makefile + echo "subdir = /${hostsubdir}/${targetsubdir}" >> ${Makefile} else - echo "subdir =" >> Makefile + echo "subdir =" >> ${Makefile} fi - # echo "workdir = `pwd`" >> Makefile - echo "VPATH = ${srcdir}" >> Makefile + # echo "workdir = `pwd`" >> ${Makefile} + echo "VPATH = ${srcdir}" >> ${Makefile} - # add Makefile.in - cat ${srcdir}/Makefile.in >> Makefile + # add "Makefile.in" (or whatever it's called) + cat ${srcdir}/${Makefile_in} >> ${Makefile} - # and shake thoroughly. # Conditionalize the makefile for this host. if [ -f ${srcdir}/${host_makefile_frag} ] ; then - sed -e "/^####/ r ${srcdir}/${host_makefile_frag}" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed -e "/^####/ r ${srcdir}/${host_makefile_frag}" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} fi # Conditionalize the makefile for this target. if [ -f ${srcdir}/${target_makefile_frag} ] ; then - sed -e "/^####/ r ${srcdir}/${target_makefile_frag}" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed -e "/^####/ r ${srcdir}/${target_makefile_frag}" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} fi # set srcdir - sed "s@^srcdir = \.@srcdir = ${srcdir}@" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s@^srcdir = \.@srcdir = ${srcdir}@" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} # set destdir if [ -n "${destdir}" ] ; then - sed "s:^destdir =.*$:destdir = ${destdir}:" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s:^destdir =.*$:destdir = ${destdir}:" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} fi - # Remove all formfeeds, since some Makes get confused by them. - sed "s/ //" Makefile >> Makefile.tem - mv Makefile.tem Makefile - # reset SUBDIRS - sed "s:^SUBDIRS =.*$:SUBDIRS = ${configdirs}:" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s:^SUBDIRS =.*$:SUBDIRS = ${configdirs}:" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} # reset NONSUBDIRS - sed "s:^NONSUBDIRS =.*$:NONSUBDIRS = ${noconfigdirs}:" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s:^NONSUBDIRS =.*$:NONSUBDIRS = ${noconfigdirs}:" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} using= if [ -f ${srcdir}/${host_makefile_frag} ] ; then @@ -486,7 +498,11 @@ links= andusing=${using} fi - echo "Created \"Makefile\"" in `pwd`${andusing}. + echo "Created \"${Makefile}\"" in `pwd`${andusing}. + +#### configure.in post-target parts come in here. + +## end of post-target part. if [ "${host}" = "${target}" ] ; then echo "Links are now set up for use with a ${target}." \ @@ -503,19 +519,21 @@ links= fi done # for each target -# # Now build a Makefile for this host. -# if [ -n "${forcesubdirs}" ] ; then -# cd ${hostsubdir} -# cat > GNUmakefile << E!O!F -## Makefile generated by configure for host ${host}. -# -#%: -# for i in ${targets} ; do \ -# $(MAKE) -C Target-\$i \$@ -# -#all clean stage1 stage2 stage3 stage4etags tags TAGS -#E!O!F -# fi + # Now build a Makefile for this host. + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then + cd ${hostsubdir} + cat > GNUmakefile << E!O!F +# Makefile generated by configure for host ${host}. + +ALL := $(shell ls -d Target-*) + +%: + $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true + +all: +E!O!F + cd .. + fi done # for each host # If there are subdirectories, then recurse. @@ -542,7 +560,7 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${commons} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -553,7 +571,7 @@ for configdir in ${configdirs} ; do for host in ${specifics} ; do echo Configuring target specific directory ${configdir}.${host}... (cd ${configdir}.${host} ; - ./configure ${host} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${host} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' done # for host in specifics fi # if there are any specifics @@ -578,7 +596,8 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} ${commons}) \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + ${commons} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -589,7 +608,8 @@ for configdir in ${configdirs} ; do for target in ${specifics} ; do echo Configuring target specific directory ${configdir}.${target}... (cd ${configdir}.${target} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} "+target=${target}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + "+target=${target}" +destdir=${destdir}) \ | sed 's/^/ /' done fi # if any specifics @@ -600,18 +620,43 @@ exit 0 # # $Log$ -# Revision 1.10 1991/05/27 20:54:35 rich -# fixed a bug in multiple targets +# Revision 1.13 1991/08/06 19:12:16 rich +# Host-level GNUmakefiles. +# +# Revision 1.22 1991/07/20 01:22:30 rich +# propogate gdb changes and destdir fix +# +# Revision 1.21 1991/07/20 00:55:20 gnu +# Roll in new configure that handles GDB. Make sure that the "configure" +# that is checked-in reflects the latest "configure.in", which includes gdb. +# +# Revision 1.9 1991/07/06 04:35:51 gnu +# Fix bug in configure when iterating targets. +# Depend on alldeps.mak, not ${srcdir}/alldeps.mak, so it can be found +# in either spot. +# +# Revision 1.8 1991/07/05 00:04:58 gnu +# Thu Jul 4 14:47:06 1991 John Gilmore (gnu at cygint.cygnus.com) +# +# * configure.in, Makefile.in: Avoid rebuilding "depend" as much. +# Avoid declaring Makefile dependencies, because GNU Make stupidly +# tries to update it if we do. +# +# * coffread.c: Revise for minor changes to bfd internal coff +# indexes. +# +# * configure: If -template= is given a relative path, make it +# absolute before recurring in subdirectories. # -# Revision 1.14 1991/05/22 01:44:04 rich -# remove gdb until config issues resolve. +# Revision 1.7 1991/07/04 15:59:46 gnu +# Make gdb work with configure. Only thing that doesn't work is the -list +# option (as far as I know). # -# Revision 1.13 1991/05/19 08:00:09 rich -# Added gdb. +# Revision 1.6 1991/06/04 07:28:16 gnu +# Change GDB over to GNU General Public License version 2. # -# Revision 1.12 1991/05/19 00:32:13 rich -# Changes to deal with missing subdirs gracefully, and changes dictated -# from dropping configure over gdb. +# Revision 1.5 1991/05/19 07:26:54 rich +# configure changes and -opcode.h movement. # # Revision 1.4 1991/05/19 00:16:45 rich # Configure for gdb. diff --git a/configure b/configure index 16f1e1f..072d639 100755 --- a/configure +++ b/configure @@ -180,7 +180,7 @@ fi # script appropriate for this directory. For more information, check # any existing configure script. -configdirs="libiberty bfd binutils gcc readline gdb ld gas gnulib ${clib} prms" +configdirs="libiberty bfd binutils bison gcc readline ld gas gnulib ${clib} gdb prms " srctrigger=README.configure srcname="gnu development package" @@ -516,19 +516,21 @@ for host in ${hosts} ; do fi done # for each target -# # Now build a Makefile for this host. -# if [ -n "${forcesubdirs}" ] ; then -# cd ${hostsubdir} -# cat > GNUmakefile << E!O!F -## Makefile generated by configure for host ${host}. -# -#%: -# for i in ${targets} ; do \ -# $(MAKE) -C Target-\$i \$@ -# -#all clean stage1 stage2 stage3 stage4etags tags TAGS -#E!O!F -# fi + # Now build a Makefile for this host. + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then + cd ${hostsubdir} + cat > GNUmakefile << E!O!F +# Makefile generated by configure for host ${host}. + +ALL := $(shell ls -d Target-*) + +%: + $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true + +all: +E!O!F + cd .. + fi done # for each host # If there are subdirectories, then recurse. @@ -555,7 +557,7 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${commons} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -566,7 +568,7 @@ for configdir in ${configdirs} ; do for host in ${specifics} ; do echo Configuring target specific directory ${configdir}.${host}... (cd ${configdir}.${host} ; - ./configure ${host} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${host} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' done # for host in specifics fi # if there are any specifics @@ -591,7 +593,8 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} ${commons}) \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + ${commons} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -602,7 +605,8 @@ for configdir in ${configdirs} ; do for target in ${specifics} ; do echo Configuring target specific directory ${configdir}.${target}... (cd ${configdir}.${target} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} "+target=${target}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + "+target=${target}" +destdir=${destdir}) \ | sed 's/^/ /' done fi # if any specifics @@ -613,7 +617,13 @@ exit 0 # # $Log$ -# Revision 1.21 1991/07/20 00:55:20 gnu +# Revision 1.23 1991/08/06 19:12:32 rich +# Host-level GNUmakefiles. +# +# Revision 1.22 1991/07/20 01:22:30 rich +# propogate gdb changes and destdir fix +# +# Revision 1.21 1991/07/20 00:55:20 gnu # Roll in new configure that handles GDB. Make sure that the "configure" # that is checked-in reflects the latest "configure.in", which includes gdb. # diff --git a/gas/configure b/gas/configure index 7e64171..8ee5d4e 100755 --- a/gas/configure +++ b/gas/configure @@ -574,7 +574,7 @@ links="host.h targ-cpu.c targ-cpu.h targ-env.h obj-format.h obj-format.c atof-ta done # for each target # Now build a Makefile for this host. - if [ -n "${forcesubdirs}" ] ; then + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then cd ${hostsubdir} cat > GNUmakefile << E!O!F # Makefile generated by configure for host ${host}. @@ -674,8 +674,8 @@ exit 0 # # $Log$ -# Revision 1.15 1991/08/05 21:36:41 rich -# *** empty log message *** +# Revision 1.16 1991/08/06 19:12:37 rich +# Host-level GNUmakefiles. # # Revision 1.22 1991/07/20 01:22:30 rich # propogate gdb changes and destdir fix diff --git a/gdb/configure b/gdb/configure index 03ad63e..b4a8dc2 100755 --- a/gdb/configure +++ b/gdb/configure @@ -177,7 +177,6 @@ fi #### configure.in common parts come in here. srcname="GDB" srctrigger=main.c -Makefile=Makefile.conf ## end of common part. @@ -336,13 +335,17 @@ host_makefile_frag=xconfig/${host} target_makefile_frag=tconfig/${target} # If hostfile (XM_FILE) and/or targetfile (TM_FILE) is not set in the -# ?config/* file, we don't make the corresponding links. +# ?config/* file, we don't make the corresponding links. But we have +# to remove the xm.h files and tm.h files anyway, e.g. when switching +# from "configure host" to "configure none". files= links= +rm -f xm.h if [ "${hostfile}" != "" ]; then files="${files} ${hostfile}" links="${links} xm.h" fi +rm -f tm.h if [ "${targetfile}" != "" ]; then files="${files} ${targetfile}" links="${links} tm.h" @@ -540,11 +543,7 @@ case ${srcdir} in echo "source ${srcdir}/.gdbinit" >> .gdbinit esac -rm -f Makefile -if [ ! -f ${srcdir}/depend ]; then - make -f Makefile.conf make-depend -fi -make -f Makefile.conf make-Makefile +cat ${srcdir}/alldeps.mak ${srcdir}/depend >>Makefile ## end of post-target part. if [ "${host}" = "${target}" ] ; then @@ -562,19 +561,21 @@ make -f Makefile.conf make-Makefile fi done # for each target -# # Now build a Makefile for this host. -# if [ -n "${forcesubdirs}" ] ; then -# cd ${hostsubdir} -# cat > GNUmakefile << E!O!F -## Makefile generated by configure for host ${host}. -# -#%: -# for i in ${targets} ; do \ -# $(MAKE) -C Target-\$i \$@ -# -#all clean stage1 stage2 stage3 stage4etags tags TAGS -#E!O!F -# fi + # Now build a Makefile for this host. + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then + cd ${hostsubdir} + cat > GNUmakefile << E!O!F +# Makefile generated by configure for host ${host}. + +ALL := $(shell ls -d Target-*) + +%: + $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true + +all: +E!O!F + cd .. + fi done # for each host # If there are subdirectories, then recurse. @@ -601,7 +602,7 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${commons} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -612,7 +613,7 @@ for configdir in ${configdirs} ; do for host in ${specifics} ; do echo Configuring target specific directory ${configdir}.${host}... (cd ${configdir}.${host} ; - ./configure ${host} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${host} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' done # for host in specifics fi # if there are any specifics @@ -637,7 +638,8 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} ${commons}) \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + ${commons} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -648,7 +650,8 @@ for configdir in ${configdirs} ; do for target in ${specifics} ; do echo Configuring target specific directory ${configdir}.${target}... (cd ${configdir}.${target} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} "+target=${target}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + "+target=${target}" +destdir=${destdir}) \ | sed 's/^/ /' done fi # if any specifics @@ -659,7 +662,17 @@ exit 0 # # $Log$ -# Revision 1.9 1991/07/06 04:35:51 gnu +# Revision 1.12 1991/08/06 19:12:51 rich +# Host-level GNUmakefiles. +# +# Revision 1.22 1991/07/20 01:22:30 rich +# propogate gdb changes and destdir fix +# +# Revision 1.21 1991/07/20 00:55:20 gnu +# Roll in new configure that handles GDB. Make sure that the "configure" +# that is checked-in reflects the latest "configure.in", which includes gdb. +# +# Revision 1.9 1991/07/06 04:35:51 gnu # Fix bug in configure when iterating targets. # Depend on alldeps.mak, not ${srcdir}/alldeps.mak, so it can be found # in either spot. diff --git a/ld/configure b/ld/configure index 4386ff6..72a3e23 100755 --- a/ld/configure +++ b/ld/configure @@ -3,9 +3,6 @@ # configure.in and a configure template. configdirs= -# the debugger. -#set -x - #!/bin/sh # Configuration script template @@ -13,19 +10,19 @@ configdirs= #This file is part of GNU. -#GNU CC 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 1, or (at your option) -#any later version. - -#GNU CC 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 GNU CC; see the file COPYING. If not, write to -#the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +# 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, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # $Id$ @@ -50,13 +47,13 @@ symbolic_link='ln -s' progname=$0 # clear some things potentially inherited from environment. - ansi= -clib= defaulttargets= destdir= fatal= hostsubdir= +Makefile=Makefile +Makefile_in=Makefile.in norecurse= removing= srcdir= @@ -73,9 +70,6 @@ do -ansi | +ansi) ansi=true ;; - -clib | +c*) - clib=clib - ;; -destdir=* | +destdir=* | +destdi=* | +destd=* | +dest=* | +des=* | +de=* | +d=*) destdir=`echo ${arg} | sed 's/[+-]d[a-z]*=//'` ;; @@ -187,7 +181,7 @@ fi # any existing configure script. configdirs= -srctrigger=ldver.c +srctrigger=ldmain.c srcname="linker" ## end of common part. @@ -209,6 +203,9 @@ if [ -n "${template}" ] ; then -e '/^#### configure.in per-target parts come in here.$/,/^## end of per-target part.$/c\ #### configure.in per-target parts come in here.\ ## end of per-target part.' \ + -e '/^#### configure.in post-target parts come in here.$/,/^## end of post-target part.$/c\ +#### configure.in post-target parts come in here.\ +## end of post-target part.' \ < ${template} > template.new if [ -r configure.in ] ; then @@ -222,18 +219,26 @@ if [ -n "${template}" ] ; then exit 1 fi - # split configure.in into common, per-host, and per-target parts + # split configure.in into common, per-host, per-target, + # and post-target parts. Post-target is optional. sed -e '/^# per\-host:/,$d' configure.in > configure.com sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' configure.in > configure.hst - sed -e '1,/^# per\-target:/d' configure.in > configure.tgt + if grep -s '^# post-target:' configure.in ; then + sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' configure.in > configure.tgt + sed -e '1,/^# post\-target:/d' configure.in > configure.pos + else + sed -e '1,/^# per\-target:/d' configure.in > configure.tgt + echo >configure.pos + fi # and insert them sed -e '/^#### configure.in common parts come in here.$/ r configure.com' \ -e '/^#### configure.in per\-host parts come in here.$/ r configure.hst' \ -e '/^#### configure.in per\-target parts come in here.$/ r configure.tgt' \ + -e '/^#### configure.in post\-target parts come in here.$/ r configure.pos' \ template.new > configure.new - rm -f configure.com configure.tgt configure.hst + rm -f configure.com configure.tgt configure.hst configure.pos else echo Warning: no configure.in in `pwd` cat ${template} >> configure @@ -246,6 +251,13 @@ if [ -n "${template}" ] ; then echo Rebuilt configure in `pwd` if [ -z "${norecurse}" ] ; then + # If template is relative path, make it absolute for recursing. + if echo "${template}" | grep -s '^/' ; then + true + else + template=`pwd`/${template} + fi + while [ -n "${configdirs}" ] ; do # set configdir to car of configdirs, configdirs to cdr of configdirs set ${configdirs}; configdir=$1; shift; configdirs=$* @@ -297,7 +309,7 @@ for host in ${hosts} ; do for target in ${targets} ; do if [ -n "${verbose}" ] ; then - echo host \= \"${host}\", target \= \"${target}\". + echo " target=\"${target}\"" fi target_makefile_frag=config/tmake-${target} @@ -322,13 +334,13 @@ for host in ${hosts} ; do echo Warning: no `pwd`/${hostsubdir} to remove. fi else - rm -f Makefile config.status ${links} + rm -f ${Makefile} config.status ${links} fi else if [ -n "${forcesubdirs}" ] ; then # check for existing status before allowing forced subdirs. - if [ -f Makefile ] ; then - echo "Makefile already exists in source directory. `pwd` not configured." + if [ -f ${Makefile} ] ; then + echo "${Makefile} already exists in source directory. `pwd` not configured." exit 1 fi @@ -417,62 +429,57 @@ for host in ${hosts} ; do # Define macro CROSS_COMPILE in compilation if this is a cross-compiler. if [ "${host}" != "${target}" ] ; then - echo "CROSS=-DCROSS_COMPILE" > Makefile - echo "ALL=start.encap" >> Makefile + echo "CROSS=-DCROSS_COMPILE" > ${Makefile} + echo "ALL=start.encap" >> ${Makefile} else - echo "ALL=all.internal" > Makefile + echo "ALL=all.internal" > ${Makefile} fi # set target, host, VPATH - echo "host = ${host}" >> Makefile - echo "target = ${target}" >> Makefile + echo "host = ${host}" >> ${Makefile} + echo "target = ${target}" >> ${Makefile} if [ -n "${forcesubdirs}" ] ; then - echo "subdir = /${hostsubdir}/${targetsubdir}" >> Makefile + echo "subdir = /${hostsubdir}/${targetsubdir}" >> ${Makefile} else - echo "subdir =" >> Makefile + echo "subdir =" >> ${Makefile} fi - # echo "workdir = `pwd`" >> Makefile - echo "VPATH = ${srcdir}" >> Makefile + # echo "workdir = `pwd`" >> ${Makefile} + echo "VPATH = ${srcdir}" >> ${Makefile} - # add Makefile.in - cat ${srcdir}/Makefile.in >> Makefile + # add "Makefile.in" (or whatever it's called) + cat ${srcdir}/${Makefile_in} >> ${Makefile} - # and shake thoroughly. # Conditionalize the makefile for this host. if [ -f ${srcdir}/${host_makefile_frag} ] ; then - sed -e "/^####/ r ${srcdir}/${host_makefile_frag}" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed -e "/^####/ r ${srcdir}/${host_makefile_frag}" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} fi # Conditionalize the makefile for this target. if [ -f ${srcdir}/${target_makefile_frag} ] ; then - sed -e "/^####/ r ${srcdir}/${target_makefile_frag}" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed -e "/^####/ r ${srcdir}/${target_makefile_frag}" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} fi # set srcdir - sed "s@^srcdir = \.@srcdir = ${srcdir}@" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s@^srcdir = \.@srcdir = ${srcdir}@" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} # set destdir if [ -n "${destdir}" ] ; then - sed "s:^destdir =.*$:destdir = ${destdir}:" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s:^destdir =.*$:destdir = ${destdir}:" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} fi - # Remove all formfeeds, since some Makes get confused by them. - sed "s/ //" Makefile >> Makefile.tem - mv Makefile.tem Makefile - # reset SUBDIRS - sed "s:^SUBDIRS =.*$:SUBDIRS = ${configdirs}:" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s:^SUBDIRS =.*$:SUBDIRS = ${configdirs}:" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} # reset NONSUBDIRS - sed "s:^NONSUBDIRS =.*$:NONSUBDIRS = ${noconfigdirs}:" Makefile > Makefile.tem - mv Makefile.tem Makefile + sed "s:^NONSUBDIRS =.*$:NONSUBDIRS = ${noconfigdirs}:" ${Makefile} > Makefile.tem + mv Makefile.tem ${Makefile} using= if [ -f ${srcdir}/${host_makefile_frag} ] ; then @@ -489,7 +496,11 @@ for host in ${hosts} ; do andusing=${using} fi - echo "Created \"Makefile\"" in `pwd`${andusing}. + echo "Created \"${Makefile}\"" in `pwd`${andusing}. + +#### configure.in post-target parts come in here. + +## end of post-target part. if [ "${host}" = "${target}" ] ; then echo "Links are now set up for use with a ${target}." \ @@ -506,19 +517,21 @@ for host in ${hosts} ; do fi done # for each target -# # Now build a Makefile for this host. -# if [ -n "${forcesubdirs}" ] ; then -# cd ${hostsubdir} -# cat > GNUmakefile << E!O!F -## Makefile generated by configure for host ${host}. -# -#%: -# for i in ${targets} ; do \ -# $(MAKE) -C Target-\$i \$@ -# -#all clean stage1 stage2 stage3 stage4etags tags TAGS -#E!O!F -# fi + # Now build a Makefile for this host. + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then + cd ${hostsubdir} + cat > GNUmakefile << E!O!F +# Makefile generated by configure for host ${host}. + +ALL := $(shell ls -d Target-*) + +%: + $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true + +all: +E!O!F + cd .. + fi done # for each host # If there are subdirectories, then recurse. @@ -545,7 +558,7 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} "+destdir=${destdir}") \ + ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -556,7 +569,7 @@ for configdir in ${configdirs} ; do for host in ${specifics} ; do echo Configuring target specific directory ${configdir}.${host}... (cd ${configdir}.${host} ; - ./configure ${host} ${verbose} ${forcesubdirs} ${removing} "+destdir=${destdir}") \ + ./configure ${host} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' done # for host in specifics fi # if there are any specifics @@ -581,7 +594,8 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} ${commons} "+destdir=${destdir}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + ${commons} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -592,7 +606,8 @@ for configdir in ${configdirs} ; do for target in ${specifics} ; do echo Configuring target specific directory ${configdir}.${target}... (cd ${configdir}.${target} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} "+target=${target}" "+destdir=${destdir}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + "+target=${target}" +destdir=${destdir}) \ | sed 's/^/ /' done fi # if any specifics @@ -603,30 +618,43 @@ exit 0 # # $Log$ -# Revision 1.14 1991/07/15 23:43:20 steve -# Fixed a few bugs, added 29k coff support. +# Revision 1.16 1991/08/06 19:12:42 rich +# Host-level GNUmakefiles. +# +# Revision 1.22 1991/07/20 01:22:30 rich +# propogate gdb changes and destdir fix +# +# Revision 1.21 1991/07/20 00:55:20 gnu +# Roll in new configure that handles GDB. Make sure that the "configure" +# that is checked-in reflects the latest "configure.in", which includes gdb. +# +# Revision 1.9 1991/07/06 04:35:51 gnu +# Fix bug in configure when iterating targets. +# Depend on alldeps.mak, not ${srcdir}/alldeps.mak, so it can be found +# in either spot. # -# Revision 1.13 1991/06/12 21:24:30 rich -# correctly propogate destdir +# Revision 1.8 1991/07/05 00:04:58 gnu +# Thu Jul 4 14:47:06 1991 John Gilmore (gnu at cygint.cygnus.com) # -# Revision 1.17 1991/06/09 20:39:58 rich -# Added +clib option. +# * configure.in, Makefile.in: Avoid rebuilding "depend" as much. +# Avoid declaring Makefile dependencies, because GNU Make stupidly +# tries to update it if we do. # -# Revision 1.16 1991/05/27 21:04:21 rich -# Removed clib for now. +# * coffread.c: Revise for minor changes to bfd internal coff +# indexes. # -# Revision 1.15 1991/05/27 20:54:24 rich -# fixed a bug in multiple targets +# * configure: If -template= is given a relative path, make it +# absolute before recurring in subdirectories. # -# Revision 1.14 1991/05/22 01:44:04 rich -# remove gdb until config issues resolve. +# Revision 1.7 1991/07/04 15:59:46 gnu +# Make gdb work with configure. Only thing that doesn't work is the -list +# option (as far as I know). # -# Revision 1.13 1991/05/19 08:00:09 rich -# Added gdb. +# Revision 1.6 1991/06/04 07:28:16 gnu +# Change GDB over to GNU General Public License version 2. # -# Revision 1.12 1991/05/19 00:32:13 rich -# Changes to deal with missing subdirs gracefully, and changes dictated -# from dropping configure over gdb. +# Revision 1.5 1991/05/19 07:26:54 rich +# configure changes and -opcode.h movement. # # Revision 1.4 1991/05/19 00:16:45 rich # Configure for gdb. diff --git a/readline/configure b/readline/configure index f1fffac..ff36a25 100755 --- a/readline/configure +++ b/readline/configure @@ -517,19 +517,21 @@ for host in ${hosts} ; do fi done # for each target -# # Now build a Makefile for this host. -# if [ -n "${forcesubdirs}" ] ; then -# cd ${hostsubdir} -# cat > GNUmakefile << E!O!F -## Makefile generated by configure for host ${host}. -# -#%: -# for i in ${targets} ; do \ -# $(MAKE) -C Target-\$i \$@ -# -#all clean stage1 stage2 stage3 stage4etags tags TAGS -#E!O!F -# fi + # Now build a Makefile for this host. + if [ -n "${forcesubdirs}" -a ! -n "${removing}" ] ; then + cd ${hostsubdir} + cat > GNUmakefile << E!O!F +# Makefile generated by configure for host ${host}. + +ALL := $(shell ls -d Target-*) + +%: + $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true + +all: +E!O!F + cd .. + fi done # for each host # If there are subdirectories, then recurse. @@ -556,7 +558,7 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${commons} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${commons} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -567,7 +569,7 @@ for configdir in ${configdirs} ; do for host in ${specifics} ; do echo Configuring target specific directory ${configdir}.${host}... (cd ${configdir}.${host} ; - ./configure ${host} ${verbose} ${forcesubdirs} ${removing}) \ + ./configure ${host} ${verbose} ${forcesubdirs} ${removing} +destdir=${destdir}) \ | sed 's/^/ /' done # for host in specifics fi # if there are any specifics @@ -592,7 +594,8 @@ for configdir in ${configdirs} ; do if [ -n "${commons}" ] ; then if [ -d ${configdir} ] ; then (cd ${configdir} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} ${commons}) \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + ${commons} +destdir=${destdir}) \ | sed 's/^/ /' else echo Warning: directory \"${configdir}\" is missing. @@ -603,7 +606,8 @@ for configdir in ${configdirs} ; do for target in ${specifics} ; do echo Configuring target specific directory ${configdir}.${target}... (cd ${configdir}.${target} ; - ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} "+target=${target}") \ + ./configure ${hosts} ${verbose} ${forcesubdirs} ${removing} \ + "+target=${target}" +destdir=${destdir}) \ | sed 's/^/ /' done fi # if any specifics @@ -614,8 +618,15 @@ exit 0 # # $Log$ -# Revision 1.4 1991/07/20 00:56:55 gnu -# Roll in the configure that handles gdb. +# Revision 1.6 1991/08/06 19:12:55 rich +# Host-level GNUmakefiles. +# +# Revision 1.22 1991/07/20 01:22:30 rich +# propogate gdb changes and destdir fix +# +# Revision 1.21 1991/07/20 00:55:20 gnu +# Roll in new configure that handles GDB. Make sure that the "configure" +# that is checked-in reflects the latest "configure.in", which includes gdb. # # Revision 1.9 1991/07/06 04:35:51 gnu # Fix bug in configure when iterating targets. -- 2.7.4