diff --git a/bfd/configure b/bfd/configure index 0d2e27b6c4..789c23a491 100755 --- a/bfd/configure +++ b/bfd/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} @@ -318,13 +335,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 @@ -413,62 +430,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 @@ -485,7 +497,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}." \ @@ -599,18 +615,36 @@ exit 0 # # $Log$ -# Revision 1.10 1991/05/27 20:54:38 rich -# fixed a bug in multiple targets +# Revision 1.12 1991/07/20 00:56:41 gnu +# Roll in configure that handles GDB. # -# Revision 1.14 1991/05/22 01:44:04 rich -# remove gdb until config issues resolve. +# 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/05/19 08:00:09 rich -# Added gdb. +# 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.12 1991/05/19 00:32:13 rich -# Changes to deal with missing subdirs gracefully, and changes dictated -# from dropping configure over gdb. +# * 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.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.6 1991/06/04 07:28:16 gnu +# Change GDB over to GNU General Public License version 2. +# +# 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.