1#!/bin/sh
2
3### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
4
5# Configuration script
6# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 1997
7# Free Software Foundation, Inc.
8
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13# 
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18# 
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23# This file was originally written by K. Richard Pixley.
24
25#
26# Shell script to create proper links to machine-dependent files in
27# preparation for compilation.
28#
29# If configure succeeds, it leaves its status in config.status.
30# If configure fails after disturbing the status quo, 
31#       config.status is removed.
32#
33
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.1 $"
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# default exec_prefix
580case "${exec_prefixoption}" in
581"") exec_prefix="\$(prefix)" ;;
582*) ;;
583esac
584
585# Define the trigger file to make sure configure will re-run whenever
586# the gcc version number changes.
587if [ "${with_gcc_version_trigger+set}" = set ]; then
588    gcc_version_trigger="$with_gcc_version_trigger"
589    gcc_version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${with_gcc_version_trigger}`
590else
591    # If gcc's sources are available, define the trigger file.
592    if [ -f ${topsrcdir}/gcc/version.c ] ; then
593	gcc_version_trigger=${topsrcdir}/gcc/version.c
594	gcc_version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${gcc_version_trigger}`
595	case "$arguments" in
596	  *--with-gcc-version-trigger=$gcc_version_trigger* )
597	    ;;
598	  * )
599	    # Make sure configure.in knows about this.
600	    arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments"
601	    ;;
602	esac
603	withoptions="--with-gcc-version-trigger=$gcc_version_trigger $withoptions"
604    fi
605fi
606
607### break up ${srcdir}/configure.in.
608case "`grep '^# per\-host:' ${srcdir}/configure.in`" in
609"")
610        echo '***' ${srcdir}/configure.in has no \"per-host:\" line. 1>&2
611	# Check for a directory that's been converted to use autoconf since
612	# it was last configured.
613	if grep AC_OUTPUT ${srcdir}/configure.in >/dev/null ; then
614	  echo '***' Hmm, looks like this directory has been autoconfiscated. 1>&2
615	  if [ -r ${srcdir}/configure ] ; then
616	    echo '***' Running the local configure script. 1>&2
617	    case "${cache_file}" in
618	    "") cache_file_option= ;;
619	    *)  cache_file_option="--cache-file=${cache_file}" ;;
620	    esac
621	    srcdiroption="--srcdir=${srcdir}"
622	    case "${build_alias}" in
623	    "") buildopt= ;;
624	    *)  buildopt="--build=${build_alias}" ;;
625	    esac
626	    eval exec ${config_shell} ${srcdir}/configure ${verbose} \
627		${buildopt} --host=${host_alias} --target=${target_alias} \
628		${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
629		${srcdiroption} ${diroptions} \
630		${program_prefixoption} ${program_suffixoption} \
631		${program_transform_nameoption} ${site_option} \
632		${withoptions} ${withoutoptions} \
633		${enableoptions} ${disableoptions} ${floating_pointoption} \
634		${cache_file_option} ${removing} ${other_options} ${redirect}
635	  else
636	    echo '***' There is no configure script present though. 1>&2
637	  fi
638	fi
639        exit 1
640        ;;
641*) ;;
642esac
643
644case "`grep '^# per\-target:' ${srcdir}/configure.in`" in
645"")
646        echo '***' ${srcdir}/configure.in has no \"per-target:\" line. 1>&2
647        exit 1
648        ;;
649*) ;;
650esac
651
652case "${TMPDIR}" in
653"") TMPDIR=/tmp ; export TMPDIR ;;
654*) ;;
655esac
656
657# keep this filename short for &%*%$*# 14 char file names
658tmpfile=${TMPDIR}/cONf$$
659# Note that under many versions of sh a trap handler for 0 will *override* any
660# exit status you explicitly specify!  At this point, the only non-error exit
661# is at the end of the script; these actions are duplicated there, minus
662# the "exit 1".  Don't use "exit 0" anywhere after this without resetting the
663# trap handler, or you'll lose.
664trap "rm -f Makefile.tem ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos; exit 1" 0 1 2 15
665
666# split ${srcdir}/configure.in into common, per-host, per-target,
667# and post-target parts.  Post-target is optional.
668sed -e '/^# per\-host:/,$d' ${srcdir}/configure.in > ${tmpfile}.com
669sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.hst
670if grep '^# post-target:' ${srcdir}/configure.in >/dev/null ; then
671  sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.tgt
672  sed -e '1,/^# post\-target:/d' ${srcdir}/configure.in > ${tmpfile}.pos
673else
674  sed -e '1,/^# per\-target:/d' ${srcdir}/configure.in > ${tmpfile}.tgt
675  echo >${tmpfile}.pos
676fi
677
678### do common part of configure.in
679
680# If the language specific compiler does not exist, but the "gcc" directory does,
681# we will skip this directory; in this case the sub-directory's common part
682# of configure.in will create a small shell script "skip-this-dir" containing
683# commands to completely clean up any temporary or created files.
684
685. ${tmpfile}.com
686
687if test -f skip-this-dir; then
688	# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
689	# and reset the trap handler.
690	trap '' 0
691	rm -f Makefile* ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
692	# Execute the final clean-up actions
693	${config_shell} skip-this-dir
694	# and stop configuring this directory.
695	exit 0
696fi
697
698# some sanity checks on configure.in
699case "${srctrigger}" in
700"")
701        echo '***' srctrigger not set in ${PWD=`pwd`}/configure.in.  1>&2
702        exit 1
703        ;;
704*) ;;
705esac
706
707case "${build_alias}" in
708"")
709	if result=`${config_shell} ${configsub} ${host_alias}` ; then
710	    build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
711	    build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
712	    build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
713	    build=${build_cpu}-${build_vendor}-${build_os}
714	    build_alias=${host_alias}
715	fi
716	;;
717*)
718	if result=`${config_shell} ${configsub} ${build_alias}` ; then
719	    buildopt="--build=${build_alias}"
720	    build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
721	    build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
722	    build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
723	    build=${build_cpu}-${build_vendor}-${build_os}
724	else
725	    echo "Unrecognized build system name ${build_alias}." 1>&2
726	    exit 1
727	fi
728	;;
729esac
730
731if result=`${config_shell} ${configsub} ${host_alias}` ; then
732    true
733else
734    echo "Unrecognized host system name ${host_alias}." 1>&2
735    exit 1
736fi
737host_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
738host_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
739host_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
740host=${host_cpu}-${host_vendor}-${host_os}
741
742. ${tmpfile}.hst
743
744if result=`${config_shell} ${configsub} ${target_alias}` ; then
745    true
746else
747    echo "Unrecognized target system name ${target_alias}." 1>&2
748    exit 1
749fi
750target_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
751target_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
752target_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
753target=${target_cpu}-${target_vendor}-${target_os}
754
755. ${tmpfile}.tgt
756
757# Find the source files, if location was not specified.
758case "${srcdir}" in
759"")
760        srcdirdefaulted=1
761        srcdir=.
762        if [ ! -r ${srctrigger} ] ; then
763                srcdir=..
764        fi
765        ;;
766*) ;;
767esac
768
769if [ ! -r ${srcdir}/${srctrigger} ] ; then
770        case "${srcdirdefaulted}" in
771        "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/${srcdir}" 1>&2 ;;
772        *)  echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/. or ${PWD=`pwd`}/.." 1>&2 ;;
773        esac
774
775        echo '***' \(At least ${srctrigger} is missing.\) 1>&2
776        exit 1
777fi
778
779# Some systems (e.g., one of the i386-aix systems the gas testers are
780# using) don't handle "\$" correctly, so don't use it here.
781tooldir='$(exec_prefix)'/${target_alias}
782
783if [ "${host_alias}" != "${target_alias}" ] ; then
784    if [ "${program_prefixoption}" = "" ] ; then
785        if [ "${program_suffixoption}" = "" ] ; then 
786            if [ "${program_transform_nameoption}" = "" ] ; then
787                program_prefix=${target_alias}- ;
788            fi
789        fi
790    fi
791fi
792
793# Merge program_prefix and program_suffix onto program_transform_name.
794# (program_suffix used to use $, but it's hard to preserve $ through both
795# make and sh.)
796if [ "${program_suffix}" != "" ] ; then
797    program_transform_name="-e s,\\\\(.*\\\\),\\\\1${program_suffix}, ${program_transform_name}"
798fi
799
800if [ "${program_prefix}" != "" ] ; then
801    program_transform_name="-e s,^,${program_prefix}, ${program_transform_name}"
802fi
803
804# If CC and CXX are not set in the environment, and the Makefile
805# exists, try to extract them from it.  This is to handle running
806# ./config.status by hand.
807if [ -z "${CC}" ] && [ -r Makefile ]; then
808  sed -n -e ':loop
809/\\$/ N
810s/\\\n//g
811t loop
812/^CC[ 	]*=/ s/CC[ 	]*=[ 	]*\(.*\)/\1/p' < Makefile > Makefile.cc
813  CC=`tail -1 Makefile.cc`
814  rm -f Makefile.cc
815fi
816
817if [ -z "${CFLAGS}" ] && [ -r Makefile ]; then
818  sed -n -e ':loop
819/\\$/ N
820s/\\\n//g
821t loop
822/^CFLAGS[ 	]*=/ s/CFLAGS[ 	]*=[ 	]*\(.*\)/\1/p' < Makefile > Makefile.cc
823  CFLAGS=`tail -1 Makefile.cc`
824  rm -f Makefile.cc
825fi
826
827if [ -z "${CXX}" ] && [ -r Makefile ]; then
828  sed -n -e ':loop
829/\\$/ N
830s/\\\n//g
831t loop
832/^CXX[ 	]*=/ s/CXX[ 	]*=[ 	]*\(.*\)/\1/p' < Makefile > Makefile.cc
833  CXX=`tail -1 Makefile.cc`
834  rm -f Makefile.cc
835fi
836
837if [ -z "${CXXFLAGS}" ] && [ -r Makefile ]; then
838  sed -n -e ':loop
839/\\$/ N
840s/\\\n//g
841t loop
842/^CXXFLAGS[ 	]*=/ s/CXXFLAGS[ 	]*=[ 	]*\(.*\)/\1/p' < Makefile > Makefile.cc
843  CXXFLAGS=`tail -1 Makefile.cc`
844  rm -f Makefile.cc
845fi
846
847# Generate a default definition for YACC.  This is used if the makefile can't
848# locate bison or byacc in objdir.
849
850for prog in 'bison -y' byacc yacc
851do
852  set dummy $prog; tmp=$2
853  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
854  for dir in $PATH; do
855    test -z "$dir" && dir=.
856    if test -f $dir/$tmp; then
857      DEFAULT_YACC="$prog"
858      break
859    fi
860  done
861  IFS="$save_ifs"
862
863  test -n "$DEFAULT_YACC" && break
864done
865
866# Generate a default definition for M4.  This is used if the makefile can't
867# locate m4 in objdir.
868
869for prog in gm4 gnum4 m4
870do
871  set dummy $prog; tmp=$2
872  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
873  for dir in $PATH; do
874    test -z "$dir" && dir=.
875    if test -f $dir/$tmp; then
876      DEFAULT_M4="$prog"
877      break
878    fi
879  done
880  IFS="$save_ifs"
881
882  test -n "$DEFAULT_M4" && break
883done
884
885# Generate a default definition for LEX.  This is used if the makefile can't
886# locate flex in objdir.
887
888for prog in flex lex
889do
890  set dummy $prog; tmp=$2
891  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
892  for dir in $PATH; do
893    test -z "$dir" && dir=.
894    if test -f $dir/$tmp; then
895      DEFAULT_LEX="$prog"
896      break
897    fi
898  done
899  IFS="$save_ifs"
900
901  test -n "$DEFAULT_LEX" && break
902done
903
904if [ "${build}" != "${host}" ]; then
905  # If we are doing a Canadian Cross, in which the host and build systems
906  # are not the same, we set reasonable default values for the tools.
907
908  tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD"
909  tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET"
910  tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET HOST_PREFIX"
911  tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM"
912  tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET"
913  tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
914
915  for var in ${tools}; do
916    if [ -z "`eval 'echo $'"${var}"`" ] && [ -r Makefile ]; then
917      sed -n -e ':loop
918/\\$/ N
919s/\\\n//g
920t loop
921/^'"${var}"'[ 	]*=/ s/'"${var}"'[ 	]*=[ 	]*\(.*\)/\1/p' \
922	< Makefile > Makefile.v
923      t=`tail -1 Makefile.v`
924      if [ -n "${t}" ]; then
925	eval "${var}='${t}'"
926      fi
927      rm -f Makefile.v
928    fi
929  done
930
931  AR=${AR-${host_alias}-ar}
932  AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar}
933  AS=${AS-${host_alias}-as}
934  AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
935  BISON=${BISON-bison}
936  CC=${CC-${host_alias}-gcc}
937  CFLAGS=${CFLAGS-"-g -O2"}
938  CXX=${CXX-${host_alias}-c++}
939  CXXFLAGS=${CXXFLAGS-"-g -O2"}
940  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
941  CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
942  CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
943  DLLTOOL=${DLLTOOL-${host_alias}-dlltool}
944  DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool}
945  GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
946  HOST_PREFIX=${build_alias}-
947  HOST_PREFIX_1=${build_alias}-
948  LD=${LD-${host_alias}-ld}
949  LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld}
950  MAKEINFO=${MAKEINFO-makeinfo}
951  NM=${NM-${host_alias}-nm}
952  NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm}
953  RANLIB=${RANLIB-${host_alias}-ranlib}
954  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib}
955  WINDRES=${WINDRES-${host_alias}-windres}
956  WINDRES_FOR_TARGET=${WINDRES_FOR_TARGET-${target_alias}-windres}
957
958  if [ -z "${YACC}" ]; then
959    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
960    for dir in $PATH; do
961      test -z "$dir" && dir=.
962      if test -f $dir/bison; then
963	YACC="bison -y"
964	break
965      fi
966      if test -f $dir/byacc; then
967	YACC=byacc
968	break
969      fi
970      if test -f $dir/yacc; then
971	YACC=yacc
972	break
973      fi
974    done
975    IFS="$save_ifs"
976    if [ -z "${YACC}" ]; then
977      YACC="bison -y"
978    fi
979  fi
980
981  if [ -z "${LEX}" ]; then
982    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
983    for dir in $PATH; do
984      test -z "$dir" && dir=.
985      if test -f $dir/flex; then
986	LEX=flex
987	break
988      fi
989      if test -f $dir/lex; then
990	LEX=lex
991	break
992      fi
993    done
994    IFS="$save_ifs"
995    LEX=${LEX-flex}
996  fi
997
998  # Export variables which autoconf might try to set.
999  export AS
1000  export AR
1001  export CC_FOR_BUILD
1002  export DLLTOOL
1003  export LD
1004  export NM
1005  export RANLIB
1006  export WINDRES
1007else
1008  # If CC is still not set, try to get gcc.
1009  if [ -z "${CC}" ]; then
1010    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
1011    for dir in $PATH; do
1012      test -z "$dir" && dir=.
1013      if test -f $dir/gcc; then
1014	CC="gcc"
1015	echo 'void f(){}' > conftest.c
1016	if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1017	  CFLAGS=${CFLAGS-"-g -O2"}
1018	  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1019	else
1020	  CFLAGS=${CFLAGS-"-O2"}
1021	  CXXFLAGS=${CXXFLAGS-"-O2"}
1022	fi
1023	rm -f conftest*
1024	break
1025      fi
1026    done
1027    IFS="$save_ifs"
1028    CC=${CC-cc}
1029  else
1030    if test -z "${CFLAGS}"; then
1031      # Here CC is set but CFLAGS is not.  Use a quick hack to use -O2 if CC
1032      # is set to a version of gcc.
1033      case "${CC}" in
1034      *gcc)
1035	echo 'void f(){}' > conftest.c
1036	if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1037	  CFLAGS=${CFLAGS-"-g -O2"}
1038	  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1039	else
1040	  CFLAGS=${CFLAGS-"-O2"}
1041	  CXXFLAGS=${CXXFLAGS-"-O2"}
1042	fi
1043	rm -f conftest*
1044	;;
1045      esac
1046    fi
1047  fi
1048
1049  CXX=${CXX-"c++"}
1050  CFLAGS=${CFLAGS-"-g"}
1051  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1052fi
1053
1054export CC
1055export CXX
1056export CFLAGS
1057export CXXFLAGS
1058
1059# FIXME: This should be in configure.in, not configure
1060case "$host" in
1061	*go32*)
1062	    enable_gdbtk=no ;;
1063	*msdosdjgpp*)
1064	    enable_gdbtk=no ;;
1065	*cygwin32*)
1066	    enable_gdbtk=no ;;
1067esac
1068
1069# FIXME: This should be in configure.in, not configure
1070# Determine whether gdb needs tk/tcl or not.
1071if [ "$enable_gdbtk" != "no" ]; then
1072	GDB_TK="all-tcl all-tk all-itcl all-tix"
1073else
1074	GDB_TK=""
1075fi
1076
1077for subdir in . ${subdirs} ; do
1078
1079    # ${subdir} is relative path from . to the directory we're currently
1080    # configuring.
1081    # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
1082    invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
1083
1084    ### figure out what to do with srcdir
1085    case "${srcdir}" in
1086        ".")  # no -srcdir option.  We're building in place.
1087                makesrcdir=. ;;
1088        /*) # absolute path
1089                makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
1090                ;;
1091        *) # otherwise relative
1092                case "${subdir}" in
1093                .) makesrcdir=${srcdir} ;;
1094                *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;;
1095                esac
1096                ;;
1097    esac
1098
1099    if [ "${subdir}/" != "./" ] ; then
1100        Makefile=${subdir}/Makefile
1101    fi
1102
1103    if [ ! -d ${subdir} ] ; then
1104        if mkdir ${subdir} ; then
1105                true
1106        else
1107                echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2
1108                exit 1
1109        fi
1110    fi
1111
1112    case "${removing}" in
1113    "")
1114        case "${subdir}" in
1115        .) ;;
1116        *) eval echo Building in ${subdir} ${redirect} ;;
1117        esac
1118
1119        # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1120        # Set up the list of links to be made.
1121        # ${links} is the list of link names, and ${files} is the list of names to link to.
1122
1123        # Make the links.
1124        configlinks="${links}"
1125        if [ -r ${subdir}/config.status ] ; then
1126                mv -f ${subdir}/config.status ${subdir}/config.back
1127        fi
1128        while [ -n "${files}" ] ; do
1129                # set file to car of files, files to cdr of files
1130                set ${files}; file=$1; shift; files=$*
1131                set ${links}; link=$1; shift; links=$*
1132
1133                if [ ! -r ${srcdir}/${file} ] ; then
1134                  if [ ! -r ${file} ] ; then
1135		    
1136                        echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1137                        echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1138                        exit 1
1139		  else
1140			srcfile=${file}
1141		  fi
1142		else
1143			srcfile=${srcdir}/${file}
1144                fi
1145
1146                ${remove} -f ${link}
1147		# Make a symlink if possible, otherwise try a hard link
1148		if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1149			true
1150		else
1151			# We need to re-remove the file because Lynx leaves a 
1152			# very strange directory there when it fails an NFS symlink.
1153			${remove} -r -f ${link}
1154			${hard_link} ${srcfile} ${link}
1155		fi
1156                if [ ! -r ${link} ] ; then
1157                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1158                        exit 1
1159                fi
1160
1161                echo "Linked \"${link}\" to \"${srcfile}\"."
1162        done
1163
1164        # Create a .gdbinit file which runs the one in srcdir
1165        # and tells GDB to look there for source files.
1166
1167        if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
1168                case ${srcdir} in
1169                .) ;;
1170                *) cat > ${subdir}/.gdbinit <<EOF
1171# ${NO_EDIT}
1172dir ${makesrcdir}
1173dir .
1174source ${makesrcdir}/.gdbinit
1175EOF
1176                        ;;
1177                esac
1178        fi
1179
1180        # Install a makefile, and make it set VPATH
1181        # if necessary so that the sources are found.
1182        # Also change its value of srcdir.
1183        # NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
1184        # been somewhat optimized and is perhaps a bit twisty.
1185
1186        # code is order so as to try to sed the smallest input files we know.
1187        # so do these separately because I don't trust the order of sed -e expressions.
1188
1189        # the five makefile fragments MUST end up in the resulting Makefile in this order: 
1190        # package macros, target, host, site, and package rules.
1191
1192        if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
1193
1194            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
1195            rm -f ${subdir}/${Makefile}.tem
1196            case "${package_makefile_rules_frag}" in
1197              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
1198              *)
1199                      if [ ! -f ${package_makefile_rules_frag} ] ; then
1200                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
1201                      fi
1202                      if [ -f ${package_makefile_rules_frag} ] ; then
1203                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
1204                      else
1205                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
1206                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1207                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
1208                      fi
1209            esac
1210            # working copy now in ${Makefile}.tem
1211
1212            # Conditionalize for this site.
1213            rm -f ${Makefile}
1214              case "${site}" in
1215              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1216              *)
1217                      site_makefile_frag=${srcdir}/config/ms-${site}
1218
1219                      if [ -f ${site_makefile_frag} ] ; then
1220                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
1221                                      > ${Makefile}
1222                      else
1223                              mv ${subdir}/Makefile.tem ${Makefile}
1224                              site_makefile_frag=
1225                      fi
1226                      ;;
1227            esac
1228            # working copy now in ${Makefile}
1229
1230            # Conditionalize the makefile for this host.
1231            rm -f ${subdir}/Makefile.tem
1232            case "${host_makefile_frag}" in
1233              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1234              *)
1235                      if [ ! -f ${host_makefile_frag} ] ; then
1236                              host_makefile_frag=${srcdir}/${host_makefile_frag}
1237                      fi
1238                      if [ -f ${host_makefile_frag} ] ; then
1239                              sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1240                      else
1241                              echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
1242                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1243                              mv ${Makefile} ${subdir}/Makefile.tem
1244                      fi
1245            esac
1246            # working copy now in ${subdir)/Makefile.tem
1247
1248            # Conditionalize the makefile for this target.
1249            rm -f ${Makefile}
1250            case "${target_makefile_frag}" in
1251              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1252              *)
1253                      if [ ! -f ${target_makefile_frag} ] ; then
1254                              target_makefile_frag=${srcdir}/${target_makefile_frag}
1255                      fi
1256                      if [ -f ${target_makefile_frag} ] ; then
1257                              sed -e "/^####/  r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
1258                      else
1259                              mv ${subdir}/Makefile.tem ${Makefile}
1260                              target_makefile_frag=
1261                      fi
1262                      ;;
1263            esac
1264            # working copy now in ${Makefile}
1265
1266            # Emit the default values of this package's macros.
1267            rm -f ${subdir}/Makefile.tem
1268            case "${package_makefile_frag}" in
1269              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1270              *)
1271                      if [ ! -f ${package_makefile_frag} ] ; then
1272                              package_makefile_frag=${srcdir}/${package_makefile_frag}
1273                      fi
1274                      if [ -f ${package_makefile_frag} ] ; then
1275                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1276                      else
1277                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
1278                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1279                              mv ${Makefile} ${subdir}/Makefile.tem
1280                      fi
1281            esac
1282            # real copy now in ${subdir}/Makefile.tem
1283
1284            # prepend warning about editting, and a bunch of variables.
1285            rm -f ${Makefile}
1286            cat > ${Makefile} <<EOF
1287# ${NO_EDIT}
1288VPATH = ${makesrcdir}
1289links = ${configlinks}
1290host_alias = ${host_alias}
1291host_cpu = ${host_cpu}
1292host_vendor = ${host_vendor}
1293host_os = ${host_os}
1294host_canonical = ${host_cpu}-${host_vendor}-${host_os}
1295target_alias = ${target_alias}
1296target_cpu = ${target_cpu}
1297target_vendor = ${target_vendor}
1298target_os = ${target_os}
1299target_canonical = ${target_cpu}-${target_vendor}-${target_os}
1300EOF
1301	    case "${build}" in
1302	      "") ;;
1303	      *)  cat >> ${Makefile} << EOF
1304build_alias = ${build_alias}
1305build_cpu = ${build_cpu}
1306build_vendor = ${build_vendor}
1307build_os = ${build_os}
1308build_canonical = ${build_cpu}-${build_vendor}-${build_os}
1309EOF
1310	    esac
1311
1312            case "${package_makefile_frag}" in
1313              "") ;;
1314              /*) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
1315              *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
1316            esac
1317
1318            case "${target_makefile_frag}" in
1319              "") ;;
1320              /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
1321              *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
1322            esac
1323
1324            case "${host_makefile_frag}" in
1325              "") ;;
1326              /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
1327              *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
1328            esac
1329
1330            if [ "${site_makefile_frag}" != "" ] ; then
1331                echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
1332            fi 
1333
1334	    # record if we want to build shared libs.
1335	    if test -z "${enable_shared}"; then
1336	        echo enable_shared = no >> ${Makefile}
1337	    else
1338	        echo enable_shared = ${enable_shared} >> ${Makefile}
1339	    fi
1340	    # record if we want to rumtime library stuff installed in libsubdir.
1341	    if test -z "${enable_version_specific_runtime_libs}"; then
1342	        echo enable_version_specific_runtime_libs = no >> ${Makefile}
1343	    else
1344	        echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
1345	    fi
1346
1347	    # Emit a macro which describes the file containing gcc's
1348	    # version number.
1349	    echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
1350	    # And emit a macro defining gcc's version number.
1351	    echo gcc_version = ${gcc_version} >> ${Makefile}
1352
1353            # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
1354            # remove any form feeds.
1355            if [ -z "${subdirs}" ]; then
1356                rm -f ${subdir}/Makefile.tm2
1357                sed -e "s:^SUBDIRS[ 	]*=.*$:SUBDIRS = ${configdirs}:" \
1358                    -e "s:^NONSUBDIRS[ 	]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \
1359                    ${subdir}/Makefile.tem > ${subdir}/Makefile.tm2
1360                rm -f ${subdir}/Makefile.tem
1361                mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem
1362	    fi
1363	    sed     -e "s|^prefix[ 	]*=.*$|prefix = ${prefix}|" \
1364                    -e "s|^exec_prefix[ 	]*=.*$|exec_prefix = ${exec_prefix}|" \
1365                    -e "s|^bindir[ 	]*=.*$|bindir = ${bindir}|" \
1366                    -e "s|^sbindir[ 	]*=.*$|sbindir = ${sbindir}|" \
1367                    -e "s|^libexecdir[ 	]*=.*$|libexecdir = ${libexecdir}|" \
1368                    -e "s|^datadir[ 	]*=.*$|datadir = ${datadir}|" \
1369                    -e "s|^sysconfdir[ 	]*=.*$|sysconfdir = ${sysconfdir}|" \
1370                    -e "s|^sharedstatedir[ 	]*=.*$|sharedstatedir = ${sharedstatedir}|" \
1371                    -e "s|^localstatedir[ 	]*=.*$|localstatedir = ${localstatedir}|" \
1372                    -e "s|^libdir[ 	]*=.*$|libdir = ${libdir}|" \
1373                    -e "s|^includedir[ 	]*=.*$|includedir = ${includedir}|" \
1374                    -e "s|^oldincludedir[ 	]*=.*$|oldincludedir = ${oldincludedir}|" \
1375                    -e "s|^infodir[ 	]*=.*$|infodir = ${infodir}|" \
1376                    -e "s|^mandir[ 	]*=.*$|mandir = ${mandir}|" \
1377		    -e "/^CC[ 	]*=/{
1378			:loop1
1379			/\\\\$/ N
1380			s/\\\\\\n//g
1381			t loop1
1382			s%^CC[ 	]*=.*$%CC = ${CC}%
1383			}" \
1384		    -e "/^CXX[ 	]*=/{
1385			:loop2
1386			/\\\\$/ N
1387			s/\\\\\\n//g
1388			t loop2
1389			s%^CXX[ 	]*=.*$%CXX = ${CXX}%
1390			}" \
1391		    -e "/^CFLAGS[ 	]*=/{
1392			:loop3
1393			/\\\\$/ N
1394			s/\\\\\\n//g
1395			t loop3
1396			s%^CFLAGS[ 	]*=.*$%CFLAGS = ${CFLAGS}%
1397			}" \
1398		    -e "/^CXXFLAGS[ 	]*=/{
1399			:loop4
1400			/\\\\$/ N
1401			s/\\\\\\n//g
1402			t loop4
1403			s%^CXXFLAGS[ 	]*=.*$%CXXFLAGS = ${CXXFLAGS}%
1404			}" \
1405		    -e "s|^SHELL[	 ]*=.*$|SHELL = ${config_shell}|" \
1406		    -e "s:^GDB_TK[	 ]*=.*$:GDB_TK = ${GDB_TK}:" \
1407                    -e "s|^srcdir[ 	]*=.*$|srcdir = ${makesrcdir}|" \
1408                    -e "s///" \
1409                    -e "s:^program_prefix[ 	]*=.*$:program_prefix = ${program_prefix}:" \
1410                    -e "s:^program_suffix[ 	]*=.*$:program_suffix = ${program_suffix}:" \
1411                    -e "s:^program_transform_name[ 	]*=.*$:program_transform_name = ${program_transform_name}:" \
1412                    -e "s|^tooldir[ 	]*=.*$|tooldir = ${tooldir}|" \
1413                    -e "s|^build_tooldir[ 	]*=.*$|build_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	    # If this is a Canadian Cross, preset the values of many more
1420	    # tools.
1421	    if [ "${build}" != "${host}" ]; then
1422		for var in ${tools}; do
1423		    val=`eval 'echo $'"${var}"`
1424		    sed -e "/^${var}[ 	]*=/{
1425			   :loop1
1426			   /\\\\$/ N
1427			   /\\\\$/ b loop1
1428			   s/\\\\\\n//g
1429			   s%^${var}[ 	]*=.*$%${var} = ${val}%
1430			   }" ${Makefile} > ${Makefile}.tem
1431		    mv -f ${Makefile}.tem ${Makefile}
1432		done
1433	    fi
1434
1435            # final copy now in ${Makefile}
1436
1437        else
1438           echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2
1439        fi
1440
1441        rm -f ${subdir}/Makefile.tem
1442
1443        case "${host_makefile_frag}" in
1444        "") using= ;;
1445        *) using="and \"${host_makefile_frag}\"" ;;
1446        esac
1447
1448        case "${target_makefile_frag}" in
1449        "") ;;
1450        *) using="${using} and \"${target_makefile_frag}\"" ;;
1451        esac
1452
1453        case "${site_makefile_frag}" in
1454        "") ;;
1455        *) using="${using} and \"${site_makefile_frag}\"" ;;
1456        esac
1457
1458        newusing=`echo "${using}" | sed 's/and/using/'`
1459        using=${newusing}
1460        echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using}
1461
1462        . ${tmpfile}.pos
1463
1464        # describe the chosen configuration in config.status.
1465        # Make that file a shellscript which will reestablish
1466        # the same configuration.  Used in Makefiles to rebuild
1467        # Makefiles.
1468
1469        case "${norecursion}" in
1470        "") arguments="${arguments} --norecursion" ;;
1471        *) ;;
1472        esac
1473
1474        if [ ${subdir} = . ] ; then
1475            echo "#!/bin/sh
1476# ${NO_EDIT}
1477# This directory was configured as follows:
1478${progname}" ${arguments}  "
1479# ${using}" > ${subdir}/config.new
1480        else
1481            echo "#!/bin/sh
1482# ${NO_EDIT}
1483# This directory was configured as follows:
1484cd ${invsubdir}
1485${progname}" ${arguments}  "
1486# ${using}" > ${subdir}/config.new
1487        fi
1488        chmod a+x ${subdir}/config.new
1489        if [ -r ${subdir}/config.back ] ; then
1490                mv -f ${subdir}/config.back ${subdir}/config.status
1491        fi
1492	${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status
1493        ;;
1494
1495    *)  rm -f ${Makefile} ${subdir}/config.status ${links} ;;
1496    esac
1497done
1498
1499# If there are subdirectories, then recur.
1500if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then 
1501        for configdir in ${configdirs} ${extraconfigdirs} ; do
1502
1503		# If configdir contains ',' it is
1504		# srcdir,builddir,target_alias
1505		# These come from extraconfigdirs.
1506		case ${configdir} in
1507		*,*)
1508		    eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
1509		    ;;
1510		*)
1511		    cfg_dir=${configdir}
1512		    bld_dir=${configdir}
1513		    tgt_alias=${target_alias}
1514		    ;;
1515		esac
1516
1517                if [ -d ${srcdir}/${cfg_dir} ] ; then
1518                        eval echo Configuring ${configdir}... ${redirect}
1519                        case "${srcdir}" in
1520                        ".") ;;
1521                        *)
1522                                if [ ! -d ./${bld_dir} ] ; then
1523                                        if mkdir ./${bld_dir} ; then
1524                                                true
1525                                        else
1526                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${bld_dir}" 1>&2
1527                                                exit 1
1528                                        fi
1529                                fi
1530                                ;;
1531                        esac
1532
1533                        POPDIR=${PWD=`pwd`}
1534                        cd ${bld_dir} 
1535
1536### figure out what to do with srcdir
1537                        case "${srcdir}" in
1538                        ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
1539                        /*) # absolute path
1540                                newsrcdir=${srcdir}/${cfg_dir}
1541                                srcdiroption="--srcdir=${newsrcdir}"
1542                                ;;
1543                        ?:*) # absolute path on win32
1544                                newsrcdir=${srcdir}/${cfg_dir}
1545                                srcdiroption="--srcdir=${newsrcdir}"
1546                                ;;
1547                        *) # otherwise relative
1548                                newsrcdir=../${srcdir}/${cfg_dir}
1549                                srcdiroption="--srcdir=${newsrcdir}"
1550                                ;;
1551                        esac
1552
1553			# Handle --cache-file=../XXX
1554			case "${cache_file}" in
1555			"") # empty
1556				;;
1557			/*) # absolute path
1558				cache_file_option="--cache-file=${cache_file}"
1559				;;
1560			?:*) # absolute path on win32
1561				cache_file_option="--cache-file=${cache_file}"
1562				;;
1563			*) # relative path
1564				cache_file_option="--cache-file=../${cache_file}"
1565				;;
1566			esac
1567
1568### check for guested configure, otherwise fix possibly relative progname
1569                        if [ -f ${newsrcdir}/configure ] ; then
1570                                recprog=${newsrcdir}/configure
1571                        elif [ -f ${newsrcdir}/configure.in ] ; then
1572                                case "${progname}" in
1573                                /*)     recprog=${progname} ;;
1574                                ?:*)    recprog=${progname} ;;
1575                                *)      recprog=../${progname} ;;
1576                                esac
1577			else
1578				eval echo No configuration information in ${cfg_dir} ${redirect}
1579				recprog=
1580                        fi
1581
1582### The recursion line is here.
1583			if [ ! -z "${recprog}" ] ; then
1584	                        if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
1585        	                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
1586                	                ${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
1587	                                true
1588        	                else
1589					echo Configure in `pwd` failed, exiting. 1>&2
1590                	                exit 1
1591                        	fi
1592			fi
1593
1594                        cd ${POPDIR}
1595                fi
1596        done
1597fi
1598
1599# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
1600# and reset the trap handler.
1601rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
1602trap '' 0
1603
1604exit 0
1605
1606#
1607# Local Variables:
1608# fill-column: 131
1609# End:
1610#
1611
1612# end of configure
1613