configure revision 85815
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.11 $"
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/'`
521## the sed command below emulates the dirname command
522topsrcdir=`cd \`echo ${progname} | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'\`; pwd`
523
524
525# this is a hack.  sun4 must always be a valid host alias or this will fail.
526if ${config_shell} ${configsub} sun4 >/dev/null 2>&1 ; then
527        true
528else
529        echo '***' cannot find config.sub.  1>&2
530        exit 1
531fi
532
533touch config.junk
534if ${config_shell} ${moveifchange} config.junk config.trash ; then
535        true
536else
537        echo '***' cannot find move-if-change.  1>&2
538        exit 1
539fi
540rm -f config.junk config.trash
541
542case "${srcdir}" in
543"")
544        if [ -r configure.in ] ; then
545                srcdir=.
546        else
547                if [ -r ${progname}.in ] ; then
548                        srcdir=`echo ${progname} | sed 's:/configure$::'`
549                else
550                        echo '***' "Can't find configure.in.  Try using --srcdir=some_dir"  1>&2
551                        exit 1
552                fi
553        fi
554        ;;
555*)
556	# Set srcdir to "." if that's what it is.
557	# This is important for multilib support.
558	if [ ! -d ${srcdir} ] ; then
559		echo "Invalid source directory ${srcdir}" >&2
560		exit 1
561	fi
562	pwd=`pwd`
563	srcpwd=`cd ${srcdir} ; pwd`
564	if [ "${pwd}" = "${srcpwd}" ] ; then
565		srcdir=.
566	fi
567esac
568
569### warn about some conflicting configurations.
570
571case "${srcdir}" in
572".") ;;
573*)
574        if [ -f ${srcdir}/config.status ] ; then
575                echo '***' Cannot configure here in \"${PWD=`pwd`}\" when \"${srcdir}\" is currently configured. 1>&2
576                exit 1
577        fi
578esac
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
905if [ "${build}" != "${host}" ]; then
906  # If we are doing a Canadian Cross, in which the host and build systems
907  # are not the same, we set reasonable default values for the tools.
908
909  tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD"
910  tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET"
911  tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET HOST_PREFIX"
912  tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM"
913  tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET"
914  tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
915  tools="${tools} OBJCOPY OBJDUMP"
916
917  for var in ${tools}; do
918    if eval [ -z \"\$${var}\" ] && [ -r Makefile ]; then
919      sed -n -e ':loop
920/\\$/ N
921s/\\\n//g
922t loop
923/^'"${var}"'[ 	]*=/ s/'"${var}"'[ 	]*=[ 	]*\(.*\)/\1/p' \
924	< Makefile > Makefile.v
925      t=`tail -1 Makefile.v`
926      if [ -n "${t}" ]; then
927	eval "${var}=\${t}"
928      fi
929      rm -f Makefile.v
930    fi
931  done
932
933  AR=${AR-${host_alias}-ar}
934  AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar}
935  AS=${AS-${host_alias}-as}
936  AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
937  BISON=${BISON-bison}
938  CC=${CC-${host_alias}-gcc}
939  CFLAGS=${CFLAGS-"-g -O2"}
940  CXX=${CXX-${host_alias}-c++}
941  CXXFLAGS=${CXXFLAGS-"-g -O2"}
942  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
943  CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
944  CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
945  DLLTOOL=${DLLTOOL-${host_alias}-dlltool}
946  DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool}
947  GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
948  HOST_PREFIX=${build_alias}-
949  HOST_PREFIX_1=${build_alias}-
950  LD=${LD-${host_alias}-ld}
951  LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld}
952  MAKEINFO=${MAKEINFO-makeinfo}
953  NM=${NM-${host_alias}-nm}
954  NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm}
955  RANLIB=${RANLIB-${host_alias}-ranlib}
956  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib}
957  WINDRES=${WINDRES-${host_alias}-windres}
958  WINDRES_FOR_TARGET=${WINDRES_FOR_TARGET-${target_alias}-windres}
959  OBJCOPY=${OBJCOPY-${host_alias}-objcopy}
960  OBJDUMP=${OBJDUMP-${host_alias}-objdump}
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
1011  export OBJCOPY
1012  export OBJDUMP
1013else
1014  # If CC is still not set, try to get gcc.
1015  if [ -z "${CC}" ]; then
1016    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
1017    for dir in $PATH; do
1018      test -z "$dir" && dir=.
1019      if test -f $dir/gcc; then
1020	CC="gcc"
1021	echo 'void f(){}' > conftest.c
1022	if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1023	  CFLAGS=${CFLAGS-"-g -O2"}
1024	  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1025	else
1026	  CFLAGS=${CFLAGS-"-O2"}
1027	  CXXFLAGS=${CXXFLAGS-"-O2"}
1028	fi
1029	rm -f conftest*
1030	break
1031      fi
1032    done
1033    IFS="$save_ifs"
1034    CC=${CC-cc}
1035  else
1036    if test -z "${CFLAGS}"; then
1037      # Here CC is set but CFLAGS is not.  Use a quick hack to use -O2 if CC
1038      # is set to a version of gcc.
1039      case "${CC}" in
1040      *gcc)
1041	echo 'void f(){}' > conftest.c
1042	if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1043	  CFLAGS=${CFLAGS-"-g -O2"}
1044	  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1045	else
1046	  CFLAGS=${CFLAGS-"-O2"}
1047	  CXXFLAGS=${CXXFLAGS-"-O2"}
1048	fi
1049	rm -f conftest*
1050	;;
1051      esac
1052    fi
1053  fi
1054
1055  CXX=${CXX-"c++"}
1056  CFLAGS=${CFLAGS-"-g"}
1057  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1058fi
1059
1060export CC
1061export CXX
1062export CFLAGS
1063export CXXFLAGS
1064
1065# FIXME: This should be in configure.in, not configure
1066case "$host" in
1067	*go32*)
1068	    enable_gdbtk=no ;;
1069	*msdosdjgpp*)
1070	    enable_gdbtk=no ;;
1071esac
1072
1073# FIXME: This should be in configure.in, not configure
1074# Determine whether gdb needs tk/tcl or not.
1075if [ "$enable_gdbtk" != "no" ]; then
1076	GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui"
1077else
1078	GDB_TK=""
1079fi
1080
1081for subdir in . ${subdirs} ; do
1082
1083    # ${subdir} is relative path from . to the directory we're currently
1084    # configuring.
1085    # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
1086    invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
1087
1088    ### figure out what to do with srcdir
1089    case "${srcdir}" in
1090        ".")  # no -srcdir option.  We're building in place.
1091                makesrcdir=. ;;
1092        /*) # absolute path
1093                makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
1094                ;;
1095        *) # otherwise relative
1096                case "${subdir}" in
1097                .) makesrcdir=${srcdir} ;;
1098                *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;;
1099                esac
1100                ;;
1101    esac
1102
1103    if [ "${subdir}/" != "./" ] ; then
1104        Makefile=${subdir}/Makefile
1105    fi
1106
1107    if [ ! -d ${subdir} ] ; then
1108        if mkdir ${subdir} ; then
1109                true
1110        else
1111                echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2
1112                exit 1
1113        fi
1114    fi
1115
1116    case "${removing}" in
1117    "")
1118        case "${subdir}" in
1119        .) ;;
1120        *) eval echo Building in ${subdir} ${redirect} ;;
1121        esac
1122
1123        # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1124        # Set up the list of links to be made.
1125        # ${links} is the list of link names, and ${files} is the list of names to link to.
1126
1127        # Make the links.
1128        configlinks="${links}"
1129        if [ -r ${subdir}/config.status ] ; then
1130                mv -f ${subdir}/config.status ${subdir}/config.back
1131        fi
1132        while [ -n "${files}" ] ; do
1133                # set file to car of files, files to cdr of files
1134                set ${files}; file=$1; shift; files=$*
1135                set ${links}; link=$1; shift; links=$*
1136
1137                if [ ! -r ${srcdir}/${file} ] ; then
1138                  if [ ! -r ${file} ] ; then
1139		    
1140                        echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1141                        echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1142                        exit 1
1143		  else
1144			srcfile=${file}
1145		  fi
1146		else
1147			srcfile=${srcdir}/${file}
1148                fi
1149
1150                ${remove} -f ${link}
1151		# Make a symlink if possible, otherwise try a hard link
1152		if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1153			true
1154		else
1155			# We need to re-remove the file because Lynx leaves a 
1156			# very strange directory there when it fails an NFS symlink.
1157			${remove} -r -f ${link}
1158			${hard_link} ${srcfile} ${link}
1159		fi
1160                if [ ! -r ${link} ] ; then
1161                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1162                        exit 1
1163                fi
1164
1165                echo "Linked \"${link}\" to \"${srcfile}\"."
1166        done
1167
1168        # Create a .gdbinit file which runs the one in srcdir
1169        # and tells GDB to look there for source files.
1170
1171        if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
1172                case ${srcdir} in
1173                .) ;;
1174                *) cat > ${subdir}/.gdbinit <<EOF
1175# ${NO_EDIT}
1176dir ${makesrcdir}
1177dir .
1178source ${makesrcdir}/.gdbinit
1179EOF
1180                        ;;
1181                esac
1182        fi
1183
1184        # Install a makefile, and make it set VPATH
1185        # if necessary so that the sources are found.
1186        # Also change its value of srcdir.
1187        # NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
1188        # been somewhat optimized and is perhaps a bit twisty.
1189
1190        # code is order so as to try to sed the smallest input files we know.
1191        # so do these separately because I don't trust the order of sed -e expressions.
1192
1193        # the five makefile fragments MUST end up in the resulting Makefile in this order: 
1194        # package macros, target, host, site, and package rules.
1195
1196        if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
1197
1198            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
1199            rm -f ${subdir}/${Makefile}.tem
1200            case "${package_makefile_rules_frag}" in
1201              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
1202              *)
1203                      if [ ! -f ${package_makefile_rules_frag} ] ; then
1204                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
1205                      fi
1206                      if [ -f ${package_makefile_rules_frag} ] ; then
1207                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
1208                      else
1209                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
1210                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1211                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
1212                      fi
1213            esac
1214            # working copy now in ${Makefile}.tem
1215
1216            # Conditionalize for this site.
1217            rm -f ${Makefile}
1218              case "${site}" in
1219              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1220              *)
1221                      site_makefile_frag=${srcdir}/config/ms-${site}
1222
1223                      if [ -f ${site_makefile_frag} ] ; then
1224                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
1225                                      > ${Makefile}
1226                      else
1227                              mv ${subdir}/Makefile.tem ${Makefile}
1228                              site_makefile_frag=
1229                      fi
1230                      ;;
1231            esac
1232            # working copy now in ${Makefile}
1233
1234            # Conditionalize the makefile for this host.
1235            rm -f ${subdir}/Makefile.tem
1236            case "${host_makefile_frag}" in
1237              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1238              *)
1239                      if [ ! -f ${host_makefile_frag} ] ; then
1240                              host_makefile_frag=${srcdir}/${host_makefile_frag}
1241                      fi
1242                      if [ -f ${host_makefile_frag} ] ; then
1243                              sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1244                      else
1245                              echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
1246                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1247                              mv ${Makefile} ${subdir}/Makefile.tem
1248                      fi
1249            esac
1250            # working copy now in ${subdir)/Makefile.tem
1251
1252            # Conditionalize the makefile for this target.
1253            rm -f ${Makefile}
1254            case "${target_makefile_frag}" in
1255              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1256              *)
1257                      if [ ! -f ${target_makefile_frag} ] ; then
1258                              target_makefile_frag=${srcdir}/${target_makefile_frag}
1259                      fi
1260                      if [ -f ${target_makefile_frag} ] ; then
1261                              sed -e "/^####/  r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
1262                      else
1263                              mv ${subdir}/Makefile.tem ${Makefile}
1264                              target_makefile_frag=
1265                      fi
1266                      ;;
1267            esac
1268            # working copy now in ${Makefile}
1269
1270            # Emit the default values of this package's macros.
1271            rm -f ${subdir}/Makefile.tem
1272            case "${package_makefile_frag}" in
1273              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1274              *)
1275                      if [ ! -f ${package_makefile_frag} ] ; then
1276                              package_makefile_frag=${srcdir}/${package_makefile_frag}
1277                      fi
1278                      if [ -f ${package_makefile_frag} ] ; then
1279                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1280                      else
1281                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
1282                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1283                              mv ${Makefile} ${subdir}/Makefile.tem
1284                      fi
1285            esac
1286            # real copy now in ${subdir}/Makefile.tem
1287
1288            # prepend warning about editting, and a bunch of variables.
1289            rm -f ${Makefile}
1290            cat > ${Makefile} <<EOF
1291# ${NO_EDIT}
1292VPATH = ${makesrcdir}
1293links = ${configlinks}
1294host_alias = ${host_alias}
1295host_cpu = ${host_cpu}
1296host_vendor = ${host_vendor}
1297host_os = ${host_os}
1298host_canonical = ${host_cpu}-${host_vendor}-${host_os}
1299target_alias = ${target_alias}
1300target_cpu = ${target_cpu}
1301target_vendor = ${target_vendor}
1302target_os = ${target_os}
1303target_canonical = ${target_cpu}-${target_vendor}-${target_os}
1304EOF
1305	    case "${build}" in
1306	      "") ;;
1307	      *)  cat >> ${Makefile} << EOF
1308build_alias = ${build_alias}
1309build_cpu = ${build_cpu}
1310build_vendor = ${build_vendor}
1311build_os = ${build_os}
1312build_canonical = ${build_cpu}-${build_vendor}-${build_os}
1313EOF
1314	    esac
1315
1316            case "${package_makefile_frag}" in
1317              "") ;;
1318              /*) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
1319              *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
1320            esac
1321
1322            case "${target_makefile_frag}" in
1323              "") ;;
1324              /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
1325              *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
1326            esac
1327
1328            case "${host_makefile_frag}" in
1329              "") ;;
1330              /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
1331              *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
1332            esac
1333
1334            if [ "${site_makefile_frag}" != "" ] ; then
1335                echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
1336            fi 
1337
1338	    # record if we want to build shared libs.
1339	    if test -z "${enable_shared}"; then
1340	        echo enable_shared = no >> ${Makefile}
1341	    else
1342	        echo enable_shared = ${enable_shared} >> ${Makefile}
1343	    fi
1344	    # record if we want to rumtime library stuff installed in libsubdir.
1345	    if test -z "${enable_version_specific_runtime_libs}"; then
1346	        echo enable_version_specific_runtime_libs = no >> ${Makefile}
1347	    else
1348	        echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
1349	    fi
1350
1351	    # Emit a macro which describes the file containing gcc's
1352	    # version number.
1353	    echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
1354	    # And emit a macro defining gcc's version number.
1355	    echo gcc_version = ${gcc_version} >> ${Makefile}
1356
1357            # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
1358            # remove any form feeds.
1359            if [ -z "${subdirs}" ]; then
1360                rm -f ${subdir}/Makefile.tm2
1361                sed -e "s:^SUBDIRS[ 	]*=.*$:SUBDIRS = ${configdirs}:" \
1362                    -e "s:^NONSUBDIRS[ 	]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \
1363                    ${subdir}/Makefile.tem > ${subdir}/Makefile.tm2
1364                rm -f ${subdir}/Makefile.tem
1365                mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem
1366	    fi
1367	    sed     -e "s|^prefix[ 	]*=.*$|prefix = ${prefix}|" \
1368                    -e "s|^exec_prefix[ 	]*=.*$|exec_prefix = ${exec_prefix}|" \
1369                    -e "s|^bindir[ 	]*=.*$|bindir = ${bindir}|" \
1370                    -e "s|^sbindir[ 	]*=.*$|sbindir = ${sbindir}|" \
1371                    -e "s|^libexecdir[ 	]*=.*$|libexecdir = ${libexecdir}|" \
1372                    -e "s|^datadir[ 	]*=.*$|datadir = ${datadir}|" \
1373                    -e "s|^sysconfdir[ 	]*=.*$|sysconfdir = ${sysconfdir}|" \
1374                    -e "s|^sharedstatedir[ 	]*=.*$|sharedstatedir = ${sharedstatedir}|" \
1375                    -e "s|^localstatedir[ 	]*=.*$|localstatedir = ${localstatedir}|" \
1376                    -e "s|^libdir[ 	]*=.*$|libdir = ${libdir}|" \
1377                    -e "s|^includedir[ 	]*=.*$|includedir = ${includedir}|" \
1378                    -e "s|^oldincludedir[ 	]*=.*$|oldincludedir = ${oldincludedir}|" \
1379                    -e "s|^infodir[ 	]*=.*$|infodir = ${infodir}|" \
1380                    -e "s|^mandir[ 	]*=.*$|mandir = ${mandir}|" \
1381		    -e "/^CC[ 	]*=/{
1382			:loop1
1383			/\\\\$/ N
1384			s/\\\\\\n//g
1385			t loop1
1386			s%^CC[ 	]*=.*$%CC = ${CC}%
1387			}" \
1388		    -e "/^CXX[ 	]*=/{
1389			:loop2
1390			/\\\\$/ N
1391			s/\\\\\\n//g
1392			t loop2
1393			s%^CXX[ 	]*=.*$%CXX = ${CXX}%
1394			}" \
1395		    -e "/^CFLAGS[ 	]*=/{
1396			:loop3
1397			/\\\\$/ N
1398			s/\\\\\\n//g
1399			t loop3
1400			s%^CFLAGS[ 	]*=.*$%CFLAGS = ${CFLAGS}%
1401			}" \
1402		    -e "/^CXXFLAGS[ 	]*=/{
1403			:loop4
1404			/\\\\$/ N
1405			s/\\\\\\n//g
1406			t loop4
1407			s%^CXXFLAGS[ 	]*=.*$%CXXFLAGS = ${CXXFLAGS}%
1408			}" \
1409		    -e "s|^SHELL[	 ]*=.*$|SHELL = ${config_shell}|" \
1410                    -e "s|^srcdir[ 	]*=.*$|srcdir = ${makesrcdir}|" \
1411                    -e "s///" \
1412                    -e "s:^program_prefix[ 	]*=.*$:program_prefix = ${program_prefix}:" \
1413                    -e "s:^program_suffix[ 	]*=.*$:program_suffix = ${program_suffix}:" \
1414                    -e "s:^program_transform_name[ 	]*=.*$:program_transform_name = ${program_transform_name}:" \
1415                    -e "s|^tooldir[ 	]*=.*$|tooldir = ${tooldir}|" \
1416                    -e "s|^build_tooldir[ 	]*=.*$|build_tooldir = ${tooldir}|" \
1417		    -e "s:^DEFAULT_YACC[	 ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \
1418		    -e "s:^DEFAULT_LEX[	 ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \
1419		    -e "s:^DEFAULT_M4[  ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \
1420                    ${subdir}/Makefile.tem >> ${Makefile}
1421  
1422	    sed -e "s:^GDB_TK[	 ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
1423	    mv -f ${Makefile}.tem ${Makefile}
1424
1425	    # If this is a Canadian Cross, preset the values of many more
1426	    # tools.
1427	    if [ "${build}" != "${host}" ]; then
1428		for var in ${tools}; do
1429		    eval val=\$${var}
1430		    sed -e "/^${var}[ 	]*=/{
1431			   :loop1
1432			   /\\\\$/ N
1433			   /\\\\$/ b loop1
1434			   s/\\\\\\n//g
1435			   s%^${var}[ 	]*=.*$%${var} = ${val}%
1436			   }" ${Makefile} > ${Makefile}.tem
1437		    mv -f ${Makefile}.tem ${Makefile}
1438		done
1439	    fi
1440
1441            # final copy now in ${Makefile}
1442
1443        else
1444           echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2
1445        fi
1446
1447        rm -f ${subdir}/Makefile.tem
1448
1449        case "${host_makefile_frag}" in
1450        "") using= ;;
1451        *) using="and \"${host_makefile_frag}\"" ;;
1452        esac
1453
1454        case "${target_makefile_frag}" in
1455        "") ;;
1456        *) using="${using} and \"${target_makefile_frag}\"" ;;
1457        esac
1458
1459        case "${site_makefile_frag}" in
1460        "") ;;
1461        *) using="${using} and \"${site_makefile_frag}\"" ;;
1462        esac
1463
1464        newusing=`echo "${using}" | sed 's/and/using/'`
1465        using=${newusing}
1466        echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using}
1467
1468        . ${tmpfile}.pos
1469
1470        # describe the chosen configuration in config.status.
1471        # Make that file a shellscript which will reestablish
1472        # the same configuration.  Used in Makefiles to rebuild
1473        # Makefiles.
1474
1475        case "${norecursion}" in
1476        "") arguments="${arguments} --norecursion" ;;
1477        *) ;;
1478        esac
1479
1480        if [ ${subdir} = . ] ; then
1481            echo "#!/bin/sh
1482# ${NO_EDIT}
1483# This directory was configured as follows:
1484${progname}" ${arguments}  "
1485# ${using}" > ${subdir}/config.new
1486        else
1487            echo "#!/bin/sh
1488# ${NO_EDIT}
1489# This directory was configured as follows:
1490cd ${invsubdir}
1491${progname}" ${arguments}  "
1492# ${using}" > ${subdir}/config.new
1493        fi
1494        chmod a+x ${subdir}/config.new
1495        if [ -r ${subdir}/config.back ] ; then
1496                mv -f ${subdir}/config.back ${subdir}/config.status
1497        fi
1498	${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status
1499        ;;
1500
1501    *)  rm -f ${Makefile} ${subdir}/config.status ${links} ;;
1502    esac
1503done
1504
1505# If there are subdirectories, then recur.
1506if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then 
1507        for configdir in ${configdirs} ${extraconfigdirs} ; do
1508
1509		# If configdir contains ',' it is
1510		# srcdir,builddir,target_alias
1511		# These come from extraconfigdirs.
1512		case ${configdir} in
1513		*,*)
1514		    eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
1515		    ;;
1516		*)
1517		    cfg_dir=${configdir}
1518		    bld_dir=${configdir}
1519		    tgt_alias=${target_alias}
1520		    ;;
1521		esac
1522
1523                if [ -d ${srcdir}/${cfg_dir} ] ; then
1524                        eval echo Configuring ${configdir}... ${redirect}
1525                        case "${srcdir}" in
1526                        ".") ;;
1527                        *)
1528                                if [ ! -d ./${bld_dir} ] ; then
1529                                        if mkdir ./${bld_dir} ; then
1530                                                true
1531                                        else
1532                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${bld_dir}" 1>&2
1533                                                exit 1
1534                                        fi
1535                                fi
1536                                ;;
1537                        esac
1538
1539                        POPDIR=${PWD=`pwd`}
1540                        cd ${bld_dir} 
1541
1542### figure out what to do with srcdir
1543                        case "${srcdir}" in
1544                        ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
1545                        /*) # absolute path
1546                                newsrcdir=${srcdir}/${cfg_dir}
1547                                srcdiroption="--srcdir=${newsrcdir}"
1548                                ;;
1549                        ?:*) # absolute path on win32
1550                                newsrcdir=${srcdir}/${cfg_dir}
1551                                srcdiroption="--srcdir=${newsrcdir}"
1552                                ;;
1553                        *) # otherwise relative
1554                                newsrcdir=../${srcdir}/${cfg_dir}
1555                                srcdiroption="--srcdir=${newsrcdir}"
1556                                ;;
1557                        esac
1558
1559			# Handle --cache-file=../XXX
1560			case "${cache_file}" in
1561			"") # empty
1562				;;
1563			/*) # absolute path
1564				cache_file_option="--cache-file=${cache_file}"
1565				;;
1566			?:*) # absolute path on win32
1567				cache_file_option="--cache-file=${cache_file}"
1568				;;
1569			*) # relative path
1570				cache_file_option="--cache-file=../${cache_file}"
1571				;;
1572			esac
1573
1574### check for guested configure, otherwise fix possibly relative progname
1575                        if [ -f ${newsrcdir}/configure ] ; then
1576                                recprog=${newsrcdir}/configure
1577                        elif [ -f ${newsrcdir}/configure.in ] ; then
1578                                case "${progname}" in
1579                                /*)     recprog=${progname} ;;
1580                                ?:*)    recprog=${progname} ;;
1581                                *)      recprog=../${progname} ;;
1582                                esac
1583			else
1584				eval echo No configuration information in ${cfg_dir} ${redirect}
1585				recprog=
1586                        fi
1587
1588### The recursion line is here.
1589			if [ ! -z "${recprog}" ] ; then
1590	                        if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
1591        	                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
1592                	                ${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
1593	                                true
1594        	                else
1595					echo Configure in `pwd` failed, exiting. 1>&2
1596                	                exit 1
1597                        	fi
1598			fi
1599
1600                        cd ${POPDIR}
1601                fi
1602        done
1603fi
1604
1605# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
1606# and reset the trap handler.
1607rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
1608trap 0
1609
1610exit 0
1611
1612#
1613# Local Variables:
1614# fill-column: 131
1615# End:
1616#
1617
1618# end of configure
1619