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