| # configure.lang for GNU CC |
| # This script is run by configure for configuration of language |
| # subdirectories which conform to the old GCC configure mechansim |
| # for such subdirectories. |
| |
| # Copyright (C) 1997 Free Software Foundation, Inc. |
| |
| #This file is part of GNU CC. |
| |
| #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 2, 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, 59 Temple Place - Suite 330, |
| #Boston, MA 02111-1307, USA. |
| |
| savesrcdir=$srcdir |
| |
| for subdir in . $oldstyle_subdirs |
| do |
| # We only want to do this in language subdirs, but we have to handle |
| # the case of $oldstyle_subdirs = "". |
| if [ $subdir = . ] |
| then |
| continue |
| fi |
| |
| oldsrcdir=$savesrcdir |
| |
| # Re-adjust the path |
| case $oldsrcdir in |
| /*) |
| srcdir=$oldsrcdir/$subdir |
| ;; |
| *) |
| oldsrcdir=../${oldsrcdir} |
| srcdir=$oldsrcdir/$subdir |
| ;; |
| esac |
| mainsrcdir=$oldsrcdir |
| STARTDIR=`pwd` |
| test -d $subdir || mkdir $subdir |
| cd $subdir |
| |
| # Create Makefile.tem from Makefile.in. |
| # Make it set VPATH if necessary so that the sources are found. |
| # Also change its value of srcdir. |
| # Also create a .gdbinit file which runs the one in srcdir |
| # and tells GDB to look there for source files. |
| case $srcdir in |
| . | ./$subdir | .././$subdir) |
| rm -f Makefile.tem |
| cp Makefile.in Makefile.tem |
| chmod +w Makefile.tem |
| ;; |
| *) |
| rm -f Makefile.tem |
| echo "VPATH = ${srcdir}" \ |
| | cat - ${srcdir}/Makefile.in \ |
| | sed "s@^srcdir = \.@srcdir = ${srcdir}@" > Makefile.tem |
| rm -f .gdbinit |
| echo "dir ." > .gdbinit |
| echo "dir ${srcdir}" >> .gdbinit |
| echo "dir ${mainsrcdir}" >> .gdbinit |
| if [ x$gdb_needs_out_file_path = xyes ] |
| then |
| echo "dir ${mainsrcdir}/config/"`dirname ${out_file}` >> .gdbinit |
| fi |
| echo "source ${mainsrcdir}/.gdbinit" >> .gdbinit |
| ;; |
| esac |
| |
| # Conditionalize the makefile for this host machine. |
| rm -f Makefile.xx Makefile.ll |
| merged_frags= |
| for f in .. ${host_xmake_file} |
| do |
| if [ -f ${mainsrcdir}/config/$f ] |
| then |
| cat ${mainsrcdir}/config/$f >> Makefile.ll |
| if [ x"${merged_frags}" != x ] |
| then |
| merged_frags="${merged_frags} and " |
| fi |
| merged_frags="${merged_frags}${f}" |
| fi |
| done |
| if [ x"${merged_frags}" != x ] |
| then |
| sed -e "/####host/ r Makefile.ll" Makefile.tem > Makefile.xx |
| echo "Merged ${merged_frags}." |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| rm -f Makefile.ll |
| fi |
| |
| # Add a definition for MAKE if system wants one. |
| case "$SET_MAKE" in |
| ?*) |
| rm -f Makefile.xx |
| (echo "$SET_MAKE"; cat Makefile.tem) >Makefile.xx |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| esac |
| |
| # Add a definition for INSTALL if system wants one. |
| # This substitutes for lots of x-* files. |
| if [ x$build_broken_install = x ] |
| then true |
| else |
| rm -f Makefile.xx |
| abssrcdir=`cd ${srcdir}; pwd` |
| sed "s|^INSTALL = .*|INSTALL = ${abssrcdir}/install.sh -c|" Makefile.tem > Makefile.xx |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| fi |
| |
| # If using -program-transform-name, override the installation names. |
| if [ "x${program_transform_set}" = "xyes" ] ; then |
| sed -e "s/^program_transform_name[ ]*=.*$/program_transform_name = |
| $program_transform_name/" \ |
| -e "s/^program_transform_cross_name[ |
| ]*=.*$/program_transform_cross_name = $program_transform_name/" \ |
| Makefile.tem > Makefile.xx |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| fi |
| |
| # Conditionalize the makefile for this target machine. |
| rm -f Makefile.xx Makefile.ll |
| merged_frags= |
| for f in .. ${tmake_file} |
| do |
| if [ -f ${mainsrcdir}/config/$f ] |
| then |
| cat ${mainsrcdir}/config/$f >> Makefile.ll |
| if [ x"${merged_frags}" != x ] |
| then |
| merged_frags="${merged_frags} and " |
| fi |
| merged_frags="${merged_frags}$f" |
| fi |
| done |
| if [ x"${merged_frags}" != x ] |
| then |
| sed -e "/####target/ r Makefile.ll" Makefile.tem > Makefile.xx |
| echo "Merged ${merged_frags}." |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| rm -f Makefile.ll |
| fi |
| |
| # If the host supports |
| # symlinks, point stage[123] at ../stage[123] so bootstrapping and the |
| # installation procedure can still use CC="stage1/xgcc -Bstage1/". |
| # If the host doesn't support symlinks, FLAGS_TO_PASS has been |
| # modified to solve the problem there. |
| for t in stage1 stage2 stage3 stage4 include |
| do |
| rm -f $t |
| $symbolic_link ../$t $t 2>/dev/null |
| done |
| |
| # Remove all formfeeds, since some Makes get confused by them. |
| # Also arrange to give the variables `target', `target_alias', |
| # `host_xmake_file', `tmake_file', `prefix', `local_prefix', |
| # `exec_prefix', `INSTALL_HEADERS_DIR', `exeext' |
| # values in the Makefile from the values they have in this script. |
| rm -f Makefile.xx |
| # Create an empty Makefile.sed first, to work around a Nextstep 3.3 bug. |
| echo 's|||' > Makefile.sed |
| rm Makefile.sed |
| echo 's|||' > Makefile.sed |
| echo "s|^target=.*$|target=${target}|" >> Makefile.sed |
| echo "s|^target_alias=.*$|target=${target_alias}|" >> Makefile.sed |
| echo "s|^xmake_file=.*$|xmake_file=${dep_host_xmake_file}|" >> Makefile.sed |
| echo "s|^tmake_file=.*$|tmake_file=${dep_tmake_file}|" >> Makefile.sed |
| echo "s|^version=.*$|version=${version}|" >> Makefile.sed |
| echo "s|^GCC_THREAD_FILE=.*$|GCC_THREAD_FILE=${thread_file}|" >> Makefile.sed |
| echo "s|^prefix[ ]*=.*|prefix = $prefix|" >> Makefile.sed |
| echo "s|^local_prefix[ ]*=.*|local_prefix = $local_prefix|" >> Makefile.sed |
| echo "s|^exec_prefix[ ]*=.*|exec_prefix = $exec_prefix|" >> Makefile.sed |
| echo "s|^INSTALL_HEADERS_DIR[ ]*=.*$|INSTALL_HEADERS_DIR = ${build_install_headers_dir}|" >> Makefile.sed |
| echo "s|^exeext[ ]*=.*$|exeext = ${build_exeext}|" >> Makefile.sed |
| sed -f Makefile.sed Makefile.tem > Makefile.xx |
| rm -f Makefile.tem Makefile.sed |
| mv Makefile.xx Makefile.tem |
| |
| # Install Makefile for real, after making final changes. |
| # Define macro CROSS_COMPILE in compilation |
| # if this is a cross-compiler. |
| # Also use all.cross instead of all.internal |
| # and add cross-make to Makefile. |
| if [ x$host != x$target ] |
| then |
| rm -f Makefile.xx |
| echo "CROSS=-DCROSS_COMPILE" > Makefile.xx |
| sed -e "/####cross/ r ${mainsrcdir}/cross-make" Makefile.tem >> Makefile.xx |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| fi |
| |
| # When building gcc with a cross-compiler, we need to fix a few things. |
| # This must come after cross-make as we want all.build to override |
| # all.cross. |
| if [ x$build != x$host ] |
| then |
| rm -f Makefile.xx |
| echo "build= $build" > Makefile.xx |
| echo "host= $host" >> Makefile.xx |
| sed -e "s|objc-runtime$||" \ |
| -e "/####build/ r ${mainsrcdir}/build-make" Makefile.tem >> Makefile.xx |
| rm -f Makefile.tem |
| mv Makefile.xx Makefile.tem |
| fi |
| |
| rm -f Makefile |
| mv Makefile.tem Makefile |
| echo "Created \`$subdir/Makefile'." |
| |
| cd $STARTDIR |
| done # end of current-dir SUBDIRS loop |
| |
| # Restore this, remember we're invoked with `.'. |
| srcdir=$savesrcdir |