Formerly ../configure.in.~19~
[kopensolaris-gnu/glibc.git] / configure.in
1 dnl Autoconf sets the quotes to [ and ], which hoses shell commands.
2 dnl We get rid of the quotes altogether, and turn them on for AC_*.
3 changequote(,)dnl
4 #! /bin/sh
5
6 # Configuration script for the GNU C Library.
7 dnl You can ignore the following line if you are reading this sentence.
8 # DO NOT EDIT!  This script is generated from configure.in; edit that instead.
9
10 # Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
11 # This file is part of the GNU C Library.
12
13 # The GNU C Library is free software; you can redistribute it and/or
14 # modify it under the terms of the GNU Library General Public License as
15 # published by the Free Software Foundation; either version 2 of the
16 # License, or (at your option) any later version.
17
18 # The GNU C Library is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 # Library General Public License for more details.
22
23 # You should have received a copy of the GNU Library General Public
24 # License along with the GNU C Library; see the file COPYING.LIB.  If
25 # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
26 # Cambridge, MA 02139, USA.
27
28 #
29 #       Configure the GNU C Library.
30 #
31
32 prog="`basename $0`"
33
34 if [ $# -eq 0 -a "${ARCH-${machine}}" != "" ]; then
35   set "${ARCH-${machine}}"
36 fi
37
38 # All the standard GNU configure options are accepted but only
39 # --nfp, --with-gnu-ld, and --with-gnu-as are meaningful.
40 nfp=
41 gnu_ld=
42 gnu_as=
43 version=
44 release=
45 prefix=
46 exec_prefix=
47 verbose=
48
49 lose=
50 for arg in $*; do
51   if [ x$next != x ]; then
52     eval "$next = \$arg"
53     next=
54   else
55     case $arg in
56      -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
57         srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
58         ;;
59      -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
60         next=srcdir
61         ;;
62      -target | --target | --targe | --targ | --tar | --ta | --t)
63         next=target
64         ;;
65      -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
66         target=`echo $arg | sed 's/-*t[a-z]*=//'`
67         ;; 
68
69      -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
70         gnu_ld=--with-gnu-ld
71         ;;
72
73      -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a)
74         gnu_as=--with-gnu-as
75         ;;
76
77      -nfp | --nfp | --nf | --n)
78         nfp=--nfp
79         ;;
80
81      -with-* | --with-*)
82        ;; # ignored
83
84      -x | --x)
85        ;; # ignored
86
87      -os-release=* | -os-releas=* | -os-relea=* | -os-rele=* | -os-rel=* \
88      | -os-re=* | -os-r=* | --os-release=* | --os-releas=* | --os-relea=* \
89      | --os-rele=* | --os-rel=* | --os-re=* | --os-r=*)
90        release=`echo $arg | sed 's/-*os-r[a-z]*=//'`
91        ;;
92      -os-release | -os-releas | -os-relea | -os-rele | -os-rel \
93      | -os-re | -os-r | --os-release | --os-releas | --os-relea \
94      | --os-rele | --os-rel | --os-re | --os-r)
95        next=release
96        ;;
97
98      -os-version=* | -os-versio=* | -os-versi=* | -os-vers=* | -os-ver=* \
99      | -os-ver=* | -os-ve=* | -os-v=* | --os-version=* | --os-versio=* \
100      | --os-versi=* | --os-vers=* | --os-ver=* | --os-ver=* | --os-ve=* \
101      | --os-v=*)
102        version=`echo $arg | sed 's/-*os-v[a-z]*=//'`
103        ;;
104      -os-version | -os-versio | -os-versi | -os-vers | -os-ver \
105      | -os-ver | -os-ve | -os-v |--os-version | --os-versio \
106      | --os-versi | --os-vers | --os-ver | --os-ver | --os-ve | --os-v)
107        next=version
108        ;;
109
110      # For backward compatibility, also recognize exact --exec_prefix.
111      -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
112         exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
113         ;;
114      -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
115         next=exec_prefix
116         ;;
117
118      -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
119         prefix=`echo $arg | sed 's/[-a-z_]*=//'`
120         ;;
121      -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
122         next=prefix
123         ;;
124
125      -v | -verbose | --verbose | --verbos | --verbo | --verb | --ver | --ve | --v)
126        # Autoconf-generated code below will test this.
127        verbose=yes
128        ;;
129
130      -*)
131         echo "Invalid option \`$arg'" 1>&2
132         lose=yes
133         ;;
134      *)
135         if [ ! "$target" ]; then
136           target=$arg
137         else
138           lose=yes
139         fi
140         ;;
141     esac
142   fi
143 done
144
145 # NEXT will be set iff we have seen an option that wants an arg, but no arg.
146 if [ "$next" ]; then
147   echo "$0: the \`--${next}' option requires an argument" >&2
148   lose=yes
149 fi
150
151 if [ "$lose" = yes -o ! "$target" ]; then
152   echo "Usage: $prog [--srcdir=DIR] [--nfp] [--with-gnu-ld] TARGET" >&2
153   if [ -r config.status ]; then
154     cat config.status >&2
155   fi
156   exit 1
157 fi
158
159 dnl This deals with setting srcdir if it needs to be set.
160 changequote([,])
161 AC_PREPARE(features.h)
162 changequote(,)
163
164 # Canonicalize the configuration name.
165 config=`$srcdir/config.sub $target`
166 if [ ! "$config" ]; then
167   # config.sub has written an error message.
168   exit 1
169 fi
170
171 sysdep_dir=$srcdir/sysdeps
172
173 # machine-vendor-os
174 eval "`echo $config | \
175        sed 's/^\(.*\)-\(.*\)-\(.*\)$/machine=\1 vendor=\2 os=\3/'`"
176
177 case "$os" in
178 gnu*)
179   os=mach/hurd ;;
180 sunos* | ultrix* | newsos* | dynix* | bsd*)
181   base_os=unix/bsd ;;
182 linux* | sysv* | isc* | esix* | sco* | minix*)
183   base_os=unix/sysv ;;
184 esac
185
186 case "$os" in
187 gnu* | linux*)
188   gnu_ld=--with-gnu-ld
189   gnu_as=--with-gnu-as
190 esac
191
192 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
193 tail=$os
194 ostry=$os
195 while o=`echo $tail | sed 's/\.[^.]*$//'`; [ $o != $tail ]; do
196   ostry="$ostry /$o"
197   tail=$o
198 done  
199 o=`echo $tail | sed 's/[0-9]*$//'`
200 if [ $o != $tail ]; then
201   ostry="$ostry /$o"
202 fi
203
204 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
205 base=
206 tail=$base_os
207 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$b" ]; do
208   set $b
209   base="$base /$1"
210   tail="$2"
211 done
212
213 # Find what sysdep directories exist.
214 sysnames=
215 for b in $base ''; do
216   for v in /$vendor ''; do
217     for o in /$ostry ''; do
218       for m in /$machine ''; do
219         if [ -d $sysdep_dir$b$v$o$m ]; then
220           sysnames="$sysnames $b$v$o$m"
221           [ "$o" -o "$b" ] && os_used=t
222           [ "$m" ] && machine_used=t
223         fi
224       done
225     done
226   done
227 done
228
229 if [ ! "$os_used" -a "$os" != none ]; then
230   echo Operating system $os is not supported. >&2
231   exit 1
232 fi
233 if [ ! "$machine_used" -a "$machine" != none ]; then
234   echo The $machine is not supported. >&2
235   exit 1
236 fi
237
238 # We have now validated the configuration.
239
240 PWD=`pwd`
241 echo Configuring the GNU C library in $PWD
242 echo on `hostname` for ${config}.
243
244 # Remove the leading slashes.
245 sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
246
247 # Prepend the machine's FPU directory unless --nfp.
248 if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
249   sysnames="${machine}/fpu $sysnames"
250 fi
251
252 # Expand the list of system names into a full list of directories
253 # from each element's parent name and Implies file (if present).
254 set $sysnames
255 while [ $# -gt 0 ]; do
256   name=$1
257   shift
258
259   if [ -f $sysdep_dir/$name/Implies ]; then
260     # Collect more names from the `Implies' file (removing comments).
261     implied="`sed 's/#.*$//' < $sysdep_dir/$name/Implies`"
262   else
263     implied=
264   fi
265
266   # Add NAME to the list of names.
267   names="$names $name"
268
269   # Find the parent of NAME, using the empty string if it has none.
270   parent="`echo $name | sed -n -e '/\//!q' -e 's=/[^/]*$==p'`"
271
272   # Append the names implied by NAME, and NAME's parent (if it has one),
273   # to the list of names to be processed (the argument list).
274   sysnames="`echo $* $implied $parent`"
275   if [ "$sysnames" != "" ]; then
276     set $sysnames
277   fi
278 done
279
280 # Add the default directories.
281 names="$names generic stub"
282
283 # Now uniquize the list.
284 seen=
285 sysnames=
286 for name in $names; do
287   if echo "$seen" | fgrep -x $name >/dev/null; then
288     # Already in the list.
289     true;
290   else
291     # A new one.
292     if [ "$seen" = "" ]; then
293       seen="$name" sysnames="$name"
294     else
295       seen="$seen
296 $name"
297       sysnames="$sysnames $name"
298     fi
299   fi
300 done
301
302 echo "Using system-dependent file from directories:
303 $seen"
304
305 # This will get text that should go into config.make.
306 config_vars=
307
308 changequote([,])dnl The world is now safe for m4, and unsafe for shell.
309 dnl Be sure to add each macro used here to aclocal.m4 (which see).
310 AC_PROG_INSTALL
311 AC_PROG_RANLIB
312
313 AC_PROG_CC
314 AC_PROG_CPP
315
316 echo checking for signed size_t type
317 echo '#include <stddef.h>
318 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
319 eval "$CPP conftest.c 2>/dev/null" \
320 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null \
321 || AC_DEFINE(__SIZE_TYPE__, unsigned)
322 rm -f conftest*
323
324 AC_HEADER_EGREP(__gnuc_va_list, stdarg.h, [config_vars="$config_vars
325 stdarg.h = # The installed <stdarg.h> defines __gnuc_va_list."])
326
327 changequote(,)dnl The world is again safe for shell scripts.
328
329 # Iterate over all the sysdep directories we will use, running their
330 # configure fragments, and looking for a uname implementation.
331 uname=
332 for dir in $sysnames; do
333   if test -r $sysdep_dir/$dir/configure; then
334     echo running configure fragment for $dir
335     . $sysdep_dir/$dir/configure
336   fi
337   test ! "$uname" && \
338   test -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S && uname=$dir
339 done
340
341 # If we will use the generic uname implementation, we must figure out what
342 # it will say by examining the system, and write the results in config-name.h.
343 if [ "$uname" = generic ]; then
344
345   echo trying to guess OS release and version for uname
346
347   kernel_release=
348   kernel_version=
349
350   if [ ! "$release" -o ! "$version" ]; then
351     if [ -r /vmunix ]; then
352       kernel_id=`strings /vmunix | grep UNIX`
353     elif [ -r /dynix ]; then
354       kernel_id=`strings /dynix | grep DYNIX`
355     else
356       kernel_id=
357     fi
358     if [ "$kernel_id" ]; then
359       kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
360       kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
361     fi
362   fi
363
364   sysname=`echo $os | sed 's/[0-9.]*$//'`
365   if [ $sysname != $os ]; then
366     config_release=`echo $os | sed s/$sysname//`
367   fi
368
369   if [ "$release" ]; then
370     # All is well.
371     true
372   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
373          != x$config_release ]; then
374     # The configuration release is a substring of the kernel release.
375     release=$kernel_release
376   elif [ x$config_release != x ]; then
377     release=$config_release
378   elif [ x$kernel_release != x ]; then
379     release=$kernel_release
380   else
381     cat <<END
382 I don't know what release of $sysname you are using.  Please enter the
383 release number now.  This information is used only for the \`uname' function,
384 so it is not critical.
385 END
386     read release
387     if [ ! "$release" ]; then
388       release=unknown
389     fi
390   fi
391
392   if [ "$version" ]; then
393     # All is well.
394     true
395   elif [ ! "$kernel_version" ]; then
396     cat <<END
397 I don't know what version of $sysname $release you are using.  Please enter
398 the version number now.  This information is used only for the uname
399 function, so it is not critical.
400 END
401     read version
402     if [ ! "$version" ]; then
403       version=unknown
404     fi
405   else
406     version=$kernel_version
407   fi
408
409   cat > config-name.h <<END
410 /* This file was generated automatically by configure.  Do not edit.
411    This is used by the generic uname function.  */
412 #define UNAME_SYSNAME "${sysname}"
413 #define UNAME_RELEASE "${release}"
414 #define UNAME_VERSION "${version}"
415 #define UNAME_MACHINE "${machine}-${vendor}"
416 END
417
418   system_name="$sysname $release version $version on $vendor $machine"
419 else
420   # Not generic uname.  We don't need config-name.h at all.
421   system_name=$config
422 fi
423
424 if [ "$gnu_ld" ]; then
425   DEFS="$DEFS -DHAVE_GNU_LD"
426 fi
427 if [ "$gnu_as" ]; then
428   DEFS="$DEFS -DHAVE_GNU_AS"
429 fi
430
431 (
432   echo '# This file was generated automatically by configure.  Do not edit.'
433   echo '# Put configuration parameters in configparms instead.'
434   echo "config-machine = ${machine}"
435   echo "config-vendor = ${vendor}"
436   echo "config-os = ${os}"
437   echo "config-sysdirs = ${sysnames}"
438   if [ "$prefix" ]; then
439     echo "prefix = ${prefix}"
440   fi
441   if [ "$exec_prefix" ]; then
442     echo "exec_prefix = ${exec_prefix}"
443   fi
444   echo "config-defines = ${DEFS}"
445   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
446     eval "echo \"${var} = \${$var}\""
447   done
448   echo "$config_vars"
449 ) > config.make
450
451 switches=
452 if [ "$gnu_as" ]; then
453   switches="$switches --with-gnu-as"
454 fi
455 if [ "$gnu_ld" ]; then
456   switches="$switches --with-gnu-ld"
457 fi
458 if [ "$exec_prefix" ]; then
459   switches="$switches --exec_prefix=$exec_prefix"
460 fi
461 if [ "$prefix" ]; then
462   switches="$switches --prefix=$prefix"
463 fi
464 if [ "$release" ]; then
465   switches="$switches --os-release='$release'"
466 fi
467 if [ "$version" ]; then
468   switches="$switches --os-version='$version'"
469 fi
470
471 cat > config.status <<END
472 #!/bin/sh
473 # This file was generated automatically by configure.  Do not edit.
474 # The GNU C library was configured in $PWD for
475 # $system_name as follows:
476 $0 $config --srcdir=$srcdir $switches
477 # Wrote config.make in $PWD.
478 END
479
480 if [ $srcdir != . ]; then
481   if [ $srcdir = .. ]; then
482     cwd=`pwd`
483     objdir=`basename $cwd`
484   else
485     objdir=`pwd`
486   fi
487   cat > Makefile <<END
488 # This file was generated automatically by configure.  Do not edit.
489 srcdir = $srcdir
490
491 all .DEFAULT:
492         \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
493 END
494
495 echo "# Wrote Makefile in $PWD." >> config.status
496 fi
497 chmod a+x config.status
498 echo "Write config.status in $PWD."
499
500 exit 0
501 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
502 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
503 dnl Local Variables:
504 dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
505 dnl End: