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