configure revision 80016
1#!/bin/sh
2
3### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
4
5# Configuration script
6# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001
7# Free Software Foundation, Inc.
8
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13# 
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18# 
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23# This file was originally written by K. Richard Pixley.
24
25#
26# Shell script to create proper links to machine-dependent files in
27# preparation for compilation.
28#
29# If configure succeeds, it leaves its status in config.status.
30# If configure fails after disturbing the status quo, 
31#       config.status is removed.
32#
33
34export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0 $argv; kill $$)
35
36remove=rm
37hard_link=ln
38symbolic_link='ln -s'
39
40#for Test
41#remove="echo rm"
42#hard_link="echo ln"
43#symbolic_link="echo ln -s"
44
45# clear some things potentially inherited from environment.
46
47Makefile=Makefile
48Makefile_in=Makefile.in
49arguments=
50build_alias=
51cache_file=config.cache
52cache_file_option=
53configdirs=
54extraconfigdirs=
55diroptions=
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.  Do the same for various Makefile fragments
808# so that they can specify these vars.
809for file in Mafefile ${package_makefile_rules_frag} \
810    ${site:+config/ms-${site}} ${host_makefile_frag} \
811    ${target_makefile_frag} ${package_makefile_frag}
812do
813  if ! test -r $file; then
814    file=${srcdir}/${file}
815    if ! test -r $file; then continue; fi
816  fi
817
818  if [ -z "${CC}" ]; then
819    sed -n -e ':loop
820/\\$/ N
821s/\\\n//g
822t loop
823/^CC[ 	]*=/ s/CC[ 	]*=[ 	]*\(.*\)/\1/p' < $file > Makefile.cc
824    CC=`tail -1 Makefile.cc`
825    rm -f Makefile.cc
826  fi
827
828  if [ -z "${CFLAGS}" ]; then
829    sed -n -e ':loop
830/\\$/ N
831s/\\\n//g
832t loop
833/^CFLAGS[ 	]*=/ s/CFLAGS[ 	]*=[ 	]*\(.*\)/\1/p' < $file > Makefile.cc
834    CFLAGS=`tail -1 Makefile.cc`
835    rm -f Makefile.cc
836  fi
837
838  if [ -z "${CXX}" ]; then
839    sed -n -e ':loop
840/\\$/ N
841s/\\\n//g
842t loop
843/^CXX[ 	]*=/ s/CXX[ 	]*=[ 	]*\(.*\)/\1/p' < $file > Makefile.cc
844    CXX=`tail -1 Makefile.cc`
845    rm -f Makefile.cc
846  fi
847
848  if [ -z "${CXXFLAGS}" ]; then
849    sed -n -e ':loop
850/\\$/ N
851s/\\\n//g
852t loop
853/^CXXFLAGS[ 	]*=/ s/CXXFLAGS[ 	]*=[ 	]*\(.*\)/\1/p' < $file > Makefile.cc
854    CXXFLAGS=`tail -1 Makefile.cc`
855    rm -f Makefile.cc
856  fi
857done
858
859# Generate a default definition for YACC.  This is used if the makefile can't
860# locate bison or byacc in objdir.
861
862for prog in 'bison -y' byacc yacc
863do
864  set dummy $prog; tmp=$2
865  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
866  for dir in $PATH; do
867    test -z "$dir" && dir=.
868    if test -f $dir/$tmp; then
869      DEFAULT_YACC="$prog"
870      break
871    fi
872  done
873  IFS="$save_ifs"
874
875  test -n "$DEFAULT_YACC" && break
876done
877
878# Generate a default definition for M4.  This is used if the makefile can't
879# locate m4 in objdir.
880
881for prog in gm4 gnum4 m4
882do
883  set dummy $prog; tmp=$2
884  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
885  for dir in $PATH; do
886    test -z "$dir" && dir=.
887    if test -f $dir/$tmp; then
888      DEFAULT_M4="$prog"
889      break
890    fi
891  done
892  IFS="$save_ifs"
893
894  test -n "$DEFAULT_M4" && break
895done
896
897# Generate a default definition for LEX.  This is used if the makefile can't
898# locate flex in objdir.
899
900for prog in flex lex
901do
902  set dummy $prog; tmp=$2
903  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
904  for dir in $PATH; do
905    test -z "$dir" && dir=.
906    if test -f $dir/$tmp; then
907      DEFAULT_LEX="$prog"
908      break
909    fi
910  done
911  IFS="$save_ifs"
912
913  test -n "$DEFAULT_LEX" && break
914done
915
916if [ "${build}" != "${host}" ]; then
917  # If we are doing a Canadian Cross, in which the host and build systems
918  # are not the same, we set reasonable default values for the tools.
919
920  tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD"
921  tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET"
922  tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET HOST_PREFIX"
923  tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM"
924  tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET"
925  tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
926  tools="${tools} OBJCOPY OBJDUMP"
927
928  for var in ${tools}; do
929    if eval [ -z \"\$${var}\" ] && [ -r Makefile ]; then
930      sed -n -e ':loop
931/\\$/ N
932s/\\\n//g
933t loop
934/^'"${var}"'[ 	]*=/ s/'"${var}"'[ 	]*=[ 	]*\(.*\)/\1/p' \
935	< Makefile > Makefile.v
936      t=`tail -1 Makefile.v`
937      if [ -n "${t}" ]; then
938	eval "${var}=\${t}"
939      fi
940      rm -f Makefile.v
941    fi
942  done
943
944  AR=${AR-${host_alias}-ar}
945  AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar}
946  AS=${AS-${host_alias}-as}
947  AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
948  BISON=${BISON-bison}
949  CC=${CC-${host_alias}-gcc}
950  CFLAGS=${CFLAGS-"-g -O2"}
951  CXX=${CXX-${host_alias}-c++}
952  CXXFLAGS=${CXXFLAGS-"-g -O2"}
953  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
954  CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
955  CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
956  DLLTOOL=${DLLTOOL-${host_alias}-dlltool}
957  DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool}
958  GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
959  HOST_PREFIX=${build_alias}-
960  HOST_PREFIX_1=${build_alias}-
961  LD=${LD-${host_alias}-ld}
962  LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld}
963  MAKEINFO=${MAKEINFO-makeinfo}
964  NM=${NM-${host_alias}-nm}
965  NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm}
966  RANLIB=${RANLIB-${host_alias}-ranlib}
967  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib}
968  WINDRES=${WINDRES-${host_alias}-windres}
969  WINDRES_FOR_TARGET=${WINDRES_FOR_TARGET-${target_alias}-windres}
970  OBJCOPY=${OBJCOPY-${host_alias}-objcopy}
971  OBJDUMP=${OBJDUMP-${host_alias}-objdump}
972
973  if [ -z "${YACC}" ]; then
974    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
975    for dir in $PATH; do
976      test -z "$dir" && dir=.
977      if test -f $dir/bison; then
978	YACC="bison -y"
979	break
980      fi
981      if test -f $dir/byacc; then
982	YACC=byacc
983	break
984      fi
985      if test -f $dir/yacc; then
986	YACC=yacc
987	break
988      fi
989    done
990    IFS="$save_ifs"
991    if [ -z "${YACC}" ]; then
992      YACC="bison -y"
993    fi
994  fi
995
996  if [ -z "${LEX}" ]; then
997    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
998    for dir in $PATH; do
999      test -z "$dir" && dir=.
1000      if test -f $dir/flex; then
1001	LEX=flex
1002	break
1003      fi
1004      if test -f $dir/lex; then
1005	LEX=lex
1006	break
1007      fi
1008    done
1009    IFS="$save_ifs"
1010    LEX=${LEX-flex}
1011  fi
1012
1013  # Export variables which autoconf might try to set.
1014  export AS
1015  export AR
1016  export CC_FOR_BUILD
1017  export DLLTOOL
1018  export LD
1019  export NM
1020  export RANLIB
1021  export WINDRES
1022  export OBJCOPY
1023  export OBJDUMP
1024else
1025  # If CC is still not set, try to get gcc.
1026  if [ -z "${CC}" ]; then
1027    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
1028    for dir in $PATH; do
1029      test -z "$dir" && dir=.
1030      if test -f $dir/gcc; then
1031	CC="gcc"
1032	echo 'void f(){}' > conftest.c
1033	if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1034	  CFLAGS=${CFLAGS-"-g -O2"}
1035	  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1036	else
1037	  CFLAGS=${CFLAGS-"-O2"}
1038	  CXXFLAGS=${CXXFLAGS-"-O2"}
1039	fi
1040	rm -f conftest*
1041	break
1042      fi
1043    done
1044    IFS="$save_ifs"
1045    CC=${CC-cc}
1046  else
1047    if test -z "${CFLAGS}"; then
1048      # Here CC is set but CFLAGS is not.  Use a quick hack to use -O2 if CC
1049      # is set to a version of gcc.
1050      case "${CC}" in
1051      *gcc)
1052	echo 'void f(){}' > conftest.c
1053	if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1054	  CFLAGS=${CFLAGS-"-g -O2"}
1055	  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1056	else
1057	  CFLAGS=${CFLAGS-"-O2"}
1058	  CXXFLAGS=${CXXFLAGS-"-O2"}
1059	fi
1060	rm -f conftest*
1061	;;
1062      esac
1063    fi
1064  fi
1065
1066  CXX=${CXX-"c++"}
1067  CFLAGS=${CFLAGS-"-g"}
1068  CXXFLAGS=${CXXFLAGS-"-g -O2"}
1069fi
1070
1071export CC
1072export CXX
1073export CFLAGS
1074export CXXFLAGS
1075
1076# FIXME: This should be in configure.in, not configure
1077case "$host" in
1078	*go32*)
1079	    enable_gdbtk=no ;;
1080	*msdosdjgpp*)
1081	    enable_gdbtk=no ;;
1082esac
1083
1084# FIXME: This should be in configure.in, not configure
1085# Determine whether gdb needs tk/tcl or not.
1086if [ "$enable_gdbtk" != "no" ]; then
1087	GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui"
1088else
1089	GDB_TK=""
1090fi
1091
1092for subdir in . ${subdirs} ; do
1093
1094    # ${subdir} is relative path from . to the directory we're currently
1095    # configuring.
1096    # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
1097    invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
1098
1099    ### figure out what to do with srcdir
1100    case "${srcdir}" in
1101        ".")  # no -srcdir option.  We're building in place.
1102                makesrcdir=. ;;
1103        /*) # absolute path
1104                makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
1105                ;;
1106        *) # otherwise relative
1107                case "${subdir}" in
1108                .) makesrcdir=${srcdir} ;;
1109                *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;;
1110                esac
1111                ;;
1112    esac
1113
1114    if [ "${subdir}/" != "./" ] ; then
1115        Makefile=${subdir}/Makefile
1116    fi
1117
1118    if [ ! -d ${subdir} ] ; then
1119        if mkdir ${subdir} ; then
1120                true
1121        else
1122                echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2
1123                exit 1
1124        fi
1125    fi
1126
1127    case "${removing}" in
1128    "")
1129        case "${subdir}" in
1130        .) ;;
1131        *) eval echo Building in ${subdir} ${redirect} ;;
1132        esac
1133
1134        # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1135        # Set up the list of links to be made.
1136        # ${links} is the list of link names, and ${files} is the list of names to link to.
1137
1138        # Make the links.
1139        configlinks="${links}"
1140        if [ -r ${subdir}/config.status ] ; then
1141                mv -f ${subdir}/config.status ${subdir}/config.back
1142        fi
1143        while [ -n "${files}" ] ; do
1144                # set file to car of files, files to cdr of files
1145                set ${files}; file=$1; shift; files=$*
1146                set ${links}; link=$1; shift; links=$*
1147
1148                if [ ! -r ${srcdir}/${file} ] ; then
1149                  if [ ! -r ${file} ] ; then
1150		    
1151                        echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1152                        echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1153                        exit 1
1154		  else
1155			srcfile=${file}
1156		  fi
1157		else
1158			srcfile=${srcdir}/${file}
1159                fi
1160
1161                ${remove} -f ${link}
1162		# Make a symlink if possible, otherwise try a hard link
1163		if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1164			true
1165		else
1166			# We need to re-remove the file because Lynx leaves a 
1167			# very strange directory there when it fails an NFS symlink.
1168			${remove} -r -f ${link}
1169			${hard_link} ${srcfile} ${link}
1170		fi
1171                if [ ! -r ${link} ] ; then
1172                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1173                        exit 1
1174                fi
1175
1176                echo "Linked \"${link}\" to \"${srcfile}\"."
1177        done
1178
1179        # Create a .gdbinit file which runs the one in srcdir
1180        # and tells GDB to look there for source files.
1181
1182        if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
1183                case ${srcdir} in
1184                .) ;;
1185                *) cat > ${subdir}/.gdbinit <<EOF
1186# ${NO_EDIT}
1187dir ${makesrcdir}
1188dir .
1189source ${makesrcdir}/.gdbinit
1190EOF
1191                        ;;
1192                esac
1193        fi
1194
1195        # Install a makefile, and make it set VPATH
1196        # if necessary so that the sources are found.
1197        # Also change its value of srcdir.
1198        # NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
1199        # been somewhat optimized and is perhaps a bit twisty.
1200
1201        # code is order so as to try to sed the smallest input files we know.
1202        # so do these separately because I don't trust the order of sed -e expressions.
1203
1204        # the five makefile fragments MUST end up in the resulting Makefile in this order: 
1205        # package macros, target, host, site, and package rules.
1206
1207        if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
1208
1209            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
1210            rm -f ${subdir}/${Makefile}.tem
1211            case "${package_makefile_rules_frag}" in
1212              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
1213              *)
1214                      if [ ! -f ${package_makefile_rules_frag} ] ; then
1215                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
1216                      fi
1217                      if [ -f ${package_makefile_rules_frag} ] ; then
1218                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
1219                      else
1220                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
1221                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1222                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
1223                      fi
1224            esac
1225            # working copy now in ${Makefile}.tem
1226
1227            # Conditionalize for this site.
1228            rm -f ${Makefile}
1229              case "${site}" in
1230              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1231              *)
1232                      site_makefile_frag=${srcdir}/config/ms-${site}
1233
1234                      if [ -f ${site_makefile_frag} ] ; then
1235                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
1236                                      > ${Makefile}
1237                      else
1238                              mv ${subdir}/Makefile.tem ${Makefile}
1239                              site_makefile_frag=
1240                      fi
1241                      ;;
1242            esac
1243            # working copy now in ${Makefile}
1244
1245            # Conditionalize the makefile for this host.
1246            rm -f ${subdir}/Makefile.tem
1247            case "${host_makefile_frag}" in
1248              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1249              *)
1250                      if [ ! -f ${host_makefile_frag} ] ; then
1251                              host_makefile_frag=${srcdir}/${host_makefile_frag}
1252                      fi
1253                      if [ -f ${host_makefile_frag} ] ; then
1254                              sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1255                      else
1256                              echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
1257                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1258                              mv ${Makefile} ${subdir}/Makefile.tem
1259                      fi
1260            esac
1261            # working copy now in ${subdir)/Makefile.tem
1262
1263            # Conditionalize the makefile for this target.
1264            rm -f ${Makefile}
1265            case "${target_makefile_frag}" in
1266              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
1267              *)
1268                      if [ ! -f ${target_makefile_frag} ] ; then
1269                              target_makefile_frag=${srcdir}/${target_makefile_frag}
1270                      fi
1271                      if [ -f ${target_makefile_frag} ] ; then
1272                              sed -e "/^####/  r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
1273                      else
1274                              mv ${subdir}/Makefile.tem ${Makefile}
1275                              target_makefile_frag=
1276                      fi
1277                      ;;
1278            esac
1279            # working copy now in ${Makefile}
1280
1281            # Emit the default values of this package's macros.
1282            rm -f ${subdir}/Makefile.tem
1283            case "${package_makefile_frag}" in
1284              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
1285              *)
1286                      if [ ! -f ${package_makefile_frag} ] ; then
1287                              package_makefile_frag=${srcdir}/${package_makefile_frag}
1288                      fi
1289                      if [ -f ${package_makefile_frag} ] ; then
1290                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
1291                      else
1292                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
1293                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
1294                              mv ${Makefile} ${subdir}/Makefile.tem
1295                      fi
1296            esac
1297            # real copy now in ${subdir}/Makefile.tem
1298
1299            # prepend warning about editting, and a bunch of variables.
1300            rm -f ${Makefile}
1301            cat > ${Makefile} <<EOF
1302# ${NO_EDIT}
1303VPATH = ${makesrcdir}
1304links = ${configlinks}
1305host_alias = ${host_alias}
1306host_cpu = ${host_cpu}
1307host_vendor = ${host_vendor}
1308host_os = ${host_os}
1309host_canonical = ${host_cpu}-${host_vendor}-${host_os}
1310target_alias = ${target_alias}
1311target_cpu = ${target_cpu}
1312target_vendor = ${target_vendor}
1313target_os = ${target_os}
1314target_canonical = ${target_cpu}-${target_vendor}-${target_os}
1315EOF
1316	    case "${build}" in
1317	      "") ;;
1318	      *)  cat >> ${Makefile} << EOF
1319build_alias = ${build_alias}
1320build_cpu = ${build_cpu}
1321build_vendor = ${build_vendor}
1322build_os = ${build_os}
1323build_canonical = ${build_cpu}-${build_vendor}-${build_os}
1324EOF
1325	    esac
1326
1327            case "${package_makefile_frag}" in
1328              "") ;;
1329              /*) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
1330              *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
1331            esac
1332
1333            case "${target_makefile_frag}" in
1334              "") ;;
1335              /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
1336              *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
1337            esac
1338
1339            case "${host_makefile_frag}" in
1340              "") ;;
1341              /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
1342              *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
1343            esac
1344
1345            if [ "${site_makefile_frag}" != "" ] ; then
1346                echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
1347            fi 
1348
1349	    # record if we want to build shared libs.
1350	    if test -z "${enable_shared}"; then
1351	        echo enable_shared = no >> ${Makefile}
1352	    else
1353	        echo enable_shared = ${enable_shared} >> ${Makefile}
1354	    fi
1355	    # record if we want to rumtime library stuff installed in libsubdir.
1356	    if test -z "${enable_version_specific_runtime_libs}"; then
1357	        echo enable_version_specific_runtime_libs = no >> ${Makefile}
1358	    else
1359	        echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
1360	    fi
1361
1362	    # Emit a macro which describes the file containing gcc's
1363	    # version number.
1364	    echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
1365	    # And emit a macro defining gcc's version number.
1366	    echo gcc_version = ${gcc_version} >> ${Makefile}
1367
1368            # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
1369            # remove any form feeds.
1370            if [ -z "${subdirs}" ]; then
1371                rm -f ${subdir}/Makefile.tm2
1372                sed -e "s:^SUBDIRS[ 	]*=.*$:SUBDIRS = ${configdirs}:" \
1373                    -e "s:^NONSUBDIRS[ 	]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \
1374                    ${subdir}/Makefile.tem > ${subdir}/Makefile.tm2
1375                rm -f ${subdir}/Makefile.tem
1376                mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem
1377	    fi
1378	    sed     -e "s|^prefix[ 	]*=.*$|prefix = ${prefix}|" \
1379                    -e "s|^exec_prefix[ 	]*=.*$|exec_prefix = ${exec_prefix}|" \
1380                    -e "s|^bindir[ 	]*=.*$|bindir = ${bindir}|" \
1381                    -e "s|^sbindir[ 	]*=.*$|sbindir = ${sbindir}|" \
1382                    -e "s|^libexecdir[ 	]*=.*$|libexecdir = ${libexecdir}|" \
1383                    -e "s|^datadir[ 	]*=.*$|datadir = ${datadir}|" \
1384                    -e "s|^sysconfdir[ 	]*=.*$|sysconfdir = ${sysconfdir}|" \
1385                    -e "s|^sharedstatedir[ 	]*=.*$|sharedstatedir = ${sharedstatedir}|" \
1386                    -e "s|^localstatedir[ 	]*=.*$|localstatedir = ${localstatedir}|" \
1387                    -e "s|^libdir[ 	]*=.*$|libdir = ${libdir}|" \
1388                    -e "s|^includedir[ 	]*=.*$|includedir = ${includedir}|" \
1389                    -e "s|^oldincludedir[ 	]*=.*$|oldincludedir = ${oldincludedir}|" \
1390                    -e "s|^infodir[ 	]*=.*$|infodir = ${infodir}|" \
1391                    -e "s|^mandir[ 	]*=.*$|mandir = ${mandir}|" \
1392		    -e "/^CC[ 	]*=/{
1393			:loop1
1394			/\\\\$/ N
1395			s/\\\\\\n//g
1396			t loop1
1397			s%^CC[ 	]*=.*$%CC = ${CC}%
1398			}" \
1399		    -e "/^CXX[ 	]*=/{
1400			:loop2
1401			/\\\\$/ N
1402			s/\\\\\\n//g
1403			t loop2
1404			s%^CXX[ 	]*=.*$%CXX = ${CXX}%
1405			}" \
1406		    -e "/^CFLAGS[ 	]*=/{
1407			:loop3
1408			/\\\\$/ N
1409			s/\\\\\\n//g
1410			t loop3
1411			s%^CFLAGS[ 	]*=.*$%CFLAGS = ${CFLAGS}%
1412			}" \
1413		    -e "/^CXXFLAGS[ 	]*=/{
1414			:loop4
1415			/\\\\$/ N
1416			s/\\\\\\n//g
1417			t loop4
1418			s%^CXXFLAGS[ 	]*=.*$%CXXFLAGS = ${CXXFLAGS}%
1419			}" \
1420		    -e "s|^SHELL[	 ]*=.*$|SHELL = ${config_shell}|" \
1421                    -e "s|^srcdir[ 	]*=.*$|srcdir = ${makesrcdir}|" \
1422                    -e "s///" \
1423                    -e "s:^program_prefix[ 	]*=.*$:program_prefix = ${program_prefix}:" \
1424                    -e "s:^program_suffix[ 	]*=.*$:program_suffix = ${program_suffix}:" \
1425                    -e "s:^program_transform_name[ 	]*=.*$:program_transform_name = ${program_transform_name}:" \
1426                    -e "s|^tooldir[ 	]*=.*$|tooldir = ${tooldir}|" \
1427                    -e "s|^build_tooldir[ 	]*=.*$|build_tooldir = ${tooldir}|" \
1428		    -e "s:^DEFAULT_YACC[	 ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \
1429		    -e "s:^DEFAULT_LEX[	 ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \
1430		    -e "s:^DEFAULT_M4[  ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \
1431                    ${subdir}/Makefile.tem >> ${Makefile}
1432  
1433	    sed -e "s:^GDB_TK[	 ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
1434	    mv -f ${Makefile}.tem ${Makefile}
1435
1436	    # If this is a Canadian Cross, preset the values of many more
1437	    # tools.
1438	    if [ "${build}" != "${host}" ]; then
1439		for var in ${tools}; do
1440		    eval val=\$${var}
1441		    sed -e "/^${var}[ 	]*=/{
1442			   :loop1
1443			   /\\\\$/ N
1444			   /\\\\$/ b loop1
1445			   s/\\\\\\n//g
1446			   s%^${var}[ 	]*=.*$%${var} = ${val}%
1447			   }" ${Makefile} > ${Makefile}.tem
1448		    mv -f ${Makefile}.tem ${Makefile}
1449		done
1450	    fi
1451
1452            # final copy now in ${Makefile}
1453
1454        else
1455           echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2
1456        fi
1457
1458        rm -f ${subdir}/Makefile.tem
1459
1460        case "${host_makefile_frag}" in
1461        "") using= ;;
1462        *) using="and \"${host_makefile_frag}\"" ;;
1463        esac
1464
1465        case "${target_makefile_frag}" in
1466        "") ;;
1467        *) using="${using} and \"${target_makefile_frag}\"" ;;
1468        esac
1469
1470        case "${site_makefile_frag}" in
1471        "") ;;
1472        *) using="${using} and \"${site_makefile_frag}\"" ;;
1473        esac
1474
1475        newusing=`echo "${using}" | sed 's/and/using/'`
1476        using=${newusing}
1477        echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using}
1478
1479        . ${tmpfile}.pos
1480
1481        # describe the chosen configuration in config.status.
1482        # Make that file a shellscript which will reestablish
1483        # the same configuration.  Used in Makefiles to rebuild
1484        # Makefiles.
1485
1486        case "${norecursion}" in
1487        "") arguments="${arguments} --norecursion" ;;
1488        *) ;;
1489        esac
1490
1491        if [ ${subdir} = . ] ; then
1492            echo "#!/bin/sh
1493# ${NO_EDIT}
1494# This directory was configured as follows:
1495${progname}" ${arguments}  "
1496# ${using}" > ${subdir}/config.new
1497        else
1498            echo "#!/bin/sh
1499# ${NO_EDIT}
1500# This directory was configured as follows:
1501cd ${invsubdir}
1502${progname}" ${arguments}  "
1503# ${using}" > ${subdir}/config.new
1504        fi
1505        chmod a+x ${subdir}/config.new
1506        if [ -r ${subdir}/config.back ] ; then
1507                mv -f ${subdir}/config.back ${subdir}/config.status
1508        fi
1509	${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status
1510        ;;
1511
1512    *)  rm -f ${Makefile} ${subdir}/config.status ${links} ;;
1513    esac
1514done
1515
1516# If there are subdirectories, then recur.
1517if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then 
1518        for configdir in ${configdirs} ${extraconfigdirs} ; do
1519
1520		# If configdir contains ',' it is
1521		# srcdir,builddir,target_alias
1522		# These come from extraconfigdirs.
1523		case ${configdir} in
1524		*,*)
1525		    eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
1526		    ;;
1527		*)
1528		    cfg_dir=${configdir}
1529		    bld_dir=${configdir}
1530		    tgt_alias=${target_alias}
1531		    ;;
1532		esac
1533
1534                if [ -d ${srcdir}/${cfg_dir} ] ; then
1535                        eval echo Configuring ${configdir}... ${redirect}
1536                        case "${srcdir}" in
1537                        ".") ;;
1538                        *)
1539                                if [ ! -d ./${bld_dir} ] ; then
1540                                        if mkdir ./${bld_dir} ; then
1541                                                true
1542                                        else
1543                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${bld_dir}" 1>&2
1544                                                exit 1
1545                                        fi
1546                                fi
1547                                ;;
1548                        esac
1549
1550                        POPDIR=${PWD=`pwd`}
1551                        cd ${bld_dir} 
1552
1553### figure out what to do with srcdir
1554                        case "${srcdir}" in
1555                        ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
1556                        /*) # absolute path
1557                                newsrcdir=${srcdir}/${cfg_dir}
1558                                srcdiroption="--srcdir=${newsrcdir}"
1559                                ;;
1560                        ?:*) # absolute path on win32
1561                                newsrcdir=${srcdir}/${cfg_dir}
1562                                srcdiroption="--srcdir=${newsrcdir}"
1563                                ;;
1564                        *) # otherwise relative
1565                                newsrcdir=../${srcdir}/${cfg_dir}
1566                                srcdiroption="--srcdir=${newsrcdir}"
1567                                ;;
1568                        esac
1569
1570			# Handle --cache-file=../XXX
1571			case "${cache_file}" in
1572			"") # empty
1573				;;
1574			/*) # absolute path
1575				cache_file_option="--cache-file=${cache_file}"
1576				;;
1577			?:*) # absolute path on win32
1578				cache_file_option="--cache-file=${cache_file}"
1579				;;
1580			*) # relative path
1581				cache_file_option="--cache-file=../${cache_file}"
1582				;;
1583			esac
1584
1585### check for guested configure, otherwise fix possibly relative progname
1586                        if [ -f ${newsrcdir}/configure ] ; then
1587                                recprog=${newsrcdir}/configure
1588                        elif [ -f ${newsrcdir}/configure.in ] ; then
1589                                case "${progname}" in
1590                                /*)     recprog=${progname} ;;
1591                                ?:*)    recprog=${progname} ;;
1592                                *)      recprog=../${progname} ;;
1593                                esac
1594			else
1595				eval echo No configuration information in ${cfg_dir} ${redirect}
1596				recprog=
1597                        fi
1598
1599### The recursion line is here.
1600			if [ ! -z "${recprog}" ] ; then
1601	                        if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
1602        	                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
1603                	                ${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
1604	                                true
1605        	                else
1606					echo Configure in `pwd` failed, exiting. 1>&2
1607                	                exit 1
1608                        	fi
1609			fi
1610
1611                        cd ${POPDIR}
1612                fi
1613        done
1614fi
1615
1616# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
1617# and reset the trap handler.
1618rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
1619trap 0
1620
1621exit 0
1622
1623#
1624# Local Variables:
1625# fill-column: 131
1626# End:
1627#
1628
1629# end of configure
1630