5b48d32efed3af3b240352f93120b660e0941e7a
[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 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
48 lose=
49 for arg in $*; do
50   if [ x$next != x ]; then
51     eval "$next = \$arg"
52     next=
53   else
54     case $arg in
55      -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
56         srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
57         ;;
58      -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
59         next=srcdir
60         ;;
61      -target | --target | --targe | --targ | --tar | --ta | --t)
62         next=target
63         ;;
64      -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
65         target=`echo $arg | sed 's/-*t[a-z]*=//'`
66         ;; 
67
68      -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
69         gnu_ld=--with-gnu-ld
70         ;;
71
72      -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a)
73         gnu_as=--with-gnu-as
74         ;;
75
76      -nfp | --nfp | --nf | --n)
77         nfp=--nfp
78         ;;
79
80      -with-* | --with-*)
81        ;; # ignored
82
83      -x | --x)
84        ;; # ignored
85
86      -os-release=* | -os-releas=* | -os-relea=* | -os-rele=* | -os-rel=* \
87      | -os-re=* | -os-r=* | --os-release=* | --os-releas=* | --os-relea=* \
88      | --os-rele=* | --os-rel=* | --os-re=* | --os-r=*)
89        release=`echo $arg | sed 's/-*os-r[a-z]*=//'`
90        ;;
91      -os-release | -os-releas | -os-relea | -os-rele | -os-rel \
92      | -os-re | -os-r | --os-release | --os-releas | --os-relea \
93      | --os-rele | --os-rel | --os-re | --os-r)
94        next=release
95        ;;
96
97      -os-version=* | -os-versio=* | -os-versi=* | -os-vers=* | -os-ver=* \
98      | -os-ver=* | -os-ve=* | -os-v=* | --os-version=* | --os-versio=* \
99      | --os-versi=* | --os-vers=* | --os-ver=* | --os-ver=* | --os-ve=* \
100      | --os-v=*)
101        version=`echo $arg | sed 's/-*os-v[a-z]*=//'`
102        ;;
103      -os-version | -os-versio | -os-versi | -os-vers | -os-ver \
104      | -os-ver | -os-ve | -os-v |--os-version | --os-versio \
105      | --os-versi | --os-vers | --os-ver | --os-ver | --os-ve | --os-v)
106        next=version
107        ;;
108
109      -exec_prefix=* | --exec_prefix=* | --exec_prefi=* | --exec_pref=* | --exec_pre=* | --exec_pr=* | --exec_p=* | --exec_=* | --exec=* | --exe=* | --ex=* | --e=*)
110         exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
111         ;;
112      -exec_prefix | --exec_prefix | --exec_prefi | --exec_pref | --exec_pre | --exec_pr | --exec_p | --exec_ | --exec | --exe | --ex | --e)
113         next=exec_prefix
114         ;;
115
116      -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
117         prefix=`echo $arg | sed 's/[-a-z_]*=//'`
118         ;;
119      -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
120         next=prefix
121         ;;
122
123      -*)
124         echo "Invalid option \`$arg'" 1>&2
125         lose=yes
126         ;;
127      *)
128         if [ ! "$target" ]; then
129           target=$arg
130         else
131           lose=yes
132         fi
133         ;;
134     esac
135   fi
136 done
137
138 # NEXT will be set iff we have seen an option that wants an arg, but no arg.
139 if [ "$next" ]; then
140   echo "$0: the \`--${next}' option requires an argument" >&2
141   lose=yes
142 fi
143
144 if [ "$lose" = yes -o ! "$target" ]; then
145   echo "Usage: $prog [--srcdir=DIR] [--nfp] [--with-gnu-ld] TARGET" >&2
146   if [ -r config.status ]; then
147     cat config.status >&2
148   fi
149   exit 1
150 fi
151
152 dnl This deals with setting srcdir if it needs to be set.
153 changequote([,])
154 AC_PREPARE(features.h)
155 changequote(,)
156
157 # Canonicalize the configuration name.
158 config=`$srcdir/config.sub $target`
159 if [ ! "$config" ]; then
160   # config.sub has written an error message.
161   exit 1
162 fi
163
164 sysdep_dir=$srcdir/sysdeps
165
166 # machine-vendor-os
167 eval "`echo $config | \
168        sed 's/^\(.*\)-\(.*\)-\(.*\)$/machine=\1 vendor=\2 os=\3/'`"
169
170 case "$os" in
171 gnu*)
172   os=mach/hurd ;;
173 sunos* | ultrix* | newsos* | dynix | bsd*)
174   base_os=unix/bsd ;;
175 linux* | sysv* | isc* | esix* | sco* | minix*)
176   base_os=unix/sysv ;;
177 esac
178
179 case "$os" in
180 gnu* | linux*)
181   gnu_ld=--with-gnu-ld
182   gnu_as=--with-gnu-as
183 esac
184
185 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
186 tail=$os
187 ostry=$os
188 while o=`echo $tail | sed 's/\.[^.]*$//'`; [ $o != $tail ]; do
189   ostry="$ostry /$o"
190   tail=$o
191 done  
192 o=`echo $tail | sed 's/[0-9]*$//'`
193 if [ $o != $tail ]; then
194   ostry="$ostry /$o"
195 fi
196
197 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
198 base=
199 tail=$base_os
200 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$b" ]; do
201   set $b
202   base="$base /$1"
203   tail="$2"
204 done
205
206 # Find what sysdep directories exist.
207 sysnames=
208 for b in $base ''; do
209   for v in /$vendor ''; do
210     for o in /$ostry ''; do
211       for m in /$machine ''; do
212         if [ -d $sysdep_dir$b$v$o$m ]; then
213           sysnames="$sysnames $b$v$o$m"
214           [ "$o" -o "$b" ] && os_used=t
215           [ "$m" ] && machine_used=t
216         fi
217       done
218     done
219   done
220 done
221
222 if [ ! "$os_used" -a "$os" != none ]; then
223   echo Operating system $os is not supported. >&2
224   exit 1
225 fi
226 if [ ! "$machine_used" -a "$machine" != none ]; then
227   echo The $machine is not supported. >&2
228   exit 1
229 fi
230
231 # Uniquize the list.
232 seen=
233 for name in $sysnames; do
234   if echo "$seen" | fgrep -x $name >/dev/null; then
235     # Already in the list.
236     true;
237   else
238     # A new one.
239     if [ "$seen" = "" ]; then
240       seen="$name"
241     else
242       seen="$seen
243 $name"
244     fi
245   fi
246 done
247 sysnames="$seen"
248
249 # We have now validated the configuration.
250
251 changequote([,])
252 AC_PROG_INSTALL
253 AC_PROG_RANLIB
254
255 AC_PROG_CC
256 AC_PROG_CPP
257 echo checking for signed size_t type
258 echo '#include <stddef.h>
259 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
260 $CPP conftest.c 2>/dev/null | grep '^FOOBAR.*unsigned.*FOOBAR$' \
261 || AC_DEFINE([__SIZE_TYPE__],[unsigned long int])
262 rm -f conftest*
263
264 # Find out what this system calls `sys_siglist'.
265 AC_HAVE_FUNCS(sys_siglist _sys_siglist)
266
267 # Find out the name of the table the system's <ctype.h> uses for character
268 # classification.  This is used by sysdeps/unix/common/glue-ctype.c.
269 AC_HAVE_FUNCS(_ctype_ __ctype_ __ctype _ctype__)
270 changequote(,)
271
272 sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
273
274 if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
275   sysnames="${machine}/fpu $sysnames"
276 fi
277
278 rm -f sysdirs
279 echo $sysnames > Sysnames
280
281 cat - Sysnames <<END
282 Configuring the GNU C Library for \`${config}'.
283 Using system-dependent files from directories:
284 END
285
286 export sysdep_dir
287 for dir in `$srcdir/find-sysdirs < Sysnames`; do
288   if [ -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S ]; then
289     uname=$dir
290     break
291   fi
292 done
293 if [ $uname = generic ]; then
294   if [ ! "$release" -o ! "$version" ] && [ -r /vmunix ]; then
295     kernel_id=`strings /vmunix | grep UNIX`
296     kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
297     kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
298   else
299     kernel_release=
300     kernel_version=
301   fi
302
303   sysname=`echo $os | sed 's/[0-9.]*$//'`
304   if [ $sysname != $os ]; then
305     config_release=`echo $os | sed s/$sysname//`
306   fi
307
308   if [ "$release" ]; then
309     # All is well.
310     true
311   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
312        != x$config_release ]; then
313     # The configuration release is a substring of the kernel release.
314     release=$kernel_release
315   elif [ x$config_release != x ]; then
316     release=$config_release
317   elif [ x$kernel_release != x ]; then
318     release=$kernel_release
319   else
320     cat <<END
321 I don't know what release of $sysname you are using.  Please enter the
322 release number now.  This information is used only for the \`uname' function,
323 so it is not critical.
324 END
325     read release
326     if [ ! "$release" ]; then
327       release=unknown
328     fi
329   fi
330
331   if [ "$version" ]; then
332     # All is well.
333     true
334   elif [ ! "$kernel_version" ]; then
335     cat <<END
336 I don't know what version of $sysname $release you are using.  Please enter
337 the version number now.  This information is used only for the uname
338 function, so it is not critical.
339 END
340     read version
341     if [ ! "$version" ]; then
342       version=unknown
343     fi
344   else
345     version=$kernel_version
346   fi
347
348   cat > config-name.h <<END
349 /* This file was generated automatically by configure.  Do not edit.
350    This is used by the generic uname function.  */
351 #define UNAME_SYSNAME "${sysname}"
352 #define UNAME_RELEASE "${release}"
353 #define UNAME_VERSION "${version}"
354 #define UNAME_MACHINE "${machine}-${vendor}"
355 END
356
357   system_name="$sysname $release version $version on $vendor $machine"
358 else
359   # Not generic uname.  We don't need config-name.h at all.
360   system_name=$config
361 fi
362
363 if [ "$gnu_ld" ]; then
364   DEFS="$DEFS -DHAVE_GNU_LD"
365 fi
366 if [ "$gnu_as" ]; then
367   DEFS="$DEFS -DHAVE_GNU_AS"
368 fi
369
370 (
371   echo '# This file was generated automatically by configure.  Do not edit.'
372   echo '# Put configuration parameters in configparms instead.'
373   echo "config-machine = ${machine}"
374   echo "config-vendor = ${vendor}"
375   echo "config-os = ${os}"
376   if [ "$prefix" ]; then
377     echo "prefix = ${prefix}"
378   fi
379   if [ "$exec_prefix" ]; then
380     echo "exec_prefix = ${exec_prefix}"
381   fi
382   echo "config-defines = ${DEFS}"
383   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
384     eval "echo \"${var} = \${$var}\""
385   done
386 ) > config.make
387
388 switches=
389 if [ "$gnu_as" ]; then
390   switches="$switches --with-gnu-as"
391 fi
392 if [ "$gnu_ld" ]; then
393   switches="$switches --with-gnu-ld"
394 fi
395 if [ "$exec_prefix" ]; then
396   switches="$switches --exec_prefix=$exec_prefix"
397 fi
398 if [ "$prefix" ]; then
399   switches="$switches --prefix=$prefix"
400 fi
401 if [ "$release" ]; then
402   switches="$switches --os-release='$release'"
403 fi
404 if [ "$version" ]; then
405   switches="$switches --os-version='$version'"
406 fi
407
408 cat > config.status <<END
409 #!/bin/sh
410 # This file was generated automatically by configure.  Do not edit.
411 # The GNU C library was configured in `pwd` for
412 # $system_name as follows:
413 $0 $config --srcdir=$srcdir $switches
414 END
415
416 if [ $srcdir != . ]; then
417   if [ $srcdir = .. ]; then
418     cwd=`pwd`
419     objdir=`basename $cwd`
420   else
421     objdir=`pwd`
422   fi
423   cat > Makefile <<END
424 # This file was generated automatically by configure.  Do not edit.
425 srcdir = $srcdir
426
427 all .DEFAULT:
428         \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
429 END
430
431 echo "# Wrote Makefile in `pwd`." >> config.status
432 fi
433 chmod a+x config.status
434
435 exit 0
436 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
437 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
438 dnl Local Variables:
439 dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
440 dnl End: