* Makefile.tpl: Set INSTALL and friends using autoconf. Remove
[deliverable/binutils-gdb.git] / configure.in
1 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
2 # 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
3 #
4 # This file is free software; you can redistribute it and/or modify it
5 # under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 ##############################################################################
19 ### WARNING: this file contains embedded tabs. Do not run untabify on this file.
20
21 AC_INIT(move-if-change)
22 AC_PREREQ(2.13)
23 AC_CANONICAL_SYSTEM
24 AC_ARG_PROGRAM
25
26 # Get 'install' or 'install-sh' and its variants.
27 AC_PROG_INSTALL
28
29 sinclude(config/acx.m4)
30
31 ### we might need to use some other shell than /bin/sh for running subshells
32 ### If we are on Windows, search for the shell. This will permit people
33 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
34 ### without also having to set CONFIG_SHELL. This code will work when
35 ### using bash, which sets OSTYPE.
36 case "${OSTYPE}" in
37 *win32*)
38 if test x${CONFIG_SHELL} = x ; then
39 if test ! -f /bin/sh ; then
40 if test x${SHELL} != x && test -f ${SHELL} ; then
41 CONFIG_SHELL=${SHELL}
42 export CONFIG_SHELL
43 else
44 for prog in sh sh.exe bash bash.exe; do
45 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
46 for dir in $PATH; do
47 test -z "$dir" && dir=.
48 if test -f $dir/$prog; then
49 CONFIG_SHELL=$dir/$prog
50 export CONFIG_SHELL
51 break
52 fi
53 done
54 IFS="$save_ifs"
55 test -n "${CONFIG_SHELL}" && break
56 done
57 fi
58 fi
59 fi
60 ;;
61 esac
62
63 config_shell=${CONFIG_SHELL-/bin/sh}
64
65 progname=$0
66 # if PWD already has a value, it is probably wrong.
67 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
68
69 # Export original configure arguments for use by sub-configures.
70 TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
71 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
72
73 moveifchange=${srcdir}/move-if-change
74
75 # Set srcdir to "." if that's what it is.
76 # This is important for multilib support.
77 pwd=`${PWDCMD-pwd}`
78 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
79 if test "${pwd}" = "${srcpwd}" ; then
80 srcdir=.
81 fi
82
83 topsrcdir=$srcpwd
84
85 extra_host_args=
86 # Define the trigger file to make sure configure will re-run whenever
87 # the gcc version number changes.
88 if test "${with_gcc_version_trigger+set}" = set ; then
89 gcc_version_trigger="$with_gcc_version_trigger"
90 gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'`
91 else
92 # If gcc's sources are available, define the trigger file.
93 if test -f ${topsrcdir}/gcc/version.c ; then
94 gcc_version_trigger=${topsrcdir}/gcc/version.c
95 gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'`
96 case "$ac_configure_args" in
97 *--with-gcc-version-trigger=$gcc_version_trigger* )
98 ;;
99 * )
100 # Add to all subconfigure arguments: build, host, and target.
101 ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger"
102 ;;
103 esac
104 fi
105 fi
106
107 ### To add a new directory to the tree, first choose whether it is a target
108 ### or a host dependent tool. Then put it into the appropriate list
109 ### (library or tools, host or target), doing a dependency sort.
110
111 # Subdirs will be configured in the order listed in build_configdirs,
112 # configdirs, or target_configdirs; see the serialization section below.
113
114 # Dependency sorting is only needed when *configuration* must be done in
115 # a particular order. In all cases a dependency should be specified in
116 # the Makefile, whether or not it's implicitly specified here.
117
118 # Double entries in build_configdirs, configdirs, or target_configdirs may
119 # cause circular dependencies and break everything horribly.
120
121 # these libraries are used by various programs built for the host environment
122 #
123 host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib"
124
125 # these tools are built for the host environment
126 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
127 # know that we are building the simulator.
128 # binutils, gas and ld appear in that order because it makes sense to run
129 # "make check" in that particular order.
130 host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar"
131
132 # libgcj represents the runtime libraries only used by gcj.
133 libgcj="target-libffi \
134 target-boehm-gc \
135 target-zlib \
136 target-qthreads \
137 target-libjava"
138
139 # these libraries are built for the target environment, and are built after
140 # the host libraries and the host tools (which may be a cross compiler)
141 #
142 target_libraries="target-libiberty \
143 target-libgloss \
144 target-newlib \
145 target-libstdc++-v3 \
146 target-libf2c \
147 ${libgcj} \
148 target-libobjc"
149
150 # these tools are built using the target libraries, and are intended to
151 # run only in the target environment
152 #
153 # note: any program that *uses* libraries that are in the "target_libraries"
154 # list belongs in this list. those programs are also very likely
155 # candidates for the "native_only" list which follows
156 #
157 target_tools="target-examples target-groff target-gperf target-rda"
158
159 ################################################################################
160
161 ## All tools belong in one of the four categories, and are assigned above
162 ## We assign ${configdirs} this way to remove all embedded newlines. This
163 ## is important because configure will choke if they ever get through.
164 ## ${configdirs} is directories we build using the host tools.
165 ## ${target_configdirs} is directories we build using the target tools.
166 #
167 configdirs=`echo ${host_libs} ${host_tools}`
168 target_configdirs=`echo ${target_libraries} ${target_tools}`
169
170 # Only make build modules if build != host.
171 # This should be done more generally, but at the moment it doesn't matter.
172 if test ${host_alias} != ${build_alias} ; then
173 # This is the only build module.
174 build_modules=libiberty
175 else
176 build_modules=
177 fi
178
179
180 ################################################################################
181
182 srcname="gnu development package"
183
184 # This gets set non-empty for some net releases of packages.
185 appdirs=""
186
187 # Define is_cross_compiler to save on calls to 'test'.
188 is_cross_compiler=
189 if test x"${host}" = x"${target}" ; then
190 is_cross_compiler=no
191 else
192 is_cross_compiler=yes
193 fi
194
195 # Find the build and target subdirs.
196 GCC_TOPLEV_SUBDIRS
197
198 if test ! -d ${target_subdir} ; then
199 if mkdir ${target_subdir} ; then true
200 else
201 echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
202 exit 1
203 fi
204 fi
205
206 if test x"${build_alias}" != x"${host}" ; then
207 if test ! -d ${build_subdir} ; then
208 if mkdir ${build_subdir} ; then true
209 else
210 echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
211 exit 1
212 fi
213 fi
214 fi
215
216 # Skipdirs are removed silently.
217 skipdirs=
218 # Noconfigdirs are removed loudly.
219 noconfigdirs=""
220
221 use_gnu_ld=
222 # Make sure we don't let GNU ld be added if we didn't want it.
223 if test x$with_gnu_ld = xno ; then
224 use_gnu_ld=no
225 noconfigdirs="$noconfigdirs ld"
226 fi
227
228 use_gnu_as=
229 # Make sure we don't let GNU as be added if we didn't want it.
230 if test x$with_gnu_as = xno ; then
231 use_gnu_as=no
232 noconfigdirs="$noconfigdirs gas"
233 fi
234
235 # some tools are so dependent upon X11 that if we're not building with X,
236 # it's not even worth trying to configure, much less build, that tool.
237
238 case ${with_x} in
239 yes | "") ;; # the default value for this tree is that X11 is available
240 no)
241 skipdirs="${skipdirs} tk tix itcl libgui"
242 # We won't be able to build gdbtk without X.
243 enable_gdbtk=no
244 ;;
245 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
246 esac
247
248 # Some tools are only suitable for building in a "native" situation.
249 # Remove these if host!=target.
250 native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
251
252 # Similarly, some are only suitable for cross toolchains.
253 # Remove these if host=target.
254 cross_only="target-libgloss target-newlib target-opcodes"
255
256 case $is_cross_compiler in
257 no) skipdirs="${skipdirs} ${cross_only}" ;;
258 yes) skipdirs="${skipdirs} ${native_only}" ;;
259 esac
260
261 # If both --with-headers and --with-libs are specified, default to
262 # --without-newlib.
263 if test x"${with_headers}" != x && test x"${with_libs}" != x ; then
264 if test x"${with_newlib}" = x ; then
265 with_newlib=no
266 fi
267 fi
268
269 # Recognize --with-newlib/--without-newlib.
270 case ${with_newlib} in
271 no) skipdirs="${skipdirs} target-newlib" ;;
272 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
273 esac
274
275 # Configure extra directories which are host specific
276
277 case "${host}" in
278 *-cygwin*)
279 configdirs="$configdirs libtermcap" ;;
280 esac
281
282 # Remove more programs from consideration, based on the host or
283 # target this usually means that a port of the program doesn't
284 # exist yet.
285
286 case "${host}" in
287 hppa*64*-*-*)
288 noconfigdirs="$noconfigdirs byacc"
289 ;;
290 i[[3456789]]86-*-vsta)
291 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix gnuserv gettext"
292 ;;
293 i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
294 noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix gnuserv libffi"
295 ;;
296 i[[3456789]]86-*-mingw32*)
297 # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix gnuserv"
298 noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool"
299 ;;
300 i[[3456789]]86-*-beos*)
301 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
302 ;;
303 *-*-cygwin*)
304 noconfigdirs="autoconf automake send-pr rcs guile perl"
305 ;;
306 *-*-netbsd*)
307 noconfigdirs="rcs"
308 ;;
309 ppc*-*-pe)
310 noconfigdirs="patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix gnuserv"
311 ;;
312 powerpc-*-beos*)
313 noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
314 ;;
315 *-*-darwin*)
316 noconfigdirs="$noconfigdirs tk itcl tix libgui"
317 ;;
318 esac
319
320 # Save it here so that, even in case of --enable-libgcj, if the Java
321 # front-end isn't enabled, we still get libgcj disabled.
322 libgcj_saved=$libgcj
323 case $enable_libgcj in
324 yes)
325 # If we reset it here, it won't get added to noconfigdirs in the
326 # target-specific build rules, so it will be forcibly enabled
327 # (unless the Java language itself isn't enabled).
328 libgcj=
329 ;;
330 no)
331 # Make sure we get it printed in the list of not supported target libs.
332 noconfigdirs="$noconfigdirs ${libgcj}"
333 ;;
334 esac
335
336 case "${target}" in
337 *-*-chorusos)
338 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
339 ;;
340 *-*-darwin*)
341 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
342 noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
343 ;;
344 *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
345 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
346 ;;
347 *-*-kaos*)
348 # Remove unsupported stuff on all kaOS configurations.
349 skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-libf2c target-librx"
350 skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
351 skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
352 noconfigdirs="$noconfigdirs target-libgloss"
353 ;;
354 *-*-netbsd*)
355 # Skip some stuff on all NetBSD configurations.
356 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
357
358 # Skip some stuff that's unsupported on some NetBSD configurations.
359 case "${target}" in
360 i*86-*-netbsdelf*) ;;
361 arm*-*-netbsdelf*) ;;
362 *)
363 noconfigdirs="$noconfigdirs ${libgcj}"
364 ;;
365 esac
366 ;;
367 *-*-netware)
368 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-newlib target-libiberty target-libgloss ${libgcj}"
369 ;;
370 *-*-rtems*)
371 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
372 case ${target} in
373 h8300*-*-* | h8500-*-*)
374 noconfigdirs="$noconfigdirs target-libf2c"
375 ;;
376 *) ;;
377 esac
378 ;;
379 *-*-vxworks*)
380 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
381 ;;
382 alpha*-dec-osf*)
383 # ld works, but does not support shared libraries.
384 # newlib is not 64 bit ready. I'm not sure about fileutils.
385 # gas doesn't generate exception information.
386 noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
387 ;;
388 alpha*-*-*vms*)
389 noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
390 ;;
391 alpha*-*-linux*)
392 # newlib is not 64 bit ready
393 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
394 ;;
395 alpha*-*-freebsd*)
396 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
397 ;;
398 alpha*-*-*)
399 # newlib is not 64 bit ready
400 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
401 ;;
402 am33_2.0-*-linux*)
403 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
404 ;;
405 sh-*-linux*)
406 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
407 ;;
408 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
409 noconfigdirs="$noconfigdirs ${libgcj}"
410 noconfigdirs="$noconfigdirs target-examples"
411 noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
412 noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
413 noconfigdirs="$noconfigdirs expect dejagnu"
414 # the C++ libraries don't build on top of CE's C libraries
415 noconfigdirs="$noconfigdirs target-libstdc++-v3"
416 noconfigdirs="$noconfigdirs target-newlib"
417 case "${host}" in
418 *-*-cygwin*) ;; # keep gdb and readline
419 *) noconfigdirs="$noconfigdirs gdb readline"
420 ;;
421 esac
422 ;;
423 arc-*-*)
424 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
425 ;;
426 arm-*-coff | strongarm-*-coff | xscale-*-coff)
427 noconfigdirs="$noconfigdirs ${libgcj}"
428 ;;
429 arm-*-elf* | strongarm-*-elf* | xscale-*-elf*)
430 noconfigdirs="$noconfigdirs target-libffi target-qthreads"
431 ;;
432 arm-*-pe*)
433 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
434 ;;
435 arm-*-oabi*)
436 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
437 ;;
438 thumb-*-coff)
439 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
440 ;;
441 thumb-*-elf)
442 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
443 ;;
444 thumb-*-oabi)
445 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
446 ;;
447 thumb-*-pe)
448 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
449 ;;
450 arm-*-riscix*)
451 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
452 ;;
453 avr-*-*)
454 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
455 ;;
456 c4x-*-* | tic4x-*-*)
457 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
458 ;;
459 c54x*-*-* | tic54x-*-*)
460 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
461 ;;
462 cris-*-*)
463 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
464 ;;
465 d10v-*-*)
466 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
467 ;;
468 d30v-*-*)
469 noconfigdirs="$noconfigdirs ${libgcj} gdb"
470 ;;
471 fr30-*-elf*)
472 noconfigdirs="$noconfigdirs ${libgcj} gdb"
473 ;;
474 frv-*-*)
475 noconfigdirs="$noconfigdirs ${libgcj}"
476 ;;
477 h8300*-*-*)
478 noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c"
479 ;;
480 h8500-*-*)
481 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c"
482 ;;
483 hppa*64*-*-linux* | parisc*64*-*-linux*)
484 # In this case, it's because the hppa64-linux target is for
485 # the kernel only at this point and has no libc, and thus no
486 # headers, crt*.o, etc., all of which are needed by these.
487 noconfigdirs="$noconfigdirs target-zlib"
488 ;;
489 hppa*-*-*elf* | \
490 parisc*-*-linux* | hppa*-*-linux* | \
491 hppa*-*-lites* | \
492 hppa*-*-openbsd* | \
493 hppa*64*-*-*)
494 noconfigdirs="$noconfigdirs ${libgcj}"
495 # Do configure ld/binutils/gas for this case.
496 ;;
497 hppa*-*-*)
498 # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
499 # build on HP-UX 10.20.
500 noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
501 ;;
502 i960-*-*)
503 noconfigdirs="$noconfigdirs ${libgcj} gdb"
504 ;;
505 ia64*-*-elf*)
506 # No gdb support yet.
507 noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
508 ;;
509 ia64*-**-hpux*)
510 # No gdb or ld support yet.
511 noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld"
512 ;;
513 i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
514 noconfigdirs="$noconfigdirs ${libgcj}"
515 ;;
516 i[[3456789]]86-*-freebsd*)
517 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
518 ;;
519 i[[3456789]]86-*-linux*)
520 # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
521 # not build java stuff by default.
522 case "${target}" in
523 *-*-*libc1*)
524 noconfigdirs="$noconfigdirs ${libgcj}";;
525 esac
526
527 # This section makes it possible to build newlib natively on linux.
528 # If we are using a cross compiler then don't configure newlib.
529 if test x${is_cross_compiler} != xno ; then
530 noconfigdirs="$noconfigdirs target-newlib"
531 fi
532 noconfigdirs="$noconfigdirs target-libgloss"
533 # If we are not using a cross compiler, do configure newlib.
534 # Note however, that newlib will only be configured in this situation
535 # if the --with-newlib option has been given, because otherwise
536 # 'target-newlib' will appear in skipdirs.
537 ;;
538 i[[3456789]]86-*-mingw32*)
539 target_configdirs="$target_configdirs target-mingw"
540 noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
541
542 # Can't build gdb for mingw32 if not native.
543 case "${host}" in
544 i[[3456789]]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
545 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix gnuserv"
546 ;;
547 esac
548 ;;
549 *-*-cygwin*)
550 target_configdirs="$target_configdirs target-libtermcap target-winsup"
551 noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
552 # always build newlib.
553 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
554
555 # Can't build gdb for Cygwin if not native.
556 case "${host}" in
557 *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
558 *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui gnuserv"
559 ;;
560 esac
561 ;;
562 i[[3456789]]86-*-pe)
563 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
564 ;;
565 i[[3456789]]86-*-sco3.2v5*)
566 # The linker does not yet know about weak symbols in COFF,
567 # and is not configured to handle mixed ELF and COFF.
568 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
569 ;;
570 i[[3456789]]86-*-sco*)
571 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
572 ;;
573 i[[3456789]]86-*-solaris2*)
574 noconfigdirs="$noconfigdirs target-libgloss"
575 ;;
576 i[[3456789]]86-*-sysv4*)
577 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
578 ;;
579 i[[3456789]]86-*-beos*)
580 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
581 ;;
582 m32r-*-*)
583 noconfigdirs="$noconfigdirs ${libgcj} gdb"
584 ;;
585 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
586 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
587 ;;
588 m68k-*-elf*)
589 noconfigdirs="$noconfigdirs ${libgcj}"
590 ;;
591 m68k-*-coff*)
592 noconfigdirs="$noconfigdirs ${libgcj}"
593 ;;
594 mcore-*-pe*)
595 # The EPOC C++ environment does not support exceptions or rtti,
596 # and so building libstdc++-v3 tends not to always work.
597 noconfigdirs="$noconfigdirs target-libstdc++-v3"
598 ;;
599 mmix-*-*)
600 noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss"
601 ;;
602 mn10200-*-*)
603 noconfigdirs="$noconfigdirs ${libgcj}"
604 ;;
605 mn10300-*-*)
606 noconfigdirs="$noconfigdirs ${libgcj}"
607 ;;
608 powerpc-*-aix*)
609 # copied from rs6000-*-* entry
610 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
611 ;;
612 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
613 target_configdirs="$target_configdirs target-winsup"
614 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix gnuserv ${libgcj}"
615 # always build newlib.
616 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
617 ;;
618 # This is temporary until we can link against shared libraries
619 powerpcle-*-solaris*)
620 noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix gnuserv ${libgcj}"
621 ;;
622 powerpc-*-beos*)
623 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
624 ;;
625 powerpc-*-eabi)
626 noconfigdirs="$noconfigdirs ${libgcj}"
627 ;;
628 rs6000-*-lynxos*)
629 noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
630 ;;
631 rs6000-*-aix*)
632 noconfigdirs="$noconfigdirs gprof ${libgcj}"
633 ;;
634 rs6000-*-*)
635 noconfigdirs="$noconfigdirs gprof ${libgcj}"
636 ;;
637 m68k-apollo-*)
638 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
639 ;;
640 mips*-*-irix5*)
641 # The GNU linker does not support shared libraries.
642 noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}"
643 ;;
644 mips*-*-irix6*)
645 # Linking libjava exceeds command-line length limits on at least
646 # IRIX 6.2, but not on IRIX 6.5.
647 # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
648 # <oldham@codesourcery.com>
649 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
650 ;;
651 mips*-dec-bsd*)
652 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
653 ;;
654 mips*-*-bsd*)
655 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
656 ;;
657 mipstx39-*-*)
658 noconfigdirs="$noconfigdirs gprof ${libgcj}" # same as generic mips
659 ;;
660 mips*-*-linux*)
661 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
662 ;;
663 mips*-*-*)
664 noconfigdirs="$noconfigdirs gprof ${libgcj}"
665 ;;
666 romp-*-*)
667 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
668 ;;
669 sh-*-*)
670 case "${host}" in
671 i[[3456789]]86-*-vsta) ;; # don't add gprof back in
672 i[[3456789]]86-*-go32*) ;; # don't add gprof back in
673 i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
674 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
675 esac
676 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
677 ;;
678 sh64-*-*)
679 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
680 ;;
681 sparc-*-elf*)
682 noconfigdirs="$noconfigdirs ${libgcj}"
683 ;;
684 sparc64-*-elf*)
685 noconfigdirs="$noconfigdirs ${libgcj}"
686 ;;
687 sparclite-*-*)
688 noconfigdirs="$noconfigdirs ${libgcj}"
689 ;;
690 sparc-*-sunos4*)
691 noconfigdirs="$noconfigdirs ${libgcj}"
692 if test x${is_cross_compiler} != xno ; then
693 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
694 else
695 use_gnu_ld=no
696 fi
697 ;;
698 sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
699 ;;
700 v810-*-*)
701 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
702 ;;
703 v850-*-*)
704 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
705 ;;
706 v850e-*-*)
707 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
708 ;;
709 v850ea-*-*)
710 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
711 ;;
712 vax-*-vms)
713 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
714 ;;
715 vax-*-*)
716 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
717 ;;
718 xtensa-*-*)
719 noconfigdirs="$noconfigdirs ${libgcj}"
720 ;;
721 ip2k-*-*)
722 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
723 ;;
724 *-*-linux*)
725 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
726 ;;
727 *-*-lynxos*)
728 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
729 ;;
730 *-*-*)
731 noconfigdirs="$noconfigdirs ${libgcj}"
732 ;;
733 esac
734
735 # If we aren't building newlib, then don't build libgloss, since libgloss
736 # depends upon some newlib header files.
737 case "${noconfigdirs}" in
738 *target-libgloss*) ;;
739 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
740 esac
741
742 # Figure out what language subdirectories are present.
743 # Look if the user specified --enable-languages="..."; if not, use
744 # the environment variable $LANGUAGES if defined. $LANGUAGES might
745 # go away some day.
746 # NB: embedded tabs in this IF block -- do not untabify
747 if test x"${enable_languages+set}" != xset; then
748 if test x"${LANGUAGES+set}" = xset; then
749 enable_languages="${LANGUAGES}"
750 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
751 else
752 enable_languages=all
753 fi
754 else
755 if test x"${enable_languages}" = x ||
756 test x"${enable_languages}" = xyes;
757 then
758 echo configure.in: --enable-languages needs at least one language argument 1>&2
759 exit 1
760 fi
761 fi
762 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
763
764 # First scan to see if an enabled language requires some other language.
765 # We assume that a given config-lang.in will list all the language
766 # front ends it requires, even if some are required indirectly.
767 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
768 case ${lang_frag} in
769 ..) ;;
770 # The odd quoting in the next line works around
771 # an apparent bug in bash 1.12 on linux.
772 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
773 *)
774 # From the config-lang.in, get $language, $lang_requires
775 language=
776 lang_requires=
777 . ${lang_frag}
778 for other in ${lang_requires} ; do
779 case ,${enable_languages}, in
780 *,$other,*) ;;
781 *,all,*) ;;
782 *,$language,*)
783 echo " \`$other' language required by \`$language'; enabling" 1>&2
784 enable_languages="${enable_languages},${other}"
785 ;;
786 esac
787 done
788 ;;
789 esac
790 done
791
792 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
793 case ${lang_frag} in
794 ..) ;;
795 # The odd quoting in the next line works around
796 # an apparent bug in bash 1.12 on linux.
797 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
798 *)
799 # From the config-lang.in, get $language, $target_libs,
800 # $lang_dirs, and $build_by_default
801 language=
802 target_libs=
803 lang_dirs=
804 build_by_default=
805 . ${lang_frag}
806 if test "x$language" = x ; then
807 echo "${lang_frag} doesn't set \$language." 1>&2
808 exit 1
809 fi
810 case ,${enable_languages}, in
811 *,${language},*)
812 # Language was explicitly selected; include it.
813 add_this_lang=yes
814 ;;
815 *,all,*)
816 # 'all' was selected; include 'default' languages.
817 case ${build_by_default} in
818 no) add_this_lang=no ;;
819 *) add_this_lang=yes ;;
820 esac
821 ;;
822 *) add_this_lang=no ;;
823 esac
824 case ${add_this_lang} in
825 no)
826 # Remove language-dependent dirs.
827 eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
828 ;;
829 esac
830 ;;
831 esac
832 done
833
834 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
835 # $target_configdirs.
836 # If we have the source for $noconfigdirs entries, add them to $notsupp.
837
838 notsupp=""
839 for dir in . $skipdirs $noconfigdirs ; do
840 dirname=`echo $dir | sed -e s/target-//g`
841 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
842 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
843 if test -r $srcdir/$dirname/configure ; then
844 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
845 true
846 else
847 notsupp="$notsupp $dir"
848 fi
849 fi
850 fi
851 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
852 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
853 if test -r $srcdir/$dirname/configure ; then
854 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
855 true
856 else
857 notsupp="$notsupp $dir"
858 fi
859 fi
860 fi
861 done
862
863 # Sometimes the tools are distributed with libiberty but with no other
864 # libraries. In that case, we don't want to build target-libiberty.
865 if test -n "${target_configdirs}" ; then
866 others=
867 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
868 if test "$i" != "libiberty" ; then
869 if test -r $srcdir/$i/configure ; then
870 others=yes;
871 break;
872 fi
873 fi
874 done
875 if test -z "${others}" ; then
876 target_configdirs=
877 fi
878 fi
879
880 # Quietly strip out all directories which aren't configurable in this tree.
881 # This relies on all configurable subdirectories being autoconfiscated, which
882 # is now the case.
883 configdirs_all="$configdirs"
884 configdirs=
885 for i in ${configdirs_all} ; do
886 if test -f ${srcdir}/$i/configure ; then
887 configdirs="${configdirs} $i"
888 fi
889 done
890 target_configdirs_all="$target_configdirs"
891 target_configdirs=
892 for i in ${target_configdirs_all} ; do
893 j=`echo $i | sed -e s/target-//g`
894 if test -f ${srcdir}/$j/configure ; then
895 target_configdirs="${target_configdirs} $i"
896 fi
897 done
898
899 # Produce a warning message for the subdirs we can't configure.
900 # This isn't especially interesting in the Cygnus tree, but in the individual
901 # FSF releases, it's important to let people know when their machine isn't
902 # supported by the one or two programs in a package.
903
904 if test -n "${notsupp}" && test -z "${norecursion}" ; then
905 # If $appdirs is non-empty, at least one of those directories must still
906 # be configured, or we error out. (E.g., if the gas release supports a
907 # specified target in some subdirs but not the gas subdir, we shouldn't
908 # pretend that all is well.)
909 if test -n "$appdirs" ; then
910 for dir in $appdirs ; do
911 if test -r $dir/Makefile.in ; then
912 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
913 appdirs=""
914 break
915 fi
916 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
917 appdirs=""
918 break
919 fi
920 fi
921 done
922 if test -n "$appdirs" ; then
923 echo "*** This configuration is not supported by this package." 1>&2
924 exit 1
925 fi
926 fi
927 # Okay, some application will build, or we don't care to check. Still
928 # notify of subdirs not getting built.
929 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
930 echo " ${notsupp}" 1>&2
931 echo " (Any other directories should still work fine.)" 1>&2
932 fi
933
934 case "$host" in
935 *msdosdjgpp*)
936 enable_gdbtk=no ;;
937 esac
938
939 copy_dirs=
940
941 # Handle --with-headers=XXX. If the value is not "yes", the contents of
942 # the named directory are copied to $(tooldir)/sys-include.
943 if test x"${with_headers}" != x ; then
944 if test x${is_cross_compiler} = xno ; then
945 echo 1>&2 '***' --with-headers is only supported when cross compiling
946 exit 1
947 fi
948 if test x"${with_headers}" != xyes ; then
949 case "${exec_prefixoption}" in
950 "") x=${prefix} ;;
951 *) x=${exec_prefix} ;;
952 esac
953 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
954 fi
955 fi
956
957 # Handle --with-libs=XXX. If the value is not "yes", the contents of
958 # the name directories are copied to $(tooldir)/lib. Multiple directories
959 # are permitted.
960 if test x"${with_libs}" != x ; then
961 if test x${is_cross_compiler} = xno ; then
962 echo 1>&2 '***' --with-libs is only supported when cross compiling
963 exit 1
964 fi
965 if test x"${with_libs}" != xyes ; then
966 # Copy the libraries in reverse order, so that files in the first named
967 # library override files in subsequent libraries.
968 case "${exec_prefixoption}" in
969 "") x=${prefix} ;;
970 *) x=${exec_prefix} ;;
971 esac
972 for l in ${with_libs}; do
973 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
974 done
975 fi
976 fi
977
978 # Handle ${copy_dirs}
979 set fnord ${copy_dirs}
980 shift
981 while test $# != 0 ; do
982 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
983 :
984 else
985 echo Copying $1 to $2
986
987 # Use the install script to create the directory and all required
988 # parent directories.
989 if test -d $2 ; then
990 :
991 else
992 echo >config.temp
993 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
994 fi
995
996 # Copy the directory, assuming we have tar.
997 # FIXME: Should we use B in the second tar? Not all systems support it.
998 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
999
1000 # It is the responsibility of the user to correctly adjust all
1001 # symlinks. If somebody can figure out how to handle them correctly
1002 # here, feel free to add the code.
1003
1004 echo $1 > $2/COPIED
1005 fi
1006 shift; shift
1007 done
1008
1009 # Work in distributions that contain no compiler tools, like Autoconf.
1010 tentative_cc=""
1011 host_makefile_frag=/dev/null
1012 if test -d ${srcdir}/config ; then
1013 case "${host}" in
1014 m68k-hp-hpux*)
1015 # Avoid "too much defining" errors from HPUX compiler.
1016 tentative_cc="cc -Wp,-H256000"
1017 # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
1018 # If it's HP/UX ar, this should be harmless.
1019 RANLIB="ar ts"
1020 ;;
1021 m68k-apollo-sysv*)
1022 tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
1023 ;;
1024 m68k-apollo-bsd*)
1025 #None of the Apollo compilers can compile gas or binutils. The preprocessor
1026 # chokes on bfd, the compiler won't let you assign integers to enums, and
1027 # other problems. Defining CC to gcc is a questionable way to say "don't use
1028 # the apollo compiler" (the preferred version of GCC could be called cc,
1029 # or whatever), but I'm not sure leaving CC as cc is any better...
1030 #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
1031 # Used to have BISON=yacc.
1032 tentative_cc=gcc
1033 ;;
1034 m88k-dg-dgux*)
1035 tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1036 ;;
1037 m88k-harris-cxux*)
1038 # Under CX/UX, we want to tell the compiler to use ANSI mode.
1039 tentative_cc="cc -Xa"
1040 host_makefile_frag="config/mh-cxux"
1041 ;;
1042 m88k-motorola-sysv*)
1043 ;;
1044 mips*-dec-ultrix*)
1045 tentative_cc="cc -Wf,-XNg1000"
1046 host_makefile_frag="config/mh-decstation"
1047 ;;
1048 mips*-nec-sysv4*)
1049 # The C compiler on NEC MIPS SVR4 needs bigger tables.
1050 tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
1051 host_makefile_frag="config/mh-necv4"
1052 ;;
1053 mips*-sgi-irix4*)
1054 # Tell compiler to use K&R C. We can't compile under the SGI Ansi
1055 # environment. Also bump switch table size so that cp-parse will
1056 # compile. Bump string length limit so linker builds.
1057 tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
1058 ;;
1059 mips*-*-sysv4*)
1060 host_makefile_frag="config/mh-sysv4"
1061 ;;
1062 mips*-*-sysv*)
1063 # This is for a MIPS running RISC/os 4.52C.
1064
1065 # This is needed for GDB, but needs to be in the top-level make because
1066 # if a library is compiled with the bsd headers and gets linked with the
1067 # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
1068 # a different size).
1069 # ptrace(2) apparently has problems in the BSD environment. No workaround is
1070 # known except to select the sysv environment. Could we use /proc instead?
1071 # These "sysv environments" and "bsd environments" often end up being a pain.
1072 #
1073 # This is not part of CFLAGS because perhaps not all C compilers have this
1074 # option.
1075 tentative_cc="cc -systype sysv"
1076 ;;
1077 i370-ibm-opened*)
1078 tentative_cc="c89"
1079 ;;
1080 i[[3456789]]86-*-sysv5*)
1081 host_makefile_frag="config/mh-sysv5"
1082 ;;
1083 i[[3456789]]86-*-dgux*)
1084 tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1085 host_makefile_frag="config/mh-dgux386"
1086 ;;
1087 i[[3456789]]86-ncr-sysv4.3*)
1088 # The MetaWare compiler will generate a copyright message unless you
1089 # turn it off by adding the -Hnocopyr flag.
1090 tentative_cc="cc -Hnocopyr"
1091 ;;
1092 i[[3456789]]86-ncr-sysv4*)
1093 # for an NCR 3000 (i486/SVR4) system.
1094 # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
1095 # This compiler not only emits obnoxious copyright messages every time
1096 # you run it, but it chokes and dies on a whole bunch of GNU source
1097 # files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
1098 tentative_cc="/usr/ccs/ATT/cc"
1099 host_makefile_frag="config/mh-ncr3000"
1100 ;;
1101 i[[3456789]]86-*-sco3.2v5*)
1102 ;;
1103 i[[3456789]]86-*-sco*)
1104 # The native C compiler botches some simple uses of const. Unfortunately,
1105 # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
1106 tentative_cc="cc -Dconst="
1107 host_makefile_frag="config/mh-sco"
1108 ;;
1109 i[[3456789]]86-*-udk*)
1110 host_makefile_frag="config/mh-sysv5"
1111 ;;
1112 i[[3456789]]86-*-solaris2*)
1113 host_makefile_frag="config/mh-sysv4"
1114 ;;
1115 i[[3456789]]86-*-msdosdjgpp*)
1116 host_makefile_frag="config/mh-djgpp"
1117 ;;
1118 *-cygwin*)
1119 host_makefile_frag="config/mh-cygwin"
1120 ;;
1121 *-mingw32*)
1122 host_makefile_frag="config/mh-mingw32"
1123 ;;
1124 *-interix*)
1125 host_makefile_frag="config/mh-interix"
1126 ;;
1127 vax-*-ultrix2*)
1128 # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1129 tentative_cc=gcc
1130 ;;
1131 *-*-solaris2*)
1132 host_makefile_frag="config/mh-solaris"
1133 ;;
1134 m68k-sun-sunos*)
1135 # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1136 # without overflowing the jump tables (-J says to use a 32 bit table)
1137 tentative_cc="cc -J"
1138 ;;
1139 *-hp-hpux*)
1140 tentative_cc="cc -Wp,-H256000"
1141 ;;
1142 *-*-hiux*)
1143 tentative_cc="cc -Wp,-H256000"
1144 ;;
1145 rs6000-*-lynxos*)
1146 # /bin/cc is less than useful for our purposes. Always use GCC
1147 tentative_cc="/usr/cygnus/progressive/bin/gcc"
1148 host_makefile_frag="config/mh-lynxrs6k"
1149 ;;
1150 *-*-lynxos*)
1151 # /bin/cc is less than useful for our purposes. Always use GCC
1152 tentative_cc="/bin/gcc"
1153 ;;
1154 *-*-sysv4*)
1155 host_makefile_frag="config/mh-sysv4"
1156 ;;
1157 esac
1158 fi
1159
1160 extra_arflags_for_target=
1161 extra_nmflags_for_target=
1162 extra_ranlibflags_for_target=
1163 target_makefile_frag=/dev/null
1164 case "${target}" in
1165 i[[3456789]]86-*-netware*)
1166 target_makefile_frag="config/mt-netware"
1167 ;;
1168 powerpc-*-netware*)
1169 target_makefile_frag="config/mt-netware"
1170 ;;
1171 *-*-linux*)
1172 target_makefile_frag="config/mt-linux"
1173 ;;
1174 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
1175 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
1176 # commands to handle both 32-bit and 64-bit objects. These flags are
1177 # harmless if we're using GNU nm or ar.
1178 extra_arflags_for_target=" -X32_64"
1179 extra_nmflags_for_target=" -B -X32_64"
1180 ;;
1181 *-*-darwin*)
1182 # ranlib from Darwin requires the -c flag to look at common symbols.
1183 extra_ranlibflags_for_target=" -c"
1184 ;;
1185 mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1186 target_makefile_frag="config/mt-wince"
1187 ;;
1188 esac
1189
1190 alphaieee_frag=/dev/null
1191 case $target in
1192 alpha*-*-*)
1193 # This just makes sure to use the -mieee option to build target libs.
1194 # This should probably be set individually by each library.
1195 alphaieee_frag="config/mt-alphaieee"
1196 ;;
1197 esac
1198
1199 # If --enable-target-optspace always use -Os instead of -O2 to build
1200 # the target libraries, similarly if it is not specified, use -Os
1201 # on selected platforms.
1202 ospace_frag=/dev/null
1203 case "${enable_target_optspace}:${target}" in
1204 yes:*)
1205 ospace_frag="config/mt-ospace"
1206 ;;
1207 :d30v-*)
1208 ospace_frag="config/mt-d30v"
1209 ;;
1210 :m32r-* | :d10v-* | :fr30-*)
1211 ospace_frag="config/mt-ospace"
1212 ;;
1213 no:* | :*)
1214 ;;
1215 *)
1216 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1217 ;;
1218 esac
1219
1220 # Set with_gnu_as and with_gnu_ld as appropriate.
1221 #
1222 # This is done by determining whether or not the appropriate directory
1223 # is available, and by checking whether or not specific configurations
1224 # have requested that this magic not happen.
1225 #
1226 # The command line options always override the explicit settings in
1227 # configure.in, and the settings in configure.in override this magic.
1228 #
1229 # If the default for a toolchain is to use GNU as and ld, and you don't
1230 # want to do that, then you should use the --without-gnu-as and
1231 # --without-gnu-ld options for the configure script.
1232
1233 if test x${use_gnu_as} = x &&
1234 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1235 with_gnu_as=yes
1236 extra_host_args="$extra_host_args --with-gnu-as"
1237 fi
1238
1239 if test x${use_gnu_ld} = x &&
1240 echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1241 with_gnu_ld=yes
1242 extra_host_args="$extra_host_args --with-gnu-ld"
1243 fi
1244
1245 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1246 # can detect this case.
1247
1248 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1249 with_newlib=yes
1250 extra_host_args="$extra_host_args --with-newlib"
1251 fi
1252
1253
1254 # Default to using --with-stabs for certain targets.
1255 if test x${with_stabs} = x ; then
1256 case "${target}" in
1257 mips*-*-irix6*)
1258 ;;
1259 mips*-*-* | alpha*-*-osf*)
1260 with_stabs=yes;
1261 extra_host_args="${extra_host_args} --with-stabs"
1262 ;;
1263 esac
1264 fi
1265
1266 # hpux11 in 64bit mode has libraries in a weird place. Arrange to find
1267 # them automatically.
1268 case "${host}" in
1269 hppa*64*-*-hpux11*)
1270 extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1271 ;;
1272 esac
1273
1274 # If we aren't going to be using gcc, see if we can extract a definition
1275 # of CC from the fragment.
1276 # Actually, use the 'pre-extracted' version above.
1277 if test -z "${CC}" && test "${build}" = "${host}" ; then
1278 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1279 found=
1280 for dir in $PATH; do
1281 test -z "$dir" && dir=.
1282 if test -f $dir/gcc; then
1283 found=yes
1284 break
1285 fi
1286 done
1287 IFS="$save_ifs"
1288 if test -z "${found}" && test -n "${tentative_cc}" ; then
1289 CC=$tentative_cc
1290 fi
1291 fi
1292
1293 # Some systems (e.g., one of the i386-aix systems the gas testers are
1294 # using) don't handle "\$" correctly, so don't use it here.
1295 tooldir='${exec_prefix}'/${target_alias}
1296 build_tooldir=${tooldir}
1297
1298 # Generate a default definition for YACC. This is used if the makefile can't
1299 # locate bison or byacc in objdir.
1300
1301 for prog in 'bison -y' byacc yacc
1302 do
1303 set dummy $prog; tmp=$2
1304 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1305 for dir in $PATH; do
1306 test -z "$dir" && dir=.
1307 if test -f $dir/$tmp; then
1308 DEFAULT_YACC="$prog"
1309 break
1310 fi
1311 done
1312 IFS="$save_ifs"
1313
1314 test -n "$DEFAULT_YACC" && break
1315 done
1316
1317 # Generate a default definition for M4. This is used if the makefile can't
1318 # locate m4 in objdir.
1319
1320 for prog in gm4 gnum4 m4
1321 do
1322 set dummy $prog; tmp=$2
1323 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1324 for dir in $PATH; do
1325 test -z "$dir" && dir=.
1326 if test -f $dir/$tmp; then
1327 DEFAULT_M4="$prog"
1328 break
1329 fi
1330 done
1331 IFS="$save_ifs"
1332
1333 test -n "$DEFAULT_M4" && break
1334 done
1335
1336 # Generate a default definition for LEX. This is used if the makefile can't
1337 # locate flex in objdir.
1338
1339 for prog in flex lex
1340 do
1341 set dummy $prog; tmp=$2
1342 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1343 for dir in $PATH; do
1344 test -z "$dir" && dir=.
1345 if test -f $dir/$tmp; then
1346 DEFAULT_LEX="$prog"
1347 break
1348 fi
1349 done
1350 IFS="$save_ifs"
1351
1352 test -n "$DEFAULT_LEX" && break
1353 done
1354
1355 if test "${build}" != "${host}" ; then
1356 # If we are doing a Canadian Cross, in which the host and build systems
1357 # are not the same, we set reasonable default values for the tools.
1358
1359 BISON=${BISON-bison}
1360 CC=${CC-${host_alias}-gcc}
1361 CFLAGS=${CFLAGS-"-g -O2"}
1362 CXX=${CXX-${host_alias}-c++}
1363 CXXFLAGS=${CXXFLAGS-"-g -O2"}
1364 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1365 CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
1366 CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
1367 GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
1368 GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
1369 BUILD_PREFIX=${build_alias}-
1370 BUILD_PREFIX_1=${build_alias}-
1371 MAKEINFO=${MAKEINFO-makeinfo}
1372
1373 if test -z "${YACC}" ; then
1374 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1375 for dir in $PATH; do
1376 test -z "$dir" && dir=.
1377 if test -f $dir/bison; then
1378 YACC="bison -y"
1379 break
1380 fi
1381 if test -f $dir/byacc; then
1382 YACC=byacc
1383 break
1384 fi
1385 if test -f $dir/yacc; then
1386 YACC=yacc
1387 break
1388 fi
1389 done
1390 IFS="$save_ifs"
1391 if test -z "${YACC}" ; then
1392 YACC="bison -y"
1393 fi
1394 fi
1395
1396 if test -z "${LEX}" ; then
1397 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1398 for dir in $PATH; do
1399 test -z "$dir" && dir=.
1400 if test -f $dir/flex; then
1401 LEX=flex
1402 break
1403 fi
1404 if test -f $dir/lex; then
1405 LEX=lex
1406 break
1407 fi
1408 done
1409 IFS="$save_ifs"
1410 LEX=${LEX-flex}
1411 fi
1412
1413 else
1414 # Set reasonable default values for some tools even if not Canadian.
1415 # Of course, these are different reasonable default values, originally
1416 # specified directly in the Makefile.
1417 # We don't export, so that autoconf can do its job.
1418 # Note that all these settings are above the fragment inclusion point
1419 # in Makefile.in, so can still be overridden by fragments.
1420 # This is all going to change when we autoconfiscate...
1421
1422 BISON="\$(USUAL_BISON)"
1423 CC_FOR_BUILD="\$(CC)"
1424 GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
1425 BUILD_PREFIX=
1426 BUILD_PREFIX_1=loser-
1427 MAKEINFO="\$(USUAL_MAKEINFO)"
1428 LEX="\$(USUAL_LEX)"
1429 YACC="\$(USUAL_YACC)"
1430
1431 # If CC is still not set, try to get gcc.
1432 cc_prog_is_gcc=
1433 if test -z "${CC}" ; then
1434 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1435 for dir in $PATH; do
1436 test -z "$dir" && dir=.
1437 if test -f $dir/gcc; then
1438 CC="gcc"
1439 cc_prog_is_gcc=yes
1440 echo 'void f(){}' > conftest.c
1441 if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1442 CFLAGS=${CFLAGS-"-g -O2"}
1443 CXXFLAGS=${CXXFLAGS-"-g -O2"}
1444 else
1445 CFLAGS=${CFLAGS-"-O2"}
1446 CXXFLAGS=${CXXFLAGS-"-O2"}
1447 fi
1448 rm -f conftest*
1449 break
1450 fi
1451 done
1452 IFS="$save_ifs"
1453 CC=${CC-cc}
1454 else
1455 # Determine if we are using gcc.
1456 cat > conftest.c <<EOF
1457 #ifdef __GNUC__
1458 yes;
1459 #endif
1460 EOF
1461 if ${CC} -E conftest.c | grep yes >/dev/null 2>&1; then
1462 cc_prog_is_gcc=yes
1463 fi
1464 rm -f conftest.c
1465 if test -z "${CFLAGS}"; then
1466 # Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC
1467 # is set to a version of gcc.
1468 if test "$cc_prog_is_gcc" = yes; then
1469 echo 'void f(){}' > conftest.c
1470 if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1471 CFLAGS=${CFLAGS-"-g -O2"}
1472 CXXFLAGS=${CXXFLAGS-"-g -O2"}
1473 else
1474 CFLAGS=${CFLAGS-"-O2"}
1475 CXXFLAGS=${CXXFLAGS-"-O2"}
1476 fi
1477 rm -f conftest*
1478 fi
1479 fi
1480 fi
1481
1482 # We must set the default linker to the linker used by gcc for the correct
1483 # operation of libtool. If LD is not defined and we are using gcc, try to
1484 # set the LD default to the ld used by gcc.
1485 if test -z "$LD"; then
1486 if test "$cc_prog_is_gcc" = yes; then
1487 case $build in
1488 *-*-mingw*)
1489 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1490 *)
1491 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1492 esac
1493 case $gcc_prog_ld in
1494 # Accept absolute paths.
1495 [[\\/]* | [A-Za-z]:[\\/]*)]
1496 LD="$gcc_prog_ld" ;;
1497 esac
1498 fi
1499 fi
1500
1501 CXX=${CXX-"c++"}
1502 CFLAGS=${CFLAGS-"-g"}
1503 CXXFLAGS=${CXXFLAGS-"-g -O2"}
1504 fi
1505
1506 # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1507 # Set up the list of links to be made.
1508 # ${links} is the list of link names, and ${files} is the list of names to link to.
1509
1510 # Make the links.
1511 configlinks="${links}"
1512 if test -r ./config.status ; then
1513 mv -f ./config.status ./config.back
1514 fi
1515 while test -n "${files}" ; do
1516 # set file to car of files, files to cdr of files
1517 set ${files}; file=$1; shift; files=$*
1518 set ${links}; link=$1; shift; links=$*
1519
1520 if test ! -r ${srcdir}/${file} ; then
1521 if test ! -r ${file} ; then
1522 echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1523 echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1524 exit 1
1525 else
1526 srcfile=${file}
1527 fi
1528 else
1529 srcfile=${srcdir}/${file}
1530 fi
1531
1532 ${remove} -f ${link}
1533 # Make a symlink if possible, otherwise try a hard link
1534 if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1535 true
1536 else
1537 # We need to re-remove the file because Lynx leaves a
1538 # very strange directory there when it fails an NFS symlink.
1539 ${remove} -r -f ${link}
1540 ${hard_link} ${srcfile} ${link}
1541 fi
1542 if test ! -r ${link} ; then
1543 echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1544 exit 1
1545 fi
1546
1547 echo "Linked \"${link}\" to \"${srcfile}\"."
1548 done
1549
1550 # Create a .gdbinit file which runs the one in srcdir
1551 # and tells GDB to look there for source files.
1552
1553 if test -r ${srcdir}/.gdbinit ; then
1554 case ${srcdir} in
1555 .) ;;
1556 *) cat > ./.gdbinit <<EOF
1557 # ${NO_EDIT}
1558 dir ${srcdir}
1559 dir .
1560 source ${srcdir}/.gdbinit
1561 EOF
1562 ;;
1563 esac
1564 fi
1565
1566 # Make sure that the compiler is able to generate an executable. If it
1567 # can't, we are probably in trouble. We don't care whether we can run the
1568 # executable--we might be using a cross compiler--we only care whether it
1569 # can be created. At this point the main configure script has set CC.
1570 we_are_ok=no
1571 echo "int main () { return 0; }" > conftest.c
1572 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1573 if test $? = 0 ; then
1574 if test -s conftest || test -s conftest.exe ; then
1575 we_are_ok=yes
1576 fi
1577 fi
1578 case $we_are_ok in
1579 no)
1580 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1581 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1582 rm -f conftest*
1583 exit 1
1584 ;;
1585 esac
1586 rm -f conftest*
1587
1588 # The Solaris /usr/ucb/cc compiler does not appear to work.
1589 case "${host}" in
1590 sparc-sun-solaris2*)
1591 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1592 if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
1593 could_use=
1594 test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1595 if test -d /opt/cygnus/bin ; then
1596 if test "$could_use" = "" ; then
1597 could_use="/opt/cygnus/bin"
1598 else
1599 could_use="$could_use or /opt/cygnus/bin"
1600 fi
1601 fi
1602 if test "$could_use" = "" ; then
1603 echo "Warning: compilation may fail because you're using"
1604 echo "/usr/ucb/cc. You should change your PATH or CC "
1605 echo "variable and rerun configure."
1606 else
1607 echo "Warning: compilation may fail because you're using"
1608 echo "/usr/ucb/cc, when you should use the C compiler from"
1609 echo "$could_use. You should change your"
1610 echo "PATH or CC variable and rerun configure."
1611 fi
1612 fi
1613 ;;
1614 esac
1615
1616 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1617 # binutils tools will find libbfd.so.
1618 case "${enable_shared}" in
1619 no | "") SET_LIB_PATH= ;;
1620 *) SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" ;;
1621 esac
1622
1623 case "${host}" in
1624 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1625 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1626 esac
1627
1628 # Record target_configdirs and the configure arguments for target and
1629 # build configuration in Makefile.
1630 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1631
1632 # This is the final value for target_configdirs. configdirs already
1633 # has its final value, as does build_modules. It's time to create some
1634 # lists of valid targets.
1635
1636 all_build_modules=
1637 configure_build_modules=
1638 for module in ${build_modules} ; do
1639 all_build_modules=all-build-${module}
1640 configure_build_modules=configure-build-${module}
1641 done
1642
1643 # Determine whether gdb needs tk/tcl or not.
1644 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1645 # and in that case we want gdb to be built without tk. Ugh!
1646 # In fact I believe gdb is the *only* package directly dependent on tk,
1647 # so we should be able to put the 'maybe's in unconditionally and
1648 # leave out the maybe dependencies when enable_gdbtk is false. I'm not
1649 # 100% sure that that's safe though.
1650
1651 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui"
1652 case "$enable_gdbtk" in
1653 no)
1654 GDB_TK="" ;;
1655 yes)
1656 GDB_TK="${gdb_tk}" ;;
1657 *)
1658 # Only add the dependency on gdbtk when GDBtk is part of the gdb
1659 # distro. Eventually someone will fix this and move Insight, nee
1660 # gdbtk to a separate directory.
1661 if test -d ${srcdir}/gdb/gdbtk ; then
1662 GDB_TK="${gdb_tk}"
1663 else
1664 GDB_TK=""
1665 fi
1666 ;;
1667 esac
1668
1669 # Create the 'maybe dependencies'. This uses a temporary file.
1670
1671 # While at that, we remove Makefiles if we were started for recursive
1672 # configuration, so that the top-level Makefile reconfigures them,
1673 # like we used to do when configure itself was recursive.
1674 rm -f maybedep.tmp
1675 echo '# maybedep.tmp' > maybedep.tmp
1676
1677 # Make-targets which may need maybe dependencies.
1678 mts="configure all install check clean distclean dvi info install-info"
1679 mts="${mts} installcheck mostlyclean maintainer-clean TAGS"
1680
1681 # Loop over modules and make-targets.
1682 for module in ${build_modules} ; do
1683 if test -z "${no_recursion}" \
1684 && test -f ${build_subdir}/${module}/Makefile; then
1685 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
1686 rm -f ${build_subdir}/${module}/Makefile
1687 fi
1688 for mt in ${mts} ; do
1689 case ${mt} in
1690 install) ;; # No installing build modules.
1691 *) echo "maybe-${mt}-build-${module}: ${mt}-build-${module}" >> maybedep.tmp ;;
1692 esac
1693 done
1694 done
1695 for module in ${configdirs} ; do
1696 if test -z "${no_recursion}" \
1697 && test -f ${module}/Makefile; then
1698 echo 1>&2 "*** removing ${module}/Makefile to force reconfigure"
1699 rm -f ${module}/Makefile
1700 fi
1701 for mt in ${mts} ; do
1702 echo "maybe-${mt}-${module}: ${mt}-${module}" >> maybedep.tmp
1703 done
1704 done
1705 for module in ${target_configdirs} ; do
1706 if test -z "${no_recursion}" \
1707 && test -f ${target_subdir}/${module}/Makefile; then
1708 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
1709 rm -f ${target_subdir}/${module}/Makefile
1710 fi
1711 for mt in ${mts} ; do
1712 echo "maybe-${mt}-target-${module}: ${mt}-target-${module}" >> maybedep.tmp
1713 done
1714 done
1715 maybe_dependencies=maybedep.tmp
1716 AC_SUBST_FILE(maybe_dependencies)
1717
1718 # Create the serialization dependencies. This uses a temporary file.
1719
1720 AC_ARG_ENABLE([serial-configure],
1721 [ --enable-serial-[{host,target,build}-]configure
1722 Force sequential configuration of
1723 sub-packages for the host, target or build
1724 machine, or all sub-packages])
1725
1726 case ${enable_serial_configure} in
1727 yes)
1728 enable_serial_build_configure=yes
1729 enable_serial_host_configure=yes
1730 enable_serial_target_configure=yes
1731 ;;
1732 esac
1733
1734 # These force 'configure's to be done one at a time, to avoid problems
1735 # with contention over a shared config.cache.
1736 rm -f serdep.tmp
1737 echo '# serdep.tmp' > serdep.tmp
1738 olditem=
1739 test "x${enable_serial_build_configure}" = xyes &&
1740 for item in ${build_configdirs} ; do
1741 case ${olditem} in
1742 "") ;;
1743 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
1744 esac
1745 olditem=${item}
1746 done
1747 olditem=
1748 test "x${enable_serial_host_configure}" = xyes &&
1749 for item in ${configdirs} ; do
1750 case ${olditem} in
1751 "") ;;
1752 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
1753 esac
1754 olditem=${item}
1755 done
1756 olditem=
1757 test "x${enable_serial_target_configure}" = xyes &&
1758 for item in ${target_configdirs} ; do
1759 case ${olditem} in
1760 "") ;;
1761 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
1762 esac
1763 olditem=${item}
1764 done
1765 serialization_dependencies=serdep.tmp
1766 AC_SUBST_FILE(serialization_dependencies)
1767
1768 # Base args. Strip norecursion, cache-file, srcdir, host, build,
1769 # target and nonopt. These are the ones we might not want to pass
1770 # down to subconfigures.
1771 baseargs=`echo " ${ac_configure_args} " | \
1772 sed -e 's/ --no[[^ ]]* / /' \
1773 -e 's/ --c[[a-z-]]*[[= ]][[^ ]]* / /' \
1774 -e 's/ --sr[[a-z-]]*[[= ]][[^ ]]* / /' \
1775 -e 's/ --ho[[a-z-]]*[[= ]][[^ ]]* / /' \
1776 -e 's/ --bu[[a-z-]]*[[= ]][[^ ]]* / /' \
1777 -e 's/ --t[[a-z-]]*[[= ]][[^ ]]* / /' \
1778 -e 's/ -cache-file[[= ]][[^ ]]* / /' \
1779 -e 's/ -srcdir[[= ]][[^ ]]* / /' \
1780 -e 's/ -host[[= ]][[^ ]]* / /' \
1781 -e 's/ -build[[= ]][[^ ]]* / /' \
1782 -e 's/ -target[[= ]][[^ ]]* / /' \
1783 -e "s/ [[^' -][^ ]*] / /" \
1784 -e 's/^ *//;s/ *$//'`
1785
1786 # For the build-side libraries, we just need to pretend we're native,
1787 # and not use the same cache file. Multilibs are neither needed nor
1788 # desired.
1789 build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
1790
1791 # For host modules, accept cache file option, or specification as blank.
1792 case "${cache_file}" in
1793 "") # empty
1794 cache_file_option="" ;;
1795 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
1796 cache_file_option="--cache-file=${cache_file}" ;;
1797 *) # relative path
1798 cache_file_option="--cache-file=../${cache_file}" ;;
1799 esac
1800
1801 host_configargs="${cache_file_option} --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
1802
1803 target_configargs=${baseargs}
1804
1805 # Passing a --with-cross-host argument lets the target libraries know
1806 # whether they are being built with a cross-compiler or being built
1807 # native. However, it would be better to use other mechanisms to make the
1808 # sorts of decisions they want to make on this basis. Please consider
1809 # this option to be deprecated. FIXME.
1810 if test x${is_cross_compiler} = xyes ; then
1811 target_configargs="--with-cross-host=${host_alias} ${target_configargs}"
1812 fi
1813
1814 # Default to --enable-multilib.
1815 if test x${enable_multilib} = x ; then
1816 target_configargs="--enable-multilib ${target_configargs}"
1817 fi
1818
1819 # Pass --with-newlib if appropriate. Note that target_configdirs has
1820 # changed from the earlier setting of with_newlib.
1821 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
1822 target_configargs="--with-newlib ${target_configargs}"
1823 fi
1824
1825 # Pass the appropriate --host, --build, and --cache-file arguments.
1826 target_configargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}"
1827
1828 # provide a proper gxx_include_dir.
1829 # Note, if you change the default, make sure to fix both here and in
1830 # the gcc and libstdc++-v3 subdirectories.
1831 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1832 case "${with_gxx_include_dir}" in
1833 yes)
1834 AC_MSG_ERROR([--with-gxx-include-dir=[[dir]] requires a directory])
1835 ;;
1836 no | "")
1837 case "${enable_version_specific_runtime_libs}" in
1838 yes) gxx_include_dir='${libsubdir}/include/c++' ;;
1839 *)
1840 . ${srcdir}/config.if
1841 gxx_include_dir='${prefix}/include/'${libstdcxx_incdir} ;;
1842 esac ;;
1843 *) gxx_include_dir=${with_gxx_include_dir} ;;
1844 esac
1845
1846 FLAGS_FOR_TARGET=
1847 case " $target_configdirs " in
1848 *" newlib "*)
1849 case " $target_configargs " in
1850 *" --with-newlib "*)
1851 case "$target" in
1852 *-cygwin*)
1853 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include' ;;
1854 esac
1855
1856 # If we're not building GCC, don't discard standard headers.
1857 if test -d ${srcdir}/gcc; then
1858 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1859
1860 if test "${build}" != "${host}"; then
1861 # On Canadian crosses, CC_FOR_TARGET will have already been set
1862 # by `configure', so we won't have an opportunity to add -Bgcc/
1863 # to it. This is right: we don't want to search that directory
1864 # for binaries, but we want the header files in there, so add
1865 # them explicitly.
1866 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1867
1868 # Someone might think of using the pre-installed headers on
1869 # Canadian crosses, in case the installed compiler is not fully
1870 # compatible with the compiler being built. In this case, it
1871 # would be better to flag an error than risking having
1872 # incompatible object files being constructed. We can't
1873 # guarantee that an error will be flagged, but let's hope the
1874 # compiler will do it, when presented with incompatible header
1875 # files.
1876 fi
1877 fi
1878
1879 case "${target}-${is_cross_compiler}" in
1880 i[[3456789]]86-*-linux*-no)
1881 # Here host == target, so we don't need to build gcc,
1882 # so we don't want to discard standard headers.
1883 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
1884 ;;
1885 *)
1886 # If we're building newlib, use its generic headers last, but search
1887 # for any libc-related directories first (so make it the last -B
1888 # switch).
1889 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1890 ;;
1891 esac
1892 ;;
1893 esac
1894 ;;
1895 esac
1896
1897 # On Canadian crosses, we'll be searching the right directories for
1898 # the previously-installed cross compiler, so don't bother to add
1899 # flags for directories within the install tree of the compiler
1900 # being built; programs in there won't even run.
1901 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
1902 # Search for pre-installed headers if nothing else fits.
1903 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
1904 fi
1905
1906 if test "x${use_gnu_ld}" = x &&
1907 echo " ${configdirs} " | grep " ld " > /dev/null ; then
1908 # Arrange for us to find uninstalled linker scripts.
1909 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
1910 fi
1911
1912 if test "x${CC_FOR_TARGET+set}" = xset; then
1913 :
1914 elif test -d ${srcdir}/gcc; then
1915 CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
1916 elif test "$host" = "$target"; then
1917 CC_FOR_TARGET='$(CC)'
1918 else
1919 CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"`
1920 fi
1921 CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1922
1923 if test "x${GCJ_FOR_TARGET+set}" = xset; then
1924 :
1925 elif test -d ${srcdir}/gcc; then
1926 GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
1927 elif test "$host" = "$target"; then
1928 GCJ_FOR_TARGET='gcj'
1929 else
1930 GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"`
1931 fi
1932 GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1933
1934 # Don't use libstdc++-v3's flags to configure/build itself.
1935 libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
1936 raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
1937
1938 if test "x${CXX_FOR_TARGET+set}" = xset; then
1939 :
1940 elif test -d ${srcdir}/gcc; then
1941 # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
1942 # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
1943 # default whereas gcc does not.
1944 # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
1945 # all other cases.
1946 CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
1947 RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
1948 elif test "$host" = "$target"; then
1949 CXX_FOR_TARGET='$(CXX)'
1950 RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
1951 else
1952 CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"`
1953 RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
1954 fi
1955 CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1956 RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1957
1958 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
1959 qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
1960
1961 # We want to defer the evaluation of `cmd`s and shell variables in
1962 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
1963 # bootstrap. We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
1964 # quotes, but we still have to duplicate `$'s so that shell variables
1965 # can be expanded by the nested make as shell variables, not as make
1966 # macros.
1967 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
1968 qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
1969
1970 # Wrap CC_FOR_TARGET and friends, for certain types of builds.
1971 CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}"
1972 GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}"
1973 CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}"
1974 RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}"
1975 CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}"
1976 RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}"
1977
1978 # Makefile fragments.
1979 host_makefile_frag=${srcdir}/${host_makefile_frag}
1980 target_makefile_frag=${srcdir}/${target_makefile_frag}
1981 alphaieee_frag=${srcdir}/${alphaieee_frag}
1982 ospace_frag=${srcdir}/${ospace_frag}
1983 AC_SUBST_FILE(host_makefile_frag)
1984 AC_SUBST_FILE(target_makefile_frag)
1985 AC_SUBST_FILE(alphaieee_frag)
1986 AC_SUBST_FILE(ospace_frag)
1987
1988 # Miscellanea: directories, flags, etc.
1989 AC_SUBST(SET_LIB_PATH)
1990 AC_SUBST(RPATH_ENVVAR)
1991 AC_SUBST(BUILD_PREFIX)
1992 AC_SUBST(BUILD_PREFIX_1)
1993 AC_SUBST(configlinks)
1994 AC_SUBST(gcc_version_trigger)
1995 AC_SUBST(gcc_version)
1996 AC_SUBST(tooldir)
1997 AC_SUBST(build_tooldir)
1998 AC_SUBST(GDB_TK)
1999 AC_SUBST(gxx_include_dir)
2000 AC_SUBST(libstdcxx_incdir)
2001
2002 # Build module lists & subconfigure args.
2003 AC_SUBST(build_configargs)
2004 AC_SUBST(configure_build_modules)
2005 AC_SUBST(all_build_modules)
2006
2007 # Host module lists & subconfigure args.
2008 AC_SUBST(host_configargs)
2009 AC_SUBST(configdirs)
2010
2011 # Target module lists & subconfigure args.
2012 AC_SUBST(target_configargs)
2013 AC_SUBST(target_configdirs)
2014
2015 # Build tools.
2016 AC_SUBST(BISON)
2017 AC_SUBST(CC_FOR_BUILD)
2018 AC_SUBST(LEX)
2019 AC_SUBST(MAKEINFO)
2020 AC_SUBST(YACC)
2021 AC_SUBST(config_shell)
2022
2023 # Host tools.
2024 NCN_STRICT_CHECK_TOOL(AR, ar)
2025 NCN_STRICT_CHECK_TOOL(AS, as)
2026 NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool)
2027 NCN_STRICT_CHECK_TOOL(LD, ld)
2028 NCN_STRICT_CHECK_TOOL(NM, nm)
2029 NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :)
2030 NCN_STRICT_CHECK_TOOL(WINDRES, windres)
2031 NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy)
2032 NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump)
2033 AC_SUBST(CC)
2034 AC_SUBST(CXX)
2035 AC_SUBST(CFLAGS)
2036 AC_SUBST(CXXFLAGS)
2037 AC_SUBST(DEFAULT_YACC)
2038 AC_SUBST(DEFAULT_LEX)
2039 AC_SUBST(DEFAULT_M4)
2040
2041 # Target tools.
2042 NCN_STRICT_CHECK_TARGET_TOOL(AR_FOR_TARGET, ar)
2043 NCN_STRICT_CHECK_TARGET_TOOL(AS_FOR_TARGET, as)
2044 NCN_STRICT_CHECK_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2045 NCN_STRICT_CHECK_TARGET_TOOL(LD_FOR_TARGET, ld)
2046 NCN_STRICT_CHECK_TARGET_TOOL(NM_FOR_TARGET, nm)
2047 NCN_STRICT_CHECK_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2048 NCN_STRICT_CHECK_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
2049
2050 AC_SUBST(GCC_FOR_TARGET)
2051 AC_SUBST(FLAGS_FOR_TARGET)
2052 AC_SUBST(CC_FOR_TARGET)
2053 AC_SUBST(GCJ_FOR_TARGET)
2054 AC_SUBST(CXX_FOR_TARGET)
2055 AC_SUBST(RAW_CXX_FOR_TARGET)
2056 AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2057 AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2058
2059 # Fix up target tools.
2060 if test "x${build}" = "x${host}" ; then
2061 # In this case, the newly built tools can and should be used,
2062 # so we override the results of the autoconf tests.
2063 # This should really only happen when the tools are actually being built,
2064 # but that's a further refinement. The new build scheme, where
2065 # tools are built into a structure paralleling where they're installed,
2066 # should also eliminate all of this cleanly.
2067 AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)"
2068 AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)"
2069 DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)"
2070 LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
2071 NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
2072 RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
2073 WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
2074 fi
2075 # Certain tools may need extra flags.
2076 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2077 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2078 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2079
2080 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2081 AC_ARG_ENABLE(maintainer-mode,
2082 [ --enable-maintainer-mode enable make rules and dependencies not useful
2083 (and sometimes confusing) to the casual installer],
2084 USE_MAINTAINER_MODE=$enableval,
2085 USE_MAINTAINER_MODE=no)
2086 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2087 AC_SUBST(MAINTAINER_MODE_TRUE)
2088 AC_SUBST(MAINTAINER_MODE_FALSE)
2089 if test "$USE_MAINTAINER_MODE" = yes; then
2090 MAINTAINER_MODE_TRUE=
2091 MAINTAINER_MODE_FALSE='#'
2092 else
2093 MAINTAINER_MODE_TRUE='#'
2094 MAINTAINER_MODE_FALSE=
2095 fi
2096 MAINT=$MAINTAINER_MODE_TRUE
2097 AC_SUBST(MAINT)dnl
2098
2099 AC_OUTPUT(Makefile)
This page took 0.073421 seconds and 4 git commands to generate.