OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [insight/] [configure.in] - Blame information for rev 1765

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
#! /bin/bash
2
##############################################################################
3
 
4
## This file is a shell script fragment that supplies the information
5
## necessary to tailor a template configure script into the configure
6
## script appropriate for this directory.  For more information, check
7
## any existing configure script.
8
 
9
## Be warned, there are two types of configure.in files.  There are those
10
## used by Autoconf, which are macros which are expanded into a configure
11
## script by autoconf.  The other sort, of which this is one, is executed
12
## by Cygnus configure.
13
 
14
## For more information on these two systems, check out the documentation
15
## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
16
 
17
#   Copyright (C) 1992-99, 2000, 2001 Free Software Foundation, Inc.
18
#
19
# This file is free software; you can redistribute it and/or modify it
20
# under the terms of the GNU General Public License as published by
21
# the Free Software Foundation; either version 2 of the License, or
22
# (at your option) any later version.
23
#
24
# This program is distributed in the hope that it will be useful, but
25
# WITHOUT ANY WARRANTY; without even the implied warranty of
26
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27
# General Public License for more details.
28
#
29
# You should have received a copy of the GNU General Public License
30
# along with this program; if not, write to the Free Software
31
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
32
 
33
##############################################################################
34
 
35
### To add a new directory to the tree, first choose whether it is a target
36
### or a host dependent tool.  Then put it into the appropriate list
37
### (library or tools, host or target), doing a dependency sort.  For
38
### example, gdb requires that byacc (or bison) be built first, so it is in
39
### the ${host_tools} list after byacc and bison.
40
 
41
 
42
# these libraries are used by various programs built for the host environment
43
#
44
host_libs="intl mmalloc libiberty opcodes bfd readline gash db tcl tk tcl8.1 tk8.1 tclX itcl tix libgui"
45
 
46
if [ "${enable_gdbgui}" = "yes" ] ; then
47
        host_libs="${host_libs} libgui"
48
fi
49
 
50
# Set up configure/Makefile variables if libstdc++-v3 is to be built.
51
if [ "${enable_libstdcxx_v3}" = "yes" ] && test -d $srcdir/libstdc++-v3; then
52
        libstdcxx_version="target-libstdc++-v3"
53
        # Don't use libstdc++-v3's flags to configure/build itself.
54
        libstdcxx_flags='`case $$dir in libstdc++-v3) ;; *) cat $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/libstdc++.INC 2>/dev/null || : ;; esac` -L$$r/$(TARGET_SUBDIR)/libstd++-v3/src -L$$r/$(TARGET_SUBDIR)/libstd++-v3/src/.libs'
55
else
56
        libstdcxx_version="target-libio target-libstdc++"
57
        libstdcxx_flags='-isystem $$s/libstdc++ -isystem $$s/libstdc++/std -isystem $$s/libstdc++/stl -isystem $$s/libio/ -isystem $$s/libio/stdio -L$$r/$(TARGET_SUBDIR)/libstdc++'
58
fi
59
 
60
# these tools are built for the host environment
61
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
62
# know that we are building the simulator.
63
host_tools="byacc flex bison binutils ld gas gcc cgen sid sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext zip"
64
 
65
# these libraries are built for the target environment, and are built after
66
# the host libraries and the host tools (which may be a cross compiler)
67
#
68
target_libs="target-libiberty \
69
                target-libgloss \
70
                target-newlib \
71
                ${libstdcxx_version} \
72
                target-libf2c \
73
                target-libchill \
74
                target-libffi \
75
                target-libjava \
76
                target-zlib \
77
                target-boehm-gc \
78
                target-qthreads \
79
                target-libobjc"
80
 
81
# these tools are built using the target libs, and are intended to run only
82
# in the target environment
83
#
84
# note: any program that *uses* libraries that are in the "target_libs"
85
# list belongs in this list.  those programs are also very likely
86
# candidates for the "native_only" list which follows
87
#
88
target_tools="target-examples target-groff target-gperf"
89
 
90
################################################################################
91
 
92
## These two lists are of directories that are to be removed from the
93
## ${configdirs} list for either cross-compilations or for native-
94
## compilations.  For example, it doesn't make that much sense to
95
## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
96
## a native environment.
97
 
98
# directories to be built in the native environment only
99
#
100
# This must be a single line because of the way it is searched by grep in
101
# the code below.
102
native_only="autoconf automake libtool cvssrc emacs emacs19 fileutils find gawk gettext grep gzip hello indent ispell m4 rcs recode sed shellutils tar textutils gash uudecode wdiff gprof target-groff guile perl apache inet time ash bash bzip2 prms snavigator gnuserv target-gperf"
103
 
104
# directories to be built in a cross environment only
105
#
106
cross_only="target-libgloss target-newlib target-cygmon target-opcodes target-libstub"
107
 
108
## All tools belong in one of the four categories, and are assigned above
109
## We assign ${configdirs} this way to remove all embedded newlines.  This
110
## is important because configure will choke if they ever get through.
111
## ${configdirs} is directories we build using the host tools.
112
## ${target_configdirs} is directories we build using the target tools.
113
#
114
configdirs=`echo ${host_libs} ${host_tools}`
115
target_configdirs=`echo ${target_libs} ${target_tools}`
116
 
117
################################################################################
118
 
119
srctrigger=move-if-change
120
srcname="gnu development package"
121
 
122
# This gets set non-empty for some net releases of packages.
123
appdirs=""
124
 
125
# per-host:
126
 
127
# Work in distributions that contain no compiler tools, like Autoconf.
128
if [ -d ${srcdir}/config ]; then
129
case "${host}" in
130
  m68k-hp-hpux*)
131
    host_makefile_frag="${host_makefile_frag} config/mh-hp300"
132
    ;;
133
  m68k-apollo-sysv*)
134
    host_makefile_frag="${host_makefile_frag} config/mh-apollo68"
135
    ;;
136
  m68k-apollo-bsd*)
137
    host_makefile_frag="${host_makefile_frag} config/mh-a68bsd"
138
    ;;
139
  m88k-dg-dgux*)
140
    host_makefile_frag="${host_makefile_frag} config/mh-dgux"
141
    ;;
142
  m88k-harris-cxux*)
143
    host_makefile_frag="${host_makefile_frag} config/mh-cxux"
144
    ;;
145
  m88k-motorola-sysv*)
146
    host_makefile_frag="${host_makefile_frag} config/mh-delta88"
147
    ;;
148
  mips*-dec-ultrix*)
149
    host_makefile_frag="${host_makefile_frag} config/mh-decstation"
150
    ;;
151
  mips*-nec-sysv4*)
152
    host_makefile_frag="${host_makefile_frag} config/mh-necv4"
153
    ;;
