gas=default
host_alias=
host_makefile_frag=
+moveifchange=
next_host=
next_prefix=
next_site=
prefix=/usr/local
progname=
program_prefix=
-program_prefix_option=
-silent=
+program_prefixoption=
+program_suffix=
+program_suffixoption=
+program_transform_name=
+program_transform_nameoption=
+redirect=">/dev/null"
+removing=
+site=
site_makefile_frag=
+site_option=
srcdir=
srctrigger=
+subdirs=
target_alias=
target_makefile_frag=
undefinedargs=
-verbose=
version="$Revision$"
x11=default
## path. Since PATH might include "." we also add `pwd` to the end of PATH.
##
-PWD=`pwd`
progname=$0
+PWD=`pwd`
case "${progname}" in
/*) ;;
*/*) ;;
*)
- PATH=$PATH:${PWD} ; export PATH
+ PATH=$PATH:${PWD=`pwd`} ; export PATH
;;
esac
exec_prefix=${arg}
exec_prefixoption="-exec_prefix=${exec_prefix}"
next_exec_prefix=
- elif [ -n "${next_site}" ] ; then site=${arg} ; next_site=
+ elif [ -n "${next_site}" ] ; then site=${arg} ; site_option=-site=${site} ; next_site=
# remove any possible trailing slash from srcdir. See note below.
elif [ -n "${next_srcdir}" ] ; then srcdir=`echo ${arg} | sed -e 's:/$::'` ; next_srcdir=
elif [ -n "${next_program_prefix}" ] ; then
program_prefix=${arg}
program_prefixoption="-program_prefix=${program_prefix}"
next_program_prefix=
+ elif [ -n "${next_program_suffix}" ] ; then
+ program_suffix=${arg}
+ program_suffixoption="-program_suffix=${program_suffix}"
+ next_program_suffix=
+ elif [ -n "${next_program_transform_name}" ] ; then
+ # Double any backslashes or dollar signs in the argument
+ program_transform_name="${program_transform_name} -e `echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`"
+ program_transform_nameoption="${program_transform_nameoption} -program_transform_name='${arg}'"
+ next_program_transform_name=
elif [ -n "${next_target}" ] ; then
next_target=
case "${target_alias}" in
target_alias="${arg}"
;;
*)
- echo '***' Can only configure for one target at a time.
+ echo '***' Can only configure for one target at a time. 1>&2
fatal=yes
;;
esac
host_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`"
;;
*)
- echo '***' Can only configure for one host at a time.
+ echo '***' Can only configure for one host at a time. 1>&2
fatal=yes
;;
esac
-prefix | --prefix | --prefi | --pref | --pre)
next_prefix=yes
;;
- -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]*=//'`
+ -rm | --rm) removing=${arg} ;;
+ -program_prefix=* | --program_prefix=* | --program_prefi=* | --program_pref=* | --program_pre=* | --program_pr=* | --program_p=*)
+ 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)
+ -program_prefix | --program_prefix | --program_prefi | --program_pref | --program_pre | --program_pr | --program_p)
next_program_prefix=yes
;;
- -s | -silent | --silent | --silen | --sile | --sil)
- silent=true
- arguments=`echo ${arguments} | sed "s:${arg}::"`
+ -program_suffix=* | --program_suffix=* | --program_suffi=* | --program_suff=* | --program_suf=* | --program_su=* | --program_s=*)
+ program_suffix=`echo ${arg} | sed 's/^[-a-z_]*=//'`
+ program_suffixoption=${arg}
+ ;;
+ -program_suffix | --program_suffix | --program_suffi | --program_suff | --program_suf | --program_su | --program_s )
+ next_program_suffix=yes
+ ;;
+ -program_transform_name=* | --program_transform_name=* | --program_transform_nam=* | --program_transform_na=* | --program_transform_n=* | --program_transform_=* | --program_transform=* | --program_transfor=* | --program_transfo=* | --program_transf=* | --program_trans=* | --program_tran=* | --program_tra=* | --program_tr=* | --program_t=*)
+ # Double any \ or $ in the argument
+ program_transform_name="${program_transform_name} -e `echo ${arg} | sed -e 's/^[-a-z_]*=//' -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`"
+ program_transform_nameoption="${program_transform_nameoption} -program_transform_name='`echo ${arg} | sed 's/^[-a-z_]*=//'`'"
+ ;;
+ -program_transform_name | --program_transform_name | --program_transform_nam | --program_transform_na | --program_transform_n | --program_transform_ | --program_transform | --program_transfor | --program_transfo | --program_transf | --program_trans | --program_tran | --program_tra | --program_tr | --program_t)
+ next_program_transform_name=yes
;;
-site=* | --site=* | --sit=* | --si=*)
+ site_option=${arg}
site=`echo ${arg} | sed 's/^[-a-z]*=//'`
;;
-site | --site | --sit)
case "${target_alias}" in
"") target_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" ;;
*)
- echo '***' Can only configure for one target at a time.
+ echo '***' Can only configure for one target at a time. 1>&2
fatal=yes
;;
esac
next_tmpdir=yes
;;
-v | -verbose | --v)
- verbose=${arg}
+ redirect=
+ verbose=-v
;;
-version | -V | --version | --V)
echo "This is Cygnus Configure version" `echo ${version} | sed 's/[ $:]//g'`
undefs="${arg}"
;;
*)
- echo '***' Can only configure for one host and one target at a time.
+ echo '***' Can only configure for one host and one target at a time. 1>&2
fatal=yes
;;
esac
### there were no unadorned args, then the hosts are also targets.
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.
+ echo '***' Can only configure for one host and one target at a time. 1>&2
fatal=yes
elif [ -z "${host_alias}" -a -z "${undefs}" ] ; then
- echo '***' You must tell me for which host you want to configure.
+ echo '***' You must tell me for which host you want to configure. 1>&2
fatal=yes
else
case "${host_alias}" in
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 " -program_suffix=FOO install programs with FOO appended to their names. [ \"\" ]" ;
+ echo " -program_transform_name=FOO install programs with names transformed by sed pattern FOO. [ \"\" ]" ;
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]" ;
fi
configsub=`echo ${progname} | sed 's/configure$/config.sub/'`
+moveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'`
+
+# this is a hack. sun4 must always be a valid host alias or this will fail.
+if ${configsub} sun4 >/dev/null 2>&1 ; then
+ true
+else
+ echo '***' cannot find config.sub. 1>&2
+ exit 1
+fi
-if ${configsub} `echo ${host_alias} | sed -e 's/ .*//'` >/dev/null 2>&1 ; then
+touch config.junk
+if ${moveifchange} config.junk config.trash ; then
true
else
- echo '***' cannot find config.sub.
+ echo '***' cannot find move-if-change. 1>&2
exit 1
fi
+rm -f config.junk config.trash
case "${srcdir}" in
"")
if [ -r ${progname}.in ] ; then
srcdir=`echo ${progname} | sed 's:/configure$::'`
else
- echo '***' "Can't find configure.in. Try using -srcdir=some_dir"
+ echo '***' "Can't find configure.in. Try using -srcdir=some_dir" 1>&2
exit 1
fi
fi
*) ;;
esac
+### warn about some conflicting configurations.
+
+case "${srcdir}" in
+".") ;;
+*)
+ if [ -f ${srcdir}/config.status ] ; then
+ echo '***' Cannot configure here in \"${PWD=`pwd`}\" when \"${srcdir}\" is currently configured. 1>&2
+ exit 1
+ fi
+esac
# default exec_prefix
case "${exec_prefix}" in
-"") exec_prefix="${prefix}" ;;
+"") exec_prefix="\$(prefix)" ;;
*) ;;
esac
# some sanity checks on configure.in
case "${srctrigger}" in
"")
- echo '***' srctrigger not set in ${PWD}/configure.in.
+ echo '***' srctrigger not set in ${PWD=`pwd`}/configure.in. 1>&2
exit 1
;;
*) ;;
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 ;;
+ "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/${srcdir}" 1>&2 ;;
+ *) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/. or ${PWD=`pwd`}/.." 1>&2 ;;
esac
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.
+tooldir="\$(libdir)/${target_alias}"
-# 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
+if [ "${host_alias}" != "${target_alias}" ] ; then
+ if [ "${program_prefix}" = "" ] ; then
+ if [ "${program_suffix}" = "" ] ; then
+ if [ "${program_transform_name}" = "" ] ; then
+ program_prefix=${target_alias}- ;
+ fi
fi
+ fi
+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}
+# Merge program_prefix and program_suffix onto program_transform_name
+# Use a double $ so that make ignores it
+if [ "${program_suffix}" != "" ] ; then
+ program_transform_name="-e s/\$\$/${program_suffix}/ ${program_transform_name}"
+fi
- if [ ! -r ${link} ] ; then
- echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
- exit 1
- fi
+if [ "${program_prefix}" != "" ] ; then
+ program_transform_name="-e s/^/${program_prefix}/ ${program_transform_name}"
+fi
- case "${verbose}" in
- "") ;;
- *) echo "Linked \"${link}\" to \"${srcdir}/${file}\"." ;;
- esac
-done
+for subdir in . ${subdirs} ; do
-# Create a .gdbinit file which runs the one in srcdir
-# and tells GDB to look there for source files.
+ # ${subdir} is relative path from . to the directory we're currently
+ # configuring.
+ # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
+ invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
-if [ -r ${srcdir}/.gdbinit ] ; then
- case ${srcdir} in
- .)
+ ### figure out what to do with srcdir
+ case "${srcdir}" in
+ ".") # no -srcdir option. We're building in place.
+ makesrcdir=. ;;
+ /*) # absolute path
+ makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
;;
- *) cat > .gdbinit <<EOF
-# ${NO_EDIT} > .gdbinit
-dir .
-dir ${srcdir}
-source ${srcdir}/.gdbinit
-EOF
+ *) # otherwise relative
+ case "${subdir}" in
+ .) makesrcdir=${srcdir} ;;
+ *) makesrcdir=`echo ${subdir} | sed -e 's:[^./][^./]*:..:g'`/${srcdir}/${subdir} ;;
+ esac
;;
- esac
-fi
+ esac
-# 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.
+ if [ "${subdir}/" != "./" ] ; then
+ Makefile=${subdir}/Makefile
+ fi
-# code is order so as to try to sed the smallest input files we know.
+ if [ ! -d ${subdir} ] ; then
+ mkdir ${subdir}
+ fi
-# 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.
+ case "${removing}" in
+ "")
+ case "${subdir}" in
+ .) ;;
+ *) eval echo Building in ${subdir} ${redirect} ;;
+ esac
-# 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}
+ # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
+ # 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.
- 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=
+ # Make the links.
+ configlinks="${links}"
+ if [ -r ${subdir}/config.status ] ; then
+ mv -f ${subdir}/config.status ${subdir}/config.back
fi
- ;;
-esac
-# working copy now in Makefile.tem
+ 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
-# 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}
+ ${remove} -f ${link}
+ # Make a symlink if possible, otherwise try a hard link
+ ${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link}
-# 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=
+ if [ ! -r ${link} ] ; then
+ echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
+ exit 1
+ fi
+
+ echo "Linked \"${link}\" to \"${srcdir}/${file}\"."
+ done
+
+ # Create a .gdbinit file which runs the one in srcdir
+ # and tells GDB to look there for source files.
+
+ if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
+ case ${srcdir} in
+ .) ;;
+ *) cat > ${subdir}/.gdbinit <<EOF
+# ${NO_EDIT}
+dir .
+dir ${makesrcdir}
+source ${makesrcdir}/.gdbinit
+EOF
+ ;;
+ esac
fi
- ;;
-esac
-# real copy now in Makefile.tem
-# prepend warning about editting, and a bunch of variables.
-cat > ${Makefile} <<EOF
+ # 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.
+
+ # 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
+ rm -f ${subdir}/Makefile.tem
+ case "${site}" in
+ "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
+ *)
+ site_makefile_frag=${srcdir}/config/ms-${site}
+
+ if [ -f ${site_makefile_frag} ] ; then
+ sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${subdir}/${Makefile_in} \
+ > ${subdir}/Makefile.tem
+ else
+ cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
+ site_makefile_frag=
+ fi
+ ;;
+ esac
+ # working copy now in ${subdir}/Makefile.tem
+
+ # Conditionalize the makefile for this host.
+ rm -f ${Makefile}
+ case "${host_makefile_frag}" in
+ "") mv ${subdir}/Makefile.tem ${Makefile} ;;
+ *)
+ if [ ! -f ${host_makefile_frag} ] ; then
+ host_makefile_frag=${srcdir}/${host_makefile_frag}
+ fi
+ if [ -f ${host_makefile_frag} ] ; then
+ sed -e "/^####/ r ${host_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
+ else
+ echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
+ echo '***' is missing in ${PWD=`pwd`}. 1>&2
+ mv ${subdir}/Makefile.tem ${Makefile}
+ fi
+ esac
+ # working copy now in ${Makefile}
+
+ # Conditionalize the makefile for this target.
+ rm -f ${subdir}/Makefile.tem
+ case "${target_makefile_frag}" in
+ "") mv ${Makefile} ${subdir}/Makefile.tem ;;
+ *)
+ if [ ! -f ${target_makefile_frag} ] ; then
+ target_makefile_frag=${srcdir}/${target_makefile_frag}
+ fi
+ if [ -f ${target_makefile_frag} ] ; then
+ sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
+ else
+ mv ${Makefile} ${subdir}/Makefile.tem
+ target_makefile_frag=
+ fi
+ ;;
+ esac
+ # real copy now in ${subdir}/Makefile.tem
+
+ # prepend warning about editting, and a bunch of variables.
+ rm -f ${Makefile}
+ cat > ${Makefile} <<EOF
# ${NO_EDIT}
+VPATH = ${makesrcdir}
+links = ${configlinks}
host_alias = ${host_alias}
host_cpu = ${host_cpu}
host_vendor = ${host_vendor}
target_cpu = ${target_cpu}
target_vendor = ${target_vendor}
target_os = ${target_os}
-target_makefile_frag = ${target_makefile_frag}
-host_makefile_frag = ${host_makefile_frag}
-site_makefile_frag = ${site_makefile_frag}
-links = ${configlinks}
-VPATH = ${srcdir}
EOF
+ case "${target_makefile_frag}" in
+ "") ;;
+ /*)
+ echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
+ *)
+ echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
+ 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}- ;;
- *) ;;
+ case "${host_makefile_frag}" in
+ "") ;;
+ /*)
+ echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
+ *)
+ echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
esac
- tooldir="$(libdir)/${target_alias}"
- ;;
-esac
+ if [ "${site_makefile_frag}" != "" ] ; then
+ echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
+ fi
+
+ # 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}")
+ echo "ALL=all.internal" >> ${Makefile}
+ ;;
+ *)
+ echo "CROSS=-DCROSS_COMPILE" >> ${Makefile}
+ echo "ALL=all.cross" >> ${Makefile}
+ ;;
+ esac
+
+ # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
+ # remove any form feeds.
+ if [ -z "${subdirs}" ]; then
+ rm -f ${subdir}/Makefile.tem2
+ sed -e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \
+ -e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \
+ ${subdir}/Makefile.tem > ${subdir}/Makefile.tem2
+ rm -f ${subdir}/Makefile.tem
+ mv ${subdir}/Makefile.tem2 ${subdir}/Makefile.tem
+ fi
+ sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \
+ -e "s:^exec_prefix[ ]*=.*$:exec_prefix = ${exec_prefix}:" \
+ -e "s:^srcdir[ ]*=.*$:srcdir = ${makesrcdir}:" \
+ -e "s/\f//" \
+ -e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \
+ -e "s:^program_suffix[ ]*=.*$:program_suffix = ${program_suffix}:" \
+ -e "s:^program_transform_name[ ]*=.*$:program_transform_name = ${program_transform_name}:" \
+ -e "s:^tooldir[ ]*=.*$:tooldir = ${tooldir}:" \
+ ${subdir}/Makefile.tem >> ${Makefile}
+ # final copy now in ${Makefile}
+
+ rm -f ${subdir}/Makefile.tem
-# 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/\f//" \
- -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}\"" ;;
*) using="${using} and \"${site_makefile_frag}\"" ;;
esac
- echo "Created \"${Makefile}\" in" ${PWD} `echo "${using}" | sed 's/and/using/'`
-fi
+ newusing=`echo "${using}" | sed 's/and/using/'`
+ using=${newusing}
+ echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using}
-. ${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
+ if [ ${subdir} = . ] ; then
+ echo "#!/bin/sh
# ${NO_EDIT}
-# ${PWD} was configured as follows:
+# This directory was configured as follows:
${progname}" ${arguments} "
-# ${using}" > config.status
-chmod a+x config.status
+# ${using}" > ${subdir}/config.new
+ else
+ echo "#!/bin/sh
+# ${NO_EDIT}
+# This directory was configured as follows:
+cd ${invsubdir}
+${progname}" ${arguments} "
+# ${using}" > ${subdir}/config.new
+ fi
+ chmod a+x ${subdir}/config.new
+ if [ -r ${subdir}/config.back ] ; then
+ mv -f ${subdir}/config.back ${subdir}/config.status
+ fi
+ ${moveifchange} ${subdir}/config.new ${subdir}/config.status
+ ;;
+
+ *) rm -f ${Makefile} ${subdir}/config.status ${links} ;;
+ esac
+done
# 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
+ eval echo Configuring ${configdir}... ${redirect}
if [ -d ${srcdir}/${configdir} ] ; then
case "${srcdir}" in
;;
esac
- POPDIR=${PWD}
+ POPDIR=${PWD=`pwd`}
cd ${configdir}
### figure out what to do with srcdir
fi
### The recursion line is here.
- if ${recprog} -s ${host_alias} -target=${target_alias} \
- ${verbose} ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
- ${srcdiroption} ${program_prefixoption} ; then
+ if eval ${recprog} ${verbose} ${host_alias} -target=${target_alias} \
+ ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
+ ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${removing} ${redirect} ; then
true
else
exit 1
cd ${POPDIR}
else
- case "${verbose}" in
- "") ;;
- *) echo Warning: source directory \"${srcdir}/${configdir}\" is missing. ;;
- esac
+ eval echo Warning: source directory \"${srcdir}/${configdir}\" is missing. ${redirect}
fi
done
fi
-### clean up.
-
-# trap cmd above handles this now:
-#rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
-
exit 0
#