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