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