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