1#! /bin/bash 2############################################################################## 3 4## This file is a shell script fragment that supplies the information 5## necessary to tailor a template configure script into the configure 6## script appropriate for this directory. For more information, check 7## any existing configure script. 8 9## Be warned, there are two types of configure.in files. There are those 10## used by Autoconf, which are macros which are expanded into a configure 11## script by autoconf. The other sort, of which this is one, is executed 12## by Cygnus configure. 13 14## For more information on these two systems, check out the documentation 15## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi). 16 17# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998, 1999 Free Software Foundation, Inc. 18# 19# This file is free software; you can redistribute it and/or modify it 20# under the terms of the GNU General Public License as published by 21# the Free Software Foundation; either version 2 of the License, or 22# (at your option) any later version. 23# 24# This program is distributed in the hope that it will be useful, but 25# WITHOUT ANY WARRANTY; without even the implied warranty of 26# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27# General Public License for more details. 28# 29# You should have received a copy of the GNU General Public License 30# along with this program; if not, write to the Free Software 31# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 32 33############################################################################## 34 35### To add a new directory to the tree, first choose whether it is a target 36### or a host dependent tool. Then put it into the appropriate list 37### (library or tools, host or target), doing a dependency sort. For 38### example, gdb requires that byacc (or bison) be built first, so it is in 39### the ${host_tools} list after byacc and bison. 40 41 42# these libraries are used by various programs built for the host environment 43# 44host_libs="intl mmalloc libiberty opcodes bfd readline gash db tcl tk tclX itcl tix libgui" 45 46if [ "${enable_gdbgui}" = "yes" ] ; then 47 host_libs="${host_libs} libgui" 48fi 49 50# these tools are built for the host environment 51# Note, the powerpc-eabi build depends on sim occurring before gdb in order to 52# know that we are building the simulator. 53host_tools="texinfo byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext zip" 54 55 56# these libraries are built for the target environment, and are built after 57# the host libraries and the host tools (which may be a cross compiler) 58# 59target_libs="target-libiberty \ 60 target-libgloss \ 61 target-newlib \ 62 target-libio \ 63 target-librx \ 64 target-libstdc++ \ 65 target-libg++ \ 66 target-libf2c \ 67 target-libchill \ 68 target-libjava \ 69 target-zlib \ 70 target-boehm-gc \ 71 target-qthreads \ 72 target-libobjc" 73 74# these tools are built using the target libs, and are intended to run only 75# in the target environment 76# 77# note: any program that *uses* libraries that are in the "target_libs" 78# list belongs in this list. those programs are also very likely 79# candidates for the "native_only" list which follows 80# 81target_tools="target-examples target-groff target-gperf" 82 83################################################################################ 84 85## These two lists are of directories that are to be removed from the 86## ${configdirs} list for either cross-compilations or for native- 87## compilations. For example, it doesn't make that much sense to 88## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in 89## a native environment. 90 91# directories to be built in the native environment only 92# 93# This must be a single line because of the way it is searched by grep in 94# the code below. 95native_only="autoconf automake libtool cvssrc emacs emacs19 fileutils find gawk gettext grep gzip hello indent ispell m4 rcs recode sed shellutils tar textutils gash uudecode wdiff gprof target-groff guile perl apache inet time ash bash bzip2 prms snavigator gnuserv target-gperf" 96 97# directories to be built in a cross environment only 98# 99cross_only="target-libgloss target-newlib target-cygmon target-opcodes target-libstub" 100 101## All tools belong in one of the four categories, and are assigned above 102## We assign ${configdirs} this way to remove all embedded newlines. This 103## is important because configure will choke if they ever get through. 104## ${configdirs} is directories we build using the host tools. 105## ${target_configdirs} is directories we build using the target tools. 106# 107configdirs=`echo ${host_libs} ${host_tools}` 108target_configdirs=`echo ${target_libs} ${target_tools}` 109 110################################################################################ 111 112srctrigger=move-if-change 113srcname="gnu development package" 114 115# This gets set non-empty for some net releases of packages. 116appdirs="" 117 118# per-host: 119 120# Work in distributions that contain no compiler tools, like Autoconf. 121if [ -d ${srcdir}/config ]; then 122case "${host}" in 123 m68k-hp-hpux*) 124 host_makefile_frag="${host_makefile_frag} config/mh-hp300" 125 ;; 126 m68k-apollo-sysv*) 127 host_makefile_frag="${host_makefile_frag} config/mh-apollo68" 128 ;; 129 m68k-apollo-bsd*) 130 host_makefile_frag="${host_makefile_frag} config/mh-a68bsd" 131 ;; 132 m88k-dg-dgux*) 133 host_makefile_frag="${host_makefile_frag} config/mh-dgux" 134 ;; 135 m88k-harris-cxux*) 136 host_makefile_frag="${host_makefile_frag} config/mh-cxux" 137 ;; 138 m88k-motorola-sysv*) 139 host_makefile_frag="${host_makefile_frag} config/mh-delta88" 140 ;; 141 mips*-dec-ultrix*) 142 host_makefile_frag="${host_makefile_frag} config/mh-decstation" 143 ;; 144 mips*-nec-sysv4*) 145 host_makefile_frag="${host_makefile_frag} config/mh-necv4" 146 ;; 147 mips*-sgi-irix6*) 148 host_makefile_frag="${host_makefile_frag} config/mh-irix6" 149 ;; 150 mips*-sgi-irix5*) 151 host_makefile_frag="${host_makefile_frag} config/mh-irix5" 152 ;; 153 mips*-sgi-irix4*) 154 host_makefile_frag="${host_makefile_frag} config/mh-irix4" 155 ;; 156 mips*-sgi-irix3*) 157 host_makefile_frag="${host_makefile_frag} config/mh-sysv" 158 ;; 159 mips*-*-sysv4*) 160 host_makefile_frag="${host_makefile_frag} config/mh-sysv4" 161 ;; 162 mips*-*-sysv*) 163 host_makefile_frag="${host_makefile_frag} config/mh-riscos" 164 ;; 165 i[3456]86-*-sysv5*) 166 host_makefile_frag="${host_makefile_frag} config/mh-sysv5" 167 ;; 168 i[3456]86-*-dgux*) 169 host_makefile_frag="${host_makefile_frag} config/mh-dgux386" 170 ;; 171 i[3456]86-ncr-sysv4.3*) 172 host_makefile_frag="${host_makefile_frag} config/mh-ncrsvr43" 173 ;; 174 i[3456]86-ncr-sysv4*) 175 host_makefile_frag="${host_makefile_frag} config/mh-ncr3000" 176 ;; 177 i[3456]86-*-sco3.2v5*) 178 host_makefile_frag="${host_makefile_frag} config/mh-sysv" 179 ;; 180 i[3456]86-*-sco*) 181 host_makefile_frag="${host_makefile_frag} config/mh-sco" 182 ;; 183 i[3456]86-*-udk*) 184 host_makefile_frag="${host_makefile_frag} config/mh-sysv5" 185 ;; 186 i[3456]86-*-isc*) 187 host_makefile_frag="${host_makefile_frag} config/mh-sysv" 188 ;; 189 i[3456]86-*-solaris2*) 190 host_makefile_frag="${host_makefile_frag} config/mh-sysv4" 191 ;; 192 i[3456]86-*-aix*) 193 host_makefile_frag="${host_makefile_frag} config/mh-aix386" 194 ;; 195 i[3456]86-*-msdosdjgpp*) 196 host_makefile_frag="${host_makefile_frag} config/mh-djgpp" 197 ;; 198 *-cygwin32*) 199 host_makefile_frag="${host_makefile_frag} config/mh-cygwin" 200 ;; 201 *-mingw32*) 202 host_makefile_frag="${host_makefile_frag} config/mh-mingw32" 203 ;; 204 *-interix*) 205 host_makefile_frag="${host_makefile_frag} config/mh-interix" 206 ;; 207 *-windows*) 208 host_makefile_frag="${host_makefile_frag} config/mh-windows" 209 ;; 210 vax-*-ultrix2*) 211 host_makefile_frag="${host_makefile_frag} config/mh-vaxult2" 212 ;; 213 *-*-solaris2*) 214 host_makefile_frag="${host_makefile_frag} config/mh-solaris" 215 ;; 216 m68k-sun-sunos*) 217 host_makefile_frag="${host_makefile_frag} config/mh-sun3" 218 ;; 219 *-hp-hpux[78]*) 220 host_makefile_frag="${host_makefile_frag} config/mh-hpux8" 221 ;; 222 *-hp-hpux*) 223 host_makefile_frag="${host_makefile_frag} config/mh-hpux" 224 ;; 225 *-*-hiux*) 226 host_makefile_frag="${host_makefile_frag} config/mh-hpux" 227 ;; 228 rs6000-*-lynxos*) 229 host_makefile_frag="${host_makefile_frag} config/mh-lynxrs6k" 230 ;; 231 *-*-lynxos*) 232 host_makefile_frag="${host_makefile_frag} config/mh-lynxos" 233 ;; 234 *-*-aix4.[3456789]* | *-*-aix[56789].*) 235 host_makefile_frag="${host_makefile_frag} config/mh-aix43" 236 ;; 237 *-*-sysv4*) 238 host_makefile_frag="${host_makefile_frag} config/mh-sysv4" 239 ;; 240 *-*-sysv*) 241 host_makefile_frag="${host_makefile_frag} config/mh-sysv" 242 ;; 243esac 244fi 245 246# If we aren't going to be using gcc, see if we can extract a definition 247# of CC from the fragment. 248if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then 249 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" 250 found= 251 for dir in $PATH; do 252 test -z "$dir" && dir=. 253 if test -f $dir/gcc; then 254 found=yes 255 break 256 fi 257 done 258 IFS="$save_ifs" 259 if [ -z "${found}" ] && [ -n "${host_makefile_frag}" ] && [ -f "${srcdir}/${host_makefile_frag}" ]; then 260 xx=`sed -n -e 's/^[ ]*CC[ ]*=[ ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}` 261 if [ -n "${xx}" ] ; then 262 CC=$xx 263 fi 264 fi 265fi 266 267# We default to --with-shared on platforms where -fpic is meaningless. 268# Well, we don't yet, but we will. 269if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then 270 case "${target}" in 271 alpha*-dec-osf*) enable_shared=yes ;; 272 alpha*-*-linux*) enable_shared=yes ;; 273 mips-sgi-irix5*) enable_shared=yes ;; 274 *) enable_shared=no ;; 275 esac 276fi 277 278case "${enable_shared}" in 279 yes) shared=yes ;; 280 no) shared=no ;; 281 "") shared=no ;; 282 *) shared=yes ;; 283esac 284 285if [ x${shared} = xyes ]; then 286 case "${host}" in 287 alpha*-*-linux*) 288 host_makefile_frag="${host_makefile_frag} config/mh-elfalphapic" 289 ;; 290 arm*-*-*) 291 host_makefile_frag="${host_makefile_frag} config/mh-armpic" 292 ;; 293 hppa*-*-*) 294 host_makefile_frag="${host_makefile_frag} config/mh-papic" 295 ;; 296 i[3456]86-*-cygwin32*) 297 # We don't want -fPIC on cygwin32. 298 ;; 299 i[3456]86-*-*) 300 host_makefile_frag="${host_makefile_frag} config/mh-x86pic" 301 ;; 302 sparc64-*-*) 303 host_makefile_frag="${host_makefile_frag} config/mh-sparcpic" 304 ;; 305 powerpc*-*-aix*) 306 # We don't want -fPIC on AIX. 307 ;; 308 powerpc*-*-*) 309 host_makefile_frag="${host_makefile_frag} config/mh-ppcpic" 310 ;; 311 *-*-*) 312 if test -f ${srcdir}/config/mh-${host_cpu}pic; then 313 host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic" 314 fi 315 ;; 316 esac 317fi 318 319rm -f mh-frag 320if [ -n "${host_makefile_frag}" ] ; then 321 for f in ${host_makefile_frag} 322 do 323 cat ${srcdir}/$f >> mh-frag 324 done 325 host_makefile_frag=mh-frag 326fi 327 328# per-target: 329 330case "${target}" in 331 v810*) 332 target_makefile_frag="${target_makefile_frag} config/mt-v810" 333 ;; 334 i[3456]86-*-netware*) 335 target_makefile_frag="${target_makefile_frag} config/mt-netware" 336 ;; 337 powerpc-*-netware*) 338 target_makefile_frag="${target_makefile_frag} config/mt-netware" 339 ;; 340 *-*-linux-gnu) 341 target_makefile_frag="${target_makefile_frag} config/mt-linux" 342 ;; 343esac 344 345# If --enable-target-optspace always use -Os instead of -O2 to build 346# the target libraries, similarly if it is not specified, use -Os 347# on selected platforms. 348case "${enable_target_optspace}:${target}" in 349 yes:*) 350 target_makefile_frag="${target_makefile_frag} config/mt-ospace" 351 ;; 352 :m32r-*) 353 target_makefile_frag="${target_makefile_frag} config/mt-ospace" 354 ;; 355 no:* | :*) 356 ;; 357 *) 358 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2 359 ;; 360esac 361 362skipdirs= 363gasdir=gas 364use_gnu_ld= 365use_gnu_as= 366 367# some tools are so dependent upon X11 that if we're not building with X, 368# it's not even worth trying to configure, much less build, that tool. 369 370case ${with_x} in 371 yes | "") # the default value for this tree is that X11 is available 372 ;; 373 no) 374 skipdirs="${skipdirs} tk libgui gash" 375 ;; 376 *) 377 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 378 ;; 379esac 380 381# Some tools are only suitable for building in a "native" situation. 382# Those are added when we have a host==target configuration. For cross 383# toolchains, we add some directories that should only be useful in a 384# cross-compiler. 385 386is_cross_compiler= 387 388if [ x"${host}" = x"${target}" ] ; then 389 # when doing a native toolchain, don't build the targets 390 # that are in the 'cross only' list 391 skipdirs="${skipdirs} ${cross_only}" 392 is_cross_compiler=no 393else 394 # similarly, don't build the targets in the 'native only' 395 # list when building a cross compiler 396 skipdirs="${skipdirs} ${native_only}" 397 is_cross_compiler=yes 398fi 399 400# We always want to use the same name for this directory, so that dejagnu 401# can reliably find it. 402target_subdir=${target_alias} 403 404if [ ! -d ${target_subdir} ] ; then 405 if mkdir ${target_subdir} ; then true 406 else 407 echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2 408 exit 1 409 fi 410fi 411 412copy_dirs= 413 414# Handle --with-headers=XXX. The contents of the named directory are 415# copied to $(tooldir)/sys-include. 416if [ x"${with_headers}" != x ]; then 417 if [ x${is_cross_compiler} = xno ]; then 418 echo 1>&2 '***' --with-headers is only supported when cross compiling 419 exit 1 420 fi 421 case "${exec_prefixoption}" in 422 "") x=${prefix} ;; 423 *) x=${exec_prefix} ;; 424 esac 425 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include" 426fi 427 428# Handle --with-libs=XXX. Multiple directories are permitted. The 429# contents are copied to $(tooldir)/lib. 430if [ x"${with_libs}" != x ]; then 431 if [ x${is_cross_compiler} = xno ]; then 432 echo 1>&2 '***' --with-libs is only supported when cross compiling 433 exit 1 434 fi 435 # Copy the libraries in reverse order, so that files in the first named 436 # library override files in subsequent libraries. 437 case "${exec_prefixoption}" in 438 "") x=${prefix} ;; 439 *) x=${exec_prefix} ;; 440 esac 441 for l in ${with_libs}; do 442 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}" 443 done 444fi 445 446# If both --with-headers and --with-libs are specified, default to 447# --without-newlib. 448if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then 449 if [ x"${with_newlib}" = x ]; then 450 with_newlib=no 451 fi 452fi 453 454# Recognize --with-newlib/--without-newlib. 455if [ x${with_newlib} = xno ]; then 456 skipdirs="${skipdirs} target-newlib" 457elif [ x${with_newlib} = xyes ]; then 458 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` 459fi 460 461# Default to using --with-stabs for certain targets. 462if [ x${with_stabs} = x ]; then 463 case "${target}" in 464 mips*-*-irix6*) 465 ;; 466 mips*-*-* | alpha*-*-osf*) 467 with_stabs=yes; 468 withoptions="${withoptions} --with-stabs" 469 ;; 470 esac 471fi 472 473# Handle ${copy_dirs} 474set fnord ${copy_dirs} 475shift 476while [ $# != 0 ]; do 477 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then 478 : 479 else 480 echo Copying $1 to $2 481 482 # Use the install script to create the directory and all required 483 # parent directories. 484 if [ -d $2 ]; then 485 : 486 else 487 echo >config.temp 488 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED 489 fi 490 491 # Copy the directory, assuming we have tar. 492 # FIXME: Should we use B in the second tar? Not all systems support it. 493 (cd $1; tar -cf - .) | (cd $2; tar -xpf -) 494 495 # It is the responsibility of the user to correctly adjust all 496 # symlinks. If somebody can figure out how to handle them correctly 497 # here, feel free to add the code. 498 499 echo $1 > $2/COPIED 500 fi 501 shift; shift 502done 503 504# Configure extra directories which are host specific 505 506case "${host}" in 507 i[3456]86-*-go32*) 508 configdirs="$configdirs dosrel" ;; 509 i[3456]86-*-mingw32*) 510 configdirs="$configdirs dosrel" ;; 511 *-cygwin32*) 512 configdirs="$configdirs dosrel" ;; 513esac 514 515# Remove more programs from consideration, based on the host or 516# target this usually means that a port of the program doesn't 517# exist yet. 518 519noconfigdirs="" 520 521case "${host}" in 522 i[3456]86-*-vsta) 523 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext" 524 ;; 525 i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*) 526 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext" 527 ;; 528 i[3456]86-*-mingw32*) 529 # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv" 530 noconfigdirs="expect dejagnu cvs autoconf automake send-pr gprof rcs guile perl texinfo apache inet libtool" 531 ;; 532 i[3456]86-*-beos*) 533 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" 534 ;; 535 powerpc-*-beos*) 536 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb readline" 537 ;; 538 i[3456789]86-*-haiku*) 539 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" 540 ;; 541 *-*-cygwin32) 542 noconfigdirs="autoconf automake send-pr gprof rcs guile perl apache inet" 543 ;; 544 *-*-windows*) 545# This is only used to build WinGDB... 546# note that powerpc-eabi depends on sim configured before gdb. 547 configdirs="bfd libiberty opcodes readline sim gdb" 548 target_configdirs= 549 ;; 550 *-*-netbsd*) 551 noconfigdirs="rcs" 552 ;; 553 ppc*-*-pe) 554 noconfigdirs="patch diff make tk tcl expect dejagnu cvssrc autoconf automake texinfo bison send-pr gprof rcs guile perl apache inet itcl tix db snavigator gnuserv" 555 ;; 556 powerpc-*-beos*) 557 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline" 558 ;; 559esac 560 561 562case "${target}" in 563 *-*-netware) 564 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty target-libgloss" 565 ;; 566 *-*-rtems*) 567 noconfigdirs="$noconfigdirs target-libgloss" 568 ;; 569 *-*-vxworks*) 570 noconfigdirs="$noconfigdirs target-newlib target-libgloss" 571 ;; 572 alpha*-dec-osf*) 573 # ld works, but does not support shared libraries. emacs doesn't 574 # work. newlib is not 64 bit ready. I'm not sure about fileutils. 575 # gas doesn't generate exception information. 576 noconfigdirs="$noconfigdirs gas ld emacs fileutils target-newlib target-libgloss" 577 ;; 578 alpha*-*-*vms*) 579 noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss" 580 ;; 581 alpha*-*-linux*) 582 # newlib is not 64 bit ready 583 noconfigdirs="$noconfigdirs target-newlib target-libgloss" 584 # linux has rx in libc 585 skipdirs="$skipdirs target-librx" 586 ;; 587 alpha*-*-*) 588 # newlib is not 64 bit ready 589 noconfigdirs="$noconfigdirs target-newlib target-libgloss" 590 ;; 591 arc-*-*) 592 noconfigdirs="$noconfigdirs target-libgloss" 593 ;; 594 arm-*-pe*) 595 noconfigdirs="$noconfigdirs target-libgloss" 596 ;; 597 arm-*-coff*) 598 noconfigdirs="$noconfigdirs target-libgloss" 599 ;; 600 arm-*-elf*) 601 noconfigdirs="$noconfigdirs target-libgloss" 602 if [ x${is_cross_compiler} != xno ] ; then 603 target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" 604 fi 605 ;; 606 arm-*-oabi*) 607 noconfigdirs="$noconfigdirs target-libgloss" 608 if [ x${is_cross_compiler} != xno ] ; then 609 target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" 610 fi 611 ;; 612 c4x-*-*) 613 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss" 614 ;; 615 thumb-*-coff) 616 noconfigdirs="$noconfigdirs target-libgloss" 617 ;; 618 arm-*-riscix*) 619 noconfigdirs="$noconfigdirs ld target-libgloss" 620 ;; 621 d10v-*-*) 622 noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio target-libgloss" 623 ;; 624 h8300*-*-* | \ 625 h8500-*-*) 626 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss" 627 ;; 628 hppa*-*-*elf* | \ 629 hppa*-*-lites*) 630 # Do configure ld/binutils/gas for this case. 631 ;; 632 hppa*-*-*) 633 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach 634 # cc is gcc, and on any system a user should be able to link cc to 635 # whatever they want. FIXME, emacs emacs19). 636 case "${CC}" in 637 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;; 638 *) ;; 639 esac 640 noconfigdirs="$noconfigdirs ld shellutils" 641 ;; 642 i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*) 643 # but don't build gdb 644 noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx" 645 ;; 646 *-*-linux*) 647 # linux has rx in libc 648 skipdirs="$skipdirs target-librx" 649 ;; 650 i[3456]86-*-mingw32*) 651 target_configdirs="$target_configdirs target-mingw" 652 noconfigdirs="$noconfigdirs expect target-libgloss" 653 654 # Can't build gdb for mingw32 if not native. 655 case "${host}" in 656 i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc. 657 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv" 658 ;; 659 esac 660 ;; 661 *-*-cygwin32*) 662 target_configdirs="$target_configdirs target-winsup" 663 noconfigdirs="$noconfigdirs target-gperf target-libgloss" 664 # always build newlib. 665 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` 666 667 # Can't build gdb for cygwin32 if not native. 668 case "${host}" in 669 *-*-cygwin32*) ;; # keep gdb tcl tk expect etc. 670 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv" 671 ;; 672 esac 673 ;; 674 i[3456]86-*-pe) 675 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss" 676 ;; 677 i[3456]86-*-sco3.2v5*) 678 # The linker does not yet know about weak symbols in COFF, 679 # and is not configured to handle mixed ELF and COFF. 680 noconfigdirs="$noconfigdirs ld target-libgloss" 681 ;; 682 i[3456]86-*-sco*) 683 noconfigdirs="$noconfigdirs gprof target-libgloss" 684 ;; 685 i[3456]86-*-solaris2*) 686 # The linker does static linking correctly, but the Solaris C library 687 # has bugs such that some important functions won't work when statically 688 # linked. (See man pages for getpwuid, for example.) 689 noconfigdirs="$noconfigdirs ld target-libgloss" 690 ;; 691 i[3456]86-*-sysv4*) 692 # The SYSV4 C compiler doesn't handle Emacs correctly 693 case "${CC}" in 694 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;; 695 *) ;; 696 esac 697 # but that's okay since emacs doesn't work anyway 698 noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss" 699 ;; 700 i[3456]86-*-beos*) 701 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" 702 ;; 703 i[3456789]86-*-haiku*) 704 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" 705 ;; 706 mn10200-*-*) 707 noconfigdirs="$noconfigdirs" 708 if [ x${is_cross_compiler} != xno ] ; then 709 target_configdirs="${target_configdirs} target-libstub target-cygmon" 710 fi 711 ;; 712 mn10300-*-*) 713 noconfigdirs="$noconfigdirs" 714 if [ x${is_cross_compiler} != xno ] ; then 715 target_configdirs="${target_configdirs} target-libstub target-cygmon" 716 fi 717 ;; 718 powerpc-*-aix*) 719 # copied from rs6000-*-* entry 720 noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss" 721 # This is needed until gcc and ld are fixed to work together. 722 use_gnu_ld=no 723 ;; 724 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe) 725 target_configdirs="$target_configdirs target-winsup" 726 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv" 727 # always build newlib. 728 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` 729 ;; 730 # This is temporary until we can link against shared libraries 731 powerpcle-*-solaris*) 732 noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv" 733 ;; 734 powerpc-*-beos*) 735 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" 736 ;; 737 rs6000-*-lynxos*) 738 # The CVS server code doesn't work on the RS/6000 739 # Newlib makes problems for libg++ in crosses. 740 noconfigdirs="$noconfigdirs target-newlib gprof cvssrc" 741 ;; 742 rs6000-*-aix*) 743 noconfigdirs="$noconfigdirs gprof" 744 # This is needed until gcc and ld are fixed to work together. 745 use_gnu_ld=no 746 ;; 747 rs6000-*-*) 748 noconfigdirs="$noconfigdirs gprof" 749 ;; 750 m68k-apollo-*) 751 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss" 752 ;; 753 mips*-*-irix5*) 754 # The GNU linker does not support shared libraries. 755 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work) 756 noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss" 757 ;; 758 mips*-*-irix6*) 759 # The GNU assembler and linker do not support IRIX 6. 760 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work) 761 noconfigdirs="$noconfigdirs ld gas gprof emacs target-libgloss" 762 ;; 763 mips*-dec-bsd*) 764 noconfigdirs="$noconfigdirs gprof target-libgloss" 765 ;; 766 mips*-*-bsd*) 767 noconfigdirs="$noconfigdirs gprof target-libgloss" 768 ;; 769 mipstx39-*-*) 770 noconfigdirs="$noconfigdirs gprof" # same as generic mips 771 target_configdirs="${target_configdirs} target-libstub target-cygmon" 772 ;; 773 mips*-*-*) 774 noconfigdirs="$noconfigdirs gprof" 775 ;; 776 romp-*-*) 777 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss" 778 ;; 779 sh-*-*) 780 case "${host}" in 781 i[3456]86-*-vsta) ;; # don't add gprof back in 782 i[3456]86-*-go32*) ;; # don't add gprof back in 783 i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in 784 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;; 785 esac 786 noconfigdirs="$noconfigdirs target-libgloss" 787 ;; 788 sparc-*-elf*) 789 if [ x${is_cross_compiler} != xno ] ; then 790 target_configdirs="${target_configdirs} target-libstub target-cygmon" 791 fi 792 ;; 793 sparc64-*-elf*) 794 if [ x${is_cross_compiler} != xno ] ; then 795 target_configdirs="${target_configdirs} target-libstub target-cygmon" 796 fi 797 ;; 798 sparclite-*-aout*) 799 if [ x${is_cross_compiler} != xno ] ; then 800 target_configdirs="${target_configdirs} target-libstub target-cygmon" 801 fi 802 ;; 803 sparc-*-sunos4*) 804 if [ x${is_cross_compiler} != xno ] ; then 805 noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss" 806 else 807 use_gnu_ld=no 808 fi 809 ;; 810 v810-*-*) 811 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss" 812 ;; 813 v850-*-*) 814 noconfigdirs="$noconfigdirs target-libgloss" 815 ;; 816 vax-*-vms) 817 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss" 818 ;; 819 vax-*-*) 820 noconfigdirs="$noconfigdirs target-newlib target-libgloss" 821 ;; 822 *-*-lynxos*) 823 # Newlib makes problems for libg++ in crosses. 824 noconfigdirs="$noconfigdirs target-newlib target-libgloss" 825 ;; 826 *-*-macos* | \ 827 *-*-mpw*) 828 # Macs want a resource compiler. 829 configdirs="$configdirs grez" 830 ;; 831esac 832 833# If we aren't building newlib, then don't build libgloss, since libgloss 834# depends upon some newlib header files. 835case "${noconfigdirs}" in 836 *target-libgloss*) ;; 837 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;; 838esac 839 840# Make sure we don't let GNU ld be added if we didn't want it. 841if [ x$with_gnu_ld = xno ]; then 842 use_gnu_ld=no 843 noconfigdirs="$noconfigdirs ld" 844fi 845 846# Make sure we don't let GNU as be added if we didn't want it. 847if [ x$with_gnu_as = xno ]; then 848 use_gnu_as=no 849 noconfigdirs="$noconfigdirs gas" 850fi 851 852# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and 853# $target_configdirs. 854# If we have the source for $noconfigdirs entries, add them to $notsupp. 855 856notsupp="" 857for dir in . $skipdirs $noconfigdirs ; do 858 dirname=`echo $dir | sed -e s/target-//g` 859 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then 860 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"` 861 if [ -r $srcdir/$dirname/configure ] \ 862 || [ -r $srcdir/$dirname/configure.in ]; then 863 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then 864 true 865 else 866 notsupp="$notsupp $dir" 867 fi 868 fi 869 fi 870 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then 871 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"` 872 if [ -r $srcdir/$dirname/configure ] \ 873 || [ -r $srcdir/$dirname/configure.in ]; then 874 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then 875 true 876 else 877 notsupp="$notsupp $dir" 878 fi 879 fi 880 fi 881done 882 883# Sometimes the tools are distributed with libiberty but with no other 884# libraries. In that case, we don't want to build target-libiberty. 885if [ -n "${target_configdirs}" ]; then 886 others= 887 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do 888 if [ "$i" != "libiberty" ]; then 889 if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then 890 others=yes; 891 break; 892 fi 893 fi 894 done 895 if [ -z "${others}" ]; then 896 target_configdirs= 897 fi 898fi 899 900# Deconfigure all subdirectories, in case we are changing the 901# configuration from one where a subdirectory is supported to one where it 902# is not. 903if [ -z "${norecursion}" ] && [ -n "${configdirs}" ]; then 904 for i in `echo ${configdirs} | sed -e s/target-//g` ; do 905 rm -f $i/Makefile 906 done 907fi 908if [ -z "${norecursion}" ] && [ -n "${target_configdirs}" ]; then 909 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do 910 rm -f ${target_subdir}/$i/Makefile 911 done 912fi 913 914# Produce a warning message for the subdirs we can't configure. 915# This isn't especially interesting in the Cygnus tree, but in the individual 916# FSF releases, it's important to let people know when their machine isn't 917# supported by the one or two programs in a package. 918 919if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then 920 # If $appdirs is non-empty, at least one of those directories must still 921 # be configured, or we error out. (E.g., if the gas release supports a 922 # specified target in some subdirs but not the gas subdir, we shouldn't 923 # pretend that all is well.) 924 if [ -n "$appdirs" ]; then 925 for dir in $appdirs ; do 926 if [ -r $dir/Makefile.in ]; then 927 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then 928 appdirs="" 929 break 930 fi 931 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then 932 appdirs="" 933 break 934 fi 935 fi 936 done 937 if [ -n "$appdirs" ]; then 938 echo "*** This configuration is not supported by this package." 1>&2 939 exit 1 940 fi 941 fi 942 # Okay, some application will build, or we don't care to check. Still 943 # notify of subdirs not getting built. 944 echo "*** This configuration is not supported in the following subdirectories:" 1>&2 945 echo " ${notsupp}" 1>&2 946 echo " (Any other directories should still work fine.)" 1>&2 947fi 948 949# Set with_gnu_as and with_gnu_ld as appropriate. 950# 951# This is done by determining whether or not the appropriate directory 952# is available, and by checking whether or not specific configurations 953# have requested that this magic not happen. 954# 955# The command line options always override the explicit settings in 956# configure.in, and the settings in configure.in override this magic. 957# 958# If the default for a toolchain is to use GNU as and ld, and you don't 959# want to do that, then you should use the --without-gnu-as and 960# --without-gnu-ld options for the configure script. 961 962if [ x${use_gnu_as} = x ] ; then 963 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then 964 with_gnu_as=yes 965 withoptions="$withoptions --with-gnu-as" 966 fi 967fi 968 969if [ x${use_gnu_ld} = x ] ; then 970 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then 971 with_gnu_ld=yes 972 withoptions="$withoptions --with-gnu-ld" 973 fi 974fi 975 976# If using newlib, add --with-newlib to the withoptions so that gcc/configure 977# can detect this case. 978 979if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then 980 with_newlib=yes 981 withoptions="$withoptions --with-newlib" 982fi 983 984if [ x${shared} = xyes ]; then 985 case "${target}" in 986 hppa*) 987 target_makefile_frag="${target_makefile_frag} config/mt-papic" 988 ;; 989 i[3456]86-*) 990 target_makefile_frag="${target_makefile_frag} config/mt-x86pic" 991 ;; 992 powerpc*-*) 993 target_makefile_frag="${target_makefile_frag} config/mt-ppcpic" 994 ;; 995 alpha*-*-linux*) 996 target_makefile_frag="${target_makefile_frag} config/mt-elfalphapic" 997 ;; 998 *) 999 if test -f ${srcdir}/config/mt-${target_cpu}pic; then 1000 target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic" 1001 fi 1002 ;; 1003 esac 1004fi 1005 1006rm -f mt-frag 1007if [ -n "${target_makefile_frag}" ] ; then 1008 for f in ${target_makefile_frag} 1009 do 1010 cat ${srcdir}/$f >> mt-frag 1011 done 1012 target_makefile_frag=mt-frag 1013fi 1014 1015# post-target: 1016 1017# Make sure that the compiler is able to generate an executable. If it 1018# can't, we are probably in trouble. We don't care whether we can run the 1019# executable--we might be using a cross compiler--we only care whether it 1020# can be created. At this point the main configure script has set CC. 1021echo "int main () { return 0; }" > conftest.c 1022${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c 1023if [ $? = 0 ] && [ -s conftest -o -s conftest.exe ]; then 1024 : 1025else 1026 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed." 1027 echo 1>&2 "*** You must set the environment variable CC to a working compiler." 1028 rm -f conftest* 1029 exit 1 1030fi 1031rm -f conftest* 1032 1033# The Solaris /usr/ucb/cc compiler does not appear to work. 1034case "${host}" in 1035 sparc-sun-solaris2*) 1036 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`" 1037 if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then 1038 could_use= 1039 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin" 1040 if [ -d /opt/cygnus/bin ] ; then 1041 if [ "$could_use" = "" ] ; then 1042 could_use="/opt/cygnus/bin" 1043 else 1044 could_use="$could_use or /opt/cygnus/bin" 1045 fi 1046 fi 1047 if [ "$could_use" = "" ] ; then 1048 echo "Warning: compilation may fail because you're using" 1049 echo "/usr/ucb/cc. You should change your PATH or CC " 1050 echo "variable and rerun configure." 1051 else 1052 echo "Warning: compilation may fail because you're using" 1053 echo "/usr/ucb/cc, when you should use the C compiler from" 1054 echo "$could_use. You should change your" 1055 echo "PATH or CC variable and rerun configure." 1056 fi 1057 fi 1058 ;; 1059esac 1060 1061# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the 1062# binutils tools will find libbfd.so. 1063if [ "${shared}" = "yes" ]; then 1064 sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \ 1065 Makefile > Makefile.tem 1066 rm -f Makefile 1067 mv -f Makefile.tem Makefile 1068 1069 case "${host}" in 1070 *-*-hpux*) 1071 sed -e 's/^RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \ 1072 Makefile > Makefile.tem 1073 rm -f Makefile 1074 mv -f Makefile.tem Makefile 1075 ;; 1076 esac 1077fi 1078 1079# Record target_configdirs and the configure arguments in Makefile. 1080target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` 1081targargs=`echo "${arguments}" | \ 1082 sed -e 's/--no[^ ]*//' \ 1083 -e 's/--cache[a-z-]*=[^ ]*//' \ 1084 -e 's/--ho[a-z-]*=[^ ]*//' \ 1085 -e 's/--bu[a-z-]*=[^ ]*//' \ 1086 -e 's/--ta[a-z-]*=[^ ]*//'` 1087 1088# Passing a --with-cross-host argument lets the target libraries know 1089# whether they are being built with a cross-compiler or being built 1090# native. However, it would be better to use other mechanisms to make the 1091# sorts of decisions they want to make on this basis. Please consider 1092# this option to be deprecated. FIXME. 1093if [ x${is_cross_compiler} = xyes ]; then 1094 targargs="--with-cross-host=${host_alias} ${targargs}" 1095fi 1096 1097# Default to --enable-multilib. 1098if [ x${enable_multilib} = x ]; then 1099 targargs="--enable-multilib ${targargs}" 1100fi 1101 1102# Pass --with-newlib if appropriate. Note that target_configdirs has 1103# changed from the earlier setting of with_newlib. 1104if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then 1105 targargs="--with-newlib ${targargs}" 1106fi 1107 1108# provide a proper gxx_include_dir. 1109# Note, if you change the default, make sure to fix both here and in 1110# the gcc, libio, libstdc++ and libg++ subdirectories. 1111# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. 1112gxx_include_dir= 1113if test -n "${with_gxx_include_dir}"; then 1114 case "${with_gxx_include_dir}" in 1115 yes ) 1116 echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2 1117 exit 1 1118 ;; 1119 no ) 1120 ;; 1121 * ) 1122 gxx_include_dir=${with_gxx_include_dir} 1123 ;; 1124 esac 1125fi 1126if test x${gxx_include_dir} = x; then 1127 if test x${enable_version_specific_runtime_libs} = xyes; then 1128 gxx_include_dir='${libsubdir}/include/g++' 1129 else 1130 . ${topsrcdir}/config.if 1131 gxx_include_dir='${prefix}/include/g++' 1132 fi 1133else 1134 gxx_include_dir=${gxx_include_dir} 1135fi 1136 1137targargs="--host=${target_alias} --build=${build_alias} ${targargs}" 1138sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \ 1139 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \ 1140 -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \ 1141 -e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \ 1142 Makefile > Makefile.tem 1143rm -f Makefile 1144mv -f Makefile.tem Makefile 1145 1146# 1147# Local Variables: 1148# fill-column: 131 1149# End: 1150# 1151