154
  mips*-sgi-irix6*)
155
    host_makefile_frag="${host_makefile_frag} config/mh-irix6"
156
    ;;
157
  mips*-sgi-irix5*)
158
    host_makefile_frag="${host_makefile_frag} config/mh-irix5"
159
    ;;
160
  mips*-sgi-irix4*)
161
    host_makefile_frag="${host_makefile_frag} config/mh-irix4"
162
    ;;
163
  mips*-sgi-irix3*)
164
    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
165
    ;;
166
  mips*-*-sysv4*)
167
    host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
168
    ;;
169
  mips*-*-sysv*)
170
    host_makefile_frag="${host_makefile_frag} config/mh-riscos"
171
    ;;
172
  i370-ibm-opened*)
173
    host_makefile_frag="${host_makefile_frag} config/mh-openedition"
174
    ;;
175
  i[3456]86-*-sysv5*)
176
    host_makefile_frag="${host_makefile_frag} config/mh-sysv5"
177
    ;;
178
  i[3456]86-*-dgux*)
179
    host_makefile_frag="${host_makefile_frag} config/mh-dgux386"
180
    ;;
181
  i[3456]86-ncr-sysv4.3*)
182
    host_makefile_frag="${host_makefile_frag} config/mh-ncrsvr43"
183
    ;;
184
  i[3456]86-ncr-sysv4*)
185
    host_makefile_frag="${host_makefile_frag} config/mh-ncr3000"
186
    ;;
187
  i[3456]86-*-sco3.2v5*)
188
    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
189
    ;;
190
  i[3456]86-*-sco*)
191
    host_makefile_frag="${host_makefile_frag} config/mh-sco"
192
    ;;
193
  i[3456]86-*-udk*)
194
    host_makefile_frag="${host_makefile_frag} config/mh-sysv5"
195
    ;;
196
  i[3456]86-*-isc*)
197
    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
198
    ;;
199
  i[3456]86-*-solaris2*)
200
    host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
201
    ;;
202
  i[3456]86-*-aix*)
203
    host_makefile_frag="${host_makefile_frag} config/mh-aix386"
204
    ;;
205
  i[3456]86-*-msdosdjgpp*)
206
    host_makefile_frag="${host_makefile_frag} config/mh-djgpp"
207
    ;;
208
  *-cygwin*)
209
    host_makefile_frag="${host_makefile_frag} config/mh-cygwin"
210
    ;;
211
  *-mingw32*)
212
    host_makefile_frag="${host_makefile_frag} config/mh-mingw32"
213
    ;;
214
  *-interix*)
215
    host_makefile_frag="${host_makefile_frag} config/mh-interix"
216
    ;;
217
  *-windows*)
218
    host_makefile_frag="${host_makefile_frag} config/mh-windows"
219
    ;;
220
  vax-*-ultrix2*)
221
    host_makefile_frag="${host_makefile_frag} config/mh-vaxult2"
222
    ;;
223
  *-*-solaris2*)
224
    host_makefile_frag="${host_makefile_frag} config/mh-solaris"
225
    ;;
226
  m68k-sun-sunos*)
227
    host_makefile_frag="${host_makefile_frag} config/mh-sun3"
228
    ;;
229
  *-hp-hpux[78]*)
230
    host_makefile_frag="${host_makefile_frag} config/mh-hpux8"
231
    ;;
232
  *-hp-hpux*)
233
    host_makefile_frag="${host_makefile_frag} config/mh-hpux"
234
    ;;
235
  *-*-hiux*)
236
    host_makefile_frag="${host_makefile_frag} config/mh-hpux"
237
    ;;
238
  rs6000-*-lynxos*)
239
    host_makefile_frag="${host_makefile_frag} config/mh-lynxrs6k"
240
    ;;
241
  *-*-lynxos*)
242
    host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
243
    ;;
244
  *-*-sysv4*)
245
    host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
246
    ;;
247
  *-*-sysv*)
248
    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
249
    ;;
250
esac
251
fi
252
 
253
# If we aren't going to be using gcc, see if we can extract a definition
254
# of CC from the fragment.
255
if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then
256
  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
257
  found=
258
  for dir in $PATH; do
259
    test -z "$dir" && dir=.
260
    if test -f $dir/gcc; then
261
      found=yes
262
      break
263
    fi
264
  done
265
  IFS="$save_ifs"
266
  if [ -z "${found}" ] && [ -n "${host_makefile_frag}" ] && [ -f "${srcdir}/${host_makefile_frag}" ]; then
