fix output location of common symbols
[deliverable/binutils-gdb.git] / configure.in
CommitLineData
9bdd52dd 1##############################################################################
eb02fd64 2
041164e4
DZ
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.
ba4513e7 7
041164e4
DZ
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.
ba4513e7 12
041164e4
DZ
13## For more information on these two systems, check out the documentation
14## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
ba4513e7 15
9bdd52dd 16##############################################################################
041164e4
DZ
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#
6d3055cb 27host_libs="mmalloc libiberty opcodes bfd readline gash tcl tk tclX"
041164e4 28
f4a7dca7
TL
29if [ "${enable_gdbgui}" = "yes" ] ; then
30 host_libs="${host_libs} libgui"
31fi
32
041164e4
DZ
33# these tools are built for the host environment
34#
35host_tools="texinfo byacc flex bison binutils ld gas gcc gdb make patch
d6c8b354 36 prms send-pr gprof gdbtest tgas etc expect dejagnu sim
e718498b 37 m4 autoconf ispell grep diff rcs cvs fileutils shellutils
e37bb3c7 38 textutils wdiff find emacs emacs19 uudecode hello tar gzip indent
bb9ae458 39 recode release sed utils"
041164e4
DZ
40
41
9bdd52dd
DZ
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)
041164e4 44#
ca2ce3b3 45target_libs="xiberty libgloss newlib libio librx libstdc++ libg++"
6218894f 46
041164e4 47
9bdd52dd 48# these tools are built using the target libs, and are intended to run only
9623e828 49# in the target environment
83a47678 50#
9bdd52dd
DZ
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
041164e4 54#
9623e828 55target_tools="examples groff"
041164e4
DZ
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 xiberty in
63## a native environment.
64
65# directories to be built in the native environment only
66#
6749ef5a 67native_only="autoconf cvs emacs emacs19 fileutils find grep groff gzip hello
86c3abaa 68 indent ispell m4 rcs recode sed shellutils tar textutils gash
6749ef5a 69 uudecode wdiff gprof"
041164e4 70
9bdd52dd 71# directories to be built in a cross environment only
041164e4 72#
fd5032fd 73cross_only="xiberty libgloss newlib"
041164e4
DZ
74
75## All tools belong in one of the four categories, and are assigned above
8f30a41e
DE
76## We assign ${configdirs} this way to remove all embedded newlines. This
77## is important because configure will choke if they ever get through.
ca2ce3b3
ILT
78## ${configdirs} is directories we build using the host tools.
79## ${target_configdirs} is directories we build using the target tools.
041164e4 80#
ca2ce3b3
ILT
81configdirs=`echo ${host_libs} ${host_tools}`
82target_configdirs=`echo ${target_libs} ${target_tools}`
041164e4
DZ
83
84################################################################################
ba4513e7 85
378fd382 86srctrigger=move-if-change
eb02fd64 87srcname="gnu development package"
0df06ca0 88
af9fa3c1
ILT
89# This gets set non-empty for some net releases of packages.
90appdirs=""
91
0df06ca0
RP
92# per-host:
93
594c548a
DM
94# Work in distributions that contain no compiler tools, like Autoconf.
95if [ -d ${srcdir}/config ]; then
cec673a2 96case "${host}" in
c71350fc 97 m68k-hp-hpux*) host_makefile_frag=config/mh-hp300 ;;
cec673a2
DZ
98 m68k-apollo-sysv*) host_makefile_frag=config/mh-apollo68 ;;
99 m68k-apollo-bsd*) host_makefile_frag=config/mh-a68bsd ;;
cec673a2 100 m88k-dg-dgux*) host_makefile_frag=config/mh-dgux ;;
48de3495
SS
101 m88k-harris-cxux*) host_makefile_frag=config/mh-cxux ;;
102 m88k-motorola-sysv*) host_makefile_frag=config/mh-delta88;;
e718498b 103 mips*-dec-ultrix*) host_makefile_frag=config/mh-decstation ;;
031eff55 104 mips*-sgi-irix[56]*) host_makefile_frag=config/mh-irix5 ;;
e718498b
DZ
105 mips*-sgi-irix4*) host_makefile_frag=config/mh-irix4 ;;
106 mips*-sgi-irix3*) host_makefile_frag=config/mh-sysv ;;
49ad26c2 107 mips*-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
e718498b 108 mips*-*-sysv*) host_makefile_frag=config/mh-riscos ;;
7e290a5d 109 i[345]86-ncr-sysv4.3) host_makefile_frag=config/mh-ncrsvr43 ;;
a73fc881
ILT
110 i[345]86-ncr-sysv4*) host_makefile_frag=config/mh-ncr3000 ;;
111 i[345]86-*-sco*) host_makefile_frag=config/mh-sco ;;
112 i[345]86-*-isc*) host_makefile_frag=config/mh-sysv ;;
113 i[345]86-*-linux*) host_makefile_frag=config/mh-linux ;;
114 i[345]86-*-solaris2*) host_makefile_frag=config/mh-sysv4 ;;
115 i[345]86-*-aix*) host_makefile_frag=config/mh-aix386 ;;
116 i[345]86-*-go32*) host_makefile_frag=config/mh-go32 ;;
a220ba0f 117 i[345]86-*-win32) host_makefile_frag=config/mh-i386win32 ;;
d3c06c91 118 vax-*-ultrix2*) host_makefile_frag=config/mh-vaxult2 ;;
54fdaa7b 119 *-*-solaris2*) host_makefile_frag=config/mh-solaris ;;
be8966dc 120 m68k-sun-*) host_makefile_frag=config/mh-sun3 ;;
0259fc73 121 *-hp-hpux[78]*) host_makefile_frag=config/mh-hpux8 ;;
c71350fc 122 *-hp-hpux*) host_makefile_frag=config/mh-hpux ;;
9117f609 123 *-*-hiux*) host_makefile_frag=config/mh-hpux ;;
af9fa3c1 124 rs6000-*-lynxos*) host_makefile_frag=config/mh-lynxrs6k ;;
89c27486 125 *-*-lynxos*) host_makefile_frag=config/mh-lynxos ;;
fab5d4e3
DZ
126 *-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
127 *-*-sysv*) host_makefile_frag=config/mh-sysv ;;
f4bda0ff 128esac
594c548a 129fi
f4bda0ff 130
ca2ce3b3
ILT
131# See if we can extract a definition of CC from the fragment.
132if [ -z "${CC}" ]; then
4caf3f7d 133 if [ -n "${host_makefile_frag}" -a -f "${srcdir}/${host_makefile_frag}" ]; then
c67de584 134 CC=`sed -n -e 's/^[ ]*CC[ ]*=[ ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
ca2ce3b3
ILT
135 fi
136fi
137
866cdf6c
ILT
138# The Solaris /usr/ucb/cc compiler does not appear to work.
139case "${host}" in
140 sparc-sun-solaris2*)
141 if [ "`/usr/bin/which ${CC-cc}`" = "/usr/ucb/cc" ] ; then
142 could_use=
143 [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
144 if [ -d /opt/cygnus/bin ] ; then
80aa1504 145 if [ "$could_use" = "" ] ; then
866cdf6c
ILT
146 could_use="/opt/cygnus/bin"
147 else
148 could_use="$could_use or /opt/cygnus/bin"
149 fi
150 fi
151 if [ "$could_use" = "" ] ; then
152 echo "Warning: compilation may fail because you're using"
153 echo "/usr/ucb/cc. You should change your PATH or CC "
154 echo "variable and rerun configure."
155 else
156 echo "Warning: compilation may fail because you're using"
157 echo "/usr/ucb/cc, when you should use the C compiler from"
158 echo "$could_use. You should change your"
159 echo "PATH or CC variable and rerun configure."
160 fi
161 fi
162 ;;
163esac
164
45329a2c
JM
165# We default to --with-shared on platforms where -fpic is meaningless.
166# Well, we don't yet, but we will.
167if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
168 case "${target}" in
169 alpha-dec-osf*) enable_shared=yes ;;
170 mips-sgi-irix5*) enable_shared=yes ;;
171 *) enable_shared=no ;;
172 esac
173fi
174
175if [ x${enable_shared} = xyes ]; then
176 waugh=
177 case "${host}" in
c9e55665
JM
178 hppa*) waugh=config/mh-papic ;;
179 i[345]86-*) waugh=config/mh-x86pic ;;
180 *) waugh=config/mh-${host_cpu}pic ;;
45329a2c 181 esac
4350753e
JM
182 if [ -f ${srcdir}/${waugh} ]; then
183 if [ -n "${host_makefile_frag}" ] ; then
184 cat ${srcdir}/${host_makefile_frag} > mh-frag
185 cat ${srcdir}/${waugh} >> mh-frag
186 host_makefile_frag=mh-frag
c9e55665
JM
187 else
188 host_makefile_frag=${waugh}
4350753e 189 fi
45329a2c
JM
190 fi
191fi
192
0df06ca0 193# per-target:
bc58b41d 194
9ab10a5b
SEF
195case "${target}" in
196 v810*) target_makefile_frag=config/mt-v810 ;;
138e8532
JM
197 i[345]86-*-netware*) target_makefile_frag=config/mt-netware ;;
198 powerpc-*-netware*) target_makefile_frag=config/mt-netware ;;
9ab10a5b
SEF
199esac
200
ca2ce3b3 201skipdirs=
719cb03f
DZ
202gasdir=gas
203use_gnu_ld=
204use_gnu_as=
205
9f579565
DZ
206# some tools are so dependent upon X11 that if we're not building with X,
207# it's not even worth trying to configure, much less build, that tool.
208
209case ${with_x} in
e13fa011 210 yes | "") # the default value for this tree is that X11 is available
6a42d184 211 ;;
e13fa011 212 no)
ca2ce3b3 213 skipdirs="${skipdirs} tk gash"
9f579565
DZ
214 ;;
215 *)
216 echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
217 ;;
218esac
219
5357f128 220# Some tools are only suitable for building in a "native" situation.
ba4513e7
DZ
221# Those are added when we have a host==target configuration. For cross
222# toolchains, we add some directories that should only be useful in a
223# cross-compiler.
43557c0a 224
2a38983c
DHW
225is_cross_compiler=
226
94028943 227if [ x"${host}" = x"${target}" ] ; then
041164e4
DZ
228 # when doing a native toolchain, don't build the targets
229 # that are in the 'cross only' list
ca2ce3b3 230 skipdirs="${skipdirs} ${cross_only}"
2a38983c 231 is_cross_compiler=no
43557c0a 232else
041164e4
DZ
233 # similarly, don't build the targets in the 'native only'
234 # list when building a cross compiler
ca2ce3b3 235 skipdirs="${skipdirs} ${native_only}"
2a38983c 236 is_cross_compiler=yes
43557c0a
DZ
237fi
238
055cca84
ILT
239copy_dirs=
240
241# Handle --with-headers=XXX. The contents of the named directory are
242# copied to $(tooldir)/include.
243if [ x"${with_headers}" != x ]; then
244 if [ x${is_cross_compiler} = xno ]; then
245 echo 1>&2 '***' --with-headers is only supported when cross compiling
246 exit 1
247 fi
248 case "${exec_prefixoption}" in
249 "") x=${prefix} ;;
250 *) x=${exec_prefix} ;;
251 esac
252 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/include"
253fi
254
255# Handle --with-libs=XXX. Multiple directories are permitted. The
256# contents are copied to $(tooldir)/lib.
257if [ x"${with_libs}" != x ]; then
258 if [ x${is_cross_compiler} = xno ]; then
259 echo 1>&2 '***' --with-libs is only supported when cross compiling
260 exit 1
261 fi
262 # Copy the libraries in reverse order, so that files in the first named
263 # library override files in subsequent libraries.
264 case "${exec_prefixoption}" in
265 "") x=${prefix} ;;
266 *) x=${exec_prefix} ;;
267 esac
268 for l in ${with_libs}; do
269 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
270 done
271fi
272
273# If both --with-headers and --with-libs are specified, default to
274# --without-newlib.
275if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
276 if [ x"${with_newlib}" = x ]; then
277 with_newlib=no
278 fi
279fi
280
99dff294 281# Recognize --with-newlib/--without-newlib.
055cca84 282if [ x${with_newlib} = xno ]; then
ca2ce3b3 283 skipdirs="${skipdirs} newlib"
99dff294 284elif [ x${with_newlib} = xyes ]; then
ca2ce3b3 285 skipdirs=`echo " ${skipdirs} " | sed -e 's/ newlib / /'`
055cca84
ILT
286fi
287
288# Handle ${copy_dirs}
289set fnord ${copy_dirs}
290shift
291while [ $# != 0 ]; do
292 if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
293 :
294 else
295 echo Copying $1 to $2
296
297 # Use the install script to create the directory and all required
298 # parent directories.
299 if [ -d $2 ]; then
300 :
301 else
302 echo >config.temp
303 ${srcdir}/install.sh -c -m 644 config.temp $2/COPIED
304 fi
305
306 # Copy the directory, assuming we have tar.
307 # FIXME: Should we use B in the second tar? Not all systems support it.
308 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
309
310 # It is the responsibility of the user to correctly adjust all
311 # symlinks. If somebody can figure out how to handle them correctly
312 # here, feel free to add the code.
313
314 echo $1 > $2/COPIED
315 fi
316 shift; shift
317done
318
eebd76cb
SC
319# Configure extra directories which are host specific
320
321case "${host}" in
efd7b806 322 i[345]86-*-win32* | i[345]86-*-go32*)
a220ba0f 323 configdirs="$configdirs dosrel" ;;
eebd76cb
SC
324esac
325
5357f128 326# Remove more programs from consideration, based on the host or
dfa891fc 327# target this usually means that a port of the program doesn't
8ae559b7 328# exist yet.
dfa891fc 329
52e3ad87
KR
330noconfigdirs=""
331
9f579565 332case "${host}" in
a73fc881 333 i[345]86-*-vsta)
8a3871bb
RS
334 noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
335 ;;
a73fc881 336 i[345]86-*-go32)
795f1885 337 noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
8c7fd353 338 ;;
a220ba0f 339 i[345]86-*-win32)
1f6701a0 340 noconfigdirs="tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs"
9f579565
DZ
341 ;;
342esac
dfa891fc 343
eebd76cb 344
43557c0a 345case "${target}" in
0f45fbc1 346 *-*-netware)
647acb00 347 noconfigdirs="$noconfigdirs libg++ libstdc++ librx newlib xiberty"
0f45fbc1 348 ;;
dca68f1e 349 *-*-vxworks5.1)
849367a2
BK
350 noconfigdirs="$noconfigdirs newlib"
351 ;;
6bd3f765
ILT
352 alpha-dec-osf*)
353 # ld works, but does not support shared libraries. emacs doesn't
f4791d95
BK
354 # work. newlib is not 64 bit ready. I'm not sure about fileutils or grep.
355 noconfigdirs="$noconfigdirs ld emacs fileutils grep newlib"
0f45fbc1 356 ;;
04b9315f 357 alpha*-*-*)
6bd3f765 358 # newlib is not 64 bit ready
07043fa7 359 noconfigdirs="$noconfigdirs newlib"
0f45fbc1 360 ;;
7c71fc39
DE
361# start-sanitize-arc
362 arc-*-*)
7c71fc39
DE
363 ;;
364# end-sanitize-arc
bf150019
DE
365# start-sanitize-psion
366 arm-*-pe*)
bf150019
DE
367 ;;
368# end-sanitize-psion
ff15324f 369 arm-*-riscix*)
318b02b6
KR
370 noconfigdirs="$noconfigdirs ld"
371 ;;
52e3ad87 372 h8300*-*-* | \
8388b9df 373 h8500-*-*)
6749ef5a 374 noconfigdirs="$noconfigdirs libg++ libstdc++ libio librx"
15ae586e 375 ;;
8a71f0f3 376 hppa*-*-*elf* | \
55ac59da 377 hppa*-*-lites*)
8c92a7d1 378 # Do configure ld/binutils/gas for this case.
99a5da15 379 ;;
15ae586e 380 hppa*-*-*)
408f64bc
JK
381 # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
382 # cc is gcc, and on any system a user should be able to link cc to
e37bb3c7 383 # whatever they want. FIXME, emacs emacs19).
8b5405d2 384 case "${CC}" in
e37bb3c7 385 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
772ebace 386 *) ;;
8b5405d2 387 esac
d9f1d487 388 noconfigdirs="$noconfigdirs ld shellutils"
15ae586e 389 ;;
a73fc881 390 i[345]86-*-go32)
632ee4a1 391 # but don't build gdb
6749ef5a 392 noconfigdirs="$noconfigdirs gdb libg++ libstdc++ libio librx"
8c92a7d1 393 ;;
a220ba0f
SC
394
395 i[345]86-*-win32)
efd7b806
SC
396 noconfigdirs="$noconfigdirs tk"
397 # Can't build gdb for win32 if not native.
398 if [ x${is_cross_compiler} = xyes ]; then
399 noconfigdirs="$noconfigdirs gdb"
400 fi
e1a1ddc6
SC
401 # always build newlib.
402 skipdirs=`echo " ${skipdirs} " | sed -e 's/ newlib / /'`
403 # and winsup
404 configdirs="$configdirs winsup"
a220ba0f 405 ;;
8c7fd353 406 i[345]86-*-pe)
a220ba0f 407 noconfigdirs="$noconfigdirs libg++ libstdc++ libio librx"
8c7fd353 408 ;;
a73fc881 409 i[345]86-*-sco*)
de9117a7
KR
410 noconfigdirs="$noconfigdirs gprof"
411 ;;
a73fc881 412 i[345]86-*-solaris2*)
320c9fff
KR
413 # The linker does static linking correctly, but the Solaris C library
414 # has bugs such that some important functions won't work when statically
415 # linked. (See man pages for getpwuid, for example.)
416 noconfigdirs="$noconfigdirs ld"
417 ;;
a73fc881 418 i[345]86-*-sysv4*)
8b5405d2
DZ
419 # The SYSV4 C compiler doesn't handle Emacs correctly
420 case "${CC}" in
e37bb3c7 421 "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
8b5405d2
DZ
422 *) ;;
423 esac
424 # but that's okay since emacs doesn't work anyway
e37bb3c7 425 noconfigdirs="$noconfigdirs emacs emacs19"
8b5405d2 426 ;;
dee64d72
DE
427# start-sanitize-jaguar
428 jaguar-*-*)
429 ;;
430# end-sanitize-jaguar
3e1e245d
ILT
431 powerpc-*-aix*)
432 # copied from rs6000-*-* entry
034fd45d 433 noconfigdirs="$noconfigdirs ld gprof textutils cvs"
3e1e245d 434 ;;
1293a6fc 435 powerpc*-*-winnt* | powerpc*-*-pe*)
81d08d0c
ILT
436 noconfigdirs="$noconfigdirs ld gdb"
437 ;;
2a38983c
DHW
438 rs6000-*-lynxos*)
439 # a gcc built textutils will cause the linker to hang on 'join'
440 # The CVS server code doesn't work on the RS/6000
441 # Newlib makes problems for libg++ in crosses.
034fd45d 442 noconfigdirs="$noconfigdirs ld newlib gprof textutils cvs"
2a38983c
DHW
443 use_gnu_ld=no
444 use_gnu_as=no
445 ;;
8388b9df 446 rs6000-*-*)
8b5405d2 447 # a gcc built textutils will cause the linker to hang on 'join'
034fd45d 448 noconfigdirs="$noconfigdirs ld gprof textutils"
fcf4d286 449 ;;
d55a8267
C
450 m68k-*-netbsd*)
451 noconfigdirs="$noconfigdirs gdb"
452 ;;
becf2d8a
JK
453 m68k-apollo-*)
454 noconfigdirs="$noconfigdirs ld binutils gprof"
455 ;;
04b9315f
ILT
456 mips*-*-irix5*)
457 # The GNU linker does not support shared libraries.
82633710
ILT
458 # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
459 noconfigdirs="$noconfigdirs ld gprof emacs"
04b9315f 460 ;;
af9fa3c1
ILT
461 mips*-dec-bsd*)
462 noconfigdirs="$noconfigdirs gprof"
463 ;;
464 mips*-*-bsd*)
ffb8885b 465 noconfigdirs="$noconfigdirs gprof"
af9fa3c1 466 ;;
04b9315f 467 mips*-*-*)
52e3ad87 468 noconfigdirs="$noconfigdirs gprof"
fcf4d286 469 ;;
de9117a7 470 romp-*-*)
ca2ce3b3 471 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes"
de9117a7 472 ;;
817382d1 473 sh-*-*)
719cb03f 474 case "${host}" in
a73fc881 475 i[345]86-*-vsta) ;; # don't add gprof back in
a73fc881 476 i[345]86-*-go32) ;; # don't add gprof back in
ca2ce3b3 477 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
719cb03f
DZ
478 esac
479 ;;
480 sparc-*-sunos4*)
2a38983c 481 if [ x${is_cross_compiler} != xno ] ; then
99dff294 482 noconfigdirs="$noconfigdirs gdb gdbtest newlib"
2a38983c
DHW
483 else
484 use_gnu_ld=no
485 fi
1f69e88d 486 ;;
486e0f0a 487 v810-*-*)
0749adcc 488 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld libg++ libstdc++ opcodes"
486e0f0a 489 ;;
de9117a7
KR
490 vax-*-vms)
491 noconfigdirs="$noconfigdirs bfd binutils gdb ld newlib opcodes"
492 ;;
493 vax-*-*)
494 noconfigdirs="$noconfigdirs newlib"
8388b9df 495 ;;
de9117a7 496 *-*-lynxos*)
89c27486
SS
497 # Newlib makes problems for libg++ in crosses.
498 noconfigdirs="$noconfigdirs newlib"
499 ;;
05cd8d98
HS
500esac
501
ca2ce3b3
ILT
502# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
503# $target_configdirs.
504# If we have the source for $noconfigdirs entries, add them to $notsupp.
efd7b806 505
52e3ad87 506notsupp=""
ca2ce3b3 507for dir in . $skipdirs $noconfigdirs ; do
1c15a33d 508 if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
8f30a41e 509 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
52e3ad87 510 if [ -r $srcdir/$dir/configure ] || [ -r $srcdir/$dir/configure.in ]; then
ca2ce3b3
ILT
511 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
512 true
513 else
514 notsupp="$notsupp $dir"
515 fi
516 fi
517 fi
518 if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
519 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
520 if [ -r $srcdir/$dir/configure ] || [ -r $srcdir/$dir/configure.in ]; then
521 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
522 true
523 else
524 notsupp="$notsupp $dir"
525 fi
52e3ad87
KR
526 fi
527 fi
528done
529
ca2ce3b3
ILT
530# Deconfigure all subdirectories, in case we are changing the
531# configuration from one where a subdirectory is supported to one where it
532# is not.
533if [ -z "${norecursion}" ]; then
534 for i in ${configdirs} ${target_configdirs}; do
535 rm -f $i/Makefile
536 done
537fi
538
52e3ad87
KR
539# Produce a warning message for the subdirs we can't configure.
540# This isn't especially interesting in the Cygnus tree, but in the individual
541# FSF releases, it's important to let people know when their machine isn't
542# supported by the one or two programs in a package.
543
9fe444b5 544if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
af9fa3c1
ILT
545 # If $appdirs is non-empty, at least one of those directories must still
546 # be configured, or we error out. (E.g., if the gas release supports a
547 # specified target in some subdirs but not the gas subdir, we shouldn't
548 # pretend that all is well.)
549 if [ -n "$appdirs" ]; then
550 for dir in $appdirs ; do
ca2ce3b3
ILT
551 if [ -r $dir/Makefile.in ]; then
552 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
553 appdirs=""
554 break
555 fi
556 if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
557 appdirs=""
558 break
559 fi
af9fa3c1
ILT
560 fi
561 done
562 if [ -n "$appdirs" ]; then
563 echo "*** This configuration is not supported by this package." 1>&2
564 exit 1
565 fi
566 fi
567 # Okay, some application will build, or we don't care to check. Still
568 # notify of subdirs not getting built.
52e3ad87
KR
569 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
570 echo " ${notsupp}" 1>&2
571 echo " (Any other directories should still work fine.)" 1>&2
572fi
573
3dcd81b9 574# Set with_gnu_as and with_gnu_ld as appropriate.
719cb03f
DZ
575#
576# This is done by determining whether or not the appropriate directory
577# is available, and by checking whether or not specific configurations
578# have requested that this magic not happen.
579#
580# The command line options always override the explicit settings in
581# configure.in, and the settings in configure.in override this magic.
582#
583# If the default for a toolchain is to use GNU as and ld, and you don't
584# want to do that, then you should use the --without-gnu-as and
585# --without-gnu-ld options for the configure script.
586
587if [ x${use_gnu_as} = x ] ; then
6d1603cc 588 if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
719cb03f
DZ
589 with_gnu_as=yes
590 withoptions="$withoptions --with-gnu-as"
591 fi
592fi
593
594if [ x${use_gnu_ld} = x ] ; then
6d1603cc 595 if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
719cb03f
DZ
596 with_gnu_ld=yes
597 withoptions="$withoptions --with-gnu-ld"
598 fi
599fi
43557c0a 600
45329a2c
JM
601if [ x${enable_shared} = xyes ]; then
602 case "${target}" in
c9e55665
JM
603 hppa*) target_makefile_frag=config/mt-papic ;;
604 i[345]86-*) target_makefile_frag=config/mt-x86pic ;;
605 *) target_makefile_frag=config/mt-${target_cpu}pic ;;
45329a2c
JM
606 esac
607fi
608
ca2ce3b3
ILT
609# post-target:
610
611# Record target_configdirs and the configure arguments in Makefile.
612targargs=`echo "${arguments}" | \
613 sed -e 's/--*norecursion//' \
614 -e 's/--*cache[a-z-]*=[^ ]*//' \
615 -e 's/--*cache[a-z-]*[ ][ ]*[^ ]*//'`
616sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
617 -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
618 Makefile > Makefile.tem
619rm -f Makefile
620mv -f Makefile.tem Makefile
621
bc58b41d
RP
622#
623# Local Variables:
624# fill-column: 131
625# End:
626#
This page took 0.177112 seconds and 4 git commands to generate.