# configure.lang for GNU CC # This script is run by configure for configuration of language # subdirectories which conform to the old GCC configure mechanism # for such subdirectories. # Copyright (C) 1997, 1998 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}|" 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_alias=${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