267
    xx=`sed -n -e 's/^[         ]*CC[   ]*=[    ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
268
    if [ -n "${xx}" ] ; then
269
      CC=$xx
270
    fi
271
  fi
272
fi
273
 
274
# We default to --with-shared on platforms where -fpic is meaningless.
275
# Well, we don't yet, but we will.
276
if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
277
  case "${target}" in
278
    alpha*-dec-osf*)    enable_shared=yes ;;
279
    alpha*-*-linux*)    enable_shared=yes ;;
280
    mips-sgi-irix5*)    enable_shared=yes ;;
281
    *)                  enable_shared=no ;;
282
  esac
283
fi
284
 
285
case "${enable_shared}" in
286
  yes) shared=yes ;;
287
  no) shared=no ;;
288
  "") shared=no ;;
289
  *) shared=yes ;;
290
esac
291
 
292
if [ x${shared} = xyes ]; then
293
  case "${host}" in
294
    alpha*-*-linux*)
295
      host_makefile_frag="${host_makefile_frag} config/mh-elfalphapic"
296
      ;;
297
    arm*-*-*)
298
      host_makefile_frag="${host_makefile_frag} config/mh-armpic"
299
      ;;
300
    hppa*-*-*)
301
      host_makefile_frag="${host_makefile_frag} config/mh-papic"
302
      ;;
303
    i[3456]86-*-cygwin*)
304
      # We don't want -fPIC on Cygwin.
305
      ;;
306
    i[3456]86-*-*)
307
      host_makefile_frag="${host_makefile_frag} config/mh-x86pic"
308
      ;;
309
    i370-*-*)
310
      host_makefile_frag="${host_makefile_frag} config/mh-i370pic"
311
      ;;
312
    ia64-*-*)
313
      host_makefile_frag="${host_makefile_frag} config/mh-ia64pic"
314
      ;;
315
    sparc64-*-*)
316
      host_makefile_frag="${host_makefile_frag} config/mh-sparcpic"
317
      ;;
318
    powerpc*-*-aix*)
319
      # We don't want -fPIC on AIX.
320
      ;;
321
    powerpc*-*-*)
322
      host_makefile_frag="${host_makefile_frag} config/mh-ppcpic"
323
      ;;
324
    s390-* | s390x-*)
325
      host_makefile_frag="${host_makefile_frag} config/mh-s390pic"
326
      ;;
327
    *-*-*)
328
      if test -f ${srcdir}/config/mh-${host_cpu}pic; then
329
        host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic"
330
      fi
331
      ;;
332
  esac
333
fi
334
 
335
rm -f mh-frag
336
if [ -n "${host_makefile_frag}" ] ; then
337
  for f in ${host_makefile_frag}
338
  do
339
    cat ${srcdir}/$f >> mh-frag
340
  done
341
  host_makefile_frag=mh-frag
342
fi
343
 
344
# per-target:
345
 
346
case "${target}" in
347
  v810*)
348
    target_makefile_frag="${target_makefile_frag} config/mt-v810"
349
    ;;
350
  i[3456]86-*-netware*)
351
    target_makefile_frag="${target_makefile_frag} config/mt-netware"
352
    ;;
353
  powerpc-*-netware*)
354
    target_makefile_frag="${target_makefile_frag} config/mt-netware"
355
    ;;
356
  *-*-linux-gnu*)
357
    target_makefile_frag="${target_makefile_frag} config/mt-linux"
358
    ;;
359
  *-*-aix4.[3456789]* | *-*-aix[56789].*)
360
    target_makefile_frag="${target_makefile_frag} config/mt-aix43"
361
    ;;
362
  mips*-*-pe | sh*-*-pe | *arm-wince-pe)
363
    target_makefile_frag="${target_makefile_frag} config/mt-wince"
364
    ;;
365
  or32*)
366
    target_makefile_frag="${target_makefile_frag} config/mt-or32pic"
367
                ;;
368
esac
369
 
370
# If --enable-target-optspace always use -Os instead of -O2 to build
371
# the target libraries, similarly if it is not specified, use -Os
372
# on selected platforms.
373
case "${enable_target_optspace}:${target}" in
374
  yes:*)
375
    target_makefile_frag="${target_makefile_frag} config/mt-ospace"
376
    ;;
377
  :d30v-*)
378
    target_makefile_frag="${target_makefile_frag} config/mt-d30v"
379
    ;;
380
  :m32r-* | :d10v-* | :fr30-*)
381
    target_makefile_frag="${target_makefile_frag} config/mt-ospace"
382
    ;;
383
  no:* | :*)
384
    ;;
385
  *)
386
    echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
387
    ;;
388
esac
389
 
390
skipdirs=
391
gasdir=gas
392
use_gnu_ld=
393
use_gnu_as=
394
 
395
# some tools are so dependent upon X11 that if we're not building with X,
396
# it's not even worth trying to configure, much less build, that tool.
397
 
398
case ${with_x} in
399
  yes | "")  # the default value for this tree is that X11 is available
400
        ;;
401
  no)
402
        skipdirs="${skipdirs} tk libgui gash"
403
        ;;
404
  *)
405
        echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
406
        ;;
407
esac
408
 
409
# Some tools are only suitable for building in a "native" situation.
410
# Those are added when we have a host==target configuration.  For cross
411
# toolchains, we add some directories that should only be useful in a
412
# cross-compiler.
413
 
414
is_cross_compiler=
415
 
416
if [ x"${host}" = x"${target}" ] ; then
417
        # when doing a native toolchain, don't build the targets
418
        # that are in the 'cross only' list
419
        skipdirs="${skipdirs} ${cross_only}"
420
        is_cross_compiler=no
421
else
422
        # similarly, don't build the targets in the 'native only'
423
        # list when building a cross compiler
424
        skipdirs="${skipdirs} ${native_only}"
425
        is_cross_compiler=yes
426
fi
427
 
428
# We always want to use the same name for this directory, so that dejagnu
429
# can reliably find it.
430
target_subdir=${target_alias}
431
 
432
if [ ! -d ${target_subdir} ] ; then
433
  if mkdir ${target_subdir} ; then true
434
  else
435
    echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
436
    exit 1
437
  fi
438
fi
439
 
440
copy_dirs=
441
 
442
# Handle --with-headers=XXX.  The contents of the named directory are
443
# copied to $(tooldir)/sys-include.
444
if [ x"${with_headers}" != x ]; then
445
  if [ x${is_cross_compiler} = xno ]; then
446
    echo 1>&2 '***' --with-headers is only supported when cross compiling
447
    exit 1
448
  fi
449
  case "${exec_prefixoption}" in
450
  "") x=${prefix} ;;
451
  *) x=${exec_prefix} ;;
452
  esac
453
  copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
454
fi
455
 
456
# Handle --with-libs=XXX.  Multiple directories are permitted.  The
457
# contents are copied to $(tooldir)/lib.
458
if [ x"${with_libs}" != x ]; then
459
  if [ x${is_cross_compiler} = xno ]; then
460
    echo 1>&2 '***' --with-libs is only supported when cross compiling
461
    exit 1
462
  fi
463
  # Copy the libraries in reverse order, so that files in the first named
464
  # library override files in subsequent libraries.
465
  case "${exec_prefixoption}" in
466
  "") x=${prefix} ;;
467
  *) x=${exec_prefix} ;;
468
  esac
469
  for l in ${with_libs}; do
470
    copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
471
  done
472
fi
473
 
474
# If both --with-headers and --with-libs are specified, default to
475
# --without-newlib.
476
if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
477
  if [ x"${with_newlib}" = x ]; then
478
    with_newlib=no
479
  fi
480
fi
481
 
482
# Recognize --with-newlib/--without-newlib.
483
if [ x${with_newlib} = xno ]; then
484
  skipdirs="${skipdirs} target-newlib"
485
elif [ x${with_newlib} = xyes ]; then
486
  skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
487
fi
488
 
489
# Default to using --with-stabs for certain targets.
490
if [ x${with_stabs} = x ]; then
491
  case "${target}" in
492
  mips*-*-irix6*)
493
    ;;
494
  mips*-*-* | alpha*-*-osf*)
495
    with_stabs=yes;
496
    withoptions="${withoptions} --with-stabs"
497
    ;;
498
  esac
499
fi
500
 
501
# Handle ${copy_dirs}
502
set fnord ${copy_dirs}
503
shift
504
while [ $# != 0 ]; do
505
  if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
506
    :
507
  else
508
    echo Copying $1 to $2
509
 
510
    # Use the install script to create the directory and all required
511
    # parent directories.
512
    if [ -d $2 ]; then
513
      :
514
    else
515
      echo >config.temp
516
      ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
517
    fi
518
 
519
    # Copy the directory, assuming we have tar.
520
    # FIXME: Should we use B in the second tar?  Not all systems support it.
521
    (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
522
 
523
    # It is the responsibility of the user to correctly adjust all
524
    # symlinks.  If somebody can figure out how to handle them correctly
525
    # here, feel free to add the code.
526
 
527
    echo $1 > $2/COPIED
528
  fi
529
  shift; shift
530
done
531
 
532
# Configure extra directories which are host specific
533
 
534
case "${host}" in
535
        i[3456]86-*-go32*)
536
          configdirs="$configdirs dosrel" ;;
537
        i[3456]86-*-mingw32*)
538
          configdirs="$configdirs dosrel" ;;
539
        *-cygwin*)
540
          configdirs="$configdirs libtermcap dosrel" ;;
541
esac
542
 
543
# Remove more programs from consideration, based on the host or
544
# target this usually means that a port of the program doesn't
545
# exist yet.
546
 
547
noconfigdirs=""
548
 
549
case "${host}" in
550
  i[3456]86-*-vsta)
551
    noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext"
552
    ;;
553
  i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*)
554
    noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext libffi"
555
        ;;
556
  i[3456]86-*-mingw32*)
557
    # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv"
558
     noconfigdirs="expect dejagnu cvs autoconf automake send-pr rcs guile perl texinfo apache inet libtool"
559
        ;;
560
  i[3456]86-*-beos*)
561
     noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
562
     ;;
563
  *-*-cygwin*)
564
     noconfigdirs="autoconf automake send-pr rcs guile perl apache inet"
565
    ;;
566
  *-*-netbsd*)
567
    noconfigdirs="rcs"
568
    ;;
569
  ppc*-*-pe)
570
     noconfigdirs="patch diff make tk tcl expect dejagnu cvssrc autoconf automake texinfo bison send-pr gprof rcs guile perl apache inet itcl tix db snavigator gnuserv"
571
    ;;
572
  powerpc-*-beos*)
573
    noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
574
    ;;
575
esac
576
 
577
 
578
# Save it here so that, even in case of --enable-libgcj, if the Java
579
# front-end isn't enabled, we still get libgcj disabled.
580
libgcj_saved=$libgcj
581
case $enable_libgcj in
582
yes)
583
  # If we reset it here, it won't get added to noconfigdirs in the
584
  # target-specific build rules, so it will be forcibly enabled
585
  # (unless the Java language itself isn't enabled).
586
  libgcj=
587
  ;;
588
no)
589
  # Make sure we get it printed in the list of not supported target libs.
590
  noconfigdirs="$noconfigdirs ${libgcj}"
591
  ;;
592
esac
593
 
594
case "${target}" in
595
  *-*-netware)
596
    noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss target-libffi"
597
    ;;
598
  *-*-rtems*)
599
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
600
    ;;
601
  *-*-vxworks*)
602
    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libffi"
603
    ;;
604
  alpha*-dec-osf*)
605
    # ld works, but does not support shared libraries.  emacs doesn't
606
    # work.  newlib is not 64 bit ready.  I'm not sure about fileutils.
607
    # gas doesn't generate exception information.
608
    noconfigdirs="$noconfigdirs gas ld emacs fileutils target-newlib target-libgloss"
609
    ;;
610
  alpha*-*-*vms*)
611
    noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss target-libffi"
612
    ;;
613
  alpha*-*-*)
614
    # newlib is not 64 bit ready
615
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
616
    ;;
617
  or32*)
618
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
619
    noconfigdirs="$noconfigdirs target-libjava target-libffi target-zlib"
620
    noconfigdirs="$noconfigdirs target-boehm-gc target-qthreads target-examples"
621
    ## noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
622
    ;;
623
  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
624
    noconfigdirs="$noconfigdirs target-libjava target-libffi target-zlib"
625
    noconfigdirs="$noconfigdirs target-boehm-gc target-qthreads target-examples"
626
    noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
627
    noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
628
    noconfigdirs="$noconfigdirs expect dejagnu"
629
    # the C++ libraries don't build on top of CE's C libraries
630
    noconfigdirs="$noconfigdirs ${libstdcxx_version}"
631
    skipdirs="$skipdirs target-newlib"
632
    case "${host}" in
633
      *-*-cygwin*) ;; # keep gdb and readline
634
      *) noconfigdirs="$noconfigdirs gdb readline ${libstdcxx_version}"
635
         ;;
636
    esac
637
    ;;
638
  arc-*-*)
639
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
640
    ;;
641
  arm-*-pe*)
642
    noconfigdirs="$noconfigdirs target-libgloss"
643
    ;;
644
  arm-*-coff*)
645
    noconfigdirs="$noconfigdirs target-libgloss"
646
    if [ x${is_cross_compiler} != xno ] ; then
647
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
648
    fi
649
    ;;
650
  arm-*-elf*)
651
    noconfigdirs="$noconfigdirs target-libgloss"
652
    if [ x${is_cross_compiler} != xno ] ; then
653
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
654
    fi
655
    ;;
656
  arm-*-oabi*)
657
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
658
    ;;
659
  thumb-*-coff)
660
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
661
    ;;
662
  thumb-*-elf)
663
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
664
    ;;
665
  thumb-*-oabi)
666
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
667
    ;;
668
  strongarm-*-elf)
669
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
670
    if [ x${is_cross_compiler} != xno ] ; then
671
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
672
    fi
673
    ;;
674
  strongarm-*-coff)
675
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
676
    if [ x${is_cross_compiler} != xno ] ; then
677
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
678
    fi
679
    ;;
680
  xscale-*-elf)
681
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
682
    if [ x${is_cross_compiler} != xno ] ; then
683
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
684
    fi
685
    ;;
686
  xscale-*-coff)
687
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
688
    if [ x${is_cross_compiler} != xno ] ; then
689
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
690
    fi
691
    ;;
692
  thumb-*-pe)
693
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
694
    ;;
695
  arm-*-riscix*)
696
    noconfigdirs="$noconfigdirs ld target-libgloss target-libffi"
697
    ;;
698
  c4x-*-*)
699
    noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi"
700
    ;;
701
  c54x*-*-* | tic54x-*-*)
702
    noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi gcc gdb newlib"
703
    ;;
704
  d10v-*-*)
705
    noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi"
706
    ;;
707
  d30v-*-*)
708
    ;;
709
  fr30-*-elf*)
710
    if [ x${is_cross_compiler} != xno ] ; then
711
           target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
712
    fi
713
    ;;
714
  h8300*-*-* | \
715
  h8500-*-*)
716
    noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi"
717
    ;;
718
  hppa*-*-*elf* | \
719
  hppa*-*-linux-gnu* | \
720
  hppa*-*-lites* | \
721
  hppa*64*-*-*)
722
    # Do configure ld/binutils/gas for this case.
723
    ;;
724
  hppa*-*-*)
725
    # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
726
    # cc is gcc, and on any system a user should be able to link cc to
727
    # whatever they want.  FIXME, emacs emacs19).
728
    case "${CC}" in
729
        "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
730
        *) ;;
731
    esac
732
    # According to Alexandre Oliva , libjava won't
733
    # build on HP-UX 10.20.
734
    noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
735
    ;;
736
  ia64*-*-elf*)
737
    # No gdb support yet.
738
    noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
739
    ;;
740
  i[3456]86-*-coff | i[3456]86-*-elf)
741
    if [ x${is_cross_compiler} != xno ] ; then
742
         target_configdirs="${target_configdirs} target-libstub target-cygmon"
743
    fi
744
    ;;
745
  i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*)
746
    # but don't build gdb
747
    noconfigdirs="$noconfigdirs gdb ${libstdcxx_version} target-libffi"
748
    ;;
749
  i[3456]86-*-mingw32*)
750
    target_configdirs="$target_configdirs target-mingw"
751
    noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
752
 
753
    # Can't build gdb for mingw32 if not native.
754
    case "${host}" in
755
      i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
756
      *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv"
757
         ;;
758
    esac
759
    ;;
760
  *-*-cygwin*)
761
    target_configdirs="$target_configdirs target-libtermcap target-winsup"
762
    noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
763
    # always build newlib.
764
    skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
765
 
766
    # Can't build gdb for Cygwin if not native.
767
    case "${host}" in
768
      *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
769
      *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv"
770
         ;;
771
    esac
772
    ;;
773
  i[3456]86-*-pe)
774
    noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi"
775
    ;;
776
  i[3456]86-*-sco3.2v5*)
777
    # The linker does not yet know about weak symbols in COFF,
778
    # and is not configured to handle mixed ELF and COFF.
779
    noconfigdirs="$noconfigdirs ld target-libgloss target-libffi"
780
    ;;
781
  i[3456]86-*-sco*)
782
    noconfigdirs="$noconfigdirs gprof target-libgloss target-libffi"
783
    ;;
784
  i[3456]86-*-solaris2*)
785
    noconfigdirs="$noconfigdirs target-libgloss"
786
    ;;
787
  i[3456]86-*-sysv4*)
788
    # The SYSV4 C compiler doesn't handle Emacs correctly
789
    case "${CC}" in
790
        "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
791
        *) ;;
792
    esac
793
    # but that's okay since emacs doesn't work anyway
794
    noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss target-libffi"
795
    ;;
796
  i[3456]86-*-beos*)
797
     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
798
     ;;
799
 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
800
    noconfigdirs="$noconfigdirs target-libiberty target-librx target-libg++ target-libstdc++ target-libio target-libf2c target-libchill target-zlib target-libobjc"
801
    ;;
802
 m68k-*-elf*)
803
    if [ x${is_cross_compiler} != xno ] ; then
804
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
805
    fi
806
    ;;
807
  m68k-*-coff*)
808
    if [ x${is_cross_compiler} != xno ] ; then
809
           target_configdirs="${target_configdirs} target-bsp target-cygmon"
810
    fi
811
    ;;
812
  mn10200-*-*)
813
    noconfigdirs="$noconfigdirs target-libffi"
814
    if [ x${is_cross_compiler} != xno ] ; then
815
           target_configdirs="${target_configdirs} target-libstub target-cygmon"
816
    fi
817
    ;;
818
  mn10300-*-*)
819
    noconfigdirs="$noconfigdirs target-libffi"
820
    if [ x${is_cross_compiler} != xno ] ; then
821
           target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
822
    fi
823
    ;;
824
  powerpc-*-aix*)
825
    # copied from rs6000-*-* entry
826
    use_gnu_ld=yes
827
    ;;
828
  powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
829
    target_configdirs="$target_configdirs target-winsup"
830
    noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv target-libffi"
831
    # always build newlib.
832
    skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
833
    ;;
834
    # This is temporary until we can link against shared libraries
835
  powerpcle-*-solaris*)
836
    noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv target-libffi"
837
    ;;
838
  powerpc-*-beos*)
839
    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
840
    ;;
841
  powerpc-*-eabi)
842
    if [ x${is_cross_compiler} != xno ] ; then
843
           target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
844
    fi
845
    ;;
846
  rs6000-*-lynxos*)
847
    # The CVS server code doesn't work on the RS/6000
848
    noconfigdirs="$noconfigdirs target-newlib gprof cvssrc target-libffi"
849
    ;;
850
  rs6000-*-aix*)
851
    noconfigdirs="$noconfigdirs gprof target-libffi"
852
    use_gnu_ld=yes
853
    ;;
854
  rs6000-*-*)
855
    noconfigdirs="$noconfigdirs gprof target-libffi"
856
    ;;
857
  m68k-apollo-*)
858
    noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss target-libffi"
859
    ;;
860
  mips*-*-irix5*)
861
    # The GNU linker does not support shared libraries.
862
    # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
863
    noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss"
864
    ;;
865
  mips*-*-irix6*)
866
    # The GNU assembler does not support IRIX 6.
867
    # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
868
    # Linking libjava exceeds command-line length limits on at least
869
    # IRIX 6.2, but not on IRIX 6.5.
870
    # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
871
    # 
872
    noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss ${libgcj}"
873
    ;;
874
  mips*-dec-bsd*)
875
    noconfigdirs="$noconfigdirs gprof target-libgloss target-libffi"
876
    ;;
877
  mips*-*-bsd*)
878
    noconfigdirs="$noconfigdirs gprof target-libgloss target-libffi"
879
    ;;
880
  mipstx39-*-*)
881
    noconfigdirs="$noconfigdirs gprof target-libffi"   # same as generic mips
882
    target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
883
   ;;
884
  mips*-*-*)
885
    noconfigdirs="$noconfigdirs gprof target-libffi"
886
    ;;
887
  romp-*-*)
888
    noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss target-libffi"
889
    ;;
890
  sh-*-*)
891
    case "${host}" in
892
      i[3456]86-*-vsta) ;; # don't add gprof back in
893
      i[3456]86-*-go32*) ;; # don't add gprof back in
894
      i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in
895
      *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
896
    esac
897
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
898
    ;;
899
  sparc-*-elf*)
900
    if [ x${is_cross_compiler} != xno ] ; then
901
           target_configdirs="${target_configdirs} target-libstub target-cygmon"
902
    fi
903
    ;;
904
  sparc64-*-elf*)
905
    if [ x${is_cross_compiler} != xno ] ; then
906
           target_configdirs="${target_configdirs} target-libstub target-cygmon"
907
    fi
908
    noconfigdirs="$noconfigdirs target-libffi"
909
    ;;
910
  sparclite-*-*)
911
    if [ x${is_cross_compiler} != xno ] ; then
912
           target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
913
    fi
914
    noconfigdirs="$noconfigdirs target-libffi"
915
    ;;
916
  sparc-*-sunos4*)
917
    if [ x${is_cross_compiler} != xno ] ; then
918
           noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
919
    else
920
           use_gnu_ld=no
921
    fi
922
    ;;
923
  sparc-*-solaris*)
924
    case "${host}" in
925
    sparc-*-solaris2.8)
926
      # According to Gerald Pfeifer , libjava
927
      # won't build correctly on Solaris 8 if there's a
928
      # previously-installed version of GCC in the configured prefix.
929
      # This problem does not show up on earlier versions of Solaris.
930
      noconfigdirs="$noconfigdirs ${libgcj}"
931
      ;;
932
    esac
933
    ;;
934
  v810-*-*)
935
    noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss target-libffi"
936
    ;;
937
  v850-*-*)
938
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
939
    ;;
940
  v850e-*-*)
941
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
942
    ;;
943
  v850ea-*-*)
944
    noconfigdirs="$noconfigdirs target-libgloss target-libffi"
945
    ;;
946
  vax-*-vms)
947
    noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss target-libffi"
948
    ;;
949
  vax-*-*)
950
    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libffi"
951
    ;;
952
  *-*-lynxos*)
953
    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libffi"
954
    ;;
955
  *-*-macos* | \
956
  *-*-mpw*)
957
    # Macs want a resource compiler.
958
    configdirs="$configdirs grez"
959
    noconfigdirs="$noconfigdirs target-libffi"
960
    ;;
961
esac
962
 
963
# If we aren't building newlib, then don't build libgloss, since libgloss
964
# depends upon some newlib header files.
965
case "${noconfigdirs}" in
966
  *target-libgloss*) ;;
967
  *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
968
esac
969
 
970
# Make sure we don't let GNU ld be added if we didn't want it.
971
if [ x$with_gnu_ld = xno ]; then
972
  use_gnu_ld=no
973
  noconfigdirs="$noconfigdirs ld"
974
fi
975
 
976
# Make sure we don't let GNU as be added if we didn't want it.
977
if [ x$with_gnu_as = xno ]; then
978
  use_gnu_as=no
979
  noconfigdirs="$noconfigdirs gas"
980
fi
981
 
982
# Figure out what language subdirectories are present.
983
# Look if the user specified --enable-languages="..."; if not, use
984
# the environment variable $LANGUAGES if defined. $LANGUAGES might
985
# go away some day.
986
if test x"${enable_languages+set}" != xset; then
987
        if test x"${LANGUAGES+set}" = xset; then
988
                enable_languages="`echo ${LANGUAGES} | tr ' ' ','`"
989
        else
990
                enable_languages=all
991
        fi
992
else
993
        if test x"${enable_languages}" = x; then
994
                echo configure.in: --enable-languages needs at least one argument 1>&2
995
                exit 1
996
        fi
997
fi
998
subdirs=
999
for lang in ${srcdir}/gcc/*/config-lang.in ..
1000
do
1001
        case $lang in
1002
        ..) ;;
1003
        # The odd quoting in the next line works around
1004
        # an apparent bug in bash 1.12 on linux.
1005
        ${srcdir}/gcc/[*]/config-lang.in) ;;
1006
        *)
1007
          lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
1008
          this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^         ]*\).*$,\1,p' $lang`
