#!/bin/sh ### WARNING: this file contains embedded tabs. Do not run untabify on this file. # Configuration script # Copyright (C) 1988, 1990-1993 Free Software Foundation, Inc. # 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. */ # 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. # # If configure succeeds, it leaves its status in config.status. # If configure fails after disturbing the status quo, # config.status is removed. # export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0 $argv; kill $$) remove=rm hard_link=ln symbolic_link='ln -s' #for Test #remove="echo rm" #hard_link="echo ln" #symbolic_link="echo ln -s" # clear some things potentially inherited from environment. Makefile=Makefile Makefile_in=Makefile.in arguments=$* configdirs= exec_prefix= exec_prefixoption= fatal= floating_point=default gas=default host_alias= host_makefile_frag= moveifchange= next_host= next_prefix= next_site= next_srcdir= next_target= next_tmpdir= norecursion= package_makefile_frag= prefix=/usr/local progname= program_prefix= 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= version="$Revision$" x11=default 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 (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. ## progname=$0 # if PWD already has a value, it is probably wrong. if [ -n "$PWD" ]; then PWD=`pwd`; fi case "${progname}" in /*) ;; */*) ;; *) PATH=$PATH:${PWD=`pwd`} ; export PATH ;; 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_exec_prefix}" ] ; then exec_prefix=${arg} exec_prefixoption="-exec_prefix=${exec_prefix}" next_exec_prefix= 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 if [ -n "${arg}" ] ; then program_transform_name="${program_transform_name} -e `echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" fi 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. 1>&2 fatal=yes ;; esac elif [ -n "${next_tmpdir}" ] ; then next_tmpdir= tmpdiroption="--tmpdir=${arg}" TMPDIR=${arg} else case ${arg} in -exec_prefix=* | --exec_prefix=* | --exec_prefi=* | --exec_pref=* | --exec_pre=* | --exec_pr=* | --exec_p=* | --exec_=* | --exec=* | --exe=* | --ex=* | --e=* | -exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* ) exec_prefix=`echo ${arg} | sed 's/^[-a-z_]*=//'` exec_prefixoption=${arg} ;; -exec_prefix | --exec_prefix | --exec_prefi | --exec_pref | --exec_pre | --exec_pr | --exec_p | --exec_ | --exec | --exe | --ex | --e | -exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec-) next_exec_prefix=yes ;; -gas | --g*) gas=yes ;; -help | --he*) fatal=true ;; -host=* | --host=* | --hos=* | --ho=*) case "${host_alias}" in "") host_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" ;; *) echo '***' Can only configure for one host at a time. 1>&2 fatal=yes ;; esac ;; -nfp | --nf*) floating_point=no ;; -norecursion | --no*) norecursion=true ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=*) prefix=`echo ${arg} | sed 's/^[-a-z]*=//'` prefixoption=${arg} ;; -prefix | --prefix | --prefi | --pref | --pre) next_prefix=yes ;; -rm | --rm) removing=${arg} ;; -program_prefix=* | --program_prefix=* | --program_prefi=* | --program_pref=* | --program_pre=* | --program_pr=* | --program_p=* | -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-prefix | --program-prefix | --program-prefi | --program-pref | --program-pre | --program-pr | --program-p) next_program_prefix=yes ;; -program_suffix=* | --program_suffix=* | --program_suffi=* | --program_suff=* | --program_suf=* | --program_su=* | --program_s=* | -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 |-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=* | -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=*) arg=`echo ${arg} | sed -e 's/^[-a-z_]*=//'` # Double any \ or $ in the argument if [ -n "${arg}" ] ; then program_transform_name="${program_transform_name} -e `echo ${arg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" fi program_transform_nameoption="${program_transform_nameoption} --program-transform-name='${arg}'" ;; -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 | -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) next_site=yes ;; # remove trailing slashes. Otherwise, when the file name gets # bolted into an object file as debug info, it has two slashes in # it. Ordinarily this is ok, but emacs takes double slash to # mean "forget the first part". -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=`echo ${arg} | sed 's/^[-a-z]*=//' | sed -e 's:/$::'` ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) next_srcdir=yes ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=*) case "${target_alias}" in "") target_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" ;; *) echo '***' Can only configure for one target at a time. 1>&2 fatal=yes ;; esac ;; -target | --target | --targe | --targ | --tar | --ta) next_target=yes ;; -tmpdir=* | --tmpdir=* | --tmpdi=* | --tmpd=* | --tmp=* | --tm=*) tmpdiroption=${arg} TMPDIR=`echo ${arg} | sed 's/^[-a-z]*=//'` ;; -tmpdir | --tmpdir | --tmpdi | --tmpd | --tmp | --tm) next_tmpdir=yes ;; -v | -verbose | --v) redirect= verbose=-v ;; -version | -V | --version | --V) echo "This is Cygnus Configure version" `echo ${version} | sed 's/[ $:]//g'` exit 0 ;; -with*=* | --with*=*) withopt=`echo ${arg} | sed 's:^-*\(with[^=]*\)=.*$:\1:;s/-/_/g'` withval=`echo ${arg} | sed 's:^-*with[^=]*=\(.*\)$:\1:'` eval $withopt="$withval" withoptions="$withoptions $arg" ;; -without* | --without*) withopt=`echo ${arg} | sed 's:^-*without:with:;s/-/_/g'` eval $withopt=no withoutoptions="$withoutoptions $arg" ;; -with* | --with*) withopt=`echo ${arg} | sed 's:^-*with:with:;s/-/_/g'` eval $withopt=yes withoptions="$withoptions $arg" ;; -x | --x) ;; -* | --*) (echo ; echo "Unrecognized option: \"${arg}\"". ; echo) 1>&2 fatal=true ;; *) case "${undefs}" in "") undefs="${arg}" ;; *) echo '***' Can only configure for one host and one target at a time. 1>&2 fatal=yes ;; esac ;; esac fi done # process host and target case "${fatal}" in "") # # Complain if an arg is missing # if [ -z "${host_alias}" ] ; then # (echo ; # echo "configure: No HOST specified." ; # echo) 1>&2 # fatal=true # fi ### This is a bit twisted. ### * if all three are specified, this is an error. ### * if we have neither hosts, nor unadorned args, this is an error. ### * if no hosts are specified, then the unadorned args are hosts, but if ### there were none, this is an error. ### * 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 "${host_alias}" -a -n "${target_alias}" -a -n "${undefs}" ] ; then 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 did not tell me what kind of host system you want to configure. - I will attempt to guess the kind of system this is.' 1>&2 guesssys=`echo ${progname} | sed 's/configure$/config.guess/'` if tmp_alias=`${guesssys}` ; then echo "- Looks like this is a ${tmp_alias}" 1>&2 host_alias=${tmp_alias} case "${target_alias}" in "") target_alias=${tmp_alias} ;; *) ;; esac arguments="--host=${host_alias} ${arguments}" else echo '- Failed to guess the system type. You need to tell me.' 1>&2 fatal=yes fi else case "${host_alias}" in "") host_alias=${undefs} ;; *) ;; esac case "${target_alias}" in "") case "${undefs}" in "") target_alias=${host_alias} ;; *) target_alias=${undefs} ;; esac ;; *) ;; esac fi ;; *) ;; esac if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then (echo "Usage: configure HOST" ; echo ; echo "Options: [defaults in brackets]" ; echo " -prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; echo " -exec-prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; echo " -help print this message. [normal config]" ; echo " -norecursion configure this directory only. [recurse]" ; 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]" ; echo " -tmpdir=TMPDIR create temporary files in TMPDIR. [ TMPDIR = \"/tmp\" ]" ; echo " -nfp configure the compilers default to soft floating point. [hard float]" ; echo " -with-FOO, -with-FOO=BAR specify that FOO is available" echo " -without-FOO specify that FOO is NOT available" echo ; echo "Where HOST and TARGET are something like \"vax\", \"sun3\", \"encore\", etc." ; echo ; ) 1>&2 if [ -r config.status ] ; then cat config.status fi exit 1 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 touch config.junk if ${moveifchange} config.junk config.trash ; then true else echo '***' cannot find move-if-change. 1>&2 exit 1 fi rm -f config.junk config.trash case "${srcdir}" in "") if [ -r configure.in ] ; then srcdir=. else if [ -r ${progname}.in ] ; then srcdir=`echo ${progname} | sed 's:/configure$::'` else 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)" ;; *) ;; esac ### break up ${srcdir}/configure.in. case "`grep '^# per\-host:' ${srcdir}/configure.in`" in "") echo '***' ${srcdir}/configure.in has no "per-host:" line. 1>&2 exit 1 ;; *) ;; esac case "`grep '^# per\-target:' ${srcdir}/configure.in`" in "") echo '***' ${srcdir}/configure.in has no "per-target:" line. 1>&2 exit 1 ;; *) ;; esac case "${TMPDIR}" in "") TMPDIR=/tmp ; export TMPDIR ;; *) ;; esac # keep this filename short for &%*%$*# 14 char file names tmpfile=${TMPDIR}/cONf$$ trap "rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos" 0 # split ${srcdir}/configure.in into common, per-host, per-target, # and post-target parts. Post-target is optional. sed -e '/^# per\-host:/,$d' ${srcdir}/configure.in > ${tmpfile}.com sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.hst if grep '^# post-target:' ${srcdir}/configure.in >/dev/null ; then sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.tgt sed -e '1,/^# post\-target:/d' ${srcdir}/configure.in > ${tmpfile}.pos else sed -e '1,/^# per\-target:/d' ${srcdir}/configure.in > ${tmpfile}.tgt echo >${tmpfile}.pos fi ### do common part of configure.in . ${tmpfile}.com # some sanity checks on configure.in case "${srctrigger}" in "") echo '***' srctrigger not set in ${PWD=`pwd`}/configure.in. 1>&2 exit 1 ;; *) ;; esac 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 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} . ${tmpfile}.tgt # 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=`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 tooldir="\$(exec_prefix)/${target_alias}" if [ "${host_alias}" != "${target_alias}" ] ; then if [ "${program_prefixoption}" = "" ] ; then if [ "${program_suffixoption}" = "" ] ; then if [ "${program_transform_nameoption}" = "" ] ; then program_prefix=${target_alias}- ; fi fi fi fi # 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 [ "${program_prefix}" != "" ] ; then program_transform_name="-e s/^/${program_prefix}/ ${program_transform_name}" fi for subdir in . ${subdirs} ; do # ${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'` ### 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|/\.$||'` ;; *) # otherwise relative case "${subdir}" in .) makesrcdir=${srcdir} ;; *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;; esac ;; esac if [ "${subdir}/" != "./" ] ; then Makefile=${subdir}/Makefile fi if [ ! -d ${subdir} ] ; then if mkdir ${subdir} ; then true else echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2 exit 1 fi fi case "${removing}" in "") case "${subdir}" in .) ;; *) eval echo Building in ${subdir} ${redirect} ;; esac # 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. # Make the links. configlinks="${links}" if [ -r ${subdir}/config.status ] ; then mv -f ${subdir}/config.status ${subdir}/config.back fi 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 \"${srcdir}/${file}\" does not exist." 1>&2 exit 1 fi ${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} 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 < ${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 # Conditionalize the makefile for this package. rm -f ${Makefile} case "${package_makefile_frag}" in "") mv ${subdir}/Makefile.tem ${Makefile} ;; *) if [ ! -f ${package_makefile_frag} ] ; then package_makefile_frag=${srcdir}/${package_makefile_frag} fi if [ -f ${package_makefile_frag} ] ; then sed -e "/^####/ r ${package_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} else echo '***' Expected package makefile fragment \"${package_makefile_frag}\" 1>&2 echo '***' is missing in ${PWD=`pwd`}. 1>&2 mv ${subdir}/Makefile.tem ${Makefile} fi esac # working copy now in ${Makefile} mv ${Makefile} ${subdir}/Makefile.tem # real copy now in ${subdir}/Makefile.tem # prepend warning about editting, and a bunch of variables. rm -f ${Makefile} cat > ${Makefile} <>${Makefile} ;; *) echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;; esac case "${target_makefile_frag}" in "") ;; /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;; *) echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;; esac case "${host_makefile_frag}" in "") ;; /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;; *) echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;; 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/ //" \ -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} else echo "No Makefile.in found in ${srcdir}, unable to configure" 1>&2 fi rm -f ${subdir}/Makefile.tem 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 newusing=`echo "${using}" | sed 's/and/using/'` using=${newusing} echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using} . ${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. case "${norecursion}" in "") arguments="${arguments} -norecursion" ;; *) ;; esac if [ ${subdir} = . ] ; then echo "#!/bin/sh # ${NO_EDIT} # This directory was configured as follows: ${progname}" ${arguments} " # ${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 if [ -d ${srcdir}/${configdir} ] ; then eval echo Configuring ${configdir}... ${redirect} case "${srcdir}" in ".") ;; *) if [ ! -d ./${configdir} ] ; then if mkdir ./${configdir} ; then true else echo '***' "${progname}: could not make ${PWD=`pwd`}/${configdir}" 1>&2 exit 1 fi fi ;; esac POPDIR=${PWD=`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 eval ${recprog} ${verbose} --host=${host_alias} --target=${target_alias} \ ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${removing} ${redirect} ; then true else exit 1 fi cd ${POPDIR} fi done fi exit 0 # # Local Variables: # fill-column: 131 # End: # # end of configure