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