0d6b27632a06cc421da7780493789b95f8bcc7db
[deliverable/binutils-gdb.git] / configure.in
1 ##############################################################################
2
3 ## This file is a shell script fragment that supplies the information
4 ## necessary to tailor a template configure script into the configure
5 ## script appropriate for this directory. For more information, check
6 ## any existing configure script.
7
8 ## Be warned, there are two types of configure.in files. There are those
9 ## used by Autoconf, which are macros which are expanded into a configure
10 ## script by autoconf. The other sort, of which this is one, is executed
11 ## by Cygnus configure.
12
13 ## For more information on these two systems, check out the documentation
14 ## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
15
16 ##############################################################################
17
18 ### To add a new directory to the tree, first choose whether it is a target
19 ### or a host dependent tool. Then put it into the appropriate list
20 ### (library or tools, host or target), doing a dependency sort. For
21 ### example, gdb requires that byacc (or bison) be built first, so it is in
22 ### the ${host_tools} list after byacc and bison.
23
24
25 # these libraries are used by various programs built for the host environment
26 #
27 host_libs="mmalloc libiberty opcodes bfd readline gash tcl tk tclX"
28
29 if [ "${enable_gdbgui}" = "yes" ] ; then
30 host_libs="${host_libs} libgui"
31 fi
32
33 # these tools are built for the host environment
34 #
35 host_tools="texinfo byacc flex bison binutils ld gas gcc gdb make patch
36 prms send-pr gprof gdbtest tgas etc expect dejagnu sim
37 m4 autoconf ispell grep diff rcs cvs fileutils shellutils
38 textutils wdiff find emacs emacs19 uudecode hello tar gzip indent
39 recode release sed utils"
40
41
42 # these libraries are built for the target environment, and are built after
43 # the host libraries and the host tools (which may be a cross compiler)
44 #
45 target_libs="target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
46
47
48 # these tools are built using the target libs, and are intended to run only
49 # in the target environment
50 #
51 # note: any program that *uses* libraries that are in the "target_libs"
52 # list belongs in this list. those programs are also very likely
53 # candidates for the "native_only" list which follows
54 #
55 target_tools="target-examples target-groff"
56
57 ################################################################################
58
59 ## These two lists are of directories that are to be removed from the
60 ## ${configdirs} list for either cross-compilations or for native-
61 ## compilations. For example, it doesn't make that much sense to
62 ## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
63 ## a native environment.
64
65 # directories to be built in the native environment only
66 #
67 native_only="autoconf cvs emacs emacs19 fileutils find grep gzip hello
68 indent ispell m4 rcs recode sed shellutils tar textutils gash
69 uudecode wdiff gprof target-groff"
70
71 # directories to be built in a cross environment only
72 #
73 cross_only="target-libiberty target-libgloss target-newlib"
74
75 ## All tools belong in one of the four categories, and are assigned above
76 ## We assign ${configdirs} this way to remove all embedded newlines. This
77 ## is important because configure will choke if they ever get through.
78 ## ${configdirs} is directories we build using the host tools.
79 ## ${target_configdirs} is directories we build using the target tools.
80 #
81 configdirs=`echo ${host_libs} ${host_tools}`
82 target_configdirs=`echo ${target_libs} ${target_tools}`
83
84 ################################################################################
85
86 srctrigger=move-if-change
87 srcname="gnu development package"
88
89 # This gets set non-empty for some net releases of packages.
90 appdirs=""
91
92 # per-host:
93
94 # Work in distributions that contain no compiler tools, like Autoconf.
95 if [ -d ${srcdir}/config ]; then
96 case "${host}" in
97 m68k-hp-hpux*) host_makefile_frag=config/mh-hp300 ;;
98 m68k-apollo-sysv*) host_makefile_frag=config/mh-apollo68 ;;
99 m68k-apollo-bsd*) host_makefile_frag=config/mh-a68bsd ;;
100 m88k-dg-dgux*) host_makefile_frag=config/mh-dgux ;;
101 m88k-harris-cxux*) host_makefile_frag=config/mh-cxux ;;
102 m88k-motorola-sysv*) host_makefile_frag=config/mh-delta88;;
103 mips*-dec-ultrix*) host_makefile_frag=config/mh-decstation ;;
104 mips*-sgi-irix[56]*) host_makefile_frag=config/mh-irix5 ;;
105 mips*-sgi-irix4*) host_makefile_frag=config/mh-irix4 ;;
106 mips*-sgi-irix3*) host_makefile_frag=config/mh-sysv ;;
107 mips*-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
108 mips*-*-sysv*) host_makefile_frag=config/mh-riscos ;;
109 i[345]86-ncr-sysv4.3) host_makefile_frag=config/mh-ncrsvr43 ;;
110 i[345]86-ncr-sysv4*) host_makefile_frag=config/mh-ncr3000 ;;
111 i[345]86-*-sco3.2v5*) host_makefile_frag=config/mh-sysv ;;
112 i[345]86-*-sco*) host_makefile_frag=config/mh-sco ;;
113 i[345]86-*-isc*) host_makefile_frag=config/mh-sysv ;;
114 i[345]86-*-linux*) host_makefile_frag=config/mh-linux ;;
115 i[345]86-*-solaris2*) host_makefile_frag=config/mh-sysv4 ;;
116 i[345]86-*-aix*) host_makefile_frag=config/mh-aix386 ;;
117 i[345]86-*-go32*) host_makefile_frag=config/mh-go32 ;;
118 vax-*-ultrix2*) host_makefile_frag=config/mh-vaxult2 ;;
119 *-*-solaris2*) host_makefile_frag=config/mh-solaris ;;
120 m68k-sun-sunos*) host_makefile_frag=config/mh-sun3 ;;
121 *-hp-hpux[78]*) host_makefile_frag=config/mh-hpux8 ;;
122 *-hp-hpux*) host_makefile_frag=config/mh-hpux ;;
123 *-*-hiux*) host_makefile_frag=config/mh-hpux ;;
124 rs6000-*-lynxos*) host_makefile_frag=config/mh-lynxrs6k ;;
125 *-*-lynxos*) host_makefile_frag=config/mh-lynxos ;;
126 *-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
127 *-*-sysv*) host_makefile_frag=config/mh-sysv ;;
128 esac
129 fi
130
131 # If we aren't going to be using gcc, see if we can extract a definition
132 # of CC from the fragment.
133 if [ -z "${CC}" -a "${build}" = "${host}" ]; then
134 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
135 found=
136 for dir in $PATH; do
137 test -z "$dir" && dir=.
138 if test -f $dir/gcc; then
139 found=yes
140 break
141 fi
142 done
143 IFS="$save_ifs"
144 if [ -z "${found}" -a -n "${host_makefile_frag}" -a -f "${srcdir}/${host_makefile_frag}" ]; then
145 xx=`sed -n -e 's/^[ ]*CC[ ]*=[ ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
146 if [ -n "${xx}" ] ; then
147 CC=$xx
148 fi
149 fi
150 fi
151
152 # We default to --with-shared on platforms where -fpic is meaningless.
153 # Well, we don't yet, but we will.
154 if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
155 case "${target}" in
156 alpha-dec-osf*) enable_shared=yes ;;
157 mips-sgi-irix5*) enable_shared=yes ;;
158 *) enable_shared=no ;;
159 esac
160 fi
161
162 if [ x${enable_shared} = xyes ]; then
163 waugh=
164 case "${host}" in
165 hppa*) waugh=config/mh-papic ;;
166 i[345]86-*) waugh=config/mh-x86pic ;;
167 sparc64-*) waugh=config/mh-sparcpic ;;
168 *) waugh=config/mh-${host_cpu}pic ;;
169 esac
170 if [ -f ${srcdir}/${waugh} ]; then
171 if [ -n "${host_makefile_frag}" ] ; then
172 cat ${srcdir}/${host_makefile_frag} > mh-frag
173 cat ${srcdir}/${waugh} >> mh-frag
174 host_makefile_frag=mh-frag
175 else
176 host_makefile_frag=${waugh}
177 fi
178 fi
179 fi
180
181 # per-target:
182
183 case "${target}" in
184 v810*) target_makefile_frag=config/mt-v810 ;;
185 i[345]86-*-netware*) target_makefile_frag=config/mt-netware ;;
186 powerpc-*-netware*) target_makefile_frag=config/mt-netware ;;
187 esac
188
189 skipdirs=
190 gasdir=gas
191 use_gnu_ld=
192 use_gnu_as=
193
194 # some tools are so dependent upon X11 that if we're not building with X,
195 # it's not even worth trying to configure, much less build, that tool.
196
197 case ${with_x} in
198 yes | "") # the default value for this tree is that X11 is available
199 ;;
200 no)
201 skipdirs="${skipdirs} tk gash"
202 ;;
203 *)
204 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
205 ;;
206 esac
207
208 # Some tools are only suitable for building in a "native" situation.
209 # Those are added when we have a host==target configuration. For cross
210 # toolchains, we add some directories that should only be useful in a
211 # cross-compiler.
212
213 is_cross_compiler=
214
215 if [ x"${host}" = x"${target}" ] ; then
216 # when doing a native toolchain, don't build the targets
217 # that are in the 'cross only' list
218 skipdirs="${skipdirs} ${cross_only}"
219 is_cross_compiler=no
220 target_subdir=.
221 else
222 # similarly, don't build the targets in the 'native only'
223 # list when building a cross compiler
224 skipdirs="${skipdirs} ${native_only}"
225 is_cross_compiler=yes
226 target_subdir=${target_alias}
227 if [ ! -d ${target_subdir} ] ; then
228 if mkdir ${target_subdir} ; then true
229 else
230 echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
231 exit 1
232 fi
233 fi
234 fi
235
236 copy_dirs=
237
238 # Handle --with-headers=XXX. The contents of the named directory are
239 # copied to $(tooldir)/sys-include.
240 if [ x"${with_headers}" != x ]; then
241 if [ x${is_cross_compiler} = xno ]; then
242 echo 1>&2 '***' --with-headers is only supported when cross compiling
243 exit 1
244 fi
245 case "${exec_prefixoption}" in
246 "") x=${prefix} ;;
247 *) x=${exec_prefix} ;;
248 esac
249 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
250 fi
251
252 # Handle --with-libs=XXX. Multiple directories are permitted. The
253 # contents are copied to $(tooldir)/lib.
254 if [ x"${with_libs}" != x ]; then
255 if [ x${is_cross_compiler} = xno ]; then
256 echo 1>&2 '***' --with-libs is only supported when cross compiling
257 exit 1
258 fi
259 # Copy the libraries in reverse order, so that files in the first named
260 # library override files in subsequent libraries.
261 case "${exec_prefixoption}" in
262 "") x=${prefix} ;;
263 *) x=${exec_prefix} ;;
264 esac
265 for l in ${with_libs}; do
266 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
267 done
268 fi
269
270 # If both --with-headers and --with-libs are specified, default to
271 # --without-newlib.
272 if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
273 if [ x"${with_newlib}" = x ]; then
274 with_newlib=no
275 fi
276 fi
277
278 # Recognize --with-newlib/--without-newlib.
279 if [ x${with_newlib} = xno ]; then
280 skipdirs="${skipdirs} target-newlib"
281 elif [ x${with_newlib} = xyes ]; then
282 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
283 fi
284
285 # Default to using --with-stabs for certain targets.
286 if [ x${with_stabs} = x ]; then
287 case "${target}" in
288 mips*-*-* | alpha*-*-osf* | i[345]86*-*-sysv4* | i[345]86*-*-unixware*)
289 with_stabs=yes;
290 withoptions="${withoptions} --with-stabs"
291 ;;
292 esac
293 fi
294
295 # Handle ${copy_dirs}
296 set fnord ${copy_dirs}
297 shift
298 while [ $# != 0 ]; do
299 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
300 :
301 else
302 echo Copying $1 to $2
303
304 # Use the install script to create the directory and all required
305 # parent directories.
306 if [ -d $2 ]; then
307 :
308 else
309 echo >config.temp
310 ${srcdir}/install.sh -c -m 644 config.temp $2/COPIED
311 fi
312
313 # Copy the directory, assuming we have tar.
314 # FIXME: Should we use B in the second tar? Not all systems support it.
315 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
316
317 # It is the responsibility of the user to correctly adjust all
318 # symlinks. If somebody can figure out how to handle them correctly
319 # here, feel free to add the code.
320
321 echo $1 > $2/COPIED
322 fi
323 shift; shift
324 done
325
326 # Configure extra directories which are host specific
327
328 case "${host}" in
329 i[345]86-*-go32*)
330 configdirs="$configdirs dosrel" ;;
331 esac
332
333 # Remove more programs from consideration, based on the host or
334 # target this usually means that a port of the program doesn't
335 # exist yet.
336
337 noconfigdirs=""
338
339 case "${host}" in
340 i[345]86-*-vsta)
341 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
342 ;;
343 i[345]86-*-go32)
344 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
345 ;;
346 *-*-cygwin32)
347 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs"
348 ;;
349 ppc*-*-pe)
350 noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs"
351 ;;
352 esac
353
354
355 case "${target}" in
356 *-*-netware)
357 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty"
358 ;;
359 *-*-vxworks*)
360 noconfigdirs="$noconfigdirs target-newlib"
361 ;;
362 alpha-dec-osf*)
363 # ld works, but does not support shared libraries. emacs doesn't
364 # work. newlib is not 64 bit ready. I'm not sure about fileutils or grep.
365 # gas doesn't generate exception information.
366 noconfigdirs="$noconfigdirs gas ld emacs fileutils grep target-newlib"
367 ;;
368 alpha*-*-*)
369 # newlib is not 64 bit ready
370 noconfigdirs="$noconfigdirs target-newlib"
371 ;;
372 # start-sanitize-arc
373 arc-*-*)
374 ;;
375 # end-sanitize-arc
376 arm-*-pe*)
377 ;;
378 arm-*-riscix*)
379 noconfigdirs="$noconfigdirs ld"
380 ;;
381 h8300*-*-* | \
382 h8500-*-*)
383 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
384 ;;
385 hppa*-*-*elf* | \
386 hppa*-*-lites*)
387 # Do configure ld/binutils/gas for this case.
388 ;;
389 hppa*-*-*)
390 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
391 # cc is gcc, and on any system a user should be able to link cc to
392 # whatever they want. FIXME, emacs emacs19).
393 case "${CC}" in
394 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
395 *) ;;
396 esac
397 noconfigdirs="$noconfigdirs ld shellutils"
398 ;;
399 i[345]86-*-go32)
400 # but don't build gdb
401 noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
402 ;;
403 *-*-cygwin32)
404
405 # make/glob's configure uses some AC_TRY_RUN type tests
406 target_configdirs="$target_configdirs target-winsup"
407 noconfigdirs="$noconfigdirs tcl tk expect make"
408 # always build newlib.
409 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
410
411 # Can't build gdb for cygwin32 if not native.
412 case "${host}:${build}" in
413 *-*-cygwin32 | *-*-cygwin32:*-*-cygwin32) ;; # keep gdb
414 *) noconfigdirs="$noconfigdirs gdb"
415 esac
416
417 ;;
418 i[345]86-*-pe)
419 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
420 ;;
421 i[345]86-*-sco3.2v5*)
422 # The linker does not yet know about weak symbols in COFF,
423 # and is not configured to handle mixed ELF and COFF.
424 noconfigdirs="$noconfigdirs gprof ld"
425 ;;
426 i[345]86-*-sco*)
427 noconfigdirs="$noconfigdirs gprof"
428 ;;
429 i[345]86-*-solaris2*)
430 # The linker does static linking correctly, but the Solaris C library
431 # has bugs such that some important functions won't work when statically
432 # linked. (See man pages for getpwuid, for example.)
433 noconfigdirs="$noconfigdirs ld"
434 ;;
435 i[345]86-*-sysv4*)
436 # The SYSV4 C compiler doesn't handle Emacs correctly
437 case "${CC}" in
438 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
439 *) ;;
440 esac
441 # but that's okay since emacs doesn't work anyway
442 noconfigdirs="$noconfigdirs emacs emacs19"
443 ;;
444 powerpc-*-aix*)
445 # copied from rs6000-*-* entry
446 noconfigdirs="$noconfigdirs gprof cvs"
447 ;;
448 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
449 target_configdirs="$target_configdirs target-winsup"
450 noconfigdirs="$noconfigdirs gdb tcl tk make expect"
451 # always build newlib.
452 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
453 ;;
454 rs6000-*-lynxos*)
455 # The CVS server code doesn't work on the RS/6000
456 # Newlib makes problems for libg++ in crosses.
457 noconfigdirs="$noconfigdirs target-newlib gprof cvs"
458 ;;
459 rs6000-*-*)
460 noconfigdirs="$noconfigdirs gprof"
461 ;;
462 m68k-*-netbsd*)
463 noconfigdirs="$noconfigdirs gdb"
464 ;;
465 m68k-apollo-*)
466 noconfigdirs="$noconfigdirs ld binutils gprof"
467 ;;
468 mips*-*-irix5*)
469 # The GNU linker does not support shared libraries.
470 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
471 noconfigdirs="$noconfigdirs ld gprof emacs"
472 ;;
473 mips*-dec-bsd*)
474 noconfigdirs="$noconfigdirs gprof"
475 ;;
476 mips*-*-bsd*)
477 noconfigdirs="$noconfigdirs gprof"
478 ;;
479 mips*-*-*)
480 noconfigdirs="$noconfigdirs gprof"
481 ;;
482 romp-*-*)
483 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes"
484 ;;
485 sh-*-*)
486 case "${host}" in
487 i[345]86-*-vsta) ;; # don't add gprof back in
488 i[345]86-*-go32) ;; # don't add gprof back in
489 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
490 esac
491 ;;
492 sparc-*-sunos4*)
493 if [ x${is_cross_compiler} != xno ] ; then
494 noconfigdirs="$noconfigdirs gdb gdbtest target-newlib"
495 else
496 use_gnu_ld=no
497 fi
498 ;;
499 sparclet-*-*)
500 # Skip these until ready for them.
501 noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
502 ;;
503 v810-*-*)
504 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes"
505 ;;
506 vax-*-vms)
507 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes"
508 ;;
509 vax-*-*)
510 noconfigdirs="$noconfigdirs target-newlib"
511 ;;
512 *-*-lynxos*)
513 # Newlib makes problems for libg++ in crosses.
514 noconfigdirs="$noconfigdirs target-newlib"
515 ;;
516 *-*-macos* | \
517 *-*-mpw*)
518 # Macs want a resource compiler.
519 configdirs="$configdirs grez"
520 ;;
521 esac
522
523 # targets that need a second pass
524 case "${target}" in
525 *-gm-magic*)
526 noconfigdirs="$noconfigdirs libgloss"
527 ;;
528 esac
529
530 # If we are building a Canadian Cross, discard tools that can not be built
531 # using a cross compiler. FIXME: These tools should be fixed.
532 if [ "${build}" != "${host}" ]; then
533 noconfigdirs="$noconfigdirs expect dejagnu make texinfo diff"
534 fi
535
536 # Make sure we don't let GNU ld be added if we didn't want it.
537 if [ x$with_gnu_ld = xno ]; then
538 use_gnu_ld=no
539 noconfigdirs="$noconfigdirs ld"
540 fi
541
542 # Make sure we don't let GNU as be added if we didn't want it.
543 if [ x$with_gnu_as = xno ]; then
544 use_gnu_as=no
545 noconfigdirs="$noconfigdirs gas"
546 fi
547
548 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
549 # $target_configdirs.
550 # If we have the source for $noconfigdirs entries, add them to $notsupp.
551
552 notsupp=""
553 for dir in . $skipdirs $noconfigdirs ; do
554 dirname=`echo $dir | sed -e s/target-//g`
555 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
556 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
557 if [ -r $srcdir/$dirname/configure ] \
558 || [ -r $srcdir/$dirname/configure.in ]; then
559 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
560 true
561 else
562 notsupp="$notsupp $dir"
563 fi
564 fi
565 fi
566 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
567 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
568 if [ -r $srcdir/$dirname/configure ] \
569 || [ -r $srcdir/$dirname/configure.in ]; then
570 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
571 true
572 else
573 notsupp="$notsupp $dir"
574 fi
575 fi
576 fi
577 done
578
579 # Sometimes the tools are distributed with libiberty but with no other
580 # libraries. In that case, we don't want to build target-libiberty.
581 if [ -n "${target_configdirs}" ]; then
582 others=
583 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
584 if [ "$i" != "libiberty" ]; then
585 if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
586 others=yes;
587 break;
588 fi
589 fi
590 done
591 if [ -z "${others}" ]; then
592 target_configdirs=
593 fi
594 fi
595
596 # Deconfigure all subdirectories, in case we are changing the
597 # configuration from one where a subdirectory is supported to one where it
598 # is not.
599 if [ -z "${norecursion}" -a -n "${configdirs}" ]; then
600 for i in `echo ${configdirs} | sed -e s/target-//g` ; do
601 rm -f $i/Makefile
602 done
603 fi
604 if [ -z "${norecursion}" -a -n "${target_configdirs}" ]; then
605 for i in `echo ${target_configdirs} | sed -e s/target-//` ; do
606 rm -f ${target_subdir}/$i/Makefile
607 done
608 fi
609
610 # Produce a warning message for the subdirs we can't configure.
611 # This isn't especially interesting in the Cygnus tree, but in the individual
612 # FSF releases, it's important to let people know when their machine isn't
613 # supported by the one or two programs in a package.
614
615 if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
616 # If $appdirs is non-empty, at least one of those directories must still
617 # be configured, or we error out. (E.g., if the gas release supports a
618 # specified target in some subdirs but not the gas subdir, we shouldn't
619 # pretend that all is well.)
620 if [ -n "$appdirs" ]; then
621 for dir in $appdirs ; do
622 if [ -r $dir/Makefile.in ]; then
623 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
624 appdirs=""
625 break
626 fi
627 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
628 appdirs=""
629 break
630 fi
631 fi
632 done
633 if [ -n "$appdirs" ]; then
634 echo "*** This configuration is not supported by this package." 1>&2
635 exit 1
636 fi
637 fi
638 # Okay, some application will build, or we don't care to check. Still
639 # notify of subdirs not getting built.
640 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
641 echo " ${notsupp}" 1>&2
642 echo " (Any other directories should still work fine.)" 1>&2
643 fi
644
645 # Set with_gnu_as and with_gnu_ld as appropriate.
646 #
647 # This is done by determining whether or not the appropriate directory
648 # is available, and by checking whether or not specific configurations
649 # have requested that this magic not happen.
650 #
651 # The command line options always override the explicit settings in
652 # configure.in, and the settings in configure.in override this magic.
653 #
654 # If the default for a toolchain is to use GNU as and ld, and you don't
655 # want to do that, then you should use the --without-gnu-as and
656 # --without-gnu-ld options for the configure script.
657
658 if [ x${use_gnu_as} = x ] ; then
659 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
660 with_gnu_as=yes
661 withoptions="$withoptions --with-gnu-as"
662 fi
663 fi
664
665 if [ x${use_gnu_ld} = x ] ; then
666 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
667 with_gnu_ld=yes
668 withoptions="$withoptions --with-gnu-ld"
669 fi
670 fi
671
672 if [ x${enable_shared} = xyes ]; then
673 case "${target}" in
674 hppa*) target_makefile_frag=config/mt-papic ;;
675 i[345]86-*) target_makefile_frag=config/mt-x86pic ;;
676 *) target_makefile_frag=config/mt-${target_cpu}pic ;;
677 esac
678 fi
679
680 # post-target:
681
682 # Make sure that the compiler is able to generate an executable. If it
683 # can't, we are probably in trouble. We don't care whether we can run the
684 # executable--we might be using a cross compiler--we only care whether it
685 # can be created. At this point the main configure script has set CC.
686 echo "int main () { return 0; }" > conftest.c
687 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
688 if [ $? = 0 ] && [ -s conftest ]; then
689 :
690 else
691 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
692 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
693 rm -f conftest*
694 exit 1
695 fi
696 rm -f conftest*
697
698 # The Solaris /usr/ucb/cc compiler does not appear to work.
699 case "${host}" in
700 sparc-sun-solaris2*)
701 if [ "`/usr/bin/which ${CC-cc}`" = "/usr/ucb/cc" ] ; then
702 could_use=
703 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
704 if [ -d /opt/cygnus/bin ] ; then
705 if [ "$could_use" = "" ] ; then
706 could_use="/opt/cygnus/bin"
707 else
708 could_use="$could_use or /opt/cygnus/bin"
709 fi
710 fi
711 if [ "$could_use" = "" ] ; then
712 echo "Warning: compilation may fail because you're using"
713 echo "/usr/ucb/cc. You should change your PATH or CC "
714 echo "variable and rerun configure."
715 else
716 echo "Warning: compilation may fail because you're using"
717 echo "/usr/ucb/cc, when you should use the C compiler from"
718 echo "$could_use. You should change your"
719 echo "PATH or CC variable and rerun configure."
720 fi
721 fi
722 ;;
723 esac
724
725 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
726 # binutils tools will find libbfd.so.
727 if [ "${enable_shared}" = "yes" ]; then
728 sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
729 Makefile > Makefile.tem
730 rm -f Makefile
731 mv -f Makefile.tem Makefile
732
733 case "${host}" in
734 *-*-hpux*)
735 sed -e 's/RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
736 Makefile > Makefile.tem
737 rm -f Makefile
738 mv -f Makefile.tem Makefile
739 ;;
740 esac
741 fi
742
743 # Record target_configdirs and the configure arguments in Makefile.
744 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
745 targargs=`echo "${arguments}" | \
746 sed -e 's/--norecursion//' \
747 -e 's/--cache[a-z-]*=[^ ]*//' \
748 -e 's/--ho[a-z-]*=[^ ]*//' \
749 -e 's/--ta[a-z-]*=[^ ]*//'`
750
751 # Passing a --with-cross-host argument lets the target libraries know
752 # whether they are being built with a cross-compiler or being built
753 # native. However, it would be better to use other mechanisms to make the
754 # sorts of decisions they want to make on this basis. Please consider
755 # this option to be deprecated. FIXME.
756 if [ x${is_cross_compiler} = xyes ]; then
757 targargs="--with-cross-host=${host_alias} ${targargs}"
758 fi
759
760 targargs="--host=${target_alias} ${targargs}"
761 sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
762 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
763 -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
764 Makefile > Makefile.tem
765 rm -f Makefile
766 mv -f Makefile.tem Makefile
767
768 #
769 # Local Variables:
770 # fill-column: 131
771 # End:
772 #
This page took 0.044505 seconds and 4 git commands to generate.