Formerly ../configure.in.~12~
[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      -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 eval "$CPP conftest.c 2>/dev/null" \
261 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null \
262 || AC_DEFINE(__SIZE_TYPE__, 'unsigned long int')
263 rm -f conftest*
264
265 # Find out what this system calls `sys_siglist'.
266 AC_HAVE_FUNCS(sys_siglist _sys_siglist)
267
268 # Find out the name of the table the system's <ctype.h> uses for character
269 # classification.  This is used by sysdeps/unix/common/glue-ctype.c.
270 AC_HAVE_FUNCS(_ctype_ __ctype_ __ctype _ctype__)
271 changequote(,)
272
273 sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
274
275 if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
276   sysnames="${machine}/fpu $sysnames"
277 fi
278
279 rm -f sysdirs
280 echo $sysnames > Sysnames
281
282 cat - Sysnames <<END
283 Configuring the GNU C Library for \`${config}'.
284 Using system-dependent files from directories:
285 END
286
287 export sysdep_dir
288 for dir in `$srcdir/find-sysdirs < Sysnames`; do
289   if [ -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S ]; then
290     uname=$dir
291     break
292   fi
293 done
294 if [ $uname = generic ]; then
295   if [ ! "$release" -o ! "$version" ] && [ -r /vmunix ]; then
296     kernel_id=`strings /vmunix | grep UNIX`
297     kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
298     kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
299   else
300     kernel_release=
301     kernel_version=
302   fi
303
304   sysname=`echo $os | sed 's/[0-9.]*$//'`
305   if [ $sysname != $os ]; then
306     config_release=`echo $os | sed s/$sysname//`
307   fi
308
309   if [ "$release" ]; then
310     # All is well.
311     true
312   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
313          != x$config_release ]; then
314     # The configuration release is a substring of the kernel release.
315     release=$kernel_release
316   elif [ x$config_release != x ]; then
317     release=$config_release
318   elif [ x$kernel_release != x ]; then
319     release=$kernel_release
320   else
321     cat <<END
322 I don't know what release of $sysname you are using.  Please enter the
323 release number now.  This information is used only for the \`uname' function,
324 so it is not critical.
325 END
326     read release
327     if [ ! "$release" ]; then
328       release=unknown
329     fi
330   fi
331
332   if [ "$version" ]; then
333     # All is well.
334     true
335   elif [ ! "$kernel_version" ]; then
336     cat <<END
337 I don't know what version of $sysname $release you are using.  Please enter
338 the version number now.  This information is used only for the uname
339 function, so it is not critical.
340 END
341     read version
342     if [ ! "$version" ]; then
343       version=unknown
344     fi
345   else
346     version=$kernel_version
347   fi
348
349   cat > config-name.h <<END
350 /* This file was generated automatically by configure.  Do not edit.
351    This is used by the generic uname function.  */
352 #define UNAME_SYSNAME "${sysname}"
353 #define UNAME_RELEASE "${release}"
354 #define UNAME_VERSION "${version}"
355 #define UNAME_MACHINE "${machine}-${vendor}"
356 END
357
358   system_name="$sysname $release version $version on $vendor $machine"
359 else
360   # Not generic uname.  We don't need config-name.h at all.
361   system_name=$config
362 fi
363
364 if [ "$gnu_ld" ]; then
365   DEFS="$DEFS -DHAVE_GNU_LD"
366 fi
367 if [ "$gnu_as" ]; then
368   DEFS="$DEFS -DHAVE_GNU_AS"
369 fi
370
371 (
372   echo '# This file was generated automatically by configure.  Do not edit.'
373   echo '# Put configuration parameters in configparms instead.'
374   echo "config-machine = ${machine}"
375   echo "config-vendor = ${vendor}"
376   echo "config-os = ${os}"
377   if [ "$prefix" ]; then
378     echo "prefix = ${prefix}"
379   fi
380   if [ "$exec_prefix" ]; then
381     echo "exec_prefix = ${exec_prefix}"
382   fi
383   echo "config-defines = ${DEFS}"
384   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
385     eval "echo \"${var} = \${$var}\""
386   done
387 ) > config.make
388
389 switches=
390 if [ "$gnu_as" ]; then
391   switches="$switches --with-gnu-as"
392 fi
393 if [ "$gnu_ld" ]; then
394   switches="$switches --with-gnu-ld"
395 fi
396 if [ "$exec_prefix" ]; then
397   switches="$switches --exec_prefix=$exec_prefix"
398 fi
399 if [ "$prefix" ]; then
400   switches="$switches --prefix=$prefix"
401 fi
402 if [ "$release" ]; then
403   switches="$switches --os-release='$release'"
404 fi
405 if [ "$version" ]; then
406   switches="$switches --os-version='$version'"
407 fi
408
409 cat > config.status <<END
410 #!/bin/sh
411 # This file was generated automatically by configure.  Do not edit.
412 # The GNU C library was configured in `pwd` for
413 # $system_name as follows:
414 $0 $config --srcdir=$srcdir $switches
415 END
416
417 if [ $srcdir != . ]; then
418   if [ $srcdir = .. ]; then
419     cwd=`pwd`
420     objdir=`basename $cwd`
421   else
422     objdir=`pwd`
423   fi
424   cat > Makefile <<END
425 # This file was generated automatically by configure.  Do not edit.
426 srcdir = $srcdir
427
428 all .DEFAULT:
429         \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
430 END
431
432 echo "# Wrote Makefile in `pwd`." >> config.status
433 fi
434 chmod a+x config.status
435
436 exit 0
437 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
438 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
439 dnl Local Variables:
440 dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
441 dnl End: