configure revision 33965
1#!/bin/sh 2 3### WARNING: this file contains embedded tabs. Do not run untabify on this file. 4 5# Configuration script 6# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 1997 7# Free Software Foundation, Inc. 8 9# This program is free software; you can redistribute it and/or modify 10# it under the terms of the GNU General Public License as published by 11# the Free Software Foundation; either version 2 of the License, or 12# (at your option) any later version. 13# 14# This program is distributed in the hope that it will be useful, 15# but WITHOUT ANY WARRANTY; without even the implied warranty of 16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17# GNU General Public License for more details. 18# 19# You should have received a copy of the GNU General Public License 20# along with this program; if not, write to the Free Software 21# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22 23# This file was originally written by K. Richard Pixley. 24 25# 26# Shell script to create proper links to machine-dependent files in 27# preparation for compilation. 28# 29# If configure succeeds, it leaves its status in config.status. 30# If configure fails after disturbing the status quo, 31# config.status is removed. 32# 33 34export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0 $argv; kill $$) 35 36remove=rm 37hard_link=ln 38symbolic_link='ln -s' 39 40#for Test 41#remove="echo rm" 42#hard_link="echo ln" 43#symbolic_link="echo ln -s" 44 45# clear some things potentially inherited from environment. 46 47Makefile=Makefile 48Makefile_in=Makefile.in 49arguments= 50build_alias= 51cache_file=config.cache 52cache_file_option= 53configdirs= 54exec_prefix= 55exec_prefixoption= 56fatal= 57floating_point=default 58gas=default 59host_alias=NOHOST 60host_makefile_frag= 61moveifchange= 62norecursion= 63other_options= 64package_makefile_frag= 65prefix=/usr/local 66progname= 67program_prefix= 68program_prefixoption= 69program_suffix= 70program_suffixoption= 71program_transform_name= 72program_transform_nameoption= 73redirect=">/dev/null" 74removing= 75site= 76site_makefile_frag= 77site_option= 78srcdir= 79srctrigger= 80subdirs= 81target_alias=NOTARGET 82target_makefile_frag= 83undefs=NOUNDEFS 84version="$Revision: 1.230.2.1 $" 85x11=default 86 87### we might need to use some other shell than /bin/sh for running subshells 88# 89config_shell=${CONFIG_SHELL-/bin/sh} 90 91NO_EDIT="This file was generated automatically by configure. Do not edit." 92 93## this is a little touchy and won't always work, but... 94## 95## if the argv[0] starts with a slash then it is an absolute name that can (and 96## must) be used as is. 97## 98## otherwise, if argv[0] has no slash in it, we can assume that it is on the 99## path. Since PATH might include "." we also add `pwd` to the end of PATH. 100## 101 102progname=$0 103# if PWD already has a value, it is probably wrong. 104if [ -n "$PWD" ]; then PWD=`pwd`; fi 105 106case "${progname}" in 107/*) ;; 108*/*) ;; 109*) 110 PATH=$PATH:${PWD=`pwd`} ; export PATH 111 ;; 112esac 113 114# Loop over all args 115 116while : 117do 118 119# Break out if there are no more args 120 case $# in 121 0) 122 break 123 ;; 124 esac 125 126# Get the first arg, and shuffle 127 option=$1 128 shift 129 130# Make all options have two hyphens 131 orig_option=$option # Save original for error messages 132 case $option in 133 --*) ;; 134 -*) option=-$option ;; 135 esac 136 137# Split out the argument for options that take them 138 case $option in 139 --*=*) 140 optarg=`echo $option | sed -e 's/^[^=]*=//'` 141 arguments="$arguments $option" 142 ;; 143# These options have mandatory values. Since we didn't find an = sign, 144# the value must be in the next argument 145 --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*) 146 optarg=$1 147 shift 148 arguments="$arguments $option=$optarg" 149 ;; 150 --v) 151 arguments="$arguments -v" 152 ;; 153 --*) 154 arguments="$arguments $option" 155 ;; 156 esac 157 158# Now, process the options 159 case $option in 160 161 --build* | --bu*) 162 case "$build_alias" in 163 "") build_alias=$optarg ;; 164 *) echo '***' Can only configure for one build machine at a time. 1>&2 165 fatal=yes 166 ;; 167 esac 168 ;; 169 --cache*) 170 cache_file=$optarg 171 ;; 172 --disable-*) 173 enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'` 174 eval $enableopt=no 175 disableoptions="$disableoptions $option" 176 ;; 177 --enable-*) 178 case "$option" in 179 *=*) ;; 180 *) optarg=yes ;; 181 esac 182 183 enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` 184 eval "$enableopt='$optarg'" 185 enableoptions="$enableoptions '$option'" 186 ;; 187 --exec-prefix* | --ex*) 188 exec_prefix=$optarg 189 exec_prefixoption="--exec-prefix=$optarg" 190 ;; 191 --gas | --g*) 192 gas=yes 193 ;; 194 --help | --he*) 195 fatal=yes 196 ;; 197 --host* | --ho*) 198 case $host_alias in 199 NOHOST) host_alias=$optarg ;; 200 *) echo '***' Can only configure for one host at a time. 1>&2 201 fatal=yes 202 ;; 203 esac 204 ;; 205 --nfp | --nf*) 206 floating_point=no 207 floating_pointoption="--nfp" 208 ;; 209 --norecursion | --no*) 210 norecursion=yes 211 ;; 212 --prefix* | --pre*) 213 prefix=$optarg 214 prefixoption="--prefix=$optarg" 215 ;; 216 --program-prefix* | --program-p*) 217 program_prefix=$optarg 218 program_prefixoption="--program-prefix=$optarg" 219 ;; 220 --program-suffix* | --program-s*) 221 program_suffix=$optarg 222 program_suffixoption="--program-suffix=$optarg" 223 ;; 224 --program-transform-name* | --program-t*) 225 # Double any backslashes or dollar signs in the argument 226 program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" 227 program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'" 228 ;; 229 --rm) 230 removing=--rm 231 ;; 232 --silent | --sil* | --quiet | --q*) 233 redirect=">/dev/null" 234 verbose=--silent 235 ;; 236 --site* | --sit*) 237 site=$optarg 238 site_option="--site=$optarg" 239 ;; 240 --srcdir*/ | --sr*/) 241 # Remove trailing slashes. Otherwise, when the file name gets 242 # bolted into an object file as debug info, it has two slashes 243 # in it. Ordinarily this is ok, but emacs takes double slash 244 # to mean "forget the first part". 245 srcdir=`echo $optarg | sed -e 's:/$::'` 246 ;; 247 --srcdir* | --sr*) 248 srcdir=$optarg 249 ;; 250 --target* | --ta*) 251 case $target_alias in 252 NOTARGET) target_alias=$optarg ;; 253 *) echo '***' Can only configure for one target at a time. 1>&2 254 fatal=yes 255 ;; 256 esac 257 ;; 258 --tmpdir* | --tm*) 259 TMPDIR=$optarg 260 tmpdiroption="--tmpdir=$optarg" 261 ;; 262 --verbose | --v | --verb*) 263 redirect= 264 verbose=--verbose 265 ;; 266 --version | --V | --vers*) 267 echo "This is Cygnus Configure version" `echo ${version} | sed 's/[ $:]//g'` 268 exit 0 269 ;; 270 --with-*) 271 case "$option" in 272 *=*) ;; 273 *) optarg=yes ;; 274 esac 275 276 withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` 277 eval $withopt="$optarg" 278 withoptions="$withoptions $option" 279 ;; 280 --without-*) 281 withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'` 282 eval $withopt=no 283 withoutoptions="$withoutoptions $option" 284 ;; 285 --x) with_x=yes 286 withoptions="$withoptions --with-x" 287 ;; 288 --x-i* | --x-l*) other_options="$other_options $orig_option" 289 ;; 290 --bi* | --sb* | --li* | --da* | --sy* | --sh* | --lo* | --in* | --ol* | --ma*) 291 # These options were added to autoconf for emacs. 292 ;; 293 --*) 294 echo "configure: Unrecognized option: \"$orig_option\"; use --help for usage." >&2 295 exit 1 296 ;; 297 *) 298 case $undefs in 299 NOUNDEFS) undefs=$option ;; 300 *) echo '***' Can only configure for one host and one target at a time. 1>&2 301 fatal=yes 302 ;; 303 esac 304 ;; 305 esac 306done 307 308# process host and target 309 310# Do some error checking and defaulting for the host and target type. 311# The inputs are: 312# configure --host=HOST --target=TARGET UNDEFS 313# 314# The rules are: 315# 1. You aren't allowed to specify --host, --target, and undefs at the 316# same time. 317# 2. Host defaults to undefs. 318# 3. If undefs is not specified, then host defaults to the current host, 319# as determined by config.guess. 320# 4. Target defaults to undefs. 321# 5. If undefs is not specified, then target defaults to host. 322 323case "${fatal}" in 324"") 325 # Make sure that host, target & undefs aren't all specified at the 326 # same time. 327 case $host_alias---$target_alias---$undefs in 328 NOHOST---*---* | *---NOTARGET---* | *---*---NOUNDEFS) 329 ;; 330 *) echo '***' Can only configure for one host and one target at a time. 1>&2 331 fatal=yes 332 break 2 333 ;; 334 esac 335 336 # Now, do defaulting for host. 337 case $host_alias in 338 NOHOST) 339 case $undefs in 340 NOUNDEFS) 341 # Neither --host option nor undefs were present. 342 # Call config.guess. 343 guesssys=`echo ${progname} | sed 's/configure$/config.guess/'` 344 if host_alias=`${config_shell} ${guesssys}` 345 then 346 # If the string we are going to use for 347 # the target is a prefix of the string 348 # we just guessed for the host, then 349 # assume we are running native, and force 350 # the same string for both target and host. 351 case $target_alias in 352 NOTARGET) ;; 353 *) 354 if expr $host_alias : $target_alias >/dev/null 355 then 356 host_alias=$target_alias 357 fi 358 ;; 359 esac 360 echo "Configuring for a ${host_alias} host." 1>&2 361 arguments="--host=$host_alias $arguments" 362 else 363 echo 'Config.guess failed to determine the host type. You need to specify one.' 1>&2 364 fatal=yes 365 fi 366 ;; 367 *) 368 host_alias=$undefs 369 arguments="--host=$host_alias $arguments" 370 undefs=NOUNDEFS 371 ;; 372 esac 373 esac 374 375 # Do defaulting for target. If --target option isn't present, default 376 # to undefs. If undefs isn't present, default to host. 377 case $target_alias in 378 NOTARGET) 379 case $undefs in 380 NOUNDEFS) 381 target_alias=$host_alias 382 ;; 383 *) 384 target_alias=$undefs 385 arguments="--target=$target_alias $arguments" 386 ;; 387 esac 388 esac 389 ;; 390*) ;; 391esac 392 393if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then 394 exec 1>&2 395 echo Usage: configure [OPTIONS] [HOST] 396 echo 397 echo Options: [defaults in brackets] 398 echo ' --prefix=MYDIR install into MYDIR [/usr/local]' 399 echo ' --exec-prefix=MYDIR install host-dependent files into MYDIR [/usr/local]' 400 echo ' --help print this message [normal config]' 401 echo ' --build=BUILD configure for building on BUILD [BUILD=HOST]' 402 echo ' --host=HOST configure for HOST [determined via config.guess]' 403 echo ' --norecursion configure this directory only [recurse]' 404 echo ' --program-prefix=FOO prepend FOO to installed program names [""]' 405 echo ' --program-suffix=FOO append FOO to installed program names [""]' 406 echo ' --program-transform-name=P transform installed names by sed pattern P [""]' 407 echo ' --site=SITE configure with site-specific makefile for SITE' 408 echo ' --srcdir=DIR find the sources in DIR [. or ..]' 409 echo ' --target=TARGET configure for TARGET [TARGET=HOST]' 410 echo ' --tmpdir=TMPDIR create temporary files in TMPDIR [/tmp]' 411 echo ' --nfp configure for software floating point [hard float]' 412 echo ' --with-FOO, --with-FOO=BAR package FOO is available (parameter BAR)' 413 echo ' --without-FOO package FOO is NOT available' 414 echo ' --enable-FOO, --enable-FOO=BAR include feature FOO (parameter BAR)' 415 echo ' --disable-FOO do not include feature FOO' 416 echo 417 echo 'Where HOST and TARGET are something like "sparc-sunos", "mips-sgi-irix5", etc.' 418 echo 419 if [ -r config.status ] ; then 420 cat config.status 421 fi 422 423 exit 1 424fi 425 426configsub=`echo ${progname} | sed 's/configure$/config.sub/'` 427moveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'` 428 429# this is a hack. sun4 must always be a valid host alias or this will fail. 430if ${config_shell} ${configsub} sun4 >/dev/null 2>&1 ; then 431 true 432else 433 echo '***' cannot find config.sub. 1>&2 434 exit 1 435fi 436 437touch config.junk 438if ${config_shell} ${moveifchange} config.junk config.trash ; then 439 true 440else 441 echo '***' cannot find move-if-change. 1>&2 442 exit 1 443fi 444rm -f config.junk config.trash 445 446case "${srcdir}" in 447"") 448 if [ -r configure.in ] ; then 449 srcdir=. 450 else 451 if [ -r ${progname}.in ] ; then 452 srcdir=`echo ${progname} | sed 's:/configure$::'` 453 else 454 echo '***' "Can't find configure.in. Try using --srcdir=some_dir" 1>&2 455 exit 1 456 fi 457 fi 458 ;; 459*) 460 # Set srcdir to "." if that's what it is. 461 # This is important for multilib support. 462 if [ ! -d ${srcdir} ] ; then 463 echo "Invalid source directory ${srcdir}" >&2 464 exit 1 465 fi 466 pwd=`pwd` 467 srcpwd=`cd ${srcdir} ; pwd` 468 if [ "${pwd}" = "${srcpwd}" ] ; then 469 srcdir=. 470 fi 471esac 472 473### warn about some conflicting configurations. 474 475case "${srcdir}" in 476".") ;; 477*) 478 if [ -f ${srcdir}/config.status ] ; then 479 echo '***' Cannot configure here in \"${PWD=`pwd`}\" when \"${srcdir}\" is currently configured. 1>&2 480 exit 1 481 fi 482esac 483 484# default exec_prefix 485case "${exec_prefixoption}" in 486"") exec_prefix="\$(prefix)" ;; 487*) ;; 488esac 489 490### break up ${srcdir}/configure.in. 491case "`grep '^# per\-host:' ${srcdir}/configure.in`" in 492"") 493 echo '***' ${srcdir}/configure.in has no \"per-host:\" line. 1>&2 494 # Check for a directory that's been converted to use autoconf since 495 # it was last configured. 496 if grep AC_OUTPUT ${srcdir}/configure.in >/dev/null ; then 497 echo '***' Hmm, looks like this directory has been autoconfiscated. 1>&2 498 if [ -r ${srcdir}/configure ] ; then 499 echo '***' Running the local configure script. 1>&2 500 case "${cache_file}" in 501 "") cache_file_option= ;; 502 *) cache_file_option="--cache-file=${cache_file}" ;; 503 esac 504 srcdiroption="--srcdir=${srcdir}" 505 case "${build_alias}" in 506 "") buildopt= ;; 507 *) buildopt="--build=${build_alias}" ;; 508 esac 509 eval exec ${config_shell} ${srcdir}/configure ${verbose} \ 510 ${buildopt} --host=${host_alias} --target=${target_alias} \ 511 ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ 512 ${srcdiroption} \ 513 ${program_prefixoption} ${program_suffixoption} \ 514 ${program_transform_nameoption} ${site_option} \ 515 ${withoptions} ${withoutoptions} \ 516 ${enableoptions} ${disableoptions} ${floating_pointoption} \ 517 ${cache_file_option} ${removing} ${other_options} ${redirect} 518 else 519 echo '***' There is no configure script present though. 1>&2 520 fi 521 fi 522 exit 1 523 ;; 524*) ;; 525esac 526 527case "`grep '^# per\-target:' ${srcdir}/configure.in`" in 528"") 529 echo '***' ${srcdir}/configure.in has no \"per-target:\" line. 1>&2 530 exit 1 531 ;; 532*) ;; 533esac 534 535case "${TMPDIR}" in 536"") TMPDIR=/tmp ; export TMPDIR ;; 537*) ;; 538esac 539 540# keep this filename short for &%*%$*# 14 char file names 541tmpfile=${TMPDIR}/cONf$$ 542# Note that under many versions of sh a trap handler for 0 will *override* any 543# exit status you explicitly specify! At this point, the only non-error exit 544# is at the end of the script; these actions are duplicated there, minus 545# the "exit 1". Don't use "exit 0" anywhere after this without resetting the 546# trap handler, or you'll lose. 547trap "rm -f Makefile.tem ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos; exit 1" 0 1 2 15 548 549# split ${srcdir}/configure.in into common, per-host, per-target, 550# and post-target parts. Post-target is optional. 551sed -e '/^# per\-host:/,$d' ${srcdir}/configure.in > ${tmpfile}.com 552sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.hst 553if grep '^# post-target:' ${srcdir}/configure.in >/dev/null ; then 554 sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.tgt 555 sed -e '1,/^# post\-target:/d' ${srcdir}/configure.in > ${tmpfile}.pos 556else 557 sed -e '1,/^# per\-target:/d' ${srcdir}/configure.in > ${tmpfile}.tgt 558 echo >${tmpfile}.pos 559fi 560 561### do common part of configure.in 562 563. ${tmpfile}.com 564 565# some sanity checks on configure.in 566case "${srctrigger}" in 567"") 568 echo '***' srctrigger not set in ${PWD=`pwd`}/configure.in. 1>&2 569 exit 1 570 ;; 571*) ;; 572esac 573 574case "${build_alias}" in 575"") 576 if result=`${config_shell} ${configsub} ${host_alias}` ; then 577 build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 578 build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 579 build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 580 build=${build_cpu}-${build_vendor}-${build_os} 581 build_alias=${host_alias} 582 fi 583 ;; 584*) 585 if result=`${config_shell} ${configsub} ${build_alias}` ; then 586 buildopt="--build=${build_alias}" 587 build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 588 build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 589 build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 590 build=${build_cpu}-${build_vendor}-${build_os} 591 else 592 echo "Unrecognized build system name ${build_alias}." 1>&2 593 exit 1 594 fi 595 ;; 596esac 597 598if result=`${config_shell} ${configsub} ${host_alias}` ; then 599 true 600else 601 echo "Unrecognized host system name ${host_alias}." 1>&2 602 exit 1 603fi 604host_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 605host_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 606host_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 607host=${host_cpu}-${host_vendor}-${host_os} 608 609. ${tmpfile}.hst 610 611if result=`${config_shell} ${configsub} ${target_alias}` ; then 612 true 613else 614 echo "Unrecognized target system name ${target_alias}." 1>&2 615 exit 1 616fi 617target_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 618target_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 619target_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 620target=${target_cpu}-${target_vendor}-${target_os} 621 622. ${tmpfile}.tgt 623 624# Find the source files, if location was not specified. 625case "${srcdir}" in 626"") 627 srcdirdefaulted=1 628 srcdir=. 629 if [ ! -r ${srctrigger} ] ; then 630 srcdir=.. 631 fi 632 ;; 633*) ;; 634esac 635 636if [ ! -r ${srcdir}/${srctrigger} ] ; then 637 case "${srcdirdefaulted}" in 638 "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/${srcdir}" 1>&2 ;; 639 *) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`pwd`}/. or ${PWD=`pwd`}/.." 1>&2 ;; 640 esac 641 642 echo '***' \(At least ${srctrigger} is missing.\) 1>&2 643 exit 1 644fi 645 646# Some systems (e.g., one of the i386-aix systems the gas testers are 647# using) don't handle "\$" correctly, so don't use it here. 648tooldir='$(exec_prefix)'/${target_alias} 649 650if [ "${host_alias}" != "${target_alias}" ] ; then 651 if [ "${program_prefixoption}" = "" ] ; then 652 if [ "${program_suffixoption}" = "" ] ; then 653 if [ "${program_transform_nameoption}" = "" ] ; then 654 program_prefix=${target_alias}- ; 655 fi 656 fi 657 fi 658fi 659 660# Merge program_prefix and program_suffix onto program_transform_name. 661# (program_suffix used to use $, but it's hard to preserve $ through both 662# make and sh.) 663if [ "${program_suffix}" != "" ] ; then 664 program_transform_name="-e s,\\\\(.*\\\\),\\\\1${program_suffix}, ${program_transform_name}" 665fi 666 667if [ "${program_prefix}" != "" ] ; then 668 program_transform_name="-e s,^,${program_prefix}, ${program_transform_name}" 669fi 670 671# If CC and CXX are not set in the environment, and the Makefile 672# exists, try to extract them from it. This is to handle running 673# ./config.status by hand. 674if [ -z "${CC}" -a -r Makefile ]; then 675 sed -n -e ':loop 676/\\$/ N 677s/\\\n//g 678t loop 679/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc 680 CC=`tail -1 Makefile.cc` 681 rm -f Makefile.cc 682fi 683 684if [ -z "${CXX}" -a -r Makefile ]; then 685 sed -n -e ':loop 686/\\$/ N 687s/\\\n//g 688t loop 689/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc 690 CXX=`tail -1 Makefile.cc` 691 rm -f Makefile.cc 692fi 693 694# Generate a default definition for YACC. This is used if the makefile can't 695# locate bison or byacc in objdir. 696 697for prog in 'bison -y' byacc yacc 698do 699 set dummy $prog; tmp=$2 700 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 701 for dir in $PATH; do 702 test -z "$dir" && dir=. 703 if test -f $dir/$tmp; then 704 DEFAULT_YACC="$prog" 705 break 706 fi 707 done 708 IFS="$save_ifs" 709 710 test -n "$DEFAULT_YACC" && break 711done 712 713# Generate a default definition for LEX. This is used if the makefile can't 714# locate flex in objdir. 715 716for prog in flex lex 717do 718 set dummy $prog; tmp=$2 719 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 720 for dir in $PATH; do 721 test -z "$dir" && dir=. 722 if test -f $dir/$tmp; then 723 DEFAULT_LEX="$prog" 724 break 725 fi 726 done 727 IFS="$save_ifs" 728 729 test -n "$DEFAULT_LEX" && break 730done 731 732if [ "${build}" != "${host}" ]; then 733 # If we are doing a Canadian Cross, in which the host and build systems 734 # are not the same, we set reasonable default values for the tools. 735 736 tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD" 737 tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET" 738 tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET HOST_PREFIX" 739 tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM" 740 tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET" 741 742 for var in ${tools}; do 743 if [ -z "`eval 'echo $'"${var}"`" -a -r Makefile ]; then 744 sed -n -e ':loop 745/\\$/ N 746s/\\\n//g 747t loop 748/^'"${var}"'[ ]*=/ s/'"${var}"'[ ]*=[ ]*\(.*\)/\1/p' \ 749 < Makefile > Makefile.v 750 t=`tail -1 Makefile.v` 751 if [ -n "${t}" ]; then 752 eval "${var}='${t}'" 753 fi 754 rm -f Makefile.v 755 fi 756 done 757 758 AR=${AR-${host_alias}-ar} 759 AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar} 760 AS=${AS-${host_alias}-as} 761 AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as} 762 CC=${CC-${host_alias}-gcc} 763 CXX=${CXX-${host_alias}-gcc} 764 CC_FOR_BUILD=${CC_FOR_BUILD-gcc} 765 CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc} 766 CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-gcc} 767 DLLTOOL=${DLLTOOL-${host_alias}-dlltool} 768 DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool} 769 GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}} 770 HOST_PREFIX=${build_alias}- 771 HOST_PREFIX_1=${build_alias}- 772 LD=${LD-${host_alias}-ld} 773 LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld} 774 MAKEINFO=${MAKEINFO-makeinfo} 775 NM=${NM-${host_alias}-nm} 776 NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm} 777 RANLIB=${RANLIB-${host_alias}-ranlib} 778 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib} 779 780 if [ -z "${BISON}" ]; then 781 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 782 for dir in $PATH; do 783 test -z "$dir" && dir=. 784 if test -f $dir/byacc; then 785 BISON=byacc 786 break 787 fi 788 if test -f $dir/bison; then 789 BISON=bison 790 break 791 fi 792 if test -f $dir/yacc; then 793 BISON=yacc 794 break 795 fi 796 done 797 IFS="$save_ifs" 798 BISON=${BISON-bison} 799 fi 800 801 if [ -z "${LEX}" ]; then 802 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 803 for dir in $PATH; do 804 test -z "$dir" && dir=. 805 if test -f $dir/flex; then 806 LEX=flex 807 break 808 fi 809 if test -f $dir/lex; then 810 LEX=lex 811 break 812 fi 813 done 814 IFS="$save_ifs" 815 LEX=${LEX-flex} 816 fi 817 818 # Export variables which autoconf might try to set. 819 export AS 820 export AR 821 export CC_FOR_BUILD 822 export DLLTOOL 823 export LD 824 export NM 825 export RANLIB 826else 827 # If CC is still not set, try to get gcc. 828 if [ -z "${CC}" ]; then 829 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 830 for dir in $PATH; do 831 test -z "$dir" && dir=. 832 if test -f $dir/gcc; then 833 CC="gcc -O2" 834 break 835 fi 836 done 837 IFS="$save_ifs" 838 CC=${CC-cc} 839 fi 840 841 CXX=${CXX-"gcc"} 842fi 843 844export CC 845export CXX 846 847case "$host" in 848 *go32*) 849 enable_gdbtk=no ;; 850 *cygwin32*) 851 enable_gdbtk=no ;; 852esac 853 854# Determine whether gdb needs tk/tcl or not. 855if [ "$enable_gdbtk" != "no" ]; then 856 GDB_TK="all-tcl all-tk" 857else 858 GDB_TK="" 859fi 860 861for subdir in . ${subdirs} ; do 862 863 # ${subdir} is relative path from . to the directory we're currently 864 # configuring. 865 # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed. 866 invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'` 867 868 ### figure out what to do with srcdir 869 case "${srcdir}" in 870 ".") # no -srcdir option. We're building in place. 871 makesrcdir=. ;; 872 /*) # absolute path 873 makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'` 874 ;; 875 *) # otherwise relative 876 case "${subdir}" in 877 .) makesrcdir=${srcdir} ;; 878 *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;; 879 esac 880 ;; 881 esac 882 883 if [ "${subdir}/" != "./" ] ; then 884 Makefile=${subdir}/Makefile 885 fi 886 887 if [ ! -d ${subdir} ] ; then 888 if mkdir ${subdir} ; then 889 true 890 else 891 echo '***' "${progname}: could not make ${PWD=`pwd`}/${subdir}" 1>&2 892 exit 1 893 fi 894 fi 895 896 case "${removing}" in 897 "") 898 case "${subdir}" in 899 .) ;; 900 *) eval echo Building in ${subdir} ${redirect} ;; 901 esac 902 903 # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) 904 # Set up the list of links to be made. 905 # ${links} is the list of link names, and ${files} is the list of names to link to. 906 907 # Make the links. 908 configlinks="${links}" 909 if [ -r ${subdir}/config.status ] ; then 910 mv -f ${subdir}/config.status ${subdir}/config.back 911 fi 912 while [ -n "${files}" ] ; do 913 # set file to car of files, files to cdr of files 914 set ${files}; file=$1; shift; files=$* 915 set ${links}; link=$1; shift; links=$* 916 917 if [ ! -r ${srcdir}/${file} ] ; then 918 echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 919 echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 920 exit 1 921 fi 922 923 ${remove} -f ${link} 924 # Make a symlink if possible, otherwise try a hard link 925 if ${symbolic_link} ${srcdir}/${file} ${link} >/dev/null 2>&1 ; then 926 true 927 else 928 # We need to re-remove the file because Lynx leaves a 929 # very strange directory there when it fails an NFS symlink. 930 ${remove} -r -f ${link} 931 ${hard_link} ${srcdir}/${file} ${link} 932 fi 933 if [ ! -r ${link} ] ; then 934 echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 935 exit 1 936 fi 937 938 echo "Linked \"${link}\" to \"${srcdir}/${file}\"." 939 done 940 941 # Create a .gdbinit file which runs the one in srcdir 942 # and tells GDB to look there for source files. 943 944 if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then 945 case ${srcdir} in 946 .) ;; 947 *) cat > ${subdir}/.gdbinit <<EOF 948# ${NO_EDIT} 949dir ${makesrcdir} 950dir . 951source ${makesrcdir}/.gdbinit 952EOF 953 ;; 954 esac 955 fi 956 957 # Install a makefile, and make it set VPATH 958 # if necessary so that the sources are found. 959 # Also change its value of srcdir. 960 # NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has 961 # been somewhat optimized and is perhaps a bit twisty. 962 963 # code is order so as to try to sed the smallest input files we know. 964 965 # the four makefile fragments MUST end up in the resulting Makefile in this order: 966 # package, target, host, and site. so do these separately because I don't trust the 967 # order of sed -e expressions. 968 969 if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then 970 971 # Conditionalize for this site from "Makefile.in" (or whatever it's called) into Makefile.tem 972 rm -f ${subdir}/Makefile.tem 973 case "${site}" in 974 "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;; 975 *) 976 site_makefile_frag=${srcdir}/config/ms-${site} 977 978 if [ -f ${site_makefile_frag} ] ; then 979 sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${subdir}/${Makefile_in} \ 980 > ${subdir}/Makefile.tem 981 else 982 cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem 983 site_makefile_frag= 984 fi 985 ;; 986 esac 987 # working copy now in ${subdir}/Makefile.tem 988 989 # Conditionalize the makefile for this host. 990 rm -f ${Makefile} 991 case "${host_makefile_frag}" in 992 "") mv ${subdir}/Makefile.tem ${Makefile} ;; 993 *) 994 if [ ! -f ${host_makefile_frag} ] ; then 995 host_makefile_frag=${srcdir}/${host_makefile_frag} 996 fi 997 if [ -f ${host_makefile_frag} ] ; then 998 sed -e "/^####/ r ${host_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} 999 else 1000 echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 1001 echo '***' is missing in ${PWD=`pwd`}. 1>&2 1002 mv ${subdir}/Makefile.tem ${Makefile} 1003 fi 1004 esac 1005 # working copy now in ${Makefile} 1006 1007 # Conditionalize the makefile for this target. 1008 rm -f ${subdir}/Makefile.tem 1009 case "${target_makefile_frag}" in 1010 "") mv ${Makefile} ${subdir}/Makefile.tem ;; 1011 *) 1012 if [ ! -f ${target_makefile_frag} ] ; then 1013 target_makefile_frag=${srcdir}/${target_makefile_frag} 1014 fi 1015 if [ -f ${target_makefile_frag} ] ; then 1016 sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem 1017 else 1018 mv ${Makefile} ${subdir}/Makefile.tem 1019 target_makefile_frag= 1020 fi 1021 ;; 1022 esac 1023 # real copy now in ${subdir}/Makefile.tem 1024 1025 # Conditionalize the makefile for this package. 1026 rm -f ${Makefile} 1027 case "${package_makefile_frag}" in 1028 "") mv ${subdir}/Makefile.tem ${Makefile} ;; 1029 *) 1030 if [ ! -f ${package_makefile_frag} ] ; then 1031 package_makefile_frag=${srcdir}/${package_makefile_frag} 1032 fi 1033 if [ -f ${package_makefile_frag} ] ; then 1034 sed -e "/^####/ r ${package_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} 1035 rm -f ${subdir}/Makefile.tem 1036 else 1037 echo '***' Expected package makefile fragment \"${package_makefile_frag}\" 1>&2 1038 echo '***' is missing in ${PWD=`pwd`}. 1>&2 1039 mv ${subdir}/Makefile.tem ${Makefile} 1040 fi 1041 esac 1042 # working copy now in ${Makefile} 1043 1044 mv ${Makefile} ${subdir}/Makefile.tem 1045 1046 # real copy now in ${subdir}/Makefile.tem 1047 1048 # prepend warning about editting, and a bunch of variables. 1049 rm -f ${Makefile} 1050 cat > ${Makefile} <<EOF 1051# ${NO_EDIT} 1052VPATH = ${makesrcdir} 1053links = ${configlinks} 1054host_alias = ${host_alias} 1055host_cpu = ${host_cpu} 1056host_vendor = ${host_vendor} 1057host_os = ${host_os} 1058host_canonical = ${host_cpu}-${host_vendor}-${host_os} 1059target_alias = ${target_alias} 1060target_cpu = ${target_cpu} 1061target_vendor = ${target_vendor} 1062target_os = ${target_os} 1063target_canonical = ${target_cpu}-${target_vendor}-${target_os} 1064EOF 1065 case "${build}" in 1066 "") ;; 1067 *) cat >> ${Makefile} << EOF 1068build_alias = ${build_alias} 1069build_cpu = ${build_cpu} 1070build_vendor = ${build_vendor} 1071build_os = ${build_os} 1072build_canonical = ${build_cpu}-${build_vendor}-${build_os} 1073EOF 1074 esac 1075 1076 case "${package_makefile_frag}" in 1077 "") ;; 1078 /*) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;; 1079 *) echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;; 1080 esac 1081 1082 case "${target_makefile_frag}" in 1083 "") ;; 1084 /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;; 1085 *) echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;; 1086 esac 1087 1088 case "${host_makefile_frag}" in 1089 "") ;; 1090 /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;; 1091 *) echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;; 1092 esac 1093 1094 if [ "${site_makefile_frag}" != "" ] ; then 1095 echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile} 1096 fi 1097 1098 # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, 1099 # remove any form feeds. 1100 if [ -z "${subdirs}" ]; then 1101 rm -f ${subdir}/Makefile.tem2 1102 sed -e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \ 1103 -e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \ 1104 ${subdir}/Makefile.tem > ${subdir}/Makefile.tem2 1105 rm -f ${subdir}/Makefile.tem 1106 mv ${subdir}/Makefile.tem2 ${subdir}/Makefile.tem 1107 fi 1108 sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \ 1109 -e "s:^exec_prefix[ ]*=.*$:exec_prefix = ${exec_prefix}:" \ 1110 -e "/^CC[ ]*=/{ 1111 :loop1 1112 /\\\\$/ N 1113 s/\\\\\\n//g 1114 t loop1 1115 s%^CC[ ]*=.*$%CC = ${CC}% 1116 }" \ 1117 -e "/^CXX[ ]*=/{ 1118 :loop2 1119 /\\\\$/ N 1120 s/\\\\\\n//g 1121 t loop2 1122 s%^CXX[ ]*=.*$%CXX = ${CXX}% 1123 }" \ 1124 -e "s:^SHELL[ ]*=.*$:SHELL = ${config_shell}:" \ 1125 -e "s:^GDB_TK[ ]*=.*$:GDB_TK = ${GDB_TK}:" \ 1126 -e "s:^srcdir[ ]*=.*$:srcdir = ${makesrcdir}:" \ 1127 -e "s///" \ 1128 -e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \ 1129 -e "s:^program_suffix[ ]*=.*$:program_suffix = ${program_suffix}:" \ 1130 -e "s:^program_transform_name[ ]*=.*$:program_transform_name = ${program_transform_name}:" \ 1131 -e "s:^tooldir[ ]*=.*$:tooldir = ${tooldir}:" \ 1132 -e "s:^DEFAULT_YACC[ ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \ 1133 -e "s:^DEFAULT_LEX[ ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \ 1134 ${subdir}/Makefile.tem >> ${Makefile} 1135 1136 # If this is a Canadian Cross, preset the values of many more 1137 # tools. 1138 if [ "${build}" != "${host}" ]; then 1139 for var in ${tools}; do 1140 val=`eval 'echo $'"${var}"` 1141 sed -e "/^${var}[ ]*=/{ 1142 :loop1 1143 /\\\\$/ N 1144 /\\\\$/ b loop1 1145 s/\\\\\\n//g 1146 s%^${var}[ ]*=.*$%${var} = ${val}% 1147 }" ${Makefile} > ${Makefile}.tem 1148 mv -f ${Makefile}.tem ${Makefile} 1149 done 1150 fi 1151 1152 # final copy now in ${Makefile} 1153 1154 else 1155 echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2 1156 fi 1157 1158 rm -f ${subdir}/Makefile.tem 1159 1160 case "${host_makefile_frag}" in 1161 "") using= ;; 1162 *) using="and \"${host_makefile_frag}\"" ;; 1163 esac 1164 1165 case "${target_makefile_frag}" in 1166 "") ;; 1167 *) using="${using} and \"${target_makefile_frag}\"" ;; 1168 esac 1169 1170 case "${site_makefile_frag}" in 1171 "") ;; 1172 *) using="${using} and \"${site_makefile_frag}\"" ;; 1173 esac 1174 1175 newusing=`echo "${using}" | sed 's/and/using/'` 1176 using=${newusing} 1177 echo "Created \"${Makefile}\" in" ${PWD=`pwd`} ${using} 1178 1179 . ${tmpfile}.pos 1180 1181 # describe the chosen configuration in config.status. 1182 # Make that file a shellscript which will reestablish 1183 # the same configuration. Used in Makefiles to rebuild 1184 # Makefiles. 1185 1186 case "${norecursion}" in 1187 "") arguments="${arguments} --norecursion" ;; 1188 *) ;; 1189 esac 1190 1191 if [ ${subdir} = . ] ; then 1192 echo "#!/bin/sh 1193# ${NO_EDIT} 1194# This directory was configured as follows: 1195${progname}" ${arguments} " 1196# ${using}" > ${subdir}/config.new 1197 else 1198 echo "#!/bin/sh 1199# ${NO_EDIT} 1200# This directory was configured as follows: 1201cd ${invsubdir} 1202${progname}" ${arguments} " 1203# ${using}" > ${subdir}/config.new 1204 fi 1205 chmod a+x ${subdir}/config.new 1206 if [ -r ${subdir}/config.back ] ; then 1207 mv -f ${subdir}/config.back ${subdir}/config.status 1208 fi 1209 ${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status 1210 ;; 1211 1212 *) rm -f ${Makefile} ${subdir}/config.status ${links} ;; 1213 esac 1214done 1215 1216# If there are subdirectories, then recur. 1217if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then 1218 for configdir in ${configdirs} ; do 1219 1220 if [ -d ${srcdir}/${configdir} ] ; then 1221 eval echo Configuring ${configdir}... ${redirect} 1222 case "${srcdir}" in 1223 ".") ;; 1224 *) 1225 if [ ! -d ./${configdir} ] ; then 1226 if mkdir ./${configdir} ; then 1227 true 1228 else 1229 echo '***' "${progname}: could not make ${PWD=`pwd`}/${configdir}" 1>&2 1230 exit 1 1231 fi 1232 fi 1233 ;; 1234 esac 1235 1236 POPDIR=${PWD=`pwd`} 1237 cd ${configdir} 1238 1239### figure out what to do with srcdir 1240 case "${srcdir}" in 1241 ".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. 1242 /*) # absolute path 1243 newsrcdir=${srcdir}/${configdir} 1244 srcdiroption="--srcdir=${newsrcdir}" 1245 ;; 1246 *) # otherwise relative 1247 newsrcdir=../${srcdir}/${configdir} 1248 srcdiroption="--srcdir=${newsrcdir}" 1249 ;; 1250 esac 1251 1252 # Handle --cache-file=../XXX 1253 case "${cache_file}" in 1254 "") # empty 1255 ;; 1256 /*) # absolute path 1257 cache_file_option="--cache-file=${cache_file}" 1258 ;; 1259 *) # relative path 1260 cache_file_option="--cache-file=../${cache_file}" 1261 ;; 1262 esac 1263 1264### check for guested configure, otherwise fix possibly relative progname 1265 if [ -f ${newsrcdir}/configure ] ; then 1266 recprog=${newsrcdir}/configure 1267 elif [ -f ${newsrcdir}/configure.in ] ; then 1268 case "${progname}" in 1269 /*) recprog=${progname} ;; 1270 *) recprog=../${progname} ;; 1271 esac 1272 else 1273 eval echo No configuration information in ${configdir} ${redirect} 1274 recprog= 1275 fi 1276 1277### The recursion line is here. 1278 if [ ! -z "${recprog}" ] ; then 1279 if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${target_alias} \ 1280 ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ 1281 ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then 1282 true 1283 else 1284 echo Configure in `pwd` failed, exiting. 1>&2 1285 exit 1 1286 fi 1287 fi 1288 1289 cd ${POPDIR} 1290 fi 1291 done 1292fi 1293 1294# Perform the same cleanup as the trap handler, minus the "exit 1" of course, 1295# and reset the trap handler. 1296rm -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos 1297trap 0 1298 1299exit 0 1300 1301# 1302# Local Variables: 1303# fill-column: 131 1304# End: 1305# 1306 1307# end of configure 1308