1009
          build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^     ]*\).*$,\1,p' $lang`
1010
          if test "x$lang_alias" = x
1011
          then
1012
                echo "$lang doesn't set \$language." 1>&2
1013
                exit 1
1014
          fi
1015
          case ${build_by_default},${enable_languages}, in
1016
          *,$lang_alias,*) add_this_lang=yes ;;
1017
          no,*) add_this_lang=no ;;
1018
          *,all,*) add_this_lang=yes ;;
1019
          *) add_this_lang=no ;;
1020
          esac
1021
          if test x"${add_this_lang}" = xyes; then
1022
              eval target_libs='"$target_libs "'\"$this_lang_libs\"
1023
          else
1024
              eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs\"
1025
          fi
1026
          ;;
1027
        esac
1028
done
1029
 
1030
 
1031
# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
1032
# $target_configdirs.
1033
# If we have the source for $noconfigdirs entries, add them to $notsupp.
1034
 
1035
notsupp=""
1036
for dir in . $skipdirs $noconfigdirs ; do
1037
  dirname=`echo $dir | sed -e s/target-//g`
1038
  if [ $dir != . ]  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1039
    configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1040
    if [ -r $srcdir/$dirname/configure ] \
1041
        || [ -r $srcdir/$dirname/configure.in ]; then
