source: trunk/third/gcc/configure @ 16960

Revision 16960, 49.1 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16959, 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.4 $"
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
1091for subdir in . ${subdirs} ; do
1092
1093    # ${subdir} is relative path from . to the directory we're currently
1094    # configuring.
1095    # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
1096    invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
1097
1098    ### figure out what to do with srcdir
1099    case "${srcdir}" in
1100        ".")  # no -srcdir option.  We're building in place.
1101                makesrcdir=. ;;
1102        /* | [A-Za-z]:[\\/]* ) # absolute path
1103                makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
1104                ;;
1105        *) # otherwise relative
1106                case "${subdir}" in
1107                .) makesrcdir=${srcdir} ;;
1108                *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;;
1109                esac
1110                ;;
1111    esac
1112
1113    if [ "${subdir}/" != "./" ] ; then
1114        Makefile=${subdir}/Makefile
1115    fi
1116
1117    if [ ! -d ${subdir} ] ; then
1118        if mkdir ${subdir} ; then
1119                true
1120        else
1121                echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2
1122                exit 1
1123        fi
1124    fi
1125
1126    case "${removing}" in
1127    "")
1128        case "${subdir}" in
1129        .) ;;
1130        *) eval echo Building in ${subdir} ${redirect} ;;
1131        esac
1132
1133        # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1134        # Set up the list of links to be made.
1135        # ${links} is the list of link names, and ${files} is the list of names to link to.
1136
1137        # Make the links.
1138        configlinks="${links}"
1139        if [ -r ${subdir}/config.status ] ; then
1140                mv -f ${subdir}/config.status ${subdir}/config.back
1141        fi
1142        while [ -n "${files}" ] ; do
1143                # set file to car of files, files to cdr of files
1144                set ${files}; file=$1; shift; files=$*
1145                set ${links}; link=$1; shift; links=$*
1146
1147                if [ ! -r ${srcdir}/${file} ] ; then
1148                  if [ ! -r ${file} ] ; then
1149                   
1150                        echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1151                        echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1152                        exit 1
1153                  else
1154                        srcfile=${file}
1155                  fi
1156                else
1157                        srcfile=${srcdir}/${file}
1158                fi
1159
1160                ${remove} -f ${link}
1161                # Make a symlink if possible, otherwise try a hard link
1162                if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1163                        true
1164                else
1165                        # We need to re-remove the file because Lynx leaves a
1166                        # very strange directory there when it fails an NFS symlink.
1167                        ${remove} -r -f ${link}
1168                        ${hard_link} ${srcfile} ${link}
1169                fi
1170                if [ ! -r ${link} ] ; then
1171                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1172                        exit 1
1173                fi
1174
1175                echo "Linked \"${link}\" to \"${srcfile}\"."
1176        done
1177
1178        # Create a .gdbinit file which runs the one in srcdir
1179        # and tells GDB to look there for source files.
1180
1181        if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
1182                case ${srcdir} in
1183                .) ;;
1184                *) cat > ${subdir}/.gdbinit <<EOF
1185# ${NO_EDIT}
1186dir ${makesrcdir}
1187dir .
1188source ${makesrcdir}/.gdbinit
1189EOF
1190                        ;;
1191                esac
1192        fi
1193
1194        # Install a makefile, and make it set VPATH
1195        # if necessary so that the sources are found.
1196        # Also change its value of srcdir.
1197        # NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
1198        # been somewhat optimized and is perhaps a bit twisty.
1199
1200        # code is order so as to try to sed the smallest input files we know.
1201        # so do these separately because I don't trust the order of sed -e expressions.
1202
1203        # the five makefile fragments MUST end up in the resulting Makefile in this order:
1204        # package macros, target, host, site, and package rules.
1205
1206        if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
1207
1208            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
1209            rm -f ${subdir}/${Makefile}.tem
1210            case "${package_makefile_rules_frag}" in
1211              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
1212              *)
1213                      if [ ! -f ${package_makefile_rules_frag} ] ; then
1214                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
1215                      fi
1216                      if [ -f ${package_makefile_rules_frag} ] ; then
1217                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
1218                      else
1219                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
1220                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1221                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
1222                      fi
1223            esac
1224            # working copy now in ${Makefile}.tem
1225
1226            # Conditionalize for this site.
1227            rm -f ${Makefile}
1228              case "${site}" in
1229              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1230              *)
1231                      site_makefile_frag=${srcdir}/config/ms-${site}
1232
1233                      if [ -f ${site_makefile_frag} ] ; then
1234                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
1235                                      > ${Makefile}
1236                      else
1237                              mv ${subdir}/Makefile.tem ${Makefile}
1238                              site_makefile_frag=
1239                      fi
1240                      ;;
1241            esac
1242            # working copy now in ${Makefile}
1243
1244            # Conditionalize the makefile for this host.
1245            rm -f ${subdir}/Makefile.tem
1246            case "${host_makefile_frag}" in
1247              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1248              *)
1249                      if [ ! -f ${host_makefile_frag} ] ; then
1250                              host_makefile_frag=${srcdir}/${host_makefile_frag}
1251                      fi
1252                      if [ -f ${host_makefile_frag} ] ; then
1253                              sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1254                      else
1255                              echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
1256                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1257                              mv ${Makefile} ${subdir}/Makefile.tem
1258                      fi
1259            esac
1260            # working copy now in ${subdir)/Makefile.tem
1261
1262            # Conditionalize the makefile for this target.
1263            rm -f ${Makefile}
1264            case "${target_makefile_frag}" in
1265              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1266              *)
1267                      if [ ! -f ${target_makefile_frag} ] ; then
1268                              target_makefile_frag=${srcdir}/${target_makefile_frag}
1269                      fi
1270                      if [ -f ${target_makefile_frag} ] ; then
1271                              sed -e "/^####/  r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
1272                      else
1273                              mv ${subdir}/Makefile.tem ${Makefile}
1274                              target_makefile_frag=
1275                      fi
1276                      ;;
1277            esac
1278            # working copy now in ${Makefile}
1279
1280            # Emit the default values of this package's macros.
1281            rm -f ${subdir}/Makefile.tem
1282            case "${package_makefile_frag}" in
1283              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1284              *)
1285                      if [ ! -f ${package_makefile_frag} ] ; then
1286                              package_makefile_frag=${srcdir}/${package_makefile_frag}
1287                      fi
1288                      if [ -f ${package_makefile_frag} ] ; then
1289                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1290                      else
1291                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
1292                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1293                              mv ${Makefile} ${subdir}/Makefile.tem
1294                      fi
1295            esac
1296            # real copy now in ${subdir}/Makefile.tem
1297
1298            # prepend warning about editting, and a bunch of variables.
1299            rm -f ${Makefile}
1300            cat > ${Makefile} <<EOF
1301# ${NO_EDIT}
1302VPATH = ${makesrcdir}
1303links = ${configlinks}
1304host_alias = ${host_alias}
1305host_cpu = ${host_cpu}
1306host_vendor = ${host_vendor}
1307host_os = ${host_os}
1308host_canonical = ${host_cpu}-${host_vendor}-${host_os}
1309target_alias = ${target_alias}
1310target_cpu = ${target_cpu}
1311target_vendor = ${target_vendor}
1312target_os = ${target_os}
1313target_canonical = ${target_cpu}-${target_vendor}-${target_os}
1314EOF
1315            case "${build}" in
1316              "") ;;
1317              *)  cat >> ${Makefile} << EOF
1318build_alias = ${build_alias}
1319build_cpu = ${build_cpu}
1320build_vendor = ${build_vendor}
1321build_os = ${build_os}
1322build_canonical = ${build_cpu}-${build_vendor}-${build_os}
1323EOF
1324            esac
1325
1326            case "${package_makefile_frag}" in
1327              "") ;;
1328              /* | [A-Za-z]:[\\/]* ) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
1329              *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
1330            esac
1331
1332            case "${target_makefile_frag}" in
1333              "") ;;
1334              /* | [A-Za-z]:[\\/]* ) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
1335              *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
1336            esac
1337
1338            case "${host_makefile_frag}" in
1339              "") ;;
1340              /* | [A-Za-z]:[\\/]* ) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
1341              *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
1342            esac
1343
1344            if [ "${site_makefile_frag}" != "" ] ; then
1345                echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
1346            fi
1347
1348            echo enable_shared = ${enable_shared} >> ${Makefile}
1349            echo enable_threads = ${enable_threads} >> ${Makefile}
1350            # record if we want to rumtime library stuff installed in libsubdir.
1351            if test -z "${enable_version_specific_runtime_libs}"; then
1352                echo enable_version_specific_runtime_libs = no >> ${Makefile}
1353            else
1354                echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
1355            fi
1356
1357            # Emit a macro which describes the file containing gcc's
1358            # version number.
1359            echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
1360            # And emit a macro defining gcc's version number.
1361            echo gcc_version = ${gcc_version} >> ${Makefile}
1362
1363            # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
1364            # remove any form feeds.
1365            if [ -z "${subdirs}" ]; then
1366                rm -f ${subdir}/Makefile.tm2
1367                sed -e "s:^SUBDIRS[     ]*=.*$:SUBDIRS = ${configdirs}:" \
1368                    -e "s:^NONSUBDIRS[  ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \
1369                    ${subdir}/Makefile.tem > ${subdir}/Makefile.tm2
1370                rm -f ${subdir}/Makefile.tem
1371                mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem
1372            fi
1373            sed     -e "s|^prefix[      ]*=.*$|prefix = ${prefix}|" \
1374                    -e "s|^exec_prefix[         ]*=.*$|exec_prefix = ${exec_prefix}|" \
1375                    -e "s|^bindir[      ]*=.*$|bindir = ${bindir}|" \
1376                    -e "s|^sbindir[     ]*=.*$|sbindir = ${sbindir}|" \
1377                    -e "s|^libexecdir[  ]*=.*$|libexecdir = ${libexecdir}|" \
1378                    -e "s|^datadir[     ]*=.*$|datadir = ${datadir}|" \
1379                    -e "s|^sysconfdir[  ]*=.*$|sysconfdir = ${sysconfdir}|" \
1380                    -e "s|^sharedstatedir[      ]*=.*$|sharedstatedir = ${sharedstatedir}|" \
1381                    -e "s|^localstatedir[       ]*=.*$|localstatedir = ${localstatedir}|" \
1382                    -e "s|^libdir[      ]*=.*$|libdir = ${libdir}|" \
1383                    -e "s|^includedir[  ]*=.*$|includedir = ${includedir}|" \
1384                    -e "s|^oldincludedir[       ]*=.*$|oldincludedir = ${oldincludedir}|" \
1385                    -e "s|^infodir[     ]*=.*$|infodir = ${infodir}|" \
1386                    -e "s|^mandir[      ]*=.*$|mandir = ${mandir}|" \
1387                    -e "/^CC[   ]*=/{
1388                        :loop1
1389                        /\\\\$/ N
1390                        s/\\\\\\n//g
1391                        t loop1
1392                        s%^CC[  ]*=.*$%CC = ${CC}%
1393                        }" \
1394                    -e "/^CXX[  ]*=/{
1395                        :loop2
1396                        /\\\\$/ N
1397                        s/\\\\\\n//g
1398                        t loop2
1399                        s%^CXX[         ]*=.*$%CXX = ${CXX}%
1400                        }" \
1401                    -e "/^CFLAGS[       ]*=/{
1402                        :loop3
1403                        /\\\\$/ N
1404                        s/\\\\\\n//g
1405                        t loop3
1406                        s%^CFLAGS[      ]*=.*$%CFLAGS = ${CFLAGS}%
1407                        }" \
1408                    -e "/^CXXFLAGS[     ]*=/{
1409                        :loop4
1410                        /\\\\$/ N
1411                        s/\\\\\\n//g
1412                        t loop4
1413                        s%^CXXFLAGS[    ]*=.*$%CXXFLAGS = ${CXXFLAGS}%
1414                        }" \
1415                    -e "s|^SHELL[        ]*=.*$|SHELL = ${config_shell}|" \
1416                    -e "s|^srcdir[      ]*=.*$|srcdir = ${makesrcdir}|" \
1417                    -e "s///" \
1418                    -e "s:^program_prefix[      ]*=.*$:program_prefix = ${program_prefix}:" \
1419                    -e "s:^program_suffix[      ]*=.*$:program_suffix = ${program_suffix}:" \
1420                    -e "s:^program_transform_name[      ]*=.*$:program_transform_name = ${program_transform_name}:" \
1421                    -e "s|^tooldir[     ]*=.*$|tooldir = ${tooldir}|" \
1422                    -e "s|^build_tooldir[       ]*=.*$|build_tooldir = ${tooldir}|" \
1423                    -e "s:^DEFAULT_YACC[         ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \
1424                    -e "s:^DEFAULT_LEX[  ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \
1425                    -e "s:^DEFAULT_M4[  ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \
1426                    ${subdir}/Makefile.tem >> ${Makefile}
1427 
1428            sed -e "s:^GDB_TK[   ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
1429            mv -f ${Makefile}.tem ${Makefile}
1430
1431            # If this is a Canadian Cross, preset the values of many more
1432            # tools.
1433            if [ "${build}" != "${host}" ]; then
1434                for var in ${tools}; do
1435                    eval val=\$${var}
1436                    sed -e "/^${var}[   ]*=/{
1437                           :loop1
1438                           /\\\\$/ N
1439                           /\\\\$/ b loop1
1440                           s/\\\\\\n//g
1441                           s%^${var}[   ]*=.*$%${var} = ${val}%
1442                           }" ${Makefile} > ${Makefile}.tem
1443                    mv -f ${Makefile}.tem ${Makefile}
1444                done
1445            fi
1446
1447            # final copy now in ${Makefile}
1448
1449        else
1450           echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2
1451        fi
1452
1453        rm -f ${subdir}/Makefile.tem
1454
1455        case "${host_makefile_frag}" in
1456        "") using= ;;
1457        *) using="and \"${host_makefile_frag}\"" ;;
1458        esac
1459
1460        case "${target_makefile_frag}" in
1461        "") ;;
1462        *) using="${using} and \"${target_makefile_frag}\"" ;;
1463        esac
1464
1465        case "${site_makefile_frag}" in
1466        "") ;;
1467        *) using="${using} and \"${site_makefile_frag}\"" ;;
1468        esac
1469
1470        newusing=`echo "${using}" | sed 's/and/using/'`
1471        using=${newusing}
1472        echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using}
1473
1474        . ${tmpfile}.pos
1475
1476        # describe the chosen configuration in config.status.
1477        # Make that file a shellscript which will reestablish
1478        # the same configuration.  Used in Makefiles to rebuild
1479        # Makefiles.
1480
1481        case "${norecursion}" in
1482        "") arguments="${arguments} --norecursion" ;;
1483        *) ;;
1484        esac
1485
1486        if [ ${subdir} = . ] ; then
1487            echo "#!/bin/sh
1488# ${NO_EDIT}
1489# This directory was configured as follows:
1490${progname}" ${arguments}  "
1491# ${using}" > ${subdir}/config.new
1492        else
1493            echo "#!/bin/sh
1494# ${NO_EDIT}
1495# This directory was configured as follows:
1496cd ${invsubdir}
1497${progname}" ${arguments}  "
1498# ${using}" > ${subdir}/config.new
1499        fi
1500        chmod a+x ${subdir}/config.new
1501        if [ -r ${subdir}/config.back ] ; then
1502                mv -f ${subdir}/config.back ${subdir}/config.status
1503        fi
1504        ${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status
1505        ;;
1506
1507    *)  rm -f ${Makefile} ${subdir}/config.status ${links} ;;
1508    esac
1509done
1510
1511# If there are subdirectories, then recur.
1512if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then
1513        for configdir in ${configdirs} ${extraconfigdirs} ; do
1514
1515                # If configdir contains ',' it is
1516                # srcdir,builddir,target_alias
1517                # These come from extraconfigdirs.
1518                case ${configdir} in
1519                *,*)
1520                    eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
1521                    ;;
1522                *)
1523                    cfg_dir=${configdir}
1524                    bld_dir=${configdir}
1525                    tgt_alias=${target_alias}
1526                    ;;
1527                esac
1528
1529                if [ -d ${srcdir}/${cfg_dir} ] ; then
1530                        eval echo Configuring ${configdir}... ${redirect}
1531                        case "${srcdir}" in
1532                        ".") ;;
1533                        *)
1534                                if [ ! -d ./${bld_dir} ] ; then
1535                                        if mkdir ./${bld_dir} ; then
1536                                                true
1537                                        else
1538                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${bld_dir}" 1>&2
1539                                                exit 1
1540                                        fi
1541                                fi
1542                                ;;
1543                        esac
1544
1545                        POPDIR=${PWD=`pwd`}
1546                        cd ${bld_dir}
1547
1548### figure out what to do with srcdir
1549                        case "${srcdir}" in
1550                        ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
1551                        /* | [A-Za-z]:[\\/]* ) # absolute path
1552                                newsrcdir=${srcdir}/${cfg_dir}
1553                                srcdiroption="--srcdir=${newsrcdir}"
1554                                ;;
1555                        *) # otherwise relative
1556                                newsrcdir=../${srcdir}/${cfg_dir}
1557                                srcdiroption="--srcdir=${newsrcdir}"
1558                                ;;
1559                        esac
1560
1561                        # Handle --cache-file=../XXX
1562                        case "${cache_file}" in
1563                        "") # empty
1564                                ;;
1565                        /* | [A-Za-z]:[\\/]* ) # absolute path
1566                                cache_file_option="--cache-file=${cache_file}"
1567                                ;;
1568                        *) # relative path
1569                                cache_file_option="--cache-file=../${cache_file}"
1570                                ;;
1571                        esac
1572
1573### check for guested configure, otherwise fix possibly relative progname
1574                        if [ -f ${newsrcdir}/configure ] ; then
1575                                recprog=${newsrcdir}/configure
1576                        elif [ -f ${newsrcdir}/configure.in ] ; then
1577                                case "${progname}" in
1578                                /* | [A-Za-z]:[\\/]* )  recprog=${progname} ;;
1579                                *)                      recprog=../${progname} ;;
1580                                esac
1581                        else
1582                                eval echo No configuration information in ${cfg_dir} ${redirect}
1583                                recprog=
1584                        fi
1585
1586### The recursion line is here.
1587                        if [ ! -z "${recprog}" ] ; then
1588                                if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
1589                                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
1590                                        ${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
1591                                        true
1592                                else
1593                                        echo Configure in `pwd` failed, exiting. 1>&2
1594                                        exit 1
1595                                fi
1596                        fi
1597
1598                        cd ${POPDIR}
1599                fi
1600        done
1601fi
1602
1603# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
1604# and reset the trap handler.
1605rm -rf ${tmpdir}
1606trap 0
1607
1608exit 0
1609
1610#
1611# Local Variables:
1612# fill-column: 131
1613# End:
1614#
1615
1616# end of configure
Note: See TracBrowser for help on using the repository browser.