From c1e4672ca080796321463cd55384b9ca19a5a24d Mon Sep 17 00:00:00 2001 From: "K. Richard Pixley" Date: Wed, 11 Mar 1992 05:50:05 +0000 Subject: [PATCH] use relative paths for configure and srcdir when possible --- ChangeLog | 55 +++++- configure | 662 ++++++++++++++++++++++++++++++-------------------------------- 2 files changed, 378 insertions(+), 339 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8dca62e..87cfa5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,57 @@ -Mon Feb 24 17:08:01 1992 K. Richard Pixley (rich@rtl.cygnus.com) +Tue Mar 10 21:49:18 1992 K. Richard Pixley (rich@mars.cygnus.com) + + * configure: use relative paths for configure and srcdir whenever + possible. + +Tue Mar 10 18:01:55 1992 Per Bothner (bothner@cygnus.com) + + * Makefile.in: Fix libg++ rule to check for gcc directory + before using gcc/gcc. Also pass XTRAFLAGS. + +Thu Mar 5 21:45:07 1992 K. Richard Pixley (rich@sendai) + + * Makefile.in: added stmp-files so that directories aren't polled + when they are already built. + + * configure.texi: fixed a node pointer problem. + +Thu Mar 5 12:05:58 1992 Stu Grossman (grossman at cygnus.com) + + * config.sub configure.in config/.Sanitize config/mh-irix4 + gdb/.Sanitize gdb/configure.in gdb/mips-tdep.c gdb/mipsread.c + gdb/procfs.c gdb/signame.h gdb/tm-irix3.h gdb/tm-mips.h + gdb/xm-irix4.h gdb/config/.Sanitize gdb/config/mt-irix3 + gdb/config/mh-irix4 texinfo/configure.in: Port to SGI Irix-4.x. + +Wed Mar 4 02:57:46 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * configure: -recurring becomes -silent. corrected help message + for -site= option. + + * Makefile.in: mkdir $(exec_prefix) and $(tooldir). + +Tue Mar 3 14:51:21 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * configure: when building Makefile for crosses, replace + tooldir and program_prefix. default srcdir from location of + config.sub. remove "for host in hosts" and "for target in + targets" loops. + +Wed Feb 26 19:48:25 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: Do not pass bindir or mandir to cvs. + +Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in, configure.in: removed traces of namesubdir, + -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced + copyrights to '92, changed some from Cygnus to FSF. + + * configure.texi: remove most references to multiple hosts, + multiple targets, subdirs, etc. + + * configure.man: removed rcsid. reference config.sub not + config.subr. * Makefile.in: mkdir $(infodir) on install-info. diff --git a/configure b/configure index 6db69d3..61c0dc9 100755 --- a/configure +++ b/configure @@ -3,8 +3,6 @@ # Configuration script # Copyright (C) 1988, 1990, 1991, 1992 Free Software Foundation, Inc. -#This file is part of GNU. - # 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 @@ -22,6 +20,8 @@ # Please email any bugs, comments, and/or additions to this file to: # configure@cygnus.com +# This file was written by K. Richard Pixley. + # # Shell script to create proper links to machine-dependent files in # preparation for compilation. @@ -31,9 +31,6 @@ # config.status is removed. # -# NOTE: This script contains support for a Cygnus experimental feature, called -# +subdirs, which is currently, tentatively, de-supported. - export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0 $argv; kill $$) remove=rm @@ -50,16 +47,14 @@ symbolic_link='ln -s' Makefile=Makefile Makefile_in=Makefile.in arguments=$* -commontargets= configdirs= -datadir= -datadiroption= -defaulttargets= +exec_prefix= +exec_prefixoption= fatal= floating_point=default gas=default +host_alias= host_makefile_frag= -hosts= next_host= next_prefix= next_site= @@ -69,14 +64,14 @@ next_tmpdir= norecursion= prefix=/usr/local progname= -recurring= -removing= +program_prefix= +program_prefix_option= +silent= site_makefile_frag= srcdir= srctrigger= -target= +target_alias= target_makefile_frag= -targets= undefinedargs= verbose= version="$Revision$" @@ -86,40 +81,43 @@ NO_EDIT="This file was generated automatically by configure. Do not edit." ## this is a little touchy and won't always work, but... ## -## if the argv[0] starts with a slash then it is an absolute name that can be -## used as is. +## if the argv[0] starts with a slash then it is an absolute name that can (and +## must) be used as is. ## ## otherwise, if argv[0] has no slash in it, we can assume that it is on the ## path. Since PATH might include "." we also add `pwd` to the end of PATH. ## -## otherwise we prepend `pwd` to $0 and hope that will give us an absolute -## path. -## PWD=`pwd` +progname=$0 -if echo $0 | grep '^/' > /dev/null ; then - progname=$0 -elif echo $0 | grep '/' > /dev/null ; then - progname=${PWD}/$0 -else - progname=$0 +case "${progname}" in +/*) ;; +*/*) ;; +*) PATH=$PATH:${PWD} ; export PATH -fi + ;; +esac for arg in $*; do # handle things that might have args following as separate words if [ -n "${next_prefix}" ] ; then prefix=${arg} ; prefixoption="-prefix=${prefix}" ; next_prefix= - elif [ -n "${next_datadir}" ] ; then datadir=${arg} ; datadiroption="-datadir=${datadir}" ; next_datadir= + elif [ -n "${next_exec_prefix}" ] ; then + exec_prefix=${arg} + exec_prefixoption="-exec_prefix=${exec_prefix}" + next_exec_prefix= elif [ -n "${next_site}" ] ; then site=${arg} ; next_site= - elif [ -n "${next_srcdir}" ] ; then srcdir=${arg} ; next_srcdir= + elif [ -n "${next_srcdir}" ] ; then srcdir=${arg} ; next_srcdir= + elif [ -n "${next_program_prefix}" ] ; then + program_prefix=${arg} + program_prefixoption="-program_prefix=${program_prefix}" + next_program_prefix= elif [ -n "${next_target}" ] ; then next_target= - case "${targets}" in + case "${target_alias}" in "") - newtargets="${targets} ${arg}" - targets="${newtargets}" + target_alias="${arg}" ;; *) echo '***' Can only configure for one target at a time. @@ -133,12 +131,12 @@ do else case ${arg} in - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* | --da=* | --d=*) - datadir=`echo ${arg} | sed 's/^[-a-z]*=//'` - datadiroption=${arg} + -exec_prefix=* | --exec_prefix=* | --exec_prefi=* | --exec_pref=* | --exec_pre=* | --exec_pr=* | --exec_p=* | --exec_=* | --exec=* | --exe=* | --ex=* | --e=*) + exec_prefix=`echo ${arg} | sed 's/^[-a-z_]*=//'` + exec_prefixoption=${arg} ;; - -datadir | --datadir | --datadi | --datad | --data | --dat | --da | --d) - next_datadir=yes + -exec_prefix | --exec_prefix | --exec_prefi | --exec_pref | --exec_pre | --exec_pr | --exec_p | --exec_ | --exec | --exe | --ex | --e) + next_exec_prefix=yes ;; -gas | --g*) gas=yes @@ -147,10 +145,9 @@ do fatal=true ;; -host=* | --host=* | --hos=* | --ho=*) - case "${hosts}" in + case "${host_alias}" in "") - newhosts="${hosts} `echo ${arg} | sed 's/^[-a-z]*=//'`" - hosts="${newhosts}" + host_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" ;; *) echo '***' Can only configure for one host at a time. @@ -164,24 +161,28 @@ do -norecursion | --no*) norecursion=true ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=*) prefix=`echo ${arg} | sed 's/^[-a-z]*=//'` prefixoption=${arg} ;; - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + -prefix | --prefix | --prefi | --pref | --pre) next_prefix=yes ;; - -recurring | --recurring | --recurrin | --recurri | --recurr | --recur | --recu | --rec | --re) - recurring=true - arguments=`echo ${arguments} | sed "s:${arg}::"` + -program_prefix=* | --program_prefix=* | --program_prefi=* | --program_pref=* | --program_pre=* | --program_pr=* | --program_p=* | --program_=* | --program=* | --progra=* | --progr=* | --prog=* | --pro=*) + program_prefix=`echo ${arg} | sed 's/^[-a-z]*=//'` + program_prefixoption=${arg} + ;; + -program_prefix | --program_prefix | --program_prefi | --program_pref | --program_pre | --program_pr | --program_p | --program_ | --program | --progra | --progr | --prog | --pro) + next_program_prefix=yes ;; - -rm | --rm) - removing=${arg} + -s | -silent | --silent | --silen | --sile | --sil) + silent=true + arguments=`echo ${arguments} | sed "s:${arg}::"` ;; -site=* | --site=* | --sit=* | --si=*) site=`echo ${arg} | sed 's/^[-a-z]*=//'` ;; - -site | --site | --sit | --si) + -site | --site | --sit) next_site=yes ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) @@ -191,11 +192,8 @@ do next_srcdir=yes ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=*) - case "${targets}" in - "") - newtargets="${targets} `echo ${arg} | sed 's/^[-a-z]*=//'`" - targets="${newtargets}" - ;; + case "${target_alias}" in + "") target_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" ;; *) echo '***' Can only configure for one target at a time. fatal=yes @@ -229,8 +227,7 @@ do *) case "${undefs}" in "") - newundefs="${undefs} ${arg}" - undefs=${newundefs} + undefs="${arg}" ;; *) echo '***' Can only configure for one host and one target at a time. @@ -246,7 +243,7 @@ done case "${fatal}" in "") # # Complain if an arg is missing -# if [ -z "${hosts}" ] ; then +# if [ -z "${host_alias}" ] ; then # (echo ; # echo "configure: No HOST specified." ; # echo) 1>&2 @@ -261,23 +258,23 @@ case "${fatal}" in ### * if no targets are specified, then the unadorned args are targets, but if ### there were no unadorned args, then the hosts are also targets. - if [ -n "${hosts}" -a -n "${targets}" -a -n "${undefs}" ] ; then + if [ -n "${host_alias}" -a -n "${target_alias}" -a -n "${undefs}" ] ; then echo '***' Can only configure for one host and one target at a time. fatal=yes - elif [ -z "${hosts}" -a -z "${undefs}" ] ; then + elif [ -z "${host_alias}" -a -z "${undefs}" ] ; then echo '***' You must tell me for which host you want to configure. fatal=yes else - case "${hosts}" in - "") hosts=${undefs} ;; + case "${host_alias}" in + "") host_alias=${undefs} ;; *) ;; esac - case "${targets}" in + case "${target_alias}" in "") case "${undefs}" in - "") targets=${hosts} ;; - *) targets=${undefs} ;; + "") target_alias=${host_alias} ;; + *) target_alias=${undefs} ;; esac ;; *) ;; @@ -287,22 +284,22 @@ case "${fatal}" in *) ;; esac -if [ -n "${fatal}" -o "${hosts}" = "help" ] ; then +if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then (echo "Usage: configure HOST" ; echo ; echo "Options: [defaults in brackets]" ; - echo " -datadir=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; - echo " -gas configure the compilers for use with gas. [native as]" ; - echo " -help print this message. [normal config]" ; - echo " -lang=LANG configure to build LANG. [gcc]" ; - echo " -nfp configure the compilers default to soft floating point. [hard float]" ; - echo " -norecursion configure this directory only. [recurse]" ; - echo " -prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; - echo " -rm remove this configuration. [build a configuration]" ; - echo " -site configure with site specific makefile" ; - echo " -srcdir=DIR find the sources in DIR. [\".\" or \"..\"]" ; - echo " -target=TARGET configure for TARGET. [TARGET = HOST]" ; - echo " -tmpdir=TMPDIR create temporary files in TMPDIR. [ TMPDIR = \"/tmp\" ]" ; + echo " -exec_prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; + echo " -gas configure the compilers for use with gas. [native as]" ; + echo " -help print this message. [normal config]" ; + echo " -lang=LANG configure to build LANG. [gcc]" ; + echo " -nfp configure the compilers default to soft floating point. [hard float]" ; + echo " -norecursion configure this directory only. [recurse]" ; + echo " -prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; + echo " -program_prefix=FOO install programs with FOO prepended to their names. [ \"\" ]" ; + echo " -site=SITE configure with site specific makefile for SITE" ; + echo " -srcdir=DIR find the sources in DIR. [\".\" or \"..\"]" ; + echo " -target=TARGET configure for TARGET. [TARGET = HOST]" ; + echo " -tmpdir=TMPDIR create temporary files in TMPDIR. [ TMPDIR = \"/tmp\" ]" ; echo ; echo "Where HOST and TARGET are something like \"vax\", \"sun3\", \"encore\", etc." ; ) 1>&2 @@ -316,7 +313,7 @@ fi configsub=`echo ${progname} | sed 's/configure$/config.sub/'` -if ${configsub} `echo ${hosts} | sed -e 's/ .*//'` >/dev/null 2>&1 ; then +if ${configsub} `echo ${host_alias} | sed -e 's/ .*//'` >/dev/null 2>&1 ; then true else echo '***' cannot find config.sub. @@ -328,17 +325,21 @@ case "${srcdir}" in if [ -r configure.in ] ; then srcdir=. else - echo '***' "Can't find configure.in. Try using -srcdir=some_dir" - exit 1 + if [ -r ${progname}.in ] ; then + srcdir=`echo ${progname} | sed 's:/configure$::'` + else + echo '***' "Can't find configure.in. Try using -srcdir=some_dir" + exit 1 + fi fi ;; *) ;; esac -# default datadir -case "${datadir}" in -"") datadir="$(prefix)/lib" ;; +# default exec_prefix +case "${exec_prefix}" in +"") exec_prefix="${prefix}" ;; *) ;; esac @@ -393,177 +394,153 @@ case "${srctrigger}" in *) ;; esac -for host in ${hosts} ; do - # Default other arg - if [ -z "${targets}" -o -n "${defaulttargets}" ] ; then - targets=${host} - defaulttargets=true - fi - - host_alias=${host} - - result=`${configsub} ${host}` - host_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` - host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` - host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` - host=${host_cpu}-${host_vendor}-${host_os} +result=`${configsub} ${host_alias}` +host_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` +host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` +host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` +host=${host_cpu}-${host_vendor}-${host_os} - . ${tmpfile}.hst +. ${tmpfile}.hst - for target in ${targets} ; do +result=`${configsub} ${target_alias}` +target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` +target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` +target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` +target=${target_cpu}-${target_vendor}-${target_os} - target_alias=${target} - result=`${configsub} ${target}` - target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` - target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` - target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` - target=${target_cpu}-${target_vendor}-${target_os} - - . ${tmpfile}.tgt - - case "${host_alias}" in - "${target_alias}") subdirname=H-${host_alias} ;; - *) subdirname=X-${host_alias}-${target_alias} ;; - esac +. ${tmpfile}.tgt - case "${namesubdir}" in - "") ;; - *) subdirname=${namesubdir} ;; - esac - - case "${removing}" in - "") - # Find the source files, if location was not specified. - case "${srcdir}" in - "") - srcdirdefaulted=1 - srcdir=. - if [ ! -r ${srctrigger} ] ; then - srcdir=.. - fi - ;; - *) ;; - esac +# Find the source files, if location was not specified. +case "${srcdir}" in +"") + srcdirdefaulted=1 + srcdir=. + if [ ! -r ${srctrigger} ] ; then + srcdir=.. + fi + ;; +*) ;; +esac - if [ ! -r ${srcdir}/${srctrigger} ] ; then - case "${srcdirdefaulted}" in - "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/${srcdir}" 1>&2 ;; - *) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/. or ${PWD}/.." 1>&2 ;; - esac +if [ ! -r ${srcdir}/${srctrigger} ] ; then + case "${srcdirdefaulted}" in + "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/${srcdir}" 1>&2 ;; + *) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/. or ${PWD}/.." 1>&2 ;; + esac - echo '***' \(At least ${srctrigger} is missing.\) 1>&2 - exit 1 - fi + echo '***' \(At least ${srctrigger} is missing.\) 1>&2 + exit 1 +fi - # Set up the list of links to be made. - # ${links} is the list of link names, and ${files} is the list of names to link to. +# Set up the list of links to be made. +# ${links} is the list of link names, and ${files} is the list of names to link to. - # Make the links. - while [ -n "${files}" ] ; do - # set file to car of files, files to cdr of files - set ${files}; file=$1; shift; files=$* - set ${links}; link=$1; shift; links=$* +# Make the links. +configlinks="${links}" +while [ -n "${files}" ] ; do + # set file to car of files, files to cdr of files + set ${files}; file=$1; shift; files=$* + set ${links}; link=$1; shift; links=$* - if [ ! -r ${srcdir}/${file} ] ; then - echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 - echo '***' "since the file \"${file}\" does not exist." 1>&2 - exit 1 - fi + if [ ! -r ${srcdir}/${file} ] ; then + echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 + echo '***' "since the file \"${file}\" does not exist." 1>&2 + exit 1 + fi - ${remove} -f ${link} - rm -f config.status - # Make a symlink if possible, otherwise try a hard link - ${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link} + ${remove} -f ${link} + rm -f config.status + # Make a symlink if possible, otherwise try a hard link + ${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link} - if [ ! -r ${link} ] ; then - echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 - exit 1 - fi + if [ ! -r ${link} ] ; then + echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 + exit 1 + fi - case "${verbose}" in - "") ;; - *) echo "Linked \"${link}\" to \"${srcdir}/${file}\"." ;; - esac - done + case "${verbose}" in + "") ;; + *) echo "Linked \"${link}\" to \"${srcdir}/${file}\"." ;; + esac +done - # Create a .gdbinit file which runs the one in srcdir - # and tells GDB to look there for source files. +# Create a .gdbinit file which runs the one in srcdir +# and tells GDB to look there for source files. - if [ -r ${srcdir}/.gdbinit ] ; then - case ${srcdir} in - .) - ;; - *) cat > .gdbinit < .gdbinit < .gdbinit dir . dir ${srcdir} source ${srcdir}/.gdbinit EOF - ;; - esac - fi + ;; + esac +fi - # Install a makefile, and make it set VPATH - # if necessary so that the sources are found. - # Also change its value of srcdir. - # NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has - # been somewhat optimized and is perhaps a bit twisty. +# Install a makefile, and make it set VPATH +# if necessary so that the sources are found. +# Also change its value of srcdir. +# NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has +# been somewhat optimized and is perhaps a bit twisty. - # code is order so as to try to sed the smallest input files we know. +# code is order so as to try to sed the smallest input files we know. - # the three makefile fragments MUST end up in the resulting Makefile in this order: target, host, and site. - # so do these separately because I don't trust the order of sed -e expressions. +# the three makefile fragments MUST end up in the resulting Makefile in this order: target, host, and site. +# so do these separately because I don't trust the order of sed -e expressions. - # Conditionalize for this site from "Makefile.in" (or whatever it's called) into Makefile.tem - case "${site}" in - "") cp ${srcdir}/${Makefile_in} Makefile.tem ;; - *) - site_makefile_frag=${srcdir}/config/ms-${site} - - if [ -f ${site_makefile_frag} ] ; then - sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${Makefile_in} \ - >> Makefile.tem - else - cp ${srcdir}/${Makefile_in} Makefile.tem - site_makefile_frag= - fi - ;; - esac - # working copy now in Makefile.tem +# Conditionalize for this site from "Makefile.in" (or whatever it's called) into Makefile.tem +case "${site}" in +"") cp ${srcdir}/${Makefile_in} Makefile.tem ;; +*) + site_makefile_frag=${srcdir}/config/ms-${site} - # Conditionalize the makefile for this host. - case "${host_makefile_frag}" in - "") mv Makefile.tem ${Makefile} ;; - *) - host_makefile_frag=${srcdir}/${host_makefile_frag} - if [ -f ${host_makefile_frag} ] ; then - sed -e "/^####/ r ${host_makefile_frag}" Makefile.tem > ${Makefile} - else - echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 - echo '***' is missing in ${PWD}. 1>&2 - mv Makefile.tem ${Makefile} - fi - esac - # working copy now in ${Makefile} - - # Conditionalize the makefile for this target. - case "${target_makefile_frag}" in - "") mv ${Makefile} Makefile.tem ;; - *) - target_makefile_frag=${srcdir}/${target_makefile_frag} - if [ -f ${target_makefile_frag} ] ; then - sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} >> Makefile.tem - else - mv ${Makefile} Makefile.tem - target_makefile_frag= - fi - ;; - esac - # real copy now in Makefile.tem + if [ -f ${site_makefile_frag} ] ; then + sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${Makefile_in} \ + > Makefile.tem + else + cp ${srcdir}/${Makefile_in} Makefile.tem + site_makefile_frag= + fi + ;; +esac +# working copy now in Makefile.tem + +# Conditionalize the makefile for this host. +case "${host_makefile_frag}" in +"") mv Makefile.tem ${Makefile} ;; +*) + host_makefile_frag=${srcdir}/${host_makefile_frag} + if [ -f ${host_makefile_frag} ] ; then + sed -e "/^####/ r ${host_makefile_frag}" Makefile.tem > ${Makefile} + else + echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 + echo '***' is missing in ${PWD}. 1>&2 + mv Makefile.tem ${Makefile} + fi +esac +# working copy now in ${Makefile} + +# Conditionalize the makefile for this target. +case "${target_makefile_frag}" in +"") mv ${Makefile} Makefile.tem ;; +*) + target_makefile_frag=${srcdir}/${target_makefile_frag} + if [ -f ${target_makefile_frag} ] ; then + sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} > Makefile.tem + else + mv ${Makefile} Makefile.tem + target_makefile_frag= + fi + ;; +esac +# real copy now in Makefile.tem - # prepend warning about editting, and a bunch of variables. - # fixme-someday: remove the subdir/unsubdir lines. - cat > ${Makefile} < ${Makefile} <> ${Makefile} ;; - *) - echo "CROSS=-DCROSS_COMPILE" >> ${Makefile} - echo "ALL=all.cross" >> ${Makefile} - ;; - esac - - # reset prefix, datadir, srcdir, SUBDIRS, NONSUBDIRS, remove any form - # feeds. - sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \ - -e "s:^datadir[ ]*=.*$:datadir = ${datadir}:" \ - -e "s:^srcdir[ ]*=.*$:srcdir = ${srcdir}:" \ - -e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \ - -e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \ - -e "s/ //" Makefile.tem >> ${Makefile} - # final copy now in ${Makefile} - - rm Makefile.tem - - if [ -n "${verbose}" -o -z "${recurring}" ] ; then - case "${host_makefile_frag}" in - "") using= ;; - *) using="and \"${host_makefile_frag}\"" ;; - esac - - case "${target_makefile_frag}" in - "") ;; - *) using="${using} and \"${target_makefile_frag}\"" ;; - esac - - case "${site_makefile_frag}" in - "") ;; - *) using="${using} and \"${site_makefile_frag}\"" ;; - esac +# fixme: this shouldn't be in configure. +# Define macro CROSS_COMPILE in compilation if this is a cross-compiler. +case "${host_alias}" in +"${target_alias}") + tooldir="$(libdir)" + echo "ALL=all.internal" >> ${Makefile} + ;; +*) + echo "CROSS=-DCROSS_COMPILE" >> ${Makefile} + echo "ALL=all.cross" >> ${Makefile} + case "${program_prefix}" in + "") program_prefix=${target_alias}- ;; + *) ;; + esac + + tooldir="$(libdir)/${target_alias}" + ;; +esac - echo "Created \"${Makefile}\" in" ${PWD} `echo "${using}" | sed 's/and/using/'` - fi +# reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, remove any form +# feeds. +sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \ + -e "s:^exec_prefix[ ]*=.*$:exec_prefix = ${exec_prefix}:" \ + -e "s:^srcdir[ ]*=.*$:srcdir = ${srcdir}:" \ + -e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \ + -e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \ + -e "s/ //" \ + -e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \ + -e "s:^tooldir[ ]*=.*$:tooldir = ${tooldir}:" \ + Makefile.tem >> ${Makefile} +# final copy now in ${Makefile} + +rm Makefile.tem + +if [ -n "${verbose}" -o -z "${silent}" ] ; then + case "${host_makefile_frag}" in + "") using= ;; + *) using="and \"${host_makefile_frag}\"" ;; + esac + + case "${target_makefile_frag}" in + "") ;; + *) using="${using} and \"${target_makefile_frag}\"" ;; + esac + + case "${site_makefile_frag}" in + "") ;; + *) using="${using} and \"${site_makefile_frag}\"" ;; + esac + + echo "Created \"${Makefile}\" in" ${PWD} `echo "${using}" | sed 's/and/using/'` +fi - . ${tmpfile}.pos +. ${tmpfile}.pos - # describe the chosen configuration in config.status. - # Make that file a shellscript which will reestablish - # the same configuration. Used in Makefiles to rebuild - # Makefiles. +# describe the chosen configuration in config.status. +# Make that file a shellscript which will reestablish +# the same configuration. Used in Makefiles to rebuild +# Makefiles. - case "${norecursion}" in - "") arguments="${arguments} -norecursion" ;; - *) ;; - esac +case "${norecursion}" in +"") arguments="${arguments} -norecursion" ;; +*) ;; +esac - echo "#!/bin/sh +echo "#!/bin/sh # ${NO_EDIT} # ${PWD} was configured as follows: ${progname}" ${arguments} " # ${using}" > config.status - chmod a+x config.status - ;; - *) rm -f ${Makefile} config.status ${links} ;; +chmod a+x config.status + +# If there are subdirectories, then recur. +if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then + for configdir in ${configdirs} ; do + case "${verbose}" in + "") ;; + *) echo Configuring ${configdir}... ;; esac - # If there are subdirectories, then recur. - if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then - for configdir in ${configdirs} ; do - case "${verbose}" in - "") ;; - *) echo Configuring ${configdir}... ;; - esac + if [ -d ${srcdir}/${configdir} ] ; then + case "${srcdir}" in + ".") ;; + *) + if [ ! -d ./${configdir} ] ; then + mkdir ./${configdir} + fi + ;; + esac - if [ -d ${srcdir}/${configdir} ] ; then - case "${srcdir}" in - ".") ;; - *) - if [ ! -d ./${configdir} ] ; then - mkdir ./${configdir} - fi - ;; - esac - - POPDIR=${PWD} - cd ${configdir} - -### figure out what to do with srcdir & guest configure - case "${srcdir}" in - ".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. - /*) # absolute path - newsrcdir=${srcdir}/${configdir} - srcdiroption="-srcdir=${newsrcdir}" - ;; - *) # otherwise relative - newsrcdir=../${srcdir}/${configdir} - srcdiroption="-srcdir=${newsrcdir}" - ;; - esac + POPDIR=${PWD} + cd ${configdir} + +### figure out what to do with srcdir + case "${srcdir}" in + ".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. + /*) # absolute path + newsrcdir=${srcdir}/${configdir} + srcdiroption="-srcdir=${newsrcdir}" + ;; + *) # otherwise relative + newsrcdir=../${srcdir}/${configdir} + srcdiroption="-srcdir=${newsrcdir}" + ;; + esac + +### check for guested configure, otherwise fix possibly relative progname + if [ -f ${newsrcdir}/configure ] ; then + recprog=${newsrcdir}/configure + else + case "${progname}" in + /*) recprog=${progname} ;; + *) recprog=../${progname} ;; + esac + fi ### The recursion line is here. - if [ -f ${newsrcdir}/configure ] ; then - recprog=${newsrcdir}/configure - else - recprog=${progname} - fi - - if ${recprog} -recurring ${host_alias} -target=${target_alias} \ - ${verbose} ${subdirs} ${removing} ${prefixoption} \ - ${tmpdiroption} ${namesubdiroption} ${datadiroption} \ - ${srcdiroption} ; then - true - else - exit 1 - fi - - cd ${POPDIR} - else - case "${verbose}" in - "") ;; - *) echo Warning: source directory \"${srcdir}/${configdir}\" is missing. ;; - esac - fi - done + if ${recprog} -s ${host_alias} -target=${target_alias} \ + ${verbose} ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ + ${srcdiroption} ${program_prefixoption} ; then + true + else + exit 1 + fi + + cd ${POPDIR} + else + case "${verbose}" in + "") ;; + *) echo Warning: source directory \"${srcdir}/${configdir}\" is missing. ;; + esac fi - done # for each target -done # for each host + done +fi ### clean up. -- 2.7.4