1042
      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1043
        true
1044
      else
1045
        notsupp="$notsupp $dir"
1046
      fi
1047
    fi
1048
  fi
1049
  if [ $dir != . ]  && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1050
    target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1051
    if [ -r $srcdir/$dirname/configure ] \
1052
        || [ -r $srcdir/$dirname/configure.in ]; then
1053
      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1054
        true
1055
      else
1056
        notsupp="$notsupp $dir"
1057
      fi
1058
    fi
1059
  fi
1060
done
1061
 
1062
# Sometimes the tools are distributed with libiberty but with no other
1063
# libraries.  In that case, we don't want to build target-libiberty.
1064
if [ -n "${target_configdirs}" ]; then
1065
  others=
1066
  for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1067
    if [ "$i" != "libiberty" ]; then
1068
      if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
1069
        others=yes;
1070
        break;
1071
      fi
1072
    fi
1073
  done
1074
  if [ -z "${others}" ]; then
1075
    target_configdirs=
1076
  fi
1077
fi
1078
 
1079
# Deconfigure all subdirectories, in case we are changing the
1080
# configuration from one where a subdirectory is supported to one where it
1081
# is not.
1082
if [ -z "${norecursion}" ] && [ -n "${configdirs}" ]; then
1083
  for i in `echo ${configdirs} | sed -e s/target-//g` ; do
