12159047fSniklas#!/bin/sh 22159047fSniklas 32159047fSniklas### WARNING: this file contains embedded tabs. Do not run untabify on this file. 42159047fSniklas 52159047fSniklas# Configuration script 62159047fSniklas# Copyright (C) 1988, 90, 91, 92, 93, 94 Free Software Foundation, Inc. 72159047fSniklas 82159047fSniklas# This program is free software; you can redistribute it and/or modify 92159047fSniklas# it under the terms of the GNU General Public License as published by 102159047fSniklas# the Free Software Foundation; either version 2 of the License, or 112159047fSniklas# (at your option) any later version. 122159047fSniklas# 132159047fSniklas# This program is distributed in the hope that it will be useful, 142159047fSniklas# but WITHOUT ANY WARRANTY; without even the implied warranty of 152159047fSniklas# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 162159047fSniklas# GNU General Public License for more details. 172159047fSniklas# 182159047fSniklas# You should have received a copy of the GNU General Public License 192159047fSniklas# along with this program; if not, write to the Free Software 202159047fSniklas# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 212159047fSniklas 222159047fSniklas# This file was originally written by K. Richard Pixley. 232159047fSniklas 242159047fSniklas# 252159047fSniklas# Shell script to create proper links to machine-dependent files in 262159047fSniklas# preparation for compilation. 272159047fSniklas# 282159047fSniklas# If configure succeeds, it leaves its status in config.status. 292159047fSniklas# If configure fails after disturbing the status quo, 302159047fSniklas# config.status is removed. 312159047fSniklas# 322159047fSniklas 332159047fSniklasexport PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0 $argv; kill $$) 342159047fSniklas 352159047fSniklasremove=rm 362159047fSniklashard_link=ln 372159047fSniklassymbolic_link='ln -s' 382159047fSniklas 392159047fSniklas#for Test 402159047fSniklas#remove="echo rm" 412159047fSniklas#hard_link="echo ln" 422159047fSniklas#symbolic_link="echo ln -s" 432159047fSniklas 442159047fSniklas# clear some things potentially inherited from environment. 452159047fSniklas 462159047fSniklasMakefile=Makefile 472159047fSniklasMakefile_in=Makefile.in 48*c88b1d6cSniklasarguments= 492159047fSniklasbuild_alias= 502159047fSniklascache_file= 512159047fSniklascache_file_option= 522159047fSniklasconfigdirs= 532159047fSniklasexec_prefix= 542159047fSniklasexec_prefixoption= 552159047fSniklasfatal= 562159047fSniklasfloating_point=default 572159047fSniklasgas=default 582159047fSniklashost_alias=NOHOST 592159047fSniklashost_makefile_frag= 602159047fSniklasmoveifchange= 612159047fSniklasnorecursion= 622159047fSniklasother_options= 632159047fSniklaspackage_makefile_frag= 642159047fSniklasprefix=/usr/local 652159047fSniklasprogname= 662159047fSniklasprogram_prefix= 672159047fSniklasprogram_prefixoption= 682159047fSniklasprogram_suffix= 692159047fSniklasprogram_suffixoption= 702159047fSniklasprogram_transform_name= 712159047fSniklasprogram_transform_nameoption= 722159047fSniklasredirect=">/dev/null" 732159047fSniklasremoving= 742159047fSniklassite= 752159047fSniklassite_makefile_frag= 762159047fSniklassite_option= 772159047fSniklassrcdir= 782159047fSniklassrctrigger= 792159047fSniklassubdirs= 802159047fSniklastarget_alias=NOTARGET 812159047fSniklastarget_makefile_frag= 822159047fSniklasundefs=NOUNDEFS 83*c88b1d6cSniklasversion="$Revision: 1.1.1.2 $" 842159047fSniklasx11=default 852159047fSniklas 862159047fSniklas### we might need to use some other shell than /bin/sh for running subshells 872159047fSniklas# 882159047fSniklasconfig_shell=${CONFIG_SHELL-/bin/sh} 892159047fSniklas 902159047fSniklasNO_EDIT="This file was generated automatically by configure. Do not edit." 912159047fSniklas 922159047fSniklas## this is a little touchy and won't always work, but... 932159047fSniklas## 942159047fSniklas## if the argv[0] starts with a slash then it is an absolute name that can (and 952159047fSniklas## must) be used as is. 962159047fSniklas## 972159047fSniklas## otherwise, if argv[0] has no slash in it, we can assume that it is on the 982159047fSniklas## path. Since PATH might include "." we also add `pwd` to the end of PATH. 992159047fSniklas## 1002159047fSniklas 1012159047fSniklasprogname=$0 1022159047fSniklas# if PWD already has a value, it is probably wrong. 1032159047fSniklasif [ -n "$PWD" ]; then PWD=`pwd`; fi 1042159047fSniklas 1052159047fSniklascase "${progname}" in 1062159047fSniklas/*) ;; 1072159047fSniklas*/*) ;; 1082159047fSniklas*) 1092159047fSniklas PATH=$PATH:${PWD=`pwd`} ; export PATH 1102159047fSniklas ;; 1112159047fSniklasesac 1122159047fSniklas 1132159047fSniklas# Loop over all args 1142159047fSniklas 1152159047fSniklaswhile : 1162159047fSniklasdo 1172159047fSniklas 1182159047fSniklas# Break out if there are no more args 1192159047fSniklas case $# in 1202159047fSniklas 0) 1212159047fSniklas break 1222159047fSniklas ;; 1232159047fSniklas esac 1242159047fSniklas 1252159047fSniklas# Get the first arg, and shuffle 1262159047fSniklas option=$1 1272159047fSniklas shift 1282159047fSniklas 1292159047fSniklas# Make all options have two hyphens 1302159047fSniklas orig_option=$option # Save original for error messages 1312159047fSniklas case $option in 1322159047fSniklas --*) ;; 1332159047fSniklas -*) option=-$option ;; 1342159047fSniklas esac 1352159047fSniklas 1362159047fSniklas# Split out the argument for options that take them 1372159047fSniklas case $option in 1382159047fSniklas --*=*) 1392159047fSniklas optarg=`echo $option | sed -e 's/^[^=]*=//'` 140*c88b1d6cSniklas arguments="$arguments $option" 1412159047fSniklas ;; 1422159047fSniklas# These options have mandatory values. Since we didn't find an = sign, 1432159047fSniklas# the value must be in the next argument 144*c88b1d6cSniklas --bu* | --cache* | --ex* | --ho* | --pre* | --program-p* | --program-s* | --program-t* | --si* | --sr* | --ta* | --tm* | --x-* | --bi* | --sb* | --li* | --da* | --sy* | --sh* | --lo* | --in* | --ol* | --ma*) 1452159047fSniklas optarg=$1 1462159047fSniklas shift 147*c88b1d6cSniklas arguments="$arguments $option=$optarg" 148*c88b1d6cSniklas ;; 149*c88b1d6cSniklas --v) 150*c88b1d6cSniklas arguments="$arguments -v" 151*c88b1d6cSniklas ;; 152*c88b1d6cSniklas --*) 153*c88b1d6cSniklas arguments="$arguments $option" 1542159047fSniklas ;; 1552159047fSniklas esac 1562159047fSniklas 1572159047fSniklas# Now, process the options 1582159047fSniklas case $option in 1592159047fSniklas 160*c88b1d6cSniklas --build* | --bu*) 1612159047fSniklas case "$build_alias" in 1622159047fSniklas "") build_alias=$optarg ;; 1632159047fSniklas *) echo '***' Can only configure for one build machine at a time. 1>&2 1642159047fSniklas fatal=yes 1652159047fSniklas ;; 1662159047fSniklas esac 1672159047fSniklas ;; 1682159047fSniklas --cache*) 1692159047fSniklas cache_file=$optarg 1702159047fSniklas ;; 1712159047fSniklas --disable-*) 1722159047fSniklas enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'` 1732159047fSniklas eval $enableopt=no 1742159047fSniklas disableoptions="$disableoptions $option" 1752159047fSniklas ;; 1762159047fSniklas --enable-*) 1772159047fSniklas case "$option" in 1782159047fSniklas *=*) ;; 1792159047fSniklas *) optarg=yes ;; 1802159047fSniklas esac 1812159047fSniklas 1822159047fSniklas enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` 183*c88b1d6cSniklas eval "$enableopt='$optarg'" 184*c88b1d6cSniklas enableoptions="$enableoptions '$option'" 1852159047fSniklas ;; 1862159047fSniklas --exec-prefix* | --ex*) 1872159047fSniklas exec_prefix=$optarg 1882159047fSniklas exec_prefixoption="--exec-prefix=$optarg" 1892159047fSniklas ;; 1902159047fSniklas --gas | --g*) 1912159047fSniklas gas=yes 1922159047fSniklas ;; 1932159047fSniklas --help | --he*) 1942159047fSniklas fatal=yes 1952159047fSniklas ;; 1962159047fSniklas --host* | --ho*) 1972159047fSniklas case $host_alias in 1982159047fSniklas NOHOST) host_alias=$optarg ;; 1992159047fSniklas *) echo '***' Can only configure for one host at a time. 1>&2 2002159047fSniklas fatal=yes 2012159047fSniklas ;; 2022159047fSniklas esac 2032159047fSniklas ;; 2042159047fSniklas --nfp | --nf*) 2052159047fSniklas floating_point=no 206*c88b1d6cSniklas floating_pointoption="--nfp" 2072159047fSniklas ;; 2082159047fSniklas --norecursion | --no*) 2092159047fSniklas norecursion=yes 2102159047fSniklas ;; 2112159047fSniklas --prefix* | --pre*) 2122159047fSniklas prefix=$optarg 2132159047fSniklas prefixoption="--prefix=$optarg" 2142159047fSniklas ;; 2152159047fSniklas --program-prefix* | --program-p*) 2162159047fSniklas program_prefix=$optarg 2172159047fSniklas program_prefixoption="--program-prefix=$optarg" 2182159047fSniklas ;; 2192159047fSniklas --program-suffix* | --program-s*) 2202159047fSniklas program_suffix=$optarg 2212159047fSniklas program_suffixoption="--program-suffix=$optarg" 2222159047fSniklas ;; 2232159047fSniklas --program-transform-name* | --program-t*) 2242159047fSniklas # Double any backslashes or dollar signs in the argument 2252159047fSniklas program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" 2262159047fSniklas program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'" 2272159047fSniklas ;; 2282159047fSniklas --rm) 2292159047fSniklas removing=--rm 2302159047fSniklas ;; 2312159047fSniklas --silent | --sil* | --quiet | --q*) 2322159047fSniklas redirect=">/dev/null" 2332159047fSniklas verbose=--silent 2342159047fSniklas ;; 2352159047fSniklas --site* | --sit*) 2362159047fSniklas site=$optarg 2372159047fSniklas site_option="--site=$optarg" 2382159047fSniklas ;; 2392159047fSniklas --srcdir*/ | --sr*/) 2402159047fSniklas # Remove trailing slashes. Otherwise, when the file name gets 2412159047fSniklas # bolted into an object file as debug info, it has two slashes 2422159047fSniklas # in it. Ordinarily this is ok, but emacs takes double slash 2432159047fSniklas # to mean "forget the first part". 2442159047fSniklas srcdir=`echo $optarg | sed -e 's:/$::'` 2452159047fSniklas ;; 2462159047fSniklas --srcdir* | --sr*) 2472159047fSniklas srcdir=$optarg 2482159047fSniklas ;; 2492159047fSniklas --target* | --ta*) 2502159047fSniklas case $target_alias in 2512159047fSniklas NOTARGET) target_alias=$optarg ;; 2522159047fSniklas *) echo '***' Can only configure for one target at a time. 1>&2 2532159047fSniklas fatal=yes 2542159047fSniklas ;; 2552159047fSniklas esac 2562159047fSniklas ;; 2572159047fSniklas --tmpdir* | --tm*) 2582159047fSniklas TMPDIR=$optarg 2592159047fSniklas tmpdiroption="--tmpdir=$optarg" 2602159047fSniklas ;; 2612159047fSniklas --verbose | --v | --verb*) 2622159047fSniklas redirect= 2632159047fSniklas verbose=--verbose 2642159047fSniklas ;; 2652159047fSniklas --version | --V | --vers*) 2662159047fSniklas echo "This is Cygnus Configure version" `echo ${version} | sed 's/[ $:]//g'` 2672159047fSniklas exit 0 2682159047fSniklas ;; 2692159047fSniklas --with-*) 2702159047fSniklas case "$option" in 2712159047fSniklas *=*) ;; 2722159047fSniklas *) optarg=yes ;; 2732159047fSniklas esac 2742159047fSniklas 2752159047fSniklas withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` 2762159047fSniklas eval $withopt="$optarg" 2772159047fSniklas withoptions="$withoptions $option" 2782159047fSniklas ;; 2792159047fSniklas --without-*) 2802159047fSniklas withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'` 2812159047fSniklas eval $withopt=no 2822159047fSniklas withoutoptions="$withoutoptions $option" 2832159047fSniklas ;; 2842159047fSniklas --x) with_x=yes 2852159047fSniklas withoptions="$withoptions --with-x" 2862159047fSniklas ;; 2872159047fSniklas --x-i* | --x-l*) other_options="$other_options $orig_option" 2882159047fSniklas ;; 289*c88b1d6cSniklas --bi* | --sb* | --li* | --da* | --sy* | --sh* | --lo* | --in* | --ol* | --ma*) 290*c88b1d6cSniklas # These options were added to autoconf for emacs. 291*c88b1d6cSniklas ;; 2922159047fSniklas --*) 2932159047fSniklas echo "configure: Unrecognized option: \"$orig_option\"; use --help for usage." >&2 2942159047fSniklas exit 1 2952159047fSniklas ;; 2962159047fSniklas *) 2972159047fSniklas case $undefs in 2982159047fSniklas NOUNDEFS) undefs=$option ;; 2992159047fSniklas *) echo '***' Can only configure for one host and one target at a time. 1>&2 3002159047fSniklas fatal=yes 3012159047fSniklas ;; 3022159047fSniklas esac 3032159047fSniklas ;; 3042159047fSniklas esac 3052159047fSniklasdone 3062159047fSniklas 3072159047fSniklas# process host and target 3082159047fSniklas 3092159047fSniklas# Do some error checking and defaulting for the host and target type. 3102159047fSniklas# The inputs are: 3112159047fSniklas# configure --host=HOST --target=TARGET UNDEFS 3122159047fSniklas# 3132159047fSniklas# The rules are: 3142159047fSniklas# 1. You aren't allowed to specify --host, --target, and undefs at the 3152159047fSniklas# same time. 3162159047fSniklas# 2. Host defaults to undefs. 3172159047fSniklas# 3. If undefs is not specified, then host defaults to the current host, 3182159047fSniklas# as determined by config.guess. 3192159047fSniklas# 4. Target defaults to undefs. 3202159047fSniklas# 5. If undefs is not specified, then target defaults to host. 3212159047fSniklas 3222159047fSniklascase "${fatal}" in 3232159047fSniklas"") 3242159047fSniklas # Make sure that host, target & undefs aren't all specified at the 3252159047fSniklas # same time. 3262159047fSniklas case $host_alias---$target_alias---$undefs in 3272159047fSniklas NOHOST---*---* | *---NOTARGET---* | *---*---NOUNDEFS) 3282159047fSniklas ;; 3292159047fSniklas *) echo '***' Can only configure for one host and one target at a time. 1>&2 3302159047fSniklas fatal=yes 3312159047fSniklas break 2 3322159047fSniklas ;; 3332159047fSniklas esac 3342159047fSniklas 3352159047fSniklas # Now, do defaulting for host. 3362159047fSniklas case $host_alias in 3372159047fSniklas NOHOST) 3382159047fSniklas case $undefs in 3392159047fSniklas NOUNDEFS) 3402159047fSniklas # Neither --host option nor undefs were present. 3412159047fSniklas # Call config.guess. 3422159047fSniklas guesssys=`echo ${progname} | sed 's/configure$/config.guess/'` 3432159047fSniklas if host_alias=`${guesssys}` 3442159047fSniklas then 3452159047fSniklas # If the string we are going to use for 3462159047fSniklas # the target is a prefix of the string 3472159047fSniklas # we just guessed for the host, then 3482159047fSniklas # assume we are running native, and force 3492159047fSniklas # the same string for both target and host. 3502159047fSniklas case $target_alias in 3512159047fSniklas NOTARGET) ;; 3522159047fSniklas *) 3532159047fSniklas if expr $host_alias : $target_alias >/dev/null 3542159047fSniklas then 3552159047fSniklas host_alias=$target_alias 3562159047fSniklas fi 3572159047fSniklas ;; 3582159047fSniklas esac 3592159047fSniklas echo "Configuring for a ${host_alias} host." 1>&2 3602159047fSniklas arguments="--host=$host_alias $arguments" 3612159047fSniklas else 3622159047fSniklas echo 'Config.guess failed to determine the host type. You need to specify one.' 1>&2 3632159047fSniklas fatal=yes 3642159047fSniklas fi 3652159047fSniklas ;; 3662159047fSniklas *) 3672159047fSniklas host_alias=$undefs 368*c88b1d6cSniklas arguments="--host=$host_alias $arguments" 369*c88b1d6cSniklas undefs=NOUNDEFS 3702159047fSniklas ;; 3712159047fSniklas esac 3722159047fSniklas esac 3732159047fSniklas 3742159047fSniklas # Do defaulting for target. If --target option isn't present, default 3752159047fSniklas # to undefs. If undefs isn't present, default to host. 3762159047fSniklas case $target_alias in 3772159047fSniklas NOTARGET) 3782159047fSniklas case $undefs in 3792159047fSniklas NOUNDEFS) 3802159047fSniklas target_alias=$host_alias 3812159047fSniklas ;; 3822159047fSniklas *) 3832159047fSniklas target_alias=$undefs 384*c88b1d6cSniklas arguments="--target=$target_alias $arguments" 3852159047fSniklas ;; 3862159047fSniklas esac 3872159047fSniklas esac 3882159047fSniklas ;; 3892159047fSniklas*) ;; 3902159047fSniklasesac 3912159047fSniklas 3922159047fSniklasif [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then 3932159047fSniklas exec 1>&2 3942159047fSniklas echo Usage: configure [OPTIONS] [HOST] 3952159047fSniklas echo 3962159047fSniklas echo Options: [defaults in brackets] 3972159047fSniklas echo ' --prefix=MYDIR install into MYDIR [/usr/local]' 3982159047fSniklas echo ' --exec-prefix=MYDIR install host-dependent files into MYDIR [/usr/local]' 3992159047fSniklas echo ' --help print this message [normal config]' 4002159047fSniklas echo ' --build=BUILD configure for building on BUILD [BUILD=HOST]' 4012159047fSniklas echo ' --host=HOST configure for HOST [determined via config.guess]' 4022159047fSniklas echo ' --norecursion configure this directory only [recurse]' 4032159047fSniklas echo ' --program-prefix=FOO prepend FOO to installed program names [""]' 4042159047fSniklas echo ' --program-suffix=FOO append FOO to installed program names [""]' 4052159047fSniklas echo ' --program-transform-name=P transform installed names by sed pattern P [""]' 4062159047fSniklas echo ' --site=SITE configure with site-specific makefile for SITE' 4072159047fSniklas echo ' --srcdir=DIR find the sources in DIR [. or ..]' 4082159047fSniklas echo ' --target=TARGET configure for TARGET [TARGET=HOST]' 4092159047fSniklas echo ' --tmpdir=TMPDIR create temporary files in TMPDIR [/tmp]' 4102159047fSniklas echo ' --nfp configure for software floating point [hard float]' 4112159047fSniklas echo ' --with-FOO, --with-FOO=BAR package FOO is available (parameter BAR)' 4122159047fSniklas echo ' --without-FOO package FOO is NOT available' 4132159047fSniklas echo ' --enable-FOO, --enable-FOO=BAR include feature FOO (parameter BAR)' 4142159047fSniklas echo ' --disable-FOO do not include feature FOO' 4152159047fSniklas echo 4162159047fSniklas echo 'Where HOST and TARGET are something like "sparc-sunos", "mips-sgi-irix5", etc.' 4172159047fSniklas echo 4182159047fSniklas if [ -r config.status ] ; then 4192159047fSniklas cat config.status 4202159047fSniklas fi 4212159047fSniklas 4222159047fSniklas exit 1 4232159047fSniklasfi 4242159047fSniklas 4252159047fSniklasconfigsub=`echo ${progname} | sed 's/configure$/config.sub/'` 4262159047fSniklasmoveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'` 4272159047fSniklas 4282159047fSniklas# this is a hack. sun4 must always be a valid host alias or this will fail. 4292159047fSniklasif ${configsub} sun4 >/dev/null 2>&1 ; then 4302159047fSniklas true 4312159047fSniklaselse 4322159047fSniklas echo '***' cannot find config.sub. 1>&2 4332159047fSniklas exit 1 4342159047fSniklasfi 4352159047fSniklas 4362159047fSniklastouch config.junk 4372159047fSniklasif ${moveifchange} config.junk config.trash ; then 4382159047fSniklas true 4392159047fSniklaselse 4402159047fSniklas echo '***' cannot find move-if-change. 1>&2 4412159047fSniklas exit 1 4422159047fSniklasfi 4432159047fSniklasrm -f config.junk config.trash 4442159047fSniklas 4452159047fSniklascase "${srcdir}" in 4462159047fSniklas"") 4472159047fSniklas if [ -r configure.in ] ; then 4482159047fSniklas srcdir=. 4492159047fSniklas else 4502159047fSniklas if [ -r ${progname}.in ] ; then 4512159047fSniklas srcdir=`echo ${progname} | sed 's:/configure$::'` 4522159047fSniklas else 4532159047fSniklas echo '***' "Can't find configure.in. Try using --srcdir=some_dir" 1>&2 4542159047fSniklas exit 1 4552159047fSniklas fi 4562159047fSniklas fi 4572159047fSniklas ;; 4582159047fSniklas*) 4592159047fSniklas # Set srcdir to "." if that's what it is. 4602159047fSniklas # This is important for multilib support. 4612159047fSniklas if [ ! -d ${srcdir} ] ; then 4622159047fSniklas echo "Invalid source directory ${srcdir}" >&2 4632159047fSniklas exit 1 4642159047fSniklas fi 4652159047fSniklas pwd=`pwd` 4662159047fSniklas srcpwd=`cd ${srcdir} ; pwd` 4672159047fSniklas if [ "${pwd}" = "${srcpwd}" ] ; then 4682159047fSniklas srcdir=. 4692159047fSniklas fi 4702159047fSniklasesac 4712159047fSniklas 4722159047fSniklas### warn about some conflicting configurations. 4732159047fSniklas 4742159047fSniklascase "${srcdir}" in 4752159047fSniklas".") ;; 4762159047fSniklas*) 4772159047fSniklas if [ -f ${srcdir}/config.status ] ; then 4782159047fSniklas echo '***' Cannot configure here in \"${PWD=`pwd`}\" when \"${srcdir}\" is currently configured. 1>&2 4792159047fSniklas exit 1 4802159047fSniklas fi 4812159047fSniklasesac 4822159047fSniklas 4832159047fSniklas# default exec_prefix 4842159047fSniklascase "${exec_prefixoption}" in 4852159047fSniklas"") exec_prefix="\$(prefix)" ;; 4862159047fSniklas*) ;; 4872159047fSniklasesac 4882159047fSniklas 4892159047fSniklas### break up ${srcdir}/configure.in. 4902159047fSniklascase "`grep '^# per\-host:' ${srcdir}/configure.in`" in 4912159047fSniklas"") 4922159047fSniklas echo '***' ${srcdir}/configure.in has no \"per-host:\" line. 1>&2 4932159047fSniklas # Check for a directory that's been converted to use autoconf since 4942159047fSniklas # it was last configured. 4952159047fSniklas if grep AC_OUTPUT ${srcdir}/configure.in >/dev/null ; then 4962159047fSniklas echo '***' Hmm, looks like this directory has been autoconfiscated. 1>&2 4972159047fSniklas if [ -r ${srcdir}/configure ] ; then 4982159047fSniklas echo '***' Running the local configure script. 1>&2 4992159047fSniklas case "${cache_file}" in 5002159047fSniklas "") cache_file_option= ;; 5012159047fSniklas *) cache_file_option="--cache-file=${cache_file}" ;; 5022159047fSniklas esac 5032159047fSniklas srcdiroption="--srcdir=${srcdir}" 5042159047fSniklas case "${build_alias}" in 5052159047fSniklas "") buildopt= ;; 5062159047fSniklas *) buildopt="--build=${build_alias}" ;; 5072159047fSniklas esac 5082159047fSniklas eval exec ${config_shell} ${srcdir}/configure ${verbose} \ 5092159047fSniklas ${buildopt} --host=${host_alias} --target=${target_alias} \ 5102159047fSniklas ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ 5112159047fSniklas ${srcdiroption} \ 5122159047fSniklas ${program_prefixoption} ${program_suffixoption} \ 5132159047fSniklas ${program_transform_nameoption} ${site_option} \ 5142159047fSniklas ${withoptions} ${withoutoptions} \ 515*c88b1d6cSniklas ${enableoptions} ${disableoptions} ${floating_pointoption} \ 5162159047fSniklas ${cache_file_option} ${removing} ${other_options} ${redirect} 5172159047fSniklas else 5182159047fSniklas echo '***' There is no configure script present though. 1>&2 5192159047fSniklas fi 5202159047fSniklas fi 5212159047fSniklas exit 1 5222159047fSniklas ;; 5232159047fSniklas*) ;; 5242159047fSniklasesac 5252159047fSniklas 5262159047fSniklascase "`grep '^# per\-target:' ${srcdir}/configure.in`" in 5272159047fSniklas"") 5282159047fSniklas echo '***' ${srcdir}/configure.in has no \"per-target:\" line. 1>&2 5292159047fSniklas exit 1 5302159047fSniklas ;; 5312159047fSniklas*) ;; 5322159047fSniklasesac 5332159047fSniklas 5342159047fSniklascase "${TMPDIR}" in 5352159047fSniklas"") TMPDIR=/tmp ; export TMPDIR ;; 5362159047fSniklas*) ;; 5372159047fSniklasesac 5382159047fSniklas 5392159047fSniklas# keep this filename short for &%*%$*# 14 char file names 5402159047fSniklastmpfile=${TMPDIR}/cONf$$ 5412159047fSniklas# Note that under many versions of sh a trap handler for 0 will *override* any 5422159047fSniklas# exit status you explicitly specify! At this point, the only non-error exit 5432159047fSniklas# is at the end of the script; these actions are duplicated there, minus 5442159047fSniklas# the "exit 1". Don't use "exit 0" anywhere after this without resetting the 5452159047fSniklas# trap handler, or you'll lose. 5462159047fSniklastrap "rm -f Makefile.tem ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos; exit 1" 0 1 2 15 5472159047fSniklas 5482159047fSniklas# split ${srcdir}/configure.in into common, per-host, per-target, 5492159047fSniklas# and post-target parts. Post-target is optional. 5502159047fSniklassed -e '/^# per\-host:/,$d' ${srcdir}/configure.in > ${tmpfile}.com 5512159047fSniklassed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.hst 5522159047fSniklasif grep '^# post-target:' ${srcdir}/configure.in >/dev/null ; then 5532159047fSniklas sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.tgt 5542159047fSniklas sed -e '1,/^# post\-target:/d' ${srcdir}/configure.in > ${tmpfile}.pos 5552159047fSniklaselse 5562159047fSniklas sed -e '1,/^# per\-target:/d' ${srcdir}/configure.in > ${tmpfile}.tgt 5572159047fSniklas echo >${tmpfile}.pos 5582159047fSniklasfi 5592159047fSniklas 5602159047fSniklas### do common part of configure.in 5612159047fSniklas 5622159047fSniklas. ${tmpfile}.com 5632159047fSniklas 5642159047fSniklas# some sanity checks on configure.in 5652159047fSniklascase "${srctrigger}" in 5662159047fSniklas"") 5672159047fSniklas echo '***' srctrigger not set in ${PWD=`pwd`}/configure.in. 1>&2 5682159047fSniklas exit 1 5692159047fSniklas ;; 5702159047fSniklas*) ;; 5712159047fSniklasesac 5722159047fSniklas 5732159047fSniklascase "${build_alias}" in 5742159047fSniklas"") 5752159047fSniklas if result=`${config_shell} ${configsub} ${host_alias}` ; then 5762159047fSniklas build_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` 5772159047fSniklas build_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` 5782159047fSniklas build_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` 5792159047fSniklas build=${build_cpu}-${build_vendor}-${build_os} 5802159047fSniklas build_alias=${host_alias} 5812159047fSniklas fi 5822159047fSniklas ;; 5832159047fSniklas*) 5842159047fSniklas if result=`${config_shell} ${configsub} ${build_alias}` ; then 5852159047fSniklas buildopt="--build=${build_alias}" 5862159047fSniklas build_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` 5872159047fSniklas build_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` 5882159047fSniklas build_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` 5892159047fSniklas build=${build_cpu}-${build_vendor}-${build_os} 5902159047fSniklas else 5912159047fSniklas echo "Unrecognized build system name ${build_alias}." 1>&2 5922159047fSniklas exit 1 5932159047fSniklas fi 5942159047fSniklas ;; 5952159047fSniklasesac 5962159047fSniklas 5972159047fSniklasif result=`${config_shell} ${configsub} ${host_alias}` ; then 5982159047fSniklas true 5992159047fSniklaselse 6002159047fSniklas echo "Unrecognized host system name ${host_alias}." 1>&2 6012159047fSniklas exit 1 6022159047fSniklasfi 6032159047fSniklashost_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` 6042159047fSniklashost_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` 6052159047fSniklashost_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` 6062159047fSniklashost=${host_cpu}-${host_vendor}-${host_os} 6072159047fSniklas 6082159047fSniklas. ${tmpfile}.hst 6092159047fSniklas 6102159047fSniklasif result=`${config_shell} ${configsub} ${target_alias}` ; then 6112159047fSniklas true 6122159047fSniklaselse 6132159047fSniklas echo "Unrecognized target system name ${target_alias}." 1>&2 6142159047fSniklas exit 1 6152159047fSniklasfi 6162159047fSniklastarget_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` 6172159047fSniklastarget_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` 6182159047fSniklastarget_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` 6192159047fSniklastarget=${target_cpu}-${target_vendor}-${target_os} 6202159047fSniklas 6212159047fSniklas. ${tmpfile}.tgt 6222159047fSniklas 6232159047fSniklas# Find the source files, if location was not specified. 6242159047fSniklascase "${srcdir}" in 6252159047fSniklas"") 6262159047fSniklas srcdirdefaulted=1 6272159047fSniklas srcdir=. 6282159047fSniklas if [ ! -r ${srctrigger} ] ; then 6292159047fSniklas srcdir=.. 6302159047fSniklas fi 6312159047fSniklas ;; 6322159047fSniklas*) ;; 6332159047fSniklasesac 6342159047fSniklas 6352159047fSniklasif [ ! -r ${srcdir}/${srctrigger} ] ; then 6362159047fSniklas case "${srcdirdefaulted}" in 6372159047fSniklas "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/${srcdir}" 1>&2 ;; 6382159047fSniklas *) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/. or ${PWD=`pwd`}/.." 1>&2 ;; 6392159047fSniklas esac 6402159047fSniklas 6412159047fSniklas echo '***' \(At least ${srctrigger} is missing.\) 1>&2 6422159047fSniklas exit 1 6432159047fSniklasfi 6442159047fSniklas 6452159047fSniklas# Some systems (e.g., one of the i386-aix systems the gas testers are 6462159047fSniklas# using) don't handle "\$" correctly, so don't use it here. 6472159047fSniklastooldir='$(exec_prefix)'/${target_alias} 6482159047fSniklas 6492159047fSniklasif [ "${host_alias}" != "${target_alias}" ] ; then 6502159047fSniklas if [ "${program_prefixoption}" = "" ] ; then 6512159047fSniklas if [ "${program_suffixoption}" = "" ] ; then 6522159047fSniklas if [ "${program_transform_nameoption}" = "" ] ; then 6532159047fSniklas program_prefix=${target_alias}- ; 6542159047fSniklas fi 6552159047fSniklas fi 6562159047fSniklas fi 6572159047fSniklasfi 6582159047fSniklas 6592159047fSniklas# Merge program_prefix and program_suffix onto program_transform_name. 6602159047fSniklas# (program_suffix used to use $, but it's hard to preserve $ through both 6612159047fSniklas# make and sh.) 6622159047fSniklasif [ "${program_suffix}" != "" ] ; then 6632159047fSniklas program_transform_name="-e s,\\\\(.*\\\\),\\\\1${program_suffix}, ${program_transform_name}" 6642159047fSniklasfi 6652159047fSniklas 6662159047fSniklasif [ "${program_prefix}" != "" ] ; then 6672159047fSniklas program_transform_name="-e s,^,${program_prefix}, ${program_transform_name}" 6682159047fSniklasfi 6692159047fSniklas 6702159047fSniklas# If CC and CXX are not set in the environment, and the Makefile 6712159047fSniklas# exists, try to extract them from it. This is to handle running 6722159047fSniklas# ./config.status by hand. 6732159047fSniklasif [ -z "${CC}" -a -r Makefile ]; then 6742159047fSniklas sed -n -e ':loop 6752159047fSniklas/\\$/ N 6762159047fSniklas/\\$/ b loop 6772159047fSniklass/\\\n//g 6782159047fSniklas/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc 6792159047fSniklas CC=`tail -1 Makefile.cc` 6802159047fSniklas rm -f Makefile.cc 6812159047fSniklasfi 6822159047fSniklas 6832159047fSniklasif [ -z "${CXX}" -a -r Makefile ]; then 6842159047fSniklas sed -n -e ':loop 6852159047fSniklas/\\$/ N 6862159047fSniklas/\\$/ b loop 6872159047fSniklass/\\\n//g 6882159047fSniklas/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc 6892159047fSniklas CXX=`tail -1 Makefile.cc` 6902159047fSniklas rm -f Makefile.cc 6912159047fSniklasfi 6922159047fSniklas 693*c88b1d6cSniklas# Generate a default definition for YACC. This is used if the makefile can't 694*c88b1d6cSniklas# locate bison or byacc in objdir. 695*c88b1d6cSniklas 696*c88b1d6cSniklasfor prog in 'bison -y' byacc yacc 697*c88b1d6cSniklasdo 698*c88b1d6cSniklas set dummy $prog; tmp=$2 699*c88b1d6cSniklas IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 700*c88b1d6cSniklas for dir in $PATH; do 701*c88b1d6cSniklas test -z "$dir" && dir=. 702*c88b1d6cSniklas if test -f $dir/$tmp; then 703*c88b1d6cSniklas DEFAULT_YACC="$prog" 704*c88b1d6cSniklas break 705*c88b1d6cSniklas fi 706*c88b1d6cSniklas done 707*c88b1d6cSniklas IFS="$save_ifs" 708*c88b1d6cSniklas 709*c88b1d6cSniklas test -n "$DEFAULT_YACC" && break 710*c88b1d6cSniklasdone 711*c88b1d6cSniklas 712*c88b1d6cSniklas# Generate a default definition for LEX. This is used if the makefile can't 713*c88b1d6cSniklas# locate flex in objdir. 714*c88b1d6cSniklas 715*c88b1d6cSniklasfor prog in flex lex 716*c88b1d6cSniklasdo 717*c88b1d6cSniklas set dummy $prog; tmp=$2 718*c88b1d6cSniklas IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 719*c88b1d6cSniklas for dir in $PATH; do 720*c88b1d6cSniklas test -z "$dir" && dir=. 721*c88b1d6cSniklas if test -f $dir/$tmp; then 722*c88b1d6cSniklas DEFAULT_LEX="$prog" 723*c88b1d6cSniklas break 724*c88b1d6cSniklas fi 725*c88b1d6cSniklas done 726*c88b1d6cSniklas IFS="$save_ifs" 727*c88b1d6cSniklas 728*c88b1d6cSniklas test -n "$DEFAULT_LEX" && break 729*c88b1d6cSniklasdone 730*c88b1d6cSniklas 7312159047fSniklasif [ "${build}" != "${host}" ]; then 7322159047fSniklas # If we are doing a Canadian Cross, in which the host and build systems 7332159047fSniklas # are not the same, we set reasonable default values for the tools. 7342159047fSniklas 7352159047fSniklas tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD" 736*c88b1d6cSniklas tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET" 737*c88b1d6cSniklas tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET HOST_PREFIX" 7382159047fSniklas tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM" 7392159047fSniklas tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET" 7402159047fSniklas 7412159047fSniklas for var in ${tools}; do 7422159047fSniklas if [ -z "`eval 'echo $'"${var}"`" -a -r Makefile ]; then 7432159047fSniklas sed -n -e ':loop 7442159047fSniklas/\\$/ N 7452159047fSniklas/\\$/ b loop 7462159047fSniklass/\\\n//g 7472159047fSniklas/^'"${var}"'[ ]*=/ s/'"${var}"'[ ]*=[ ]*\(.*\)/\1/p' \ 7482159047fSniklas < Makefile > Makefile.v 7492159047fSniklas t=`tail -1 Makefile.v` 7502159047fSniklas if [ -n "${t}" ]; then 7512159047fSniklas eval "${var}='${t}'" 7522159047fSniklas fi 7532159047fSniklas rm -f Makefile.v 7542159047fSniklas fi 7552159047fSniklas done 7562159047fSniklas 7572159047fSniklas AR=${AR-${host_alias}-ar} 7582159047fSniklas AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar} 7592159047fSniklas AS=${AS-${host_alias}-as} 7602159047fSniklas AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as} 7612159047fSniklas CC=${CC-${host_alias}-gcc} 7622159047fSniklas CXX=${CXX-${host_alias}-gcc} 7632159047fSniklas CC_FOR_BUILD=${CC_FOR_BUILD-gcc} 7642159047fSniklas CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc} 7652159047fSniklas CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-gcc} 766*c88b1d6cSniklas DLLTOOL=${DLLTOOL-${host_alias}-dlltool} 767*c88b1d6cSniklas DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool} 7682159047fSniklas HOST_PREFIX=${build_alias}- 7692159047fSniklas HOST_PREFIX_1=${build_alias}- 7702159047fSniklas LD=${LD-${host_alias}-ld} 7712159047fSniklas LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld} 7722159047fSniklas MAKEINFO=${MAKEINFO-makeinfo} 7732159047fSniklas NM=${NM-${host_alias}-nm} 7742159047fSniklas NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm} 7752159047fSniklas RANLIB=${RANLIB-${host_alias}-ranlib} 7762159047fSniklas RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib} 7772159047fSniklas 7782159047fSniklas if [ -z "${BISON}" ]; then 7792159047fSniklas IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 7802159047fSniklas for dir in $PATH; do 7812159047fSniklas test -z "$dir" && dir=. 7822159047fSniklas if test -f $dir/byacc; then 7832159047fSniklas BISON=byacc 7842159047fSniklas break 7852159047fSniklas fi 7862159047fSniklas if test -f $dir/bison; then 7872159047fSniklas BISON=bison 7882159047fSniklas break 7892159047fSniklas fi 7902159047fSniklas if test -f $dir/yacc; then 7912159047fSniklas BISON=yacc 7922159047fSniklas break 7932159047fSniklas fi 7942159047fSniklas done 7952159047fSniklas IFS="$save_ifs" 7962159047fSniklas BISON=${BISON-bison} 7972159047fSniklas fi 7982159047fSniklas 7992159047fSniklas if [ -z "${LEX}" ]; then 8002159047fSniklas IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 8012159047fSniklas for dir in $PATH; do 8022159047fSniklas test -z "$dir" && dir=. 8032159047fSniklas if test -f $dir/flex; then 8042159047fSniklas LEX=flex 8052159047fSniklas break 8062159047fSniklas fi 8072159047fSniklas if test -f $dir/lex; then 8082159047fSniklas LEX=lex 8092159047fSniklas break 8102159047fSniklas fi 8112159047fSniklas done 8122159047fSniklas IFS="$save_ifs" 8132159047fSniklas LEX=${LEX-flex} 8142159047fSniklas fi 8152159047fSniklas 8162159047fSniklas # Export variables which autoconf might try to set. 8172159047fSniklas export AS 8182159047fSniklas export AR 8192159047fSniklas export CC_FOR_BUILD 820*c88b1d6cSniklas export DLLTOOL 8212159047fSniklas export LD 8222159047fSniklas export NM 8232159047fSniklas export RANLIB 8242159047fSniklaselse 8252159047fSniklas # If CC is still not set, try to get gcc. 8262159047fSniklas if [ -z "${CC}" ]; then 8272159047fSniklas IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 8282159047fSniklas for dir in $PATH; do 8292159047fSniklas test -z "$dir" && dir=. 8302159047fSniklas if test -f $dir/gcc; then 8312159047fSniklas CC="gcc -O2" 8322159047fSniklas break 8332159047fSniklas fi 8342159047fSniklas done 8352159047fSniklas IFS="$save_ifs" 8362159047fSniklas CC=${CC-cc} 8372159047fSniklas fi 8382159047fSniklas 8392159047fSniklas CXX=${CXX-"gcc"} 8402159047fSniklasfi 8412159047fSniklas 8422159047fSniklasexport CC 8432159047fSniklasexport CXX 8442159047fSniklas 845*c88b1d6cSniklascase "$host" in 846*c88b1d6cSniklas *go32*) 847*c88b1d6cSniklas enable_gdbtk=no ;; 848*c88b1d6cSniklasesac 849*c88b1d6cSniklas 850*c88b1d6cSniklas# Determine whether gdb needs tk/tcl or not. 851*c88b1d6cSniklasif [ "$enable_gdbtk" != "no" ]; then 852*c88b1d6cSniklas GDB_TK="all-tcl all-tk" 853*c88b1d6cSniklaselse 854*c88b1d6cSniklas GDB_TK="" 855*c88b1d6cSniklasfi 856*c88b1d6cSniklas 8572159047fSniklasfor subdir in . ${subdirs} ; do 8582159047fSniklas 8592159047fSniklas # ${subdir} is relative path from . to the directory we're currently 8602159047fSniklas # configuring. 8612159047fSniklas # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed. 8622159047fSniklas invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'` 8632159047fSniklas 8642159047fSniklas ### figure out what to do with srcdir 8652159047fSniklas case "${srcdir}" in 8662159047fSniklas ".") # no -srcdir option. We're building in place. 8672159047fSniklas makesrcdir=. ;; 8682159047fSniklas /*) # absolute path 8692159047fSniklas makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'` 8702159047fSniklas ;; 8712159047fSniklas *) # otherwise relative 8722159047fSniklas case "${subdir}" in 8732159047fSniklas .) makesrcdir=${srcdir} ;; 8742159047fSniklas *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;; 8752159047fSniklas esac 8762159047fSniklas ;; 8772159047fSniklas esac 8782159047fSniklas 8792159047fSniklas if [ "${subdir}/" != "./" ] ; then 8802159047fSniklas Makefile=${subdir}/Makefile 8812159047fSniklas fi 8822159047fSniklas 8832159047fSniklas if [ ! -d ${subdir} ] ; then 8842159047fSniklas if mkdir ${subdir} ; then 8852159047fSniklas true 8862159047fSniklas else 8872159047fSniklas echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2 8882159047fSniklas exit 1 8892159047fSniklas fi 8902159047fSniklas fi 8912159047fSniklas 8922159047fSniklas case "${removing}" in 8932159047fSniklas "") 8942159047fSniklas case "${subdir}" in 8952159047fSniklas .) ;; 8962159047fSniklas *) eval echo Building in ${subdir} ${redirect} ;; 8972159047fSniklas esac 8982159047fSniklas 8992159047fSniklas # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) 9002159047fSniklas # Set up the list of links to be made. 9012159047fSniklas # ${links} is the list of link names, and ${files} is the list of names to link to. 9022159047fSniklas 9032159047fSniklas # Make the links. 9042159047fSniklas configlinks="${links}" 9052159047fSniklas if [ -r ${subdir}/config.status ] ; then 9062159047fSniklas mv -f ${subdir}/config.status ${subdir}/config.back 9072159047fSniklas fi 9082159047fSniklas while [ -n "${files}" ] ; do 9092159047fSniklas # set file to car of files, files to cdr of files 9102159047fSniklas set ${files}; file=$1; shift; files=$* 9112159047fSniklas set ${links}; link=$1; shift; links=$* 9122159047fSniklas 9132159047fSniklas if [ ! -r ${srcdir}/${file} ] ; then 9142159047fSniklas echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 9152159047fSniklas echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 9162159047fSniklas exit 1 9172159047fSniklas fi 9182159047fSniklas 9192159047fSniklas ${remove} -f ${link} 9202159047fSniklas # Make a symlink if possible, otherwise try a hard link 9212159047fSniklas if ${symbolic_link} ${srcdir}/${file} ${link} >/dev/null 2>&1 ; then 9222159047fSniklas true 9232159047fSniklas else 9242159047fSniklas # We need to re-remove the file because Lynx leaves a 9252159047fSniklas # very strange directory there when it fails an NFS symlink. 9262159047fSniklas ${remove} -r -f ${link} 9272159047fSniklas ${hard_link} ${srcdir}/${file} ${link} 9282159047fSniklas fi 9292159047fSniklas if [ ! -r ${link} ] ; then 9302159047fSniklas echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 9312159047fSniklas exit 1 9322159047fSniklas fi 9332159047fSniklas 9342159047fSniklas echo "Linked \"${link}\" to \"${srcdir}/${file}\"." 9352159047fSniklas done 9362159047fSniklas 9372159047fSniklas # Create a .gdbinit file which runs the one in srcdir 9382159047fSniklas # and tells GDB to look there for source files. 9392159047fSniklas 9402159047fSniklas if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then 9412159047fSniklas case ${srcdir} in 9422159047fSniklas .) ;; 9432159047fSniklas *) cat > ${subdir}/.gdbinit <<EOF 9442159047fSniklas# ${NO_EDIT} 9452159047fSniklasdir ${makesrcdir} 9462159047fSniklasdir . 9472159047fSniklassource ${makesrcdir}/.gdbinit 9482159047fSniklasEOF 9492159047fSniklas ;; 9502159047fSniklas esac 9512159047fSniklas fi 9522159047fSniklas 9532159047fSniklas # Install a makefile, and make it set VPATH 9542159047fSniklas # if necessary so that the sources are found. 9552159047fSniklas # Also change its value of srcdir. 9562159047fSniklas # NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has 9572159047fSniklas # been somewhat optimized and is perhaps a bit twisty. 9582159047fSniklas 9592159047fSniklas # code is order so as to try to sed the smallest input files we know. 9602159047fSniklas 9612159047fSniklas # the four makefile fragments MUST end up in the resulting Makefile in this order: 9622159047fSniklas # package, target, host, and site. so do these separately because I don't trust the 9632159047fSniklas # order of sed -e expressions. 9642159047fSniklas 9652159047fSniklas if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then 9662159047fSniklas 9672159047fSniklas # Conditionalize for this site from "Makefile.in" (or whatever it's called) into Makefile.tem 9682159047fSniklas rm -f ${subdir}/Makefile.tem 9692159047fSniklas case "${site}" in 9702159047fSniklas "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;; 9712159047fSniklas *) 9722159047fSniklas site_makefile_frag=${srcdir}/config/ms-${site} 9732159047fSniklas 9742159047fSniklas if [ -f ${site_makefile_frag} ] ; then 9752159047fSniklas sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${subdir}/${Makefile_in} \ 9762159047fSniklas > ${subdir}/Makefile.tem 9772159047fSniklas else 9782159047fSniklas cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem 9792159047fSniklas site_makefile_frag= 9802159047fSniklas fi 9812159047fSniklas ;; 9822159047fSniklas esac 9832159047fSniklas # working copy now in ${subdir}/Makefile.tem 9842159047fSniklas 9852159047fSniklas # Conditionalize the makefile for this host. 9862159047fSniklas rm -f ${Makefile} 9872159047fSniklas case "${host_makefile_frag}" in 9882159047fSniklas "") mv ${subdir}/Makefile.tem ${Makefile} ;; 9892159047fSniklas *) 9902159047fSniklas if [ ! -f ${host_makefile_frag} ] ; then 9912159047fSniklas host_makefile_frag=${srcdir}/${host_makefile_frag} 9922159047fSniklas fi 9932159047fSniklas if [ -f ${host_makefile_frag} ] ; then 9942159047fSniklas sed -e "/^####/ r ${host_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} 9952159047fSniklas else 9962159047fSniklas echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 9972159047fSniklas echo '***' is missing in ${PWD=`pwd`}. 1>&2 9982159047fSniklas mv ${subdir}/Makefile.tem ${Makefile} 9992159047fSniklas fi 10002159047fSniklas esac 10012159047fSniklas # working copy now in ${Makefile} 10022159047fSniklas 10032159047fSniklas # Conditionalize the makefile for this target. 10042159047fSniklas rm -f ${subdir}/Makefile.tem 10052159047fSniklas case "${target_makefile_frag}" in 10062159047fSniklas "") mv ${Makefile} ${subdir}/Makefile.tem ;; 10072159047fSniklas *) 10082159047fSniklas if [ ! -f ${target_makefile_frag} ] ; then 10092159047fSniklas target_makefile_frag=${srcdir}/${target_makefile_frag} 10102159047fSniklas fi 10112159047fSniklas if [ -f ${target_makefile_frag} ] ; then 10122159047fSniklas sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem 10132159047fSniklas else 10142159047fSniklas mv ${Makefile} ${subdir}/Makefile.tem 10152159047fSniklas target_makefile_frag= 10162159047fSniklas fi 10172159047fSniklas ;; 10182159047fSniklas esac 10192159047fSniklas # real copy now in ${subdir}/Makefile.tem 10202159047fSniklas 10212159047fSniklas # Conditionalize the makefile for this package. 10222159047fSniklas rm -f ${Makefile} 10232159047fSniklas case "${package_makefile_frag}" in 10242159047fSniklas "") mv ${subdir}/Makefile.tem ${Makefile} ;; 10252159047fSniklas *) 10262159047fSniklas if [ ! -f ${package_makefile_frag} ] ; then 10272159047fSniklas package_makefile_frag=${srcdir}/${package_makefile_frag} 10282159047fSniklas fi 10292159047fSniklas if [ -f ${package_makefile_frag} ] ; then 10302159047fSniklas sed -e "/^####/ r ${package_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} 10312159047fSniklas rm -f ${subdir}/Makefile.tem 10322159047fSniklas else 10332159047fSniklas echo '***' Expected package makefile fragment \"${package_makefile_frag}\" 1>&2 10342159047fSniklas echo '***' is missing in ${PWD=`pwd`}. 1>&2 10352159047fSniklas mv ${subdir}/Makefile.tem ${Makefile} 10362159047fSniklas fi 10372159047fSniklas esac 10382159047fSniklas # working copy now in ${Makefile} 10392159047fSniklas 10402159047fSniklas mv ${Makefile} ${subdir}/Makefile.tem 10412159047fSniklas 10422159047fSniklas # real copy now in ${subdir}/Makefile.tem 10432159047fSniklas 10442159047fSniklas # prepend warning about editting, and a bunch of variables. 10452159047fSniklas rm -f ${Makefile} 10462159047fSniklas cat > ${Makefile} <<EOF 10472159047fSniklas# ${NO_EDIT} 10482159047fSniklasVPATH = ${makesrcdir} 10492159047fSniklaslinks = ${configlinks} 10502159047fSniklashost_alias = ${host_alias} 10512159047fSniklashost_cpu = ${host_cpu} 10522159047fSniklashost_vendor = ${host_vendor} 10532159047fSniklashost_os = ${host_os} 10542159047fSniklashost_canonical = ${host_cpu}-${host_vendor}-${host_os} 10552159047fSniklastarget_alias = ${target_alias} 10562159047fSniklastarget_cpu = ${target_cpu} 10572159047fSniklastarget_vendor = ${target_vendor} 10582159047fSniklastarget_os = ${target_os} 10592159047fSniklastarget_canonical = ${target_cpu}-${target_vendor}-${target_os} 10602159047fSniklasEOF 10612159047fSniklas case "${build}" in 10622159047fSniklas "") ;; 10632159047fSniklas *) cat >> ${Makefile} << EOF 10642159047fSniklasbuild_alias = ${build_alias} 10652159047fSniklasbuild_cpu = ${build_cpu} 10662159047fSniklasbuild_vendor = ${build_vendor} 10672159047fSniklasbuild_os = ${build_os} 10682159047fSniklasbuild_canonical = ${build_cpu}-${build_vendor}-${build_os} 10692159047fSniklasEOF 10702159047fSniklas esac 10712159047fSniklas 10722159047fSniklas case "${package_makefile_frag}" in 10732159047fSniklas "") ;; 10742159047fSniklas /*) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;; 10752159047fSniklas *) echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;; 10762159047fSniklas esac 10772159047fSniklas 10782159047fSniklas case "${target_makefile_frag}" in 10792159047fSniklas "") ;; 10802159047fSniklas /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;; 10812159047fSniklas *) echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;; 10822159047fSniklas esac 10832159047fSniklas 10842159047fSniklas case "${host_makefile_frag}" in 10852159047fSniklas "") ;; 10862159047fSniklas /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;; 10872159047fSniklas *) echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;; 10882159047fSniklas esac 10892159047fSniklas 10902159047fSniklas if [ "${site_makefile_frag}" != "" ] ; then 10912159047fSniklas echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile} 10922159047fSniklas fi 10932159047fSniklas 10942159047fSniklas # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, 10952159047fSniklas # remove any form feeds. 10962159047fSniklas if [ -z "${subdirs}" ]; then 10972159047fSniklas rm -f ${subdir}/Makefile.tem2 10982159047fSniklas sed -e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \ 10992159047fSniklas -e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \ 11002159047fSniklas ${subdir}/Makefile.tem > ${subdir}/Makefile.tem2 11012159047fSniklas rm -f ${subdir}/Makefile.tem 11022159047fSniklas mv ${subdir}/Makefile.tem2 ${subdir}/Makefile.tem 11032159047fSniklas fi 11042159047fSniklas sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \ 11052159047fSniklas -e "s:^exec_prefix[ ]*=.*$:exec_prefix = ${exec_prefix}:" \ 11062159047fSniklas -e "/^CC[ ]*=/{ 11072159047fSniklas :loop1 11082159047fSniklas /\\\\$/ N 11092159047fSniklas /\\\\$/ b loop1 11102159047fSniklas s/\\\\\\n//g 11112159047fSniklas s%^CC[ ]*=.*$%CC = ${CC}% 11122159047fSniklas }" \ 11132159047fSniklas -e "/^CXX[ ]*=/{ 11142159047fSniklas :loop2 11152159047fSniklas /\\\\$/ N 11162159047fSniklas /\\\\$/ b loop2 11172159047fSniklas s/\\\\\\n//g 11182159047fSniklas s%^CXX[ ]*=.*$%CXX = ${CXX}% 11192159047fSniklas }" \ 11202159047fSniklas -e "s:^SHELL[ ]*=.*$:SHELL = ${config_shell}:" \ 1121*c88b1d6cSniklas -e "s:^GDB_TK[ ]*=.*$:GDB_TK = ${GDB_TK}:" \ 11222159047fSniklas -e "s:^srcdir[ ]*=.*$:srcdir = ${makesrcdir}:" \ 11232159047fSniklas -e "s///" \ 11242159047fSniklas -e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \ 11252159047fSniklas -e "s:^program_suffix[ ]*=.*$:program_suffix = ${program_suffix}:" \ 11262159047fSniklas -e "s:^program_transform_name[ ]*=.*$:program_transform_name = ${program_transform_name}:" \ 11272159047fSniklas -e "s:^tooldir[ ]*=.*$:tooldir = ${tooldir}:" \ 1128*c88b1d6cSniklas -e "s:^DEFAULT_YACC[ ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \ 1129*c88b1d6cSniklas -e "s:^DEFAULT_LEX[ ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \ 11302159047fSniklas ${subdir}/Makefile.tem >> ${Makefile} 11312159047fSniklas 11322159047fSniklas # If this is a Canadian Cross, preset the values of many more 11332159047fSniklas # tools. 11342159047fSniklas if [ "${build}" != "${host}" ]; then 11352159047fSniklas for var in ${tools}; do 11362159047fSniklas val=`eval 'echo $'"${var}"` 11372159047fSniklas sed -e "/^${var}[ ]*=/{ 11382159047fSniklas :loop1 11392159047fSniklas /\\\\$/ N 11402159047fSniklas /\\\\$/ b loop1 11412159047fSniklas s/\\\\\\n//g 11422159047fSniklas s%^${var}[ ]*=.*$%${var} = ${val}% 11432159047fSniklas }" ${Makefile} > ${Makefile}.tem 11442159047fSniklas mv -f ${Makefile}.tem ${Makefile} 11452159047fSniklas done 11462159047fSniklas fi 11472159047fSniklas 11482159047fSniklas # final copy now in ${Makefile} 11492159047fSniklas 11502159047fSniklas else 11512159047fSniklas echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2 11522159047fSniklas fi 11532159047fSniklas 11542159047fSniklas rm -f ${subdir}/Makefile.tem 11552159047fSniklas 11562159047fSniklas case "${host_makefile_frag}" in 11572159047fSniklas "") using= ;; 11582159047fSniklas *) using="and \"${host_makefile_frag}\"" ;; 11592159047fSniklas esac 11602159047fSniklas 11612159047fSniklas case "${target_makefile_frag}" in 11622159047fSniklas "") ;; 11632159047fSniklas *) using="${using} and \"${target_makefile_frag}\"" ;; 11642159047fSniklas esac 11652159047fSniklas 11662159047fSniklas case "${site_makefile_frag}" in 11672159047fSniklas "") ;; 11682159047fSniklas *) using="${using} and \"${site_makefile_frag}\"" ;; 11692159047fSniklas esac 11702159047fSniklas 11712159047fSniklas newusing=`echo "${using}" | sed 's/and/using/'` 11722159047fSniklas using=${newusing} 11732159047fSniklas echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using} 11742159047fSniklas 11752159047fSniklas . ${tmpfile}.pos 11762159047fSniklas 11772159047fSniklas # describe the chosen configuration in config.status. 11782159047fSniklas # Make that file a shellscript which will reestablish 11792159047fSniklas # the same configuration. Used in Makefiles to rebuild 11802159047fSniklas # Makefiles. 11812159047fSniklas 11822159047fSniklas case "${norecursion}" in 11832159047fSniklas "") arguments="${arguments} --norecursion" ;; 11842159047fSniklas *) ;; 11852159047fSniklas esac 11862159047fSniklas 11872159047fSniklas if [ ${subdir} = . ] ; then 11882159047fSniklas echo "#!/bin/sh 11892159047fSniklas# ${NO_EDIT} 11902159047fSniklas# This directory was configured as follows: 11912159047fSniklas${progname}" ${arguments} " 11922159047fSniklas# ${using}" > ${subdir}/config.new 11932159047fSniklas else 11942159047fSniklas echo "#!/bin/sh 11952159047fSniklas# ${NO_EDIT} 11962159047fSniklas# This directory was configured as follows: 11972159047fSniklascd ${invsubdir} 11982159047fSniklas${progname}" ${arguments} " 11992159047fSniklas# ${using}" > ${subdir}/config.new 12002159047fSniklas fi 12012159047fSniklas chmod a+x ${subdir}/config.new 12022159047fSniklas if [ -r ${subdir}/config.back ] ; then 12032159047fSniklas mv -f ${subdir}/config.back ${subdir}/config.status 12042159047fSniklas fi 12052159047fSniklas ${moveifchange} ${subdir}/config.new ${subdir}/config.status 12062159047fSniklas ;; 12072159047fSniklas 12082159047fSniklas *) rm -f ${Makefile} ${subdir}/config.status ${links} ;; 12092159047fSniklas esac 12102159047fSniklasdone 12112159047fSniklas 12122159047fSniklas# If there are subdirectories, then recur. 12132159047fSniklasif [ -z "${norecursion}" -a -n "${configdirs}" ] ; then 12142159047fSniklas for configdir in ${configdirs} ; do 12152159047fSniklas 12162159047fSniklas if [ -d ${srcdir}/${configdir} ] ; then 12172159047fSniklas eval echo Configuring ${configdir}... ${redirect} 12182159047fSniklas case "${srcdir}" in 12192159047fSniklas ".") ;; 12202159047fSniklas *) 12212159047fSniklas if [ ! -d ./${configdir} ] ; then 12222159047fSniklas if mkdir ./${configdir} ; then 12232159047fSniklas true 12242159047fSniklas else 12252159047fSniklas echo '***' "${progname}: could not make ${PWD=`pwd`}/${configdir}" 1>&2 12262159047fSniklas exit 1 12272159047fSniklas fi 12282159047fSniklas fi 12292159047fSniklas ;; 12302159047fSniklas esac 12312159047fSniklas 12322159047fSniklas POPDIR=${PWD=`pwd`} 12332159047fSniklas cd ${configdir} 12342159047fSniklas 12352159047fSniklas### figure out what to do with srcdir 12362159047fSniklas case "${srcdir}" in 12372159047fSniklas ".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. 12382159047fSniklas /*) # absolute path 12392159047fSniklas newsrcdir=${srcdir}/${configdir} 12402159047fSniklas srcdiroption="--srcdir=${newsrcdir}" 12412159047fSniklas ;; 12422159047fSniklas *) # otherwise relative 12432159047fSniklas newsrcdir=../${srcdir}/${configdir} 12442159047fSniklas srcdiroption="--srcdir=${newsrcdir}" 12452159047fSniklas ;; 12462159047fSniklas esac 12472159047fSniklas 12482159047fSniklas # Handle --cache-file=../XXX 12492159047fSniklas case "${cache_file}" in 12502159047fSniklas "") # empty 12512159047fSniklas ;; 12522159047fSniklas /*) # absolute path 12532159047fSniklas cache_file_option="--cache-file=${cache_file}" 12542159047fSniklas ;; 12552159047fSniklas *) # relative path 12562159047fSniklas cache_file_option="--cache-file=../${cache_file}" 12572159047fSniklas ;; 12582159047fSniklas esac 12592159047fSniklas 12602159047fSniklas### check for guested configure, otherwise fix possibly relative progname 12612159047fSniklas if [ -f ${newsrcdir}/configure ] ; then 12622159047fSniklas recprog=${newsrcdir}/configure 12632159047fSniklas elif [ -f ${newsrcdir}/configure.in ] ; then 12642159047fSniklas case "${progname}" in 12652159047fSniklas /*) recprog=${progname} ;; 12662159047fSniklas *) recprog=../${progname} ;; 12672159047fSniklas esac 12682159047fSniklas else 12692159047fSniklas eval echo No configuration information in ${configdir} ${redirect} 12702159047fSniklas recprog= 12712159047fSniklas fi 12722159047fSniklas 12732159047fSniklas### The recursion line is here. 12742159047fSniklas if [ ! -z "${recprog}" ] ; then 12752159047fSniklas if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${target_alias} \ 12762159047fSniklas ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ 1277*c88b1d6cSniklas ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then 12782159047fSniklas true 12792159047fSniklas else 12802159047fSniklas echo Configure in `pwd` failed, exiting. 1>&2 12812159047fSniklas exit 1 12822159047fSniklas fi 12832159047fSniklas fi 12842159047fSniklas 12852159047fSniklas cd ${POPDIR} 12862159047fSniklas fi 12872159047fSniklas done 12882159047fSniklasfi 12892159047fSniklas 12902159047fSniklas# Perform the same cleanup as the trap handler, minus the "exit 1" of course, 12912159047fSniklas# and reset the trap handler. 12922159047fSniklasrm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos 12932159047fSniklastrap 0 12942159047fSniklas 12952159047fSniklasexit 0 12962159047fSniklas 12972159047fSniklas# 12982159047fSniklas# Local Variables: 12992159047fSniklas# fill-column: 131 13002159047fSniklas# End: 13012159047fSniklas# 13022159047fSniklas 13032159047fSniklas# end of configure 1304