source: trunk/third/gcc/configure @ 18474

Revision 18474, 49.3 KB checked in by ghudson, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18473, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1#!/bin/sh
2
3### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
4
5# Configuration script
6# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001
7# Free Software Foundation, Inc.
8
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23# This file was originally written by K. Richard Pixley.
24
25#
26# Shell script to create proper links to machine-dependent files in
27# preparation for compilation.
28#
29# If configure succeeds, it leaves its status in config.status.
30# If configure fails after disturbing the status quo,
31#       config.status is removed.
32#
33
34export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0 $argv; kill $$)
35
36remove=rm
37hard_link=ln
38symbolic_link='ln -s'
39
40#for Test
41#remove="echo rm"
42#hard_link="echo ln"
43#symbolic_link="echo ln -s"
44
45# clear some things potentially inherited from environment.
46
47Makefile=Makefile
48Makefile_in=Makefile.in
49arguments=
50build_alias=
51cache_file=config.cache
52cache_file_option=
53configdirs=
54extraconfigdirs=
55diroptions=
56enable_threads=no
57enable_shared=no
58enable_libstdcxx_v3=yes
59exec_prefix=
60exec_prefixoption=
61fatal=
62floating_point=default
63gas=default
64gcc_version=
65gcc_version_trigger=
66host_alias=NOHOST
67host_makefile_frag=
68moveifchange=
69norecursion=
70other_options=
71package_makefile_frag=
72package_makefile_rules_frag=
73prefix=/usr/local
74progname=
75program_prefix=
76program_prefixoption=
77program_suffix=
78program_suffixoption=
79program_transform_name=
80program_transform_nameoption=
81redirect=
82removing=
83site=
84site_makefile_frag=
85site_option=
86srcdir=
87srctrigger=
88subdirs=
89target_alias=NOTARGET
90target_makefile_frag=
91undefs=NOUNDEFS
92version="$Revision: 1.1.1.5 $"
93x11=default
94bindir='${exec_prefix}/bin'
95sbindir='${exec_prefix}/sbin'
96libexecdir='${exec_prefix}/libexec'
97datadir='${prefix}/share'
98sysconfdir='${prefix}/etc'
99sharedstatedir='${prefix}/com'
100localstatedir='${prefix}/var'
101libdir='${exec_prefix}/lib'
102includedir='${prefix}/include'
103oldincludedir='/usr/include'
104infodir='${prefix}/info'
105mandir='${prefix}/man'
106
107### we might need to use some other shell than /bin/sh for running subshells
108
109### If we are on Windows, search for the shell.  This will permit people
110### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
111### without also having to set CONFIG_SHELL.  This code will work when
112### using bash, which sets OSTYPE.
113case "${OSTYPE}" in
114*win32*)
115  if [ x${CONFIG_SHELL} = x ]; then
116    if [ ! -f /bin/sh ]; then
117      if [ x${SHELL} != x ] && [ -f ${SHELL} ]; then
118        CONFIG_SHELL=${SHELL}
119        export CONFIG_SHELL
120      else
121        for prog in sh sh.exe bash bash.exe; do
122          IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
123          for dir in $PATH; do
124            test -z "$dir" && dir=.
125            if test -f $dir/$prog; then
126              CONFIG_SHELL=$dir/$prog
127              export CONFIG_SHELL
128              break
129            fi
130          done
131          IFS="$save_ifs"
132          test -n "${CONFIG_SHELL}" && break
133        done
134      fi
135    fi
136  fi
137  ;;
138esac
139
140config_shell=${CONFIG_SHELL-/bin/sh}
141
142NO_EDIT="This file was generated automatically by configure.  Do not edit."
143
144## this is a little touchy and won't always work, but...
145##
146## if the argv[0] starts with a slash then it is an absolute name that can (and
147## must) be used as is.
148##
149## otherwise, if argv[0] has no slash in it, we can assume that it is on the
150## path.  Since PATH might include "." we also add `pwd` to the end of PATH.
151##
152
153progname=$0
154# if PWD already has a value, it is probably wrong.
155if [ -n "$PWD" ]; then PWD=`pwd`; fi
156
157case "${progname}" in
158/* | [A-Za-z]:[\\/]* ) ;;
159*/*) ;;
160*)
161        PATH=$PATH:${PWD=`pwd`} ; export PATH
162        ;;
163esac
164
165# Export original configure arguments for use by sub-configures.
166TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
167export TOPLEVEL_CONFIGURE_ARGUMENTS
168
169# Loop over all args
170
171while :
172do
173
174# Break out if there are no more args
175        case $# in
176        0)
177                break
178                ;;
179        esac
180
181# Get the first arg, and shuffle
182        option=$1
183        shift
184
185# Make all options have two hyphens
186        orig_option=$option     # Save original for error messages
187        case $option in
188        --*) ;;
189        -*) option=-$option ;;
190        esac
191               
192# Split out the argument for options that take them
193        case $option in
194        --*=*)
195                optarg=`echo $option | sed -e 's/^[^=]*=//'`
196                arguments="$arguments $option"
197                ;;
198# These options have mandatory values.  Since we didn't find an = sign,
199# the value must be in the next argument
200        --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*)
201                optarg=$1
202                shift
203                arguments="$arguments $option=$optarg"
204                ;;
205        --v)
206                arguments="$arguments -v"
207                ;;
208        --*)
209                arguments="$arguments $option"
210                ;;
211        esac
212
213# Now, process the options
214        case $option in
215
216        --bi*)
217                bindir=$optarg
218                diroptions="$diroptions --bindir=$optarg"
219                ;;
220        --build* | --bu*)
221                case "$build_alias" in
222                "") build_alias=$optarg ;;
223                *) echo '***' Can only configure for one build machine at a time.  1>&2
224                   fatal=yes
225                   ;;
226                esac
227                ;;
228        --cache*)
229                cache_file=$optarg
230                ;;
231        --da*)
232                datadir=$optarg
233                diroptions="$diroptions --datadir=$optarg"
234                ;;
235        --disable-*)
236                enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'`
237                eval $enableopt=no
238                disableoptions="$disableoptions $option"
239                ;;
240        --enable-*)
241                case "$option" in
242                *=*)    ;;
243                *)      optarg=yes ;;
244                esac
245
246                enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
247                eval "$enableopt=\$optarg"
248                enableoptions="$enableoptions '$option'"
249                ;;
250        --exec-prefix* | --ex*)
251                exec_prefix=$optarg
252                exec_prefixoption="--exec-prefix=$optarg"
253                ;;
254        --gas | --g*)
255                gas=yes
256                ;;
257        --help | --he*)
258                fatal=yes
259                ;;
260        --host* | --ho*)
261                case $host_alias in
262                NOHOST) host_alias=$optarg ;;
263                *) echo '***' Can only configure for one host at a time.  1>&2
264                   fatal=yes
265                   ;;
266                esac
267                ;;
268        --inc*)
269                includedir=$optarg
270                diroptions="$diroptions --includedir=$optarg"
271                ;;
272        --inf*)
273                infodir=$optarg
274                diroptions="$diroptions --infodir=$optarg"
275                ;;
276        --libd*)
277                libdir=$optarg
278                diroptions="$diroptions --libdir=$optarg"
279                ;;
280        --libe*)
281                libexecdir=$optarg
282                diroptions="$diroptions --libexecdir=$optarg"
283                ;;
284        --lo*)
285                localstatedir=$optarg
286                diroptions="$diroptions --localstatedir=$optarg"
287                ;;
288        --ma*)
289                mandir=$optarg
290                diroptions="$diroptions --mandir=$optarg"
291                ;;
292        --nfp | --nf*)
293                floating_point=no
294                floating_pointoption="--nfp"
295                ;;
296        --norecursion | --no*)
297                norecursion=yes
298                ;;
299        --ol*)
300                oldincludedir=$optarg
301                diroptions="$diroptions --oldincludedir=$optarg"
302                ;;
303        --prefix* | --pre*)
304                prefix=$optarg
305                prefixoption="--prefix=$optarg"
306                ;;
307        --program-prefix* | --program-p*)
308                program_prefix=$optarg
309                program_prefixoption="--program-prefix=$optarg"
310                ;;
311        --program-suffix* | --program-s*)
312                program_suffix=$optarg
313                program_suffixoption="--program-suffix=$optarg"
314                ;;
315        --program-transform-name* | --program-t*)
316                # Double any backslashes or dollar signs in the argument
317                program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`"
318                program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'"
319                ;;
320        --rm)
321                removing=--rm
322                ;;
323        --sb*)
324                sbindir=$optarg
325                diroptions="$diroptions --sbindir=$optarg"
326                ;;
327        --sh*)
328                sharedstatedir=$optarg
329                diroptions="$diroptions --sharedstatedir=$optarg"
330                ;;
331        --silent | --sil* | --quiet | --q*)
332                redirect=">/dev/null"
333                verbose=--silent
334                ;;
335        --site* | --sit*)
336                site=$optarg
337                site_option="--site=$optarg"
338                ;;
339        --srcdir*/ | --sr*/)
340                # Remove trailing slashes.  Otherwise, when the file name gets
341                # bolted into an object file as debug info, it has two slashes
342                # in it.  Ordinarily this is ok, but emacs takes double slash
343                # to mean "forget the first part".
344                srcdir=`echo $optarg | sed -e 's:/$::'`
345                ;;
346        --srcdir* | --sr*)
347                srcdir=$optarg
348                ;;
349        --sy*)
350                sysconfdir=$optarg
351                diroptions="$diroptions --sysconfdir=$optarg"
352                ;;
353        --target* | --ta*)
354                case $target_alias in
355                NOTARGET) target_alias=$optarg ;;
356                *) echo '***' Can only configure for one target at a time.  1>&2
357                   fatal=yes
358                   ;;
359                esac
360                ;;
361        --tmpdir* | --tm*)
362                TMPDIR=$optarg
363                tmpdiroption="--tmpdir=$optarg"
364                ;;
365        --verbose | --v | --verb*)
366                redirect=
367                verbose=--verbose
368                ;;
369        --version | --V | --vers*)
370                echo "This is Cygnus Configure version" `echo ${version} | sed 's/[ $:]//g'`
371                exit 0
372                ;;
373        --with-*)
374                case "$option" in
375                *=*)    ;;
376                *)      optarg=yes ;;
377                esac
378
379                withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
380                eval $withopt="\$optarg"
381                withoptions="$withoptions $option"
382                ;;
383        --without-*)
384                withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'`
385                eval $withopt=no
386                withoutoptions="$withoutoptions $option"
387                ;;
388        --x)    with_x=yes
389                withoptions="$withoptions --with-x"
390                ;;
391        --x-i* | --x-l*) other_options="$other_options $orig_option"
392                ;;
393        --*)
394                echo "configure: Unrecognized option: \"$orig_option\"; use --help for usage." >&2
395                exit 1
396                ;;
397        *)
398                case $undefs in
399                NOUNDEFS) undefs=$option ;;
400                *) echo '***' Can only configure for one host and one target at a time.  1>&2
401                   fatal=yes
402                   ;;
403                esac
404                ;;
405        esac
406done
407
408# process host and target
409
410# Do some error checking and defaulting for the host and target type.
411# The inputs are:
412#    configure --host=HOST --target=TARGET UNDEFS
413#
414# The rules are:
415# 1. You aren't allowed to specify --host, --target, and undefs at the
416#    same time.
417# 2. Host defaults to undefs.
418# 3. If undefs is not specified, then host defaults to the current host,
419#    as determined by config.guess.
420# 4. Target defaults to undefs.
421# 5. If undefs is not specified, then target defaults to host.
422
423case "${fatal}" in
424"")
425        # Make sure that host, target & undefs aren't all specified at the
426        # same time.
427        case $host_alias---$target_alias---$undefs in
428        NOHOST---*---* | *---NOTARGET---* | *---*---NOUNDEFS)
429                ;;
430        *) echo '***' Can only configure for one host and one target at a time.  1>&2
431           fatal=yes
432           break 2
433                ;;
434        esac
435
436        # Now, do defaulting for host.
437        case $host_alias in
438        NOHOST)
439                case $undefs in
440                NOUNDEFS)
441                        # Neither --host option nor undefs were present.
442                        # Call config.guess.
443                        guesssys=`echo ${progname} | sed 's/configure$/config.guess/'`
444                        if host_alias=`${config_shell} ${guesssys}`
445                        then
446                                # If the string we are going to use for
447                                # the target is a prefix of the string
448                                # we just guessed for the host, then
449                                # assume we are running native, and force
450                                # the same string for both target and host.
451                                case $target_alias in
452                                NOTARGET) ;;
453                                *)
454                                        if expr $host_alias : $target_alias >/dev/null
455                                        then
456                                                host_alias=$target_alias
457                                        fi
458                                        ;;
459                                esac
460                                echo "Configuring for a ${host_alias} host."
461                                arguments="--host=$host_alias $arguments"
462                        else
463                                echo 'Config.guess failed to determine the host type.  You need to specify one.' 1>&2
464                                fatal=yes
465                        fi
466                        ;;
467                *)
468                        host_alias=$undefs
469                        arguments="--host=$host_alias $arguments"
470                        undefs=NOUNDEFS
471                        ;;
472                esac
473        esac
474
475        # Do defaulting for target.  If --target option isn't present, default
476        # to undefs.  If undefs isn't present, default to host.
477        case $target_alias in
478        NOTARGET)
479                case $undefs in
480                NOUNDEFS)
481                        target_alias=$host_alias
482                        ;;
483                *)
484                        target_alias=$undefs
485                        arguments="--target=$target_alias $arguments"
486                        ;;
487                esac
488        esac
489        ;;
490*) ;;
491esac
492
493if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then
494        exec 1>&2
495        echo Usage: configure [OPTIONS] [HOST]
496        echo
497        echo Options: [defaults in brackets]
498        echo ' --prefix=MYDIR            install into MYDIR [/usr/local]'
499        echo ' --exec-prefix=MYDIR       install host-dependent files into MYDIR [/usr/local]'
500        echo ' --help                    print this message [normal config]'
501        echo ' --build=BUILD             configure for building on BUILD [BUILD=HOST]'
502        echo ' --host=HOST               configure for HOST [determined via config.guess]'
503        echo ' --norecursion             configure this directory only [recurse]'
504        echo ' --program-prefix=FOO      prepend FOO to installed program names [""]'
505        echo ' --program-suffix=FOO      append FOO to installed program names [""]'
506        echo ' --program-transform-name=P transform installed names by sed pattern P [""]'
507        echo ' --site=SITE               configure with site-specific makefile for SITE'
508        echo ' --srcdir=DIR              find the sources in DIR [. or ..]'
509        echo ' --target=TARGET   configure for TARGET [TARGET=HOST]'
510        echo ' --tmpdir=TMPDIR   create temporary files in TMPDIR [/tmp]'
511        echo ' --nfp                     configure for software floating point [hard float]'
512        echo ' --with-FOO, --with-FOO=BAR package FOO is available (parameter BAR)'
513        echo ' --without-FOO             package FOO is NOT available'
514        echo ' --enable-FOO, --enable-FOO=BAR include feature FOO (parameter BAR)'
515        echo ' --disable-FOO             do not include feature FOO'
516        echo
517        echo 'Where HOST and TARGET are something like "sparc-sunos", "mips-sgi-irix5", etc.'
518        echo
519        if [ -r config.status ] ; then
520                cat config.status
521        fi
522
523        exit 1
524fi
525
526configsub=`echo ${progname} | sed 's/configure$/config.sub/'`
527moveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'`
528## the sed command below emulates the dirname command
529topsrcdir=`cd \`echo ${progname} | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'\`; pwd`
530
531
532# this is a hack.  sun4 must always be a valid host alias or this will fail.
533if ${config_shell} ${configsub} sun4 >/dev/null 2>&1 ; then
534        true
535else
536        echo '***' cannot find config.sub.  1>&2
537        exit 1
538fi
539
540touch config.junk
541if ${config_shell} ${moveifchange} config.junk config.trash ; then
542        true
543else
544        echo '***' cannot find move-if-change.  1>&2
545        exit 1
546fi
547rm -f config.junk config.trash
548
549case "${srcdir}" in
550"")
551        if [ -r configure.in ] ; then
552                srcdir=.
553        else
554                if [ -r ${progname}.in ] ; then
555                        srcdir=`echo ${progname} | sed 's:/configure$::'`
556                else
557                        echo '***' "Can't find configure.in.  Try using --srcdir=some_dir"  1>&2
558                        exit 1
559                fi
560        fi
561        ;;
562*)
563        # Set srcdir to "." if that's what it is.
564        # This is important for multilib support.
565        if [ ! -d ${srcdir} ] ; then
566                echo "Invalid source directory ${srcdir}" >&2
567                exit 1
568        fi
569        pwd=`pwd`
570        srcpwd=`cd ${srcdir} ; pwd`
571        if [ "${pwd}" = "${srcpwd}" ] ; then
572                srcdir=.
573        fi
574esac
575
576### warn about some conflicting configurations.
577
578case "${srcdir}" in
579".") ;;
580*)
581        if [ -f ${srcdir}/config.status ] ; then
582                echo '***' Cannot configure here in \"${PWD=`pwd`}\" when \"${srcdir}\" is currently configured. 1>&2
583                exit 1
584        fi
585esac
586
587# default exec_prefix
588case "${exec_prefixoption}" in
589"") exec_prefix="\$(prefix)" ;;
590*) ;;
591esac
592
593# Define the trigger file to make sure configure will re-run whenever
594# the gcc version number changes.
595if [ "${with_gcc_version_trigger+set}" = set ]; then
596    gcc_version_trigger="$with_gcc_version_trigger"
597    gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
598else
599    # If gcc's sources are available, define the trigger file.
600    if [ -f ${topsrcdir}/gcc/version.c ] ; then
601        gcc_version_trigger=${topsrcdir}/gcc/version.c
602        gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
603        case "$arguments" in
604          *--with-gcc-version-trigger=$gcc_version_trigger* )
605            ;;
606          * )
607            # Make sure configure.in knows about this.
608            arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments"
609            ;;
610        esac
611        withoptions="--with-gcc-version-trigger=$gcc_version_trigger $withoptions"
612    fi
613fi
614
615### break up ${srcdir}/configure.in.
616case "`grep '^# per\-host:' ${srcdir}/configure.in`" in
617"")
618        echo '***' ${srcdir}/configure.in has no \"per-host:\" line. 1>&2
619        # Check for a directory that's been converted to use autoconf since
620        # it was last configured.
621        if grep AC_OUTPUT ${srcdir}/configure.in >/dev/null ; then
622          echo '***' Hmm, looks like this directory has been autoconfiscated. 1>&2
623          if [ -r ${srcdir}/configure ] ; then
624            echo '***' Running the local configure script. 1>&2
625            case "${cache_file}" in
626            "") cache_file_option= ;;
627            *)  cache_file_option="--cache-file=${cache_file}" ;;
628            esac
629            srcdiroption="--srcdir=${srcdir}"
630            case "${build_alias}" in
631            "") buildopt= ;;
632            *)  buildopt="--build=${build_alias}" ;;
633            esac
634            eval exec ${config_shell} ${srcdir}/configure ${verbose} \
635                ${buildopt} --host=${host_alias} --target=${target_alias} \
636                ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
637                ${srcdiroption} ${diroptions} \
638                ${program_prefixoption} ${program_suffixoption} \
639                ${program_transform_nameoption} ${site_option} \
640                ${withoptions} ${withoutoptions} \
641                ${enableoptions} ${disableoptions} ${floating_pointoption} \
642                ${cache_file_option} ${removing} ${other_options} ${redirect}
643          else
644            echo '***' There is no configure script present though. 1>&2
645          fi
646        fi
647        exit 1
648        ;;
649*) ;;
650esac
651
652case "`grep '^# per\-target:' ${srcdir}/configure.in`" in
653"")
654        echo '***' ${srcdir}/configure.in has no \"per-target:\" line. 1>&2
655        exit 1
656        ;;
657*) ;;
658esac
659
660case "${TMPDIR}" in
661"") TMPDIR=/tmp ; export TMPDIR ;;
662*) ;;
663esac
664
665# keep this filename short for &%*%$*# 14 char file names and 8+3 file names
666tmpdir=${TMPDIR}/cNf$$
667mkdir ${tmpdir} || exit 1
668tmpfile=${tmpdir}/cNf$$
669# Note that under many versions of sh a trap handler for 0 will *override* any
670# exit status you explicitly specify!  At this point, the only non-error exit
671# is at the end of the script; these actions are duplicated there, minus
672# the "exit 1".  Don't use "exit 0" anywhere after this without resetting the
673# trap handler, or you'll lose.
674trap "rm -rf Makefile.tem ${tmpdir}; exit 1" 0 1 2 15
675
676# split ${srcdir}/configure.in into common, per-host, per-target,
677# and post-target parts.  Post-target is optional.
678sed -e '/^# per\-host:/,$d' ${srcdir}/configure.in > ${tmpfile}.com
679sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.hst
680if grep '^# post-target:' ${srcdir}/configure.in >/dev/null ; then
681  sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.tgt
682  sed -e '1,/^# post\-target:/d' ${srcdir}/configure.in > ${tmpfile}.pos
683else
684  sed -e '1,/^# per\-target:/d' ${srcdir}/configure.in > ${tmpfile}.tgt
685  echo >${tmpfile}.pos
686fi
687
688### do common part of configure.in
689
690# If the language specific compiler does not exist, but the "gcc" directory does,
691# we will skip this directory; in this case the sub-directory's common part
692# of configure.in will create a small shell script "skip-this-dir" containing
693# commands to completely clean up any temporary or created files.
694
695. ${tmpfile}.com
696
697if test -f skip-this-dir; then
698        # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
699        # and reset the trap handler.
700        trap 0
701        rm -rf Makefile* ${tmpdir}
702        # Execute the final clean-up actions
703        ${config_shell} skip-this-dir
704        # and stop configuring this directory.
705        exit 0
706fi
707
708# some sanity checks on configure.in
709case "${srctrigger}" in
710"")
711        echo '***' srctrigger not set in ${PWD=`pwd`}/configure.in.  1>&2
712        exit 1
713        ;;
714*) ;;
715esac
716
717case "${build_alias}" in
718"")
719        if result=`${config_shell} ${configsub} ${host_alias}` ; then
720            build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
721            build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
722            build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
723            build=${build_cpu}-${build_vendor}-${build_os}
724            build_alias=${host_alias}
725        fi
726        ;;
727*)
728        if result=`${config_shell} ${configsub} ${build_alias}` ; then
729            buildopt="--build=${build_alias}"
730            build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
731            build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
732            build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
733            build=${build_cpu}-${build_vendor}-${build_os}
734        else
735            echo "Unrecognized build system name ${build_alias}." 1>&2
736            exit 1
737        fi
738        ;;
739esac
740
741if result=`${config_shell} ${configsub} ${host_alias}` ; then
742    true
743else
744    echo "Unrecognized host system name ${host_alias}." 1>&2
745    exit 1
746fi
747host_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
748host_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
749host_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
750host=${host_cpu}-${host_vendor}-${host_os}
751
752. ${tmpfile}.hst
753
754if result=`${config_shell} ${configsub} ${target_alias}` ; then
755    true
756else
757    echo "Unrecognized target system name ${target_alias}." 1>&2
758    exit 1
759fi
760target_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
761target_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
762target_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
763target=${target_cpu}-${target_vendor}-${target_os}
764
765. ${tmpfile}.tgt
766
767# Find the source files, if location was not specified.
768case "${srcdir}" in
769"")
770        srcdirdefaulted=1
771        srcdir=.
772        if [ ! -r ${srctrigger} ] ; then
773                srcdir=..
774        fi
775        ;;
776*) ;;
777esac
778
779if [ ! -r ${srcdir}/${srctrigger} ] ; then
780        case "${srcdirdefaulted}" in
781        "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/${srcdir}" 1>&2 ;;
782        *)  echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/. or ${PWD=`pwd`}/.." 1>&2 ;;
783        esac
784
785        echo '***' \(At least ${srctrigger} is missing.\) 1>&2
786        exit 1
787fi
788
789# Some systems (e.g., one of the i386-aix systems the gas testers are
790# using) don't handle "\$" correctly, so don't use it here.
791tooldir='$(exec_prefix)'/${target_alias}
792
793if [ "${host_alias}" != "${target_alias}" ] ; then
794    if [ "${program_prefixoption}" = "" ] ; then
795        if [ "${program_suffixoption}" = "" ] ; then
796            if [ "${program_transform_nameoption}" = "" ] ; then
797                program_prefix=${target_alias}- ;
798            fi
799        fi
800    fi
801fi
802
803# Merge program_prefix and program_suffix onto program_transform_name.
804# (program_suffix used to use $, but it's hard to preserve $ through both
805# make and sh.)
806if [ "${program_suffix}" != "" ] ; then
807    program_transform_name="-e s,\\\\(.*\\\\),\\\\1${program_suffix}, ${program_transform_name}"
808fi
809
810if [ "${program_prefix}" != "" ] ; then
811    program_transform_name="-e s,^,${program_prefix}, ${program_transform_name}"
812fi
813
814# If CC and CXX are not set in the environment, and the Makefile
815# exists, try to extract them from it.  This is to handle running
816# ./config.status by hand.
817if [ -z "${CC}" ] && [ -r Makefile ]; then
818  sed -n -e ':loop
819/\\$/ N
820s/\\\n//g
821t loop
822/^CC[   ]*=/ s/CC[      ]*=[    ]*\(.*\)/\1/p' < Makefile > Makefile.cc
823  CC=`tail -1 Makefile.cc`
824  rm -f Makefile.cc
825fi
826
827if [ -z "${CFLAGS}" ] && [ -r Makefile ]; then
828  sed -n -e ':loop
829/\\$/ N
830s/\\\n//g
831t loop
832/^CFLAGS[       ]*=/ s/CFLAGS[  ]*=[    ]*\(.*\)/\1/p' < Makefile > Makefile.cc
833  CFLAGS=`tail -1 Makefile.cc`
834  rm -f Makefile.cc
835fi
836
837if [ -z "${CXX}" ] && [ -r Makefile ]; then
838  sed -n -e ':loop
839/\\$/ N
840s/\\\n//g
841t loop
842/^CXX[  ]*=/ s/CXX[     ]*=[    ]*\(.*\)/\1/p' < Makefile > Makefile.cc
843  CXX=`tail -1 Makefile.cc`
844  rm -f Makefile.cc
845fi
846
847if [ -z "${CXXFLAGS}" ] && [ -r Makefile ]; then
848  sed -n -e ':loop
849/\\$/ N
850s/\\\n//g
851t loop
852/^CXXFLAGS[     ]*=/ s/CXXFLAGS[        ]*=[    ]*\(.*\)/\1/p' < Makefile > Makefile.cc
853  CXXFLAGS=`tail -1 Makefile.cc`
854  rm -f Makefile.cc
855fi
856
857# Generate a default definition for YACC.  This is used if the makefile can't
858# locate bison or byacc in objdir.
859
860for prog in 'bison -y' byacc yacc
861do
862  set dummy $prog; tmp=$2
863  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
864  for dir in $PATH; do
865    test -z "$dir" && dir=.
866    if test -f $dir/$tmp; then
867      DEFAULT_YACC="$prog"
868      break
869    fi
870  done
871  IFS="$save_ifs"
872
873  test -n "$DEFAULT_YACC" && break
874done
875
876# Generate a default definition for M4.  This is used if the makefile can't
877# locate m4 in objdir.
878
879for prog in gm4 gnum4 m4
880do
881  set dummy $prog; tmp=$2
882  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
883  for dir in $PATH; do
884    test -z "$dir" && dir=.
885    if test -f $dir/$tmp; then
886      DEFAULT_M4="$prog"
887      break
888    fi
889  done
890  IFS="$save_ifs"
891
892  test -n "$DEFAULT_M4" && break
893done
894
895# Generate a default definition for LEX.  This is used if the makefile can't
896# locate flex in objdir.
897
898for prog in flex lex
899do
900  set dummy $prog; tmp=$2
901  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
902  for dir in $PATH; do
903    test -z "$dir" && dir=.
904    if test -f $dir/$tmp; then
905      DEFAULT_LEX="$prog"
906      break
907    fi
908  done
909  IFS="$save_ifs"
910
911  test -n "$DEFAULT_LEX" && break
912done
913
914if [ "${build}" != "${host}" ]; then
915  # If we are doing a Canadian Cross, in which the host and build systems
916  # are not the same, we set reasonable default values for the tools.
917
918  tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD"
919  tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET GCJ_FOR_TARGET"
920  tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET HOST_PREFIX"
921  tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM"
922  tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET"
923  tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
924  tools="${tools} OBJCOPY OBJDUMP"
925
926  for var in ${tools}; do
927    if eval [ -z \"\$${var}\" ] && [ -r Makefile ]; then
928      sed -n -e ':loop
929/\\$/ N
930s/\\\n//g
931t loop
932/^'"${var}"'[   ]*=/ s/'"${var}"'[      ]*=[    ]*\(.*\)/\1/p' \
933        < Makefile > Makefile.v
934      t=`tail -1 Makefile.v`
935      if [ -n "${t}" ]; then
936        eval "${var}=\${t}"
937      fi
938      rm -f Makefile.v
939    fi
940  done
941
942  AR=${AR-${host_alias}-ar}
943  AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar}
944  AS=${AS-${host_alias}-as}
945  AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
946  BISON=${BISON-bison}
947  CC=${CC-${host_alias}-gcc}
948  CFLAGS=${CFLAGS-"-g -O2"}
949  CXX=${CXX-${host_alias}-c++}
950  CXXFLAGS=${CXXFLAGS-"-g -O2"}
951  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
952  CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
953  CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
954  GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
955  DLLTOOL=${DLLTOOL-${host_alias}-dlltool}
956  DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool}
957  GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
958  HOST_PREFIX=${build_alias}-
959  HOST_PREFIX_1=${build_alias}-
960  LD=${LD-${host_alias}-ld}
961  LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld}
962  MAKEINFO=${MAKEINFO-makeinfo}
963  NM=${NM-${host_alias}-nm}
964  NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm}
965  RANLIB=${RANLIB-${host_alias}-ranlib}
966  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib}
967  WINDRES=${WINDRES-${host_alias}-windres}
968  WINDRES_FOR_TARGET=${WINDRES_FOR_TARGET-${target_alias}-windres}
969  OBJCOPY=${OBJCOPY-${host_alias}-objcopy}
970  OBJDUMP=${OBJDUMP-${host_alias}-objdump}
971
972  if [ -z "${YACC}" ]; then
973    IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}:"
974    for dir in $PATH; do
975      test -z "$dir" && dir=.
976      if test -f $dir/bison; then
977        YACC="bison -y"
978        break
979      fi
980      if test -f $dir/byacc; then
981        YACC=byacc
982        break
983      fi
984      if test -f $dir/yacc; then
985        YACC=yacc
986        break
987      fi
988    done
989    IFS="$save_ifs"
990    if [ -z "${YACC}" ]; then
991      YACC="bison -y"
992    fi
993  fi
994
995  if [ -z "${LEX}" ]; then
996    IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}:"
997    for dir in $PATH; do
998      test -z "$dir" && dir=.
999      if test -f $dir/flex; then
1000        LEX=flex
1001        break
1002      fi
1003      if test -f $dir/lex; then
1004        LEX=lex
1005        break
1006      fi
1007    done
1008    IFS="$save_ifs"
1009    LEX=${LEX-flex}
1010  fi
1011
1012  # Export variables which autoconf might try to set.
1013  export AS
1014  export AR
1015  export CC_FOR_BUILD
1016  export DLLTOOL
1017  export LD
1018  export NM
1019  export RANLIB
1020  export WINDRES
1021  export OBJCOPY
1022  export OBJDUMP
1023else
1024  # If CC is still not set, try to get gcc.
1025  if [ -z "${CC}" ]; then
1026    IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}:"
1027    for dir in $PATH; do
1028      test -z "$dir" && dir=.
1029      if test -f $dir/gcc; then
1030        CC="gcc"
1031        echo 'void f(){}' > conftest.c
1032        if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1033          CFLAGS=${CFLAGS-"-g -O2"}
1034          CXXFLAGS=${CXXFLAGS-"-g -O2"}
1035        else
1036          CFLAGS=${CFLAGS-"-O2"}
1037          CXXFLAGS=${CXXFLAGS-"-O2"}
1038        fi
1039        rm -f conftest*
1040        break
1041      fi
1042    done
1043    IFS="$save_ifs"
1044    CC=${CC-cc}
1045  else
1046    if test -z "${CFLAGS}"; then
1047      # Here CC is set but CFLAGS is not.  Use a quick hack to use -O2 if CC
1048      # is set to a version of gcc.
1049      case "${CC}" in
1050      *gcc)
1051        echo 'void f(){}' > conftest.c
1052        if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1053          CFLAGS=${CFLAGS-"-g -O2"}
1054          CXXFLAGS=${CXXFLAGS-"-g -O2"}
1055        else
1056          CFLAGS=${CFLAGS-"-O2"}
1057          CXXFLAGS=${CXXFLAGS-"-O2"}
1058        fi
1059        rm -f conftest*
1060        ;;
1061      esac
1062    fi
1063  fi
1064
1065  CXX=${CXX-"c++"}
1066  CFLAGS=${CFLAGS-"-g"}
1067  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1068fi
1069
1070export CC
1071export CXX
1072export CFLAGS
1073export CXXFLAGS
1074
1075# FIXME: This should be in configure.in, not configure
1076case "$host" in
1077        *go32*)
1078            enable_gdbtk=no ;;
1079        *msdosdjgpp*)
1080            enable_gdbtk=no ;;
1081esac
1082
1083# FIXME: This should be in configure.in, not configure
1084# Determine whether gdb needs tk/tcl or not.
1085if [ "$enable_gdbtk" != "no" ]; then
1086        GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui"
1087else
1088        GDB_TK=""
1089fi
1090
1091all_build_modules=
1092if test x"${build_alias}" != x"${host_alias}"
1093then
1094  all_build_modules='$(ALL_BUILD_MODULES_LIST)'
1095fi
1096
1097for subdir in . ${subdirs} ; do
1098
1099    # ${subdir} is relative path from . to the directory we're currently
1100    # configuring.
1101    # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
1102    invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
1103
1104    ### figure out what to do with srcdir
1105    case "${srcdir}" in
1106        ".")  # no -srcdir option.  We're building in place.
1107                makesrcdir=. ;;
1108        /* | [A-Za-z]:[\\/]* ) # absolute path
1109                makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
1110                ;;
1111        *) # otherwise relative
1112                case "${subdir}" in
1113                .) makesrcdir=${srcdir} ;;
1114                *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;;
1115                esac
1116                ;;
1117    esac
1118
1119    if [ "${subdir}/" != "./" ] ; then
1120        Makefile=${subdir}/Makefile
1121    fi
1122
1123    if [ ! -d ${subdir} ] ; then
1124        if mkdir ${subdir} ; then
1125                true
1126        else
1127                echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2
1128                exit 1
1129        fi
1130    fi
1131
1132    case "${removing}" in
1133    "")
1134        case "${subdir}" in
1135        .) ;;
1136        *) eval echo Building in ${subdir} ${redirect} ;;
1137        esac
1138
1139        # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1140        # Set up the list of links to be made.
1141        # ${links} is the list of link names, and ${files} is the list of names to link to.
1142
1143        # Make the links.
1144        configlinks="${links}"
1145        if [ -r ${subdir}/config.status ] ; then
1146                mv -f ${subdir}/config.status ${subdir}/config.back
1147        fi
1148        while [ -n "${files}" ] ; do
1149                # set file to car of files, files to cdr of files
1150                set ${files}; file=$1; shift; files=$*
1151                set ${links}; link=$1; shift; links=$*
1152
1153                if [ ! -r ${srcdir}/${file} ] ; then
1154                  if [ ! -r ${file} ] ; then
1155                   
1156                        echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1157                        echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1158                        exit 1
1159                  else
1160                        srcfile=${file}
1161                  fi
1162                else
1163                        srcfile=${srcdir}/${file}
1164                fi
1165
1166                ${remove} -f ${link}
1167                # Make a symlink if possible, otherwise try a hard link
1168                if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1169                        true
1170                else
1171                        # We need to re-remove the file because Lynx leaves a
1172                        # very strange directory there when it fails an NFS symlink.
1173                        ${remove} -r -f ${link}
1174                        ${hard_link} ${srcfile} ${link}
1175                fi
1176                if [ ! -r ${link} ] ; then
1177                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1178                        exit 1
1179                fi
1180
1181                echo "Linked \"${link}\" to \"${srcfile}\"."
1182        done
1183
1184        # Create a .gdbinit file which runs the one in srcdir
1185        # and tells GDB to look there for source files.
1186
1187        if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
1188                case ${srcdir} in
1189                .) ;;
1190                *) cat > ${subdir}/.gdbinit <<EOF
1191# ${NO_EDIT}
1192dir ${makesrcdir}
1193dir .
1194source ${makesrcdir}/.gdbinit
1195EOF
1196                        ;;
1197                esac
1198        fi
1199
1200        # Install a makefile, and make it set VPATH
1201        # if necessary so that the sources are found.
1202        # Also change its value of srcdir.
1203        # NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
1204        # been somewhat optimized and is perhaps a bit twisty.
1205
1206        # code is order so as to try to sed the smallest input files we know.
1207        # so do these separately because I don't trust the order of sed -e expressions.
1208
1209        # the five makefile fragments MUST end up in the resulting Makefile in this order:
1210        # package macros, target, host, site, and package rules.
1211
1212        if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
1213
1214            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
1215            rm -f ${subdir}/${Makefile}.tem
1216            case "${package_makefile_rules_frag}" in
1217              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
1218              *)
1219                      if [ ! -f ${package_makefile_rules_frag} ] ; then
1220                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
1221                      fi
1222                      if [ -f ${package_makefile_rules_frag} ] ; then
1223                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
1224                      else
1225                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
1226                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1227                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
1228                      fi
1229            esac
1230            # working copy now in ${Makefile}.tem
1231
1232            # Conditionalize for this site.
1233            rm -f ${Makefile}
1234              case "${site}" in
1235              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1236              *)
1237                      site_makefile_frag=${srcdir}/config/ms-${site}
1238
1239                      if [ -f ${site_makefile_frag} ] ; then
1240                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
1241                                      > ${Makefile}
1242                      else
1243                              mv ${subdir}/Makefile.tem ${Makefile}
1244                              site_makefile_frag=
1245                      fi
1246                      ;;
1247            esac
1248            # working copy now in ${Makefile}
1249
1250            # Conditionalize the makefile for this host.
1251            rm -f ${subdir}/Makefile.tem
1252            case "${host_makefile_frag}" in
1253              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1254              *)
1255                      if [ ! -f ${host_makefile_frag} ] ; then
1256                              host_makefile_frag=${srcdir}/${host_makefile_frag}
1257                      fi
1258                      if [ -f ${host_makefile_frag} ] ; then
1259                              sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1260                      else
1261                              echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
1262                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1263                              mv ${Makefile} ${subdir}/Makefile.tem
1264                      fi
1265            esac
1266            # working copy now in ${subdir)/Makefile.tem
1267
1268            # Conditionalize the makefile for this target.
1269            rm -f ${Makefile}
1270            case "${target_makefile_frag}" in
1271              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1272              *)
1273                      if [ ! -f ${target_makefile_frag} ] ; then
1274                              target_makefile_frag=${srcdir}/${target_makefile_frag}
1275                      fi
1276                      if [ -f ${target_makefile_frag} ] ; then
1277                              sed -e "/^####/  r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
1278                      else
1279                              mv ${subdir}/Makefile.tem ${Makefile}
1280                              target_makefile_frag=
1281                      fi
1282                      ;;
1283            esac
1284            # working copy now in ${Makefile}
1285
1286            # Emit the default values of this package's macros.
1287            rm -f ${subdir}/Makefile.tem
1288            case "${package_makefile_frag}" in
1289              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1290              *)
1291                      if [ ! -f ${package_makefile_frag} ] ; then
1292                              package_makefile_frag=${srcdir}/${package_makefile_frag}
1293                      fi
1294                      if [ -f ${package_makefile_frag} ] ; then
1295                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1296                      else
1297                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
1298                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1299                              mv ${Makefile} ${subdir}/Makefile.tem
1300                      fi
1301            esac
1302            # real copy now in ${subdir}/Makefile.tem
1303
1304            # prepend warning about editing, and a bunch of variables.
1305            rm -f ${Makefile}
1306            cat > ${Makefile} <<EOF
1307# ${NO_EDIT}
1308VPATH = ${makesrcdir}
1309links = ${configlinks}
1310host_alias = ${host_alias}
1311host_cpu = ${host_cpu}
1312host_vendor = ${host_vendor}
1313host_os = ${host_os}
1314host_canonical = ${host_cpu}-${host_vendor}-${host_os}
1315target_alias = ${target_alias}
1316target_cpu = ${target_cpu}
1317target_vendor = ${target_vendor}
1318target_os = ${target_os}
1319target_canonical = ${target_cpu}-${target_vendor}-${target_os}
1320EOF
1321            case "${build}" in
1322              "") ;;
1323              *)  cat >> ${Makefile} << EOF
1324build_alias = ${build_alias}
1325build_cpu = ${build_cpu}
1326build_vendor = ${build_vendor}
1327build_os = ${build_os}
1328build_canonical = ${build_cpu}-${build_vendor}-${build_os}
1329EOF
1330            esac
1331
1332            case "${package_makefile_frag}" in
1333              "") ;;
1334              /* | [A-Za-z]:[\\/]* ) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
1335              *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
1336            esac
1337
1338            case "${target_makefile_frag}" in
1339              "") ;;
1340              /* | [A-Za-z]:[\\/]* ) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
1341              *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
1342            esac
1343
1344            case "${host_makefile_frag}" in
1345              "") ;;
1346              /* | [A-Za-z]:[\\/]* ) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
1347              *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
1348            esac
1349
1350            if [ "${site_makefile_frag}" != "" ] ; then
1351                echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
1352            fi
1353
1354            echo enable_shared = ${enable_shared} >> ${Makefile}
1355            echo enable_threads = ${enable_threads} >> ${Makefile}
1356            # record if we want to rumtime library stuff installed in libsubdir.
1357            if test -z "${enable_version_specific_runtime_libs}"; then
1358                echo enable_version_specific_runtime_libs = no >> ${Makefile}
1359            else
1360                echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
1361            fi
1362
1363            # Emit a macro which describes the file containing gcc's
1364            # version number.
1365            echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
1366            # And emit a macro defining gcc's version number.
1367            echo gcc_version = ${gcc_version} >> ${Makefile}
1368
1369            # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
1370            # remove any form feeds.
1371            if [ -z "${subdirs}" ]; then
1372                rm -f ${subdir}/Makefile.tm2
1373                sedtemp=sed.$$
1374                cat >$sedtemp <<EOF
1375s:^SUBDIRS[     ]*=.*$:SUBDIRS = ${configdirs}:
1376s:^NONSUBDIRS[  ]*=.*$:NONSUBDIRS = ${noconfigdirs}:
1377EOF
1378                sed -f $sedtemp \
1379                    ${subdir}/Makefile.tem > ${subdir}/Makefile.tm2
1380                rm -f $sedtemp
1381                rm -f ${subdir}/Makefile.tem
1382                mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem
1383            fi
1384            sed     -e "s|^prefix[      ]*=.*$|prefix = ${prefix}|" \
1385                    -e "s|^exec_prefix[         ]*=.*$|exec_prefix = ${exec_prefix}|" \
1386                    -e "s|^bindir[      ]*=.*$|bindir = ${bindir}|" \
1387                    -e "s|^sbindir[     ]*=.*$|sbindir = ${sbindir}|" \
1388                    -e "s|^libexecdir[  ]*=.*$|libexecdir = ${libexecdir}|" \
1389                    -e "s|^datadir[     ]*=.*$|datadir = ${datadir}|" \
1390                    -e "s|^sysconfdir[  ]*=.*$|sysconfdir = ${sysconfdir}|" \
1391                    -e "s|^sharedstatedir[      ]*=.*$|sharedstatedir = ${sharedstatedir}|" \
1392                    -e "s|^localstatedir[       ]*=.*$|localstatedir = ${localstatedir}|" \
1393                    -e "s|^libdir[      ]*=.*$|libdir = ${libdir}|" \
1394                    -e "s|^includedir[  ]*=.*$|includedir = ${includedir}|" \
1395                    -e "s|^oldincludedir[       ]*=.*$|oldincludedir = ${oldincludedir}|" \
1396                    -e "s|^infodir[     ]*=.*$|infodir = ${infodir}|" \
1397                    -e "s|^mandir[      ]*=.*$|mandir = ${mandir}|" \
1398                    -e "s|^ALL_BUILD_MODULES =.*|ALL_BUILD_MODULES =${all_build_modules}|" \
1399                    -e "/^CC[   ]*=/{
1400                        :loop1
1401                        /\\\\$/ N
1402                        s/\\\\\\n//g
1403                        t loop1
1404                        s%^CC[  ]*=.*$%CC = ${CC}%
1405                        }" \
1406                    -e "/^CXX[  ]*=/{
1407                        :loop2
1408                        /\\\\$/ N
1409                        s/\\\\\\n//g
1410                        t loop2
1411                        s%^CXX[         ]*=.*$%CXX = ${CXX}%
1412                        }" \
1413                    -e "/^CFLAGS[       ]*=/{
1414                        :loop3
1415                        /\\\\$/ N
1416                        s/\\\\\\n//g
1417                        t loop3
1418                        s%^CFLAGS[      ]*=.*$%CFLAGS = ${CFLAGS}%
1419                        }" \
1420                    -e "/^CXXFLAGS[     ]*=/{
1421                        :loop4
1422                        /\\\\$/ N
1423                        s/\\\\\\n//g
1424                        t loop4
1425                        s%^CXXFLAGS[    ]*=.*$%CXXFLAGS = ${CXXFLAGS}%
1426                        }" \
1427                    -e "s|^SHELL[        ]*=.*$|SHELL = ${config_shell}|" \
1428                    -e "s|^srcdir[      ]*=.*$|srcdir = ${makesrcdir}|" \
1429                    -e "s///" \
1430                    -e "s:^program_prefix[      ]*=.*$:program_prefix = ${program_prefix}:" \
1431                    -e "s:^program_suffix[      ]*=.*$:program_suffix = ${program_suffix}:" \
1432                    -e "s:^program_transform_name[      ]*=.*$:program_transform_name = ${program_transform_name}:" \
1433                    -e "s|^tooldir[     ]*=.*$|tooldir = ${tooldir}|" \
1434                    -e "s|^build_tooldir[       ]*=.*$|build_tooldir = ${tooldir}|" \
1435                    -e "s:^DEFAULT_YACC[         ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \
1436                    -e "s:^DEFAULT_LEX[  ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \
1437                    -e "s:^DEFAULT_M4[  ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \
1438                    ${subdir}/Makefile.tem >> ${Makefile}
1439 
1440            sed -e "s:^GDB_TK[   ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
1441            mv -f ${Makefile}.tem ${Makefile}
1442
1443            # If this is a Canadian Cross, preset the values of many more
1444            # tools.
1445            if [ "${build}" != "${host}" ]; then
1446                for var in ${tools}; do
1447                    eval val=\$${var}
1448                    sed -e "/^${var}[   ]*=/{
1449                           :loop1
1450                           /\\\\$/ N
1451                           /\\\\$/ b loop1
1452                           s/\\\\\\n//g
1453                           s%^${var}[   ]*=.*$%${var} = ${val}%
1454                           }" ${Makefile} > ${Makefile}.tem
1455                    mv -f ${Makefile}.tem ${Makefile}
1456                done
1457            fi
1458
1459            # final copy now in ${Makefile}
1460
1461        else
1462           echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2
1463        fi
1464
1465        rm -f ${subdir}/Makefile.tem
1466
1467        case "${host_makefile_frag}" in
1468        "") using= ;;
1469        *) using="and \"${host_makefile_frag}\"" ;;
1470        esac
1471
1472        case "${target_makefile_frag}" in
1473        "") ;;
1474        *) using="${using} and \"${target_makefile_frag}\"" ;;
1475        esac
1476
1477        case "${site_makefile_frag}" in
1478        "") ;;
1479        *) using="${using} and \"${site_makefile_frag}\"" ;;
1480        esac
1481
1482        newusing=`echo "${using}" | sed 's/and/using/'`
1483        using=${newusing}
1484        echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using}
1485
1486        . ${tmpfile}.pos
1487
1488        # describe the chosen configuration in config.status.
1489        # Make that file a shellscript which will reestablish
1490        # the same configuration.  Used in Makefiles to rebuild
1491        # Makefiles.
1492
1493        case "${norecursion}" in
1494        "") arguments="${arguments} --norecursion" ;;
1495        *) ;;
1496        esac
1497
1498        if [ ${subdir} = . ] ; then
1499            echo "#!/bin/sh
1500# ${NO_EDIT}
1501# This directory was configured as follows:
1502${progname}" ${arguments}  "
1503# ${using}" > ${subdir}/config.new
1504        else
1505            echo "#!/bin/sh
1506# ${NO_EDIT}
1507# This directory was configured as follows:
1508cd ${invsubdir}
1509${progname}" ${arguments}  "
1510# ${using}" > ${subdir}/config.new
1511        fi
1512        chmod a+x ${subdir}/config.new
1513        if [ -r ${subdir}/config.back ] ; then
1514                mv -f ${subdir}/config.back ${subdir}/config.status
1515        fi
1516        ${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status
1517        ;;
1518
1519    *)  rm -f ${Makefile} ${subdir}/config.status ${links} ;;
1520    esac
1521done
1522
1523# If there are subdirectories, then recur.
1524if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then
1525        for configdir in ${configdirs} ${extraconfigdirs} ; do
1526
1527                # If configdir contains ',' it is
1528                # srcdir,builddir,target_alias
1529                # These come from extraconfigdirs.
1530                case ${configdir} in
1531                *,*)
1532                    eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
1533                    ;;
1534                *)
1535                    cfg_dir=${configdir}
1536                    bld_dir=${configdir}
1537                    tgt_alias=${target_alias}
1538                    ;;
1539                esac
1540
1541                if [ -d ${srcdir}/${cfg_dir} ] ; then
1542                        eval echo Configuring ${configdir}... ${redirect}
1543                        case "${srcdir}" in
1544                        ".") ;;
1545                        *)
1546                                if [ ! -d ./${bld_dir} ] ; then
1547                                        if mkdir ./${bld_dir} ; then
1548                                                true
1549                                        else
1550                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${bld_dir}" 1>&2
1551                                                exit 1
1552                                        fi
1553                                fi
1554                                ;;
1555                        esac
1556
1557                        POPDIR=${PWD=`pwd`}
1558                        cd ${bld_dir}
1559
1560### figure out what to do with srcdir
1561                        case "${srcdir}" in
1562                        ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
1563                        /* | [A-Za-z]:[\\/]* ) # absolute path
1564                                newsrcdir=${srcdir}/${cfg_dir}
1565                                srcdiroption="--srcdir=${newsrcdir}"
1566                                ;;
1567                        *) # otherwise relative
1568                                newsrcdir=../${srcdir}/${cfg_dir}
1569                                srcdiroption="--srcdir=${newsrcdir}"
1570                                ;;
1571                        esac
1572
1573                        # Handle --cache-file=../XXX
1574                        case "${cache_file}" in
1575                        "") # empty
1576                                ;;
1577                        /* | [A-Za-z]:[\\/]* ) # absolute path
1578                                cache_file_option="--cache-file=${cache_file}"
1579                                ;;
1580                        *) # relative path
1581                                cache_file_option="--cache-file=../${cache_file}"
1582                                ;;
1583                        esac
1584
1585### check for guested configure, otherwise fix possibly relative progname
1586                        if [ -f ${newsrcdir}/configure ] ; then
1587                                recprog=${newsrcdir}/configure
1588                        elif [ -f ${newsrcdir}/configure.in ] ; then
1589                                case "${progname}" in
1590                                /* | [A-Za-z]:[\\/]* )  recprog=${progname} ;;
1591                                *)                      recprog=../${progname} ;;
1592                                esac
1593                        else
1594                                eval echo No configuration information in ${cfg_dir} ${redirect}
1595                                recprog=
1596                        fi
1597
1598### The recursion line is here.
1599                        if [ ! -z "${recprog}" ] ; then
1600                                if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
1601                                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
1602                                        ${srcdiroption} ${diroptions} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then
1603                                        true
1604                                else
1605                                        echo Configure in `pwd` failed, exiting. 1>&2
1606                                        exit 1
1607                                fi
1608                        fi
1609
1610                        cd ${POPDIR}
1611                fi
1612        done
1613fi
1614
1615# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
1616# and reset the trap handler.
1617rm -rf ${tmpdir}
1618trap 0
1619
1620exit 0
1621
1622#
1623# Local Variables:
1624# fill-column: 131
1625# End:
1626#
1627
1628# end of configure
Note: See TracBrowser for help on using the repository browser.