1084
    rm -f $i/Makefile
1085
  done
1086
fi
1087
if [ -z "${norecursion}" ] && [ -n "${target_configdirs}" ]; then
1088
  for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1089
    rm -f ${target_subdir}/$i/Makefile
1090
  done
1091
fi
1092
 
1093
# Produce a warning message for the subdirs we can't configure.
1094
# This isn't especially interesting in the Cygnus tree, but in the individual
1095
# FSF releases, it's important to let people know when their machine isn't
1096
# supported by the one or two programs in a package.
1097
 
1098
if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
1099
  # If $appdirs is non-empty, at least one of those directories must still
1100
  # be configured, or we error out.  (E.g., if the gas release supports a
1101
  # specified target in some subdirs but not the gas subdir, we shouldn't
1102
  # pretend that all is well.)
1103
  if [ -n "$appdirs" ]; then
1104
    for dir in $appdirs ; do
1105
      if [ -r $dir/Makefile.in ]; then
1106
        if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1107
          appdirs=""
1108
          break
1109
        fi
1110
        if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1111
          appdirs=""
1112
          break
1113
        fi
1114
      fi
1115
    done
1116
    if [ -n "$appdirs" ]; then
1117
      echo "*** This configuration is not supported by this package." 1>&2
1118
      exit 1
1119
    fi
1120
  fi
1121
  # Okay, some application will build, or we don't care to check.  Still
1122
  # notify of subdirs not getting built.
1123
  echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1124
  echo "    ${notsupp}" 1>&2
1125
  echo "    (Any other directories should still work fine.)" 1>&2
1126
fi
1127
 
1128
# Set with_gnu_as and with_gnu_ld as appropriate.
1129
#
1130
# This is done by determining whether or not the appropriate directory
1131
# is available, and by checking whether or not specific configurations
1132
# have requested that this magic not happen.
1133
#
1134
# The command line options always override the explicit settings in
1135
# configure.in, and the settings in configure.in override this magic.
1136
#
1137
# If the default for a toolchain is to use GNU as and ld, and you don't
1138
# want to do that, then you should use the --without-gnu-as and
1139
# --without-gnu-ld options for the configure script.
1140
 
1141
if [ x${use_gnu_as} = x ] ; then
1142
  if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
1143
    with_gnu_as=yes
1144
    withoptions="$withoptions --with-gnu-as"
1145
  fi
1146
fi
1147
 
1148
if [ x${use_gnu_ld} = x ] ; then
1149
  if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
1150
    with_gnu_ld=yes
1151
    withoptions="$withoptions --with-gnu-ld"
1152
  fi
1153
fi
1154
 
1155
# If using newlib, add --with-newlib to the withoptions so that gcc/configure
1156
# can detect this case.
1157
 
1158
if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
1159
  with_newlib=yes
1160
  withoptions="$withoptions --with-newlib"
1161
fi
1162
 
1163
if [ x${shared} = xyes ]; then
1164
  case "${target}" in
1165
    hppa*)
1166
      target_makefile_frag="${target_makefile_frag} config/mt-papic"
1167
      ;;
1168
    i[3456]86-*)
1169
      target_makefile_frag="${target_makefile_frag} config/mt-x86pic"
1170
      ;;
1171
    ia64-*)
1172
      target_makefile_frag="${target_makefile_frag} config/mt-ia64pic"
1173
      ;;
1174
    powerpc*-*-aix*)
1175
      # We don't want -fPIC on AIX.
1176
      ;;
1177
    powerpc*-*)
1178
      target_makefile_frag="${target_makefile_frag} config/mt-ppcpic"
1179
      ;;
1180
    alpha*-*-linux*)
1181
      target_makefile_frag="${target_makefile_frag} config/mt-elfalphapic"
1182
      ;;
1183
    *)
1184
      if test -f ${srcdir}/config/mt-${target_cpu}pic; then
1185
        target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic"
1186
      fi
1187
      ;;
1188
  esac
1189
fi
1190
 
1191
rm -f mt-frag
1192
if [ -n "${target_makefile_frag}" ] ; then
1193
  for f in ${target_makefile_frag}
1194
  do
1195
    cat ${srcdir}/$f >> mt-frag
1196
  done
1197
  target_makefile_frag=mt-frag
1198
fi
1199
 
1200
# post-target:
1201
 
1202
# Make sure that the compiler is able to generate an executable.  If it
1203
# can't, we are probably in trouble.  We don't care whether we can run the
1204
# executable--we might be using a cross compiler--we only care whether it
1205
# can be created.  At this point the main configure script has set CC.
1206
echo "int main () { return 0; }" > conftest.c
1207
${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1208
if [ $? = 0 ] && [ -s conftest -o -s conftest.exe ]; then
1209
  :
1210
else
1211
  echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1212
  echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1213
  rm -f conftest*
1214
  exit 1
1215
fi
1216
rm -f conftest*
1217
 
1218
# The Solaris /usr/ucb/cc compiler does not appear to work.
1219
case "${host}" in
1220
  sparc-sun-solaris2*)
1221
      CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1222
      if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
1223
          could_use=
1224
          [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
1225
          if [ -d /opt/cygnus/bin ] ; then
1226
              if [ "$could_use" = "" ] ; then
1227
                  could_use="/opt/cygnus/bin"
1228
              else
1229
                  could_use="$could_use or /opt/cygnus/bin"
1230
              fi
1231
          fi
1232
        if [ "$could_use" = "" ] ; then
1233
            echo "Warning: compilation may fail because you're using"
1234
            echo "/usr/ucb/cc.  You should change your PATH or CC "
1235
            echo "variable and rerun configure."
1236
        else
1237
            echo "Warning: compilation may fail because you're using"
1238
            echo "/usr/ucb/cc, when you should use the C compiler from"
1239
            echo "$could_use.  You should change your"
1240
            echo "PATH or CC variable and rerun configure."
1241
        fi
1242
      fi
1243
  ;;
1244
esac
1245
 
1246
# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1247
# binutils tools will find libbfd.so.
1248
if [ "${shared}" = "yes" ]; then
1249
  sed -e 's/^SET_LIB_PATH[      ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
1250
      Makefile > Makefile.tem
1251
  rm -f Makefile
1252
  mv -f Makefile.tem Makefile
1253
 
1254
  case "${host}" in
1255
  *-*-hpux*)
1256
    sed -e 's/^RPATH_ENVVAR[    ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
1257
        Makefile > Makefile.tem
1258
    rm -f Makefile
1259
    mv -f Makefile.tem Makefile
1260
    ;;
1261
  esac
1262
fi
1263
 
1264
# Record target_configdirs and the configure arguments in Makefile.
1265
target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1266
targargs=`echo "${arguments}" | \
1267
        sed -e 's/--no[^        ]*//' \
1268
            -e 's/--cache[a-z-]*=[^     ]*//' \
1269
            -e 's/--ho[a-z-]*=[^        ]*//' \
1270
            -e 's/--bu[a-z-]*=[^        ]*//' \
1271
            -e 's/--ta[a-z-]*=[^        ]*//'`
1272
 
1273
# Passing a --with-cross-host argument lets the target libraries know
1274
# whether they are being built with a cross-compiler or being built
1275
# native.  However, it would be better to use other mechanisms to make the
1276
# sorts of decisions they want to make on this basis.  Please consider
1277
# this option to be deprecated.  FIXME.
1278
if [ x${is_cross_compiler} = xyes ]; then
1279
  targargs="--with-cross-host=${host_alias} ${targargs}"
1280
fi
1281
 
1282
# Default to --enable-multilib.
1283
if [ x${enable_multilib} = x ]; then
1284
  targargs="--enable-multilib ${targargs}"
1285
fi
1286
 
1287
# Pass --with-newlib if appropriate.  Note that target_configdirs has
1288
# changed from the earlier setting of with_newlib.
1289
if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
1290
  targargs="--with-newlib ${targargs}"
1291
fi
1292
 
1293
# provide a proper gxx_include_dir.
1294
# Note, if you change the default, make sure to fix both here and in
1295
# the gcc, libio, and libstdc++ subdirectories.
1296
# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1297
gxx_include_dir=
1298
if test -n "${with_gxx_include_dir}"; then
1299
  case "${with_gxx_include_dir}" in
1300
    yes )
1301
      echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2
1302
      exit 1
1303
      ;;
1304
    no )
1305
      ;;
1306
    * )
1307
      gxx_include_dir=${with_gxx_include_dir}
1308
      ;;
1309
  esac
1310
fi
1311
if test x${gxx_include_dir} = x; then
1312
  if test x${enable_version_specific_runtime_libs} = xyes; then
1313
    gxx_include_dir='${libsubdir}/include/g++'
1314
  else
1315
    . ${topsrcdir}/config.if
1316
    gxx_include_dir='${prefix}/include/g++'-${libstdcxx_interface}
1317
  fi
1318
else
1319
  gxx_include_dir=${gxx_include_dir}
1320
fi
1321
 
1322
FLAGS_FOR_TARGET=
1323
case " $skipdirs " in
1324
*" target-newlib "*) ;;
1325
*)
1326
   case "$target" in
1327
   *-cygwin*)
1328
     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include -isystem $$s/newlib/libc/sys/cygwin -isystem $$s/newlib/libc/sys/cygwin32' ;;
1329
   esac
1330
 
1331
   # If we're not building GCC, don't discard standard headers.
1332
   if test -d ${topsrcdir}/gcc; then
1333
     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1334
 
1335
     if test "${build}" != "${host}"; then
1336
       # On Canadian crosses, CC_FOR_TARGET will have already been set
1337
       # by `configure', so we won't have an opportunity to add -Bgcc/
1338
       # to it.  This is right: we don't want to search that directory
1339
       # for binaries, but we want the header files in there, so add
1340
       # them explicitly.
1341
       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1342
 
1343
       # Someone might think of using the pre-installed headers on
1344
       # Canadian crosses, in case the installed compiler is not fully
1345
       # compatible with the compiler being built.  In this case, it
1346
       # would be better to flag an error than risking having
1347
       # incompatible object files being constructed.  We can't
1348
       # guarantee that an error will be flagged, but let's hope the
1349
       # compiler will do it, when presented with incompatible header
1350
       # files.
1351
     fi
1352
   fi
1353
 
1354
   # If we're building newlib, use its generic headers last, but search
1355
   # for any libc-related directories first (so make it the last -B
1356
   # switch).
1357
   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1358
   ;;
1359
esac
1360
 
1361
# On Canadian crosses, we'll be searching the right directories for
1362
# the previously-installed cross compiler, so don't bother to add
1363
# flags for directories within the install tree of the compiler
1364
# being built; programs in there won't even run.
1365
if test "${build}" = "${host}" && test -d ${topsrcdir}/gcc; then
1366
  # Search for pre-installed headers if nothing else fits.
1367
  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include'
1368
fi
1369
 
1370
if test "x${use_gnu_ld}" = x && test "x${with_gnu_ld}" != xno &&
1371
   echo " ${configdirs} " | grep " ld " > /dev/null &&
1372
   test -d ${srcdir}/ld; then
1373
  # Arrange for us to find uninstalled linker scripts.
1374
  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
1375
fi
1376
 
1377
if test "x${CC_FOR_TARGET+set}" = xset; then
1378
  :
1379
elif test -d ${topsrcdir}/gcc; then
1380
  CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
1381
elif test "$host" = "$target"; then
1382
  CC_FOR_TARGET='$(CC)'
1383
else
1384
  CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
1385
fi
1386
# On Canadian crosses, configure reads CC_FOR_TARGET from Makefile,
1387
# if Makefile exists.  Prevent $(FLAGS_FOR_TARGET) from being duplicated.
1388
case $CC_FOR_TARGET in
1389
*' $(FLAGS_FOR_TARGET)') ;;
1390
*) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1391
esac
1392
 
1393
if test "x${CHILL_FOR_TARGET+set}" = xset; then
1394
  :
1395
elif test -d ${topsrcdir}/gcc; then
1396
  CHILL_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/ -L$$r/gcc/ch/runtime/'
1397
elif test "$host" = "$target"; then
1398
  CHILL_FOR_TARGET='$(CC)'
1399
else
1400
  CHILL_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
1401
fi
1402
case $CHILL_FOR_TARGET in
1403
*' $(FLAGS_FOR_TARGET)') ;;
1404
*) CHILL_FOR_TARGET=$CHILL_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1405
esac
1406
 
1407
if test "x${CXX_FOR_TARGET+set}" = xset; then
1408
  :
1409
elif test -d ${topsrcdir}/gcc; then
1410
  CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3) echo xgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
1411
elif test "$host" = "$target"; then
1412
  CXX_FOR_TARGET='$(CXX)'
1413
else
1414
  CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
1415
fi
1416
case $CXX_FOR_TARGET in
1417
*' $(FLAGS_FOR_TARGET)') ;;
1418
*) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1419
esac
1420
qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
1421
 
1422
# We want to defer the evaluation of `cmd`s and shell variables in
1423
# CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
1424
# bootstrap.  We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
1425
# quotes, but we still have to duplicate `$'s so that shell variables
1426
# can be expanded by the nested make as shell variables, not as make
1427
# macros.
1428
qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
1429
 
1430
targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
1431
sed -e "s:^TARGET_CONFIGDIRS[   ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
1432
    -e "s%^CONFIG_ARGUMENTS[    ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
1433
    -e "s%^FLAGS_FOR_TARGET[    ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \
1434
    -e "s%^CC_FOR_TARGET[       ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \
1435
    -e "s%^CHILL_FOR_TARGET[    ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \
1436
    -e "s%^CXX_FOR_TARGET[      ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%" \
1437
    -e "s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[   ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%" \
1438
    -e "s%^TARGET_SUBDIR[       ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
1439
    -e "s%^gxx_include_dir[     ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
1440
       Makefile > Makefile.tem
1441
rm -f Makefile
1442
mv -f Makefile.tem Makefile
1443
 
1444
#
1445
# Local Variables:
1446
# fill-column: 131
1447
# End:
1448
#

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.