# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Thu May 24 17:54:36 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Fri Jun 21 16:37:53 EET DST 2002 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
elif test -n "$DJGPP"; then
- p_=\;
+ case "X${MACHTYPE:-nonesuchmach}" in
+ *cygwin) ;;
+ *) p_=\; ;;
+ esac
fi
fi
paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
paths="$paths /sbin /usr/sbin /usr/libexec"
+paths="$paths /system/gnu_library/bin"
for p in $paths
do
esac
case "$changesh" in
true)
+ export newsh
echo "(Feeding myself to $newsh $reason.)"
case "$0" in
Configure|*/Configure) exec $newsh $0 "$@";;
test -d UU || mkdir UU
cd UU && rm -f ./*
+
ccname=''
ccversion=''
ccsymbols=''
cppccsymbols=''
cppsymbols=''
+from=''
+run=''
+targetarch=''
+to=''
+usecrosscompile=''
perllibs=''
dynamic_ext=''
extensions=''
static_ext=''
useopcode=''
useposix=''
+extras=''
d_bsd=''
d_eunice=''
d_xenix=''
expr=''
find=''
flex=''
+gmake=''
grep=''
gzip=''
inews=''
obj_ext=''
path_sep=''
afs=''
+afsroot=''
alignbytes=''
ansi2knr=''
archlib=''
bin=''
binexp=''
installbin=''
-bincompat5005=''
-d_bincompat5005=''
byteorder=''
cc=''
ccflags=''
cppminus=''
cpprun=''
cppstdin=''
-crosscompile=''
d__fwalk=''
d_access=''
d_accessx=''
d_alarm=''
+asctime_r_proto=''
+d_asctime_r=''
d_attribut=''
d_bcmp=''
d_bcopy=''
d_chown=''
d_chroot=''
d_chsize=''
+d_class=''
d_closedir=''
d_void_closedir=''
d_cmsghdr_s=''
d_const=''
cryptlib=''
d_crypt=''
+crypt_r_proto=''
+d_crypt_r=''
d_csh=''
full_csh=''
+ctermid_r_proto=''
+d_ctermid_r=''
+ctime_r_proto=''
+d_ctime_r=''
d_cuserid=''
d_dbl_dig=''
+d_dbminitproto=''
d_difftime=''
+d_dirfd=''
d_dlerror=''
d_dlopen=''
d_dlsymun=''
d_dosuid=''
d_suidsafe=''
+d_drand48_r=''
+drand48_r_proto=''
d_drand48proto=''
d_dup2=''
d_eaccess=''
d_endgrent=''
+d_endgrent_r=''
+endgrent_r_proto=''
d_endhent=''
+d_endhostent_r=''
+endhostent_r_proto=''
d_endnent=''
+d_endnetent_r=''
+endnetent_r_proto=''
d_endpent=''
+d_endprotoent_r=''
+endprotoent_r_proto=''
d_endpwent=''
+d_endpwent_r=''
+endpwent_r_proto=''
d_endsent=''
+d_endservent_r=''
+endservent_r_proto=''
+d_fchdir=''
d_fchmod=''
d_fchown=''
d_fcntl=''
d_fd_set=''
d_fds_bits=''
d_fgetpos=''
+d_finite=''
+d_finitel=''
d_flexfnam=''
d_flock=''
+d_flockproto=''
d_fork=''
+d_fp_class=''
+d_fpclass=''
+d_fpclassify=''
+d_fpclassl=''
d_fpos64_t=''
d_frexpl=''
d_fs_data_s=''
d_getespwnam=''
d_getfsstat=''
d_getgrent=''
+d_getgrent_r=''
+getgrent_r_proto=''
+d_getgrgid_r=''
+getgrgid_r_proto=''
+d_getgrnam_r=''
+getgrnam_r_proto=''
d_getgrps=''
d_gethbyaddr=''
d_gethbyname=''
d_gethname=''
d_phostname=''
d_uname=''
+d_gethostbyaddr_r=''
+gethostbyaddr_r_proto=''
+d_gethostbyname_r=''
+gethostbyname_r_proto=''
+d_gethostent_r=''
+gethostent_r_proto=''
d_gethostprotos=''
d_getitimer=''
d_getlogin=''
+d_getlogin_r=''
+getlogin_r_proto=''
d_getmnt=''
d_getmntent=''
d_getnbyaddr=''
d_getnbyname=''
d_getnent=''
+d_getnetbyaddr_r=''
+getnetbyaddr_r_proto=''
+d_getnetbyname_r=''
+getnetbyname_r_proto=''
+d_getnetent_r=''
+getnetent_r_proto=''
d_getnetprotos=''
d_getpagsz=''
d_getpent=''
d_getprior=''
d_getpbyname=''
d_getpbynumber=''
+d_getprotobyname_r=''
+getprotobyname_r_proto=''
+d_getprotobynumber_r=''
+getprotobynumber_r_proto=''
+d_getprotoent_r=''
+getprotoent_r_proto=''
d_getprotoprotos=''
d_getprpwnam=''
d_getpwent=''
+d_getpwent_r=''
+getpwent_r_proto=''
+d_getpwnam_r=''
+getpwnam_r_proto=''
+d_getpwuid_r=''
+getpwuid_r_proto=''
d_getsent=''
+d_getservbyname_r=''
+getservbyname_r_proto=''
+d_getservbyport_r=''
+getservbyport_r_proto=''
+d_getservent_r=''
+getservent_r_proto=''
d_getservprotos=''
d_getspnam=''
+d_getspnam_r=''
+getspnam_r_proto=''
d_getsbyname=''
d_getsbyport=''
+d_gmtime_r=''
+gmtime_r_proto=''
d_gnulibc=''
+gnulibc_version=''
d_hasmntopt=''
d_htonl=''
-d_iconv=''
d_inetaton=''
d_int64_t=''
d_isascii=''
+d_isfinite=''
+d_isinf=''
d_isnan=''
d_isnanl=''
d_killpg=''
d_lchown=''
d_ldbl_dig=''
d_link=''
+d_localtime_r=''
+localtime_r_proto=''
d_locconv=''
d_lockf=''
d_longdbl=''
d_mmap=''
mmaptype=''
d_modfl=''
+d_modfl_pow32_bug=''
d_mprotect=''
d_msg=''
d_msgctl=''
d_msync=''
d_munmap=''
d_nice=''
+d_nl_langinfo=''
d_off64_t=''
d_open3=''
d_fpathconf=''
d_pipe=''
d_poll=''
d_portable=''
+d_procselfexe=''
+procselfexe=''
d_old_pthread_create_joinable=''
old_pthread_create_joinable=''
+d_pthread_atfork=''
d_pthread_yield=''
d_sched_yield=''
sched_yield=''
d_qgcvt=''
+d_random_r=''
+random_r_proto=''
+d_readdir64_r=''
+readdir64_r_proto=''
d_readdir=''
d_rewinddir=''
d_seekdir=''
d_telldir=''
+d_readdir_r=''
+readdir_r_proto=''
d_readlink=''
d_readv=''
d_recvmsg=''
d_setegid=''
d_seteuid=''
d_setgrent=''
+d_setgrent_r=''
+setgrent_r_proto=''
d_setgrps=''
d_sethent=''
+d_sethostent_r=''
+sethostent_r_proto=''
d_setitimer=''
d_setlinebuf=''
d_setlocale=''
+d_setlocale_r=''
+setlocale_r_proto=''
d_setnent=''
+d_setnetent_r=''
+setnetent_r_proto=''
d_setpent=''
d_setpgid=''
d_setpgrp2=''
d_setpgrp=''
d_setprior=''
d_setproctitle=''
+d_setprotoent_r=''
+setprotoent_r_proto=''
d_setpwent=''
+d_setpwent_r=''
+setpwent_r_proto=''
d_setregid=''
d_setresgid=''
d_setresuid=''
d_setrgid=''
d_setruid=''
d_setsent=''
+d_setservent_r=''
+setservent_r_proto=''
d_setsid=''
d_setvbuf=''
d_sfio=''
d_sigprocmask=''
d_sigsetjmp=''
d_sockatmark=''
+d_sockatmarkproto=''
d_msg_ctrunc=''
d_msg_dontroute=''
d_msg_oob=''
d_socklen_t=''
d_socks5_init=''
d_sqrtl=''
+d_srand48_r=''
+srand48_r_proto=''
+d_srandom_r=''
+srandom_r_proto=''
+d_sresgproto=''
+d_sresuproto=''
d_statblks=''
d_statfs_f_flags=''
d_statfs_s=''
d_strerror=''
d_sysernlst=''
d_syserrlst=''
+d_strerror_r=''
+strerror_r_proto=''
d_strftime=''
d_strtod=''
d_strtol=''
d_strxfrm=''
d_symlink=''
d_syscall=''
+d_syscallproto=''
d_sysconf=''
d_system=''
d_tcgetpgrp=''
timetype=''
clocktype=''
d_times=''
+d_tmpnam_r=''
+tmpnam_r_proto=''
d_truncate=''
+d_ttyname_r=''
+ttyname_r_proto=''
d_tzname=''
d_u32align=''
d_ualarm=''
d_semctl_semid_ds=''
d_semctl_semun=''
d_union_semun=''
+d_unordered=''
d_usleep=''
+d_usleepproto=''
d_ustat=''
d_vfork=''
usevfork=''
h_fcntl=''
h_sysfile=''
i_arpainet=''
+i_crypt=''
db_hashtype=''
db_prefixtype=''
+db_version_major=''
+db_version_minor=''
+db_version_patch=''
i_db=''
i_dbm=''
i_rpcsvcdbm=''
i_dlfcn=''
i_fcntl=''
i_float=''
+i_fp=''
+i_fp_class=''
i_gdbm=''
d_grpasswd=''
i_grp=''
-i_iconv=''
i_ieeefp=''
i_inttypes=''
+i_langinfo=''
i_libutil=''
i_limits=''
i_locale=''
i_sgtty=''
i_termio=''
i_termios=''
+d_tm_tm_gmtoff=''
+d_tm_tm_zone=''
i_systime=''
i_systimek=''
i_time=''
revision=''
subversion=''
version=''
+version_patchlevel_string=''
perl5=''
perladmin=''
perlpath=''
d_nv_preserves_uv=''
-d_nv_preserves_uv_bits=''
i16size=''
i16type=''
i32size=''
i8type=''
ivsize=''
ivtype=''
+nv_preserves_uv_bits=''
nvsize=''
nvtype=''
u16size=''
d_oldpthreads=''
use5005threads=''
useithreads=''
+usereentrant=''
usethreads=''
incpath=''
mips_type=''
eunicefix=/etc/unixtovms.exe
fi
+: Set executable suffix now -- needed before hints available
+if test -f "/libs/version.library"; then
+: Amiga OS
+ _exe=""
+elif test -f "/system/gnu_library/bin/ar.pm"; then
+: Stratus VOS
+ _exe=".pm"
+elif test -n "$DJGPP"; then
+: DOS DJGPP
+ _exe=".exe"
+elif test -d c:/. ; then
+: OS/2 or cygwin
+ _exe=".exe"
+fi
+
i_whoami=''
ccname=''
ccversion=''
: set useopcode=false in your hint file to disable the Opcode extension.
useopcode=true
: Trailing extension. Override this in a hint file, if needed.
-_exe=''
: Extra object files, if any, needed on this platform.
archobjs=''
archname=''
inclwanted=''
groupstype=''
+libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
xlibpth='/usr/lib/386 /lib/386'
: Possible local library directories to search.
: set usemultiplicity on the Configure command line to enable multiplicity.
: set usesocks on the Configure command line to enable socks.
: set usethreads on the Configure command line to enable threads.
+usereentrant='undef'
: full support for void wanted by default
defvoidused=15
libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
libswanted="$libswanted dld ld sun m c cposix posix"
libswanted="$libswanted ndir dir crypt sec"
-libswanted="$libswanted ucb bsd BSD PW x iconv util"
+libswanted="$libswanted ucb bsd BSD PW x util"
: We probably want to search /usr/shlib before most other libraries.
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
if test -f "$xxx"; then
sh="$xxx";
break
+ elif test "X$_exe" != X -a -f "$xxx$_exe"; then
+ sh="$xxx";
+ break
elif test -f "$xxx.exe"; then
sh="$xxx";
break
esac
case "$sh" in
-'') cat <<EOM >&2
+'') cat >&2 <<EOM
$me: Fatal Error: I can't find a Bourne Shell anywhere.
Usually it's in /bin/sh. How did you even get this far?
shsharp=true
spitshell=cat
xcat=/bin/cat
- test -f $xcat || xcat=/usr/bin/cat
- echo "#!$xcat" >try
- $eunicefix try
- chmod +x try
- ./try > today
+ test -f $xcat$_exe || xcat=/usr/bin/cat
+ if test ! -f $xcat$_exe; then
+ for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do
+ if test -f $p/cat$_exe; then
+ xcat=$p/cat
+ break
+ fi
+ done
+ if test ! -f $xcat$_exe; then
+ echo "Can't find cat anywhere!"
+ exit 1
+ fi
+ fi
+ echo "#!$xcat" >sharp
+ $eunicefix sharp
+ chmod +x sharp
+ ./sharp > today
if test -s today; then
sharpbang='#!'
else
- echo "#! $xcat" > try
- $eunicefix try
- chmod +x try
- ./try > today
+ echo "#! $xcat" > sharp
+ $eunicefix sharp
+ chmod +x sharp
+ ./sharp > today
if test -s today; then
sharpbang='#! '
else
echo "I presume that if # doesn't work, #! won't work either!"
sharpbang=': use '
fi
-rm -f try today
+rm -f sharp today
: figure out how to guarantee sh startup
case "$startsh" in
'') startsh=${sharpbang}${sh} ;;
*)
esac
-cat >try <<EOSS
+cat >sharp <<EOSS
$startsh
set abc
test "$?abc" != 1
EOSS
-chmod +x try
-$eunicefix try
-if ./try; then
+chmod +x sharp
+$eunicefix sharp
+if ./sharp; then
: echo "Yup, it does."
else
echo "Hmm... '$startsh' does not guarantee sh startup..."
echo "You may have to fix up the shell scripts to make sure $sh runs them."
fi
-rm -f try
+rm -f sharp
: Save command line options in file UU/cmdline.opt for later use in
config_argc=$#
EOSH
argn=1
+args_exp=''
+args_sep=''
for arg in "$@"; do
cat >>cmdline.opt <<EOSH
config_arg$argn='$arg'
EOSH
+ # Extreme backslashitis: replace each ' by '"'"'
+ cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
+$arg
+EOC
+ arg_exp=`cat cmdl.opt`
+ args_exp="$args_exp$args_sep'$arg_exp'"
argn=`expr $argn + 1`
+ args_sep=' '
done
+# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@"
+# used by ./hints/os2.sh
+rm -f cmdl.opt
: produce awk script to parse command line options
cat >options.awk <<'EOF'
zzz=''
uuu=undef
case "$yyy" in
- *=*) zzz=`echo $yyy|sed 's!=.*!!'`
+ *=*) zzz=`echo "$yyy"|sed 's!=.*!!'`
case "$zzz" in
*:*) zzz='' ;;
*) xxx=append
- zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
- yyy=`echo $yyy|sed 's!=.*!!'` ;;
+ zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'`
+ yyy=`echo "$yyy"|sed 's!=.*!!'` ;;
esac
;;
esac
case "$xxx" in
'') case "$yyy" in
- *:*) xxx=`echo $yyy|sed 's!:.*!!'`
- yyy=`echo $yyy|sed 's!^[^:]*:!!'`
- zzz=`echo $yyy|sed 's!^[^=]*=!!'`
- yyy=`echo $yyy|sed 's!=.*!!'` ;;
- *) xxx=`echo $yyy|sed 's!:.*!!'`
- yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
+ *:*) xxx=`echo "$yyy"|sed 's!:.*!!'`
+ yyy=`echo "$yyy"|sed 's!^[^:]*:!!'`
+ zzz=`echo "$yyy"|sed 's!^[^=]*=!!'`
+ yyy=`echo "$yyy"|sed 's!=.*!!'` ;;
+ *) xxx=`echo "$yyy"|sed 's!:.*!!'`
+ yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;;
esac
;;
esac
cat >extract <<'EOS'
PERL_CONFIG_SH=true
echo "Doing variable substitutions on .SH files..."
-if test -f $src/MANIFEST; then
- set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
+if test -f MANIFEST; then
+ set x `awk '{print $1}' < MANIFEST | grep '\.SH$'`
else
echo "(Looking for .SH files under the source directory.)"
- set x `(cd $src; find . -name "*.SH" -print)`
+ set x `(cd "$src"; find . -name "*.SH" -print)`
fi
shift
case $# in
-0) set x `(cd $src; echo *.SH)`; shift;;
+0) set x `(cd "$src"; echo *.SH)`; shift;;
esac
-if test ! -f $src/$1; then
+if test ! -f "$src/$1"; then
shift
fi
mkdir_p='
*/*)
dir=`expr X$file : 'X\(.*\)/'`
file=`expr X$file : 'X.*/\(.*\)'`
- (cd $dir && . ./$file)
+ (cd "$dir" && . ./$file)
;;
*)
. ./$file
dir=`expr X$file : 'X\(.*\)/'`
file=`expr X$file : 'X.*/\(.*\)'`
(set x $dir; shift; eval $mkdir_p)
- sh <$src/$dir/$file
+ sh <"$src/$dir/$file"
;;
*)
- sh <$src/$file
+ sh <"$src/$file"
;;
esac
;;
esac
done
-if test -f $src/config_h.SH; then
+if test -f "$src/config_h.SH"; then
if test ! -f config.h; then
: oops, they left it out of MANIFEST, probably, so do it anyway.
- . $src/config_h.SH
+ . "$src/config_h.SH"
fi
fi
EOS
echo " "
. UU/extract
rm -rf UU
- echo "Done."
+ echo "Extraction done."
exit 0
;;
esac
: Now test for existence of everything in MANIFEST
echo " "
-if test -f $rsrc/MANIFEST; then
+if test -f "$rsrc/MANIFEST"; then
echo "First let's make sure your kit is complete. Checking..." >&4
- awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
+ awk '$1 !~ /PACK[A-Z]+/ {print $1}' "$rsrc/MANIFEST" | (split -l 50 2>/dev/null || split -50)
rm -f missing
tmppwd=`pwd`
for filelist in x??; do
- (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
+ (cd "$rsrc"; ls `cat "$tmppwd/$filelist"` >/dev/null 2>>"$tmppwd/missing")
done
if test -s missing; then
cat missing >&4
esac
fi
if test X"$trnl" = X; then
+ case "`echo foo|tr '\r\n' xy 2>/dev/null`" in
+ fooxy) trnl='\n\r' ;;
+ esac
+fi
+if test X"$trnl" = X; then
cat <<EOM >&2
$me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
if test -f \$thisthing; then
echo \$thisthing
exit 0
+ elif test "X$_exe" != X -a -f \$thisthing$_exe; then
+ echo \$thisthing
+ exit 0
elif test -f \$dir/\$thing.exe; then
if test -n "$DJGPP"; then
echo \$dir/\$thing.exe
loclist="
awk
cat
+chmod
comm
cp
echo
expr
grep
ls
-make
mkdir
rm
sed
csh
date
egrep
+gmake
gzip
less
ln
+make
more
nm
nroff
'') xxx=`./loc $file $file $pth`;;
*) xxx=`./loc $xxx $xxx $pth`;;
esac
- eval $file=$xxx
+ eval $file=$xxx$_exe
eval _$file=$xxx
case "$xxx" in
/*)
'') xxx=`./loc $file $file $pth`;;
*) xxx=`./loc $xxx $xxx $pth`;;
esac
- eval $file=$xxx
+ eval $file=$xxx$_exe
eval _$file=$xxx
case "$xxx" in
/*)
egrep)
echo "Substituting grep for egrep."
egrep=$grep
+ _egrep=$grep
;;
esac
case "$ln" in
ln)
echo "Substituting cp for ln."
ln=$cp
+ _ln=$cp
+ ;;
+esac
+case "$make" in
+make)
+ case "$gmake" in
+ gmake)
+ echo "I can't find make or gmake, and my life depends on it." >&4
+ echo "Go find a public domain implementation or fix your PATH setting!" >&4
+ exit 1
+ ;;
+ esac
+ ;;
+esac
+case "$gmake" in
+gmake) ;;
+*) # We can't have osname yet.
+ if test -f "/system/gnu_library/bin/ar.pm"; then # Stratus VOS
+ # Assume that gmake, if found, is definitely GNU make
+ # and prefer it over the system make.
+ echo "Substituting gmake for make."
+ make=$gmake
+ _make=$gmake
+ fi
;;
esac
case "$test" in
;;
esac
-cat <<EOS >checkcc
+cat <<EOS >trygcc
$startsh
EOS
-cat <<'EOSC' >>checkcc
+cat <<'EOSC' >>trygcc
case "$cc" in
'') ;;
*) $rm -f try try.*
fi
fi
case "$ans" in
- [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;;
+ [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no;
+ if $test -f usethreads.cbu; then
+ $cat >&4 <<EOM
+
+*** However, any setting of the C compiler flags (e.g. for thread support)
+*** has been lost. It may be necessary to pass -Dcc=gcc to Configure
+*** (together with e.g. -Dusethreads).
+
+EOM
+ fi;;
esac
fi
fi
+ fi
+ $rm -f try try.*
+ ;;
+esac
+EOSC
+
+cat <<EOS >checkcc
+$startsh
+EOS
+cat <<'EOSC' >>checkcc
+case "$cc" in
+'') ;;
+*) $rm -f try try.*
+ $cat >try.c <<EOM
+int main(int argc, char *argv[]) {
+ return 0;
+}
+EOM
+ if $cc -o try $ccflags $ldflags try.c; then
+ :
+ else
if $test X"$despair" = Xyes; then
- $cat >&4 <<EOM
+ echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
+ fi
+ $cat >&4 <<EOM
You need to find a working C compiler.
Either (purchase and) install the C compiler supplied by your OS vendor,
or for a free C compiler try http://gcc.gnu.org/
I cannot continue any further, aborting.
EOM
- exit 1
- fi
+ exit 1
fi
$rm -f try try.*
;;
: determine whether symbolic links are supported
echo " "
case "$lns" in
-*"ln -s")
+*"ln"*" -s")
echo "Checking how to test for symbolic links..." >&4
$lns blurfl sym
if $test "X$issymlink" = X; then
- sh -c "PATH= test -h sym" >/dev/null 2>&1
+ case "$newsh" in
+ '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
+ *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
+ esac
if test $? = 0; then
issymlink="test -h"
- fi
- fi
- if $test "X$issymlink" = X; then
- if $test -h >/dev/null 2>&1; then
- issymlink="$test -h"
- echo "Your builtin 'test -h' may be broken, I'm using external '$test -h'." >&4
+ else
+ echo "Your builtin 'test -h' may be broken." >&4
+ case "$test" in
+ /*) ;;
+ *) pth=`echo $PATH | sed -e "s/$p_/ /g"`
+ for p in $pth
+ do
+ if test -f "$p/$test"; then
+ test="$p/$test"
+ break
+ fi
+ done
+ ;;
+ esac
+ case "$test" in
+ /*)
+ echo "Trying external '$test -h'." >&4
+ issymlink="$test -h"
+ if $test ! -h sym >/dev/null 2>&1; then
+ echo "External '$test -h' is broken, too." >&4
+ issymlink=''
+ fi
+ ;;
+ *) issymlink='' ;;
+ esac
fi
fi
if $test "X$issymlink" = X; then
if $test -L sym 2>/dev/null; then
issymlink="$test -L"
+ echo "The builtin '$test -L' worked." >&4
fi
fi
if $test "X$issymlink" != X; then
exit 1
;;
*) case "$lns:$issymlink" in
- *"ln -s:"*"test -"?)
+ *"ln"*" -s:"*"test -"?)
echo "Creating the symbolic links..." >&4
echo "(First creating the subdirectories...)" >&4
cd ..
fi
done
# Sanity check 2.
- if test ! -f t/base/commonsense.t; then
- echo "Failed to create the symlinks. Aborting." >&4
+ if test ! -f t/base/lex.t; then
+ echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
exit 1
fi
cd UU
;;
esac
+
+case "$usecrosscompile" in
+$define|true|[yY]*)
+ $echo "Cross-compiling..."
+ croak=''
+ case "$cc" in
+ *-*-gcc) # A cross-compiling gcc, probably.
+ targetarch=`$echo $cc|$sed 's/-gcc$//'`
+ ar=$targetarch-ar
+ # leave out ld, choosing it is more complex
+ nm=$targetarch-nm
+ ranlib=$targetarch-ranlib
+ $echo 'extern int foo;' > try.c
+ set X `$cc -v -E try.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
+ shift
+ if $test $# -gt 0; then
+ incpth="$incpth $*"
+ incpth="`$echo $incpth|$sed 's/^ //'`"
+ echo "Guessing incpth '$incpth'." >&4
+ for i in $*; do
+ j="`$echo $i|$sed 's,/include$,/lib,'`"
+ if $test -d $j; then
+ libpth="$libpth $j"
+ fi
+ done
+ libpth="`$echo $libpth|$sed 's/^ //'`"
+ echo "Guessing libpth '$libpth'." >&4
+ fi
+ $rm -f try.c
+ ;;
+ esac
+ case "$targetarch" in
+ '') echo "Targetarch not defined." >&4; croak=y ;;
+ *) echo "Using targetarch $targetarch." >&4 ;;
+ esac
+ case "$incpth" in
+ '') echo "Incpth not defined." >&4; croak=y ;;
+ *) echo "Using incpth '$incpth'." >&4 ;;
+ esac
+ case "$libpth" in
+ '') echo "Libpth not defined." >&4; croak=y ;;
+ *) echo "Using libpth '$libpth'." >&4 ;;
+ esac
+ case "$usrinc" in
+ '') for i in $incpth; do
+ if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
+ usrinc=$i
+ echo "Guessing usrinc $usrinc." >&4
+ break
+ fi
+ done
+ case "$usrinc" in
+ '') echo "Usrinc not defined." >&4; croak=y ;;
+ esac
+ ;;
+ *) echo "Using usrinc $usrinc." >&4 ;;
+ esac
+ case "$targethost" in
+ '') echo "Targethost not defined." >&4; croak=y ;;
+ *) echo "Using targethost $targethost." >&4
+ esac
+ locincpth=' '
+ loclibpth=' '
+ case "$croak" in
+ y) echo "Cannot continue, aborting." >&4; exit 1 ;;
+ esac
+ case "$src" in
+ /*) run=$src/Cross/run
+ targetmkdir=$src/Cross/mkdir
+ to=$src/Cross/to
+ from=$src/Cross/from
+ ;;
+ *) pwd=`$test -f ../Configure & cd ..; pwd`
+ run=$pwd/Cross/run
+ targetmkdir=$pwd/Cross/mkdir
+ to=$pwd/Cross/to
+ from=$pwd/Cross/from
+ ;;
+ esac
+ case "$targetrun" in
+ '') targetrun=ssh ;;
+ esac
+ case "$targetto" in
+ '') targetto=scp ;;
+ esac
+ case "$targetfrom" in
+ '') targetfrom=scp ;;
+ esac
+ run=$run-$targetrun
+ to=$to-$targetto
+ from=$from-$targetfrom
+ case "$targetdir" in
+ '') targetdir=/tmp
+ echo "Guessing targetdir $targetdir." >&4
+ ;;
+ esac
+ case "$targetuser" in
+ '') targetuser=root
+ echo "Guessing targetuser $targetuser." >&4
+ ;;
+ esac
+ case "$targetfrom" in
+ scp) q=-q ;;
+ *) q='' ;;
+ esac
+ case "$targetrun" in
+ ssh|rsh)
+ cat >$run <<EOF
+#!/bin/sh
+case "\$1" in
+-cwd)
+ shift
+ cwd=\$1
+ shift
+ ;;
+esac
+case "\$cwd" in
+'') cwd=$targetdir ;;
+esac
+exe=\$1
+shift
+if $test ! -f \$exe.xok; then
+ $to \$exe
+ $touch \$exe.xok
+fi
+$targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
+EOF
+ ;;
+ *) echo "Unknown targetrun '$targetrun'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetmkdir" in
+ */Cross/mkdir)
+ cat >$targetmkdir <<EOF
+#!/bin/sh
+$targetrun -l $targetuser $targethost "mkdir -p \$@"
+EOF
+ $chmod a+rx $targetmkdir
+ ;;
+ *) echo "Unknown targetmkdir '$targetmkdir'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetto" in
+ scp|rcp)
+ cat >$to <<EOF
+#!/bin/sh
+for f in \$@
+do
+ case "\$f" in
+ /*)
+ $targetmkdir \`dirname \$f\`
+ $targetto $q \$f $targetuser@$targethost:\$f || exit 1
+ ;;
+ *)
+ $targetmkdir $targetdir/\`dirname \$f\`
+ $targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1
+ ;;
+ esac
+done
+exit 0
+EOF
+ ;;
+ cp) cat >$to <<EOF
+#!/bin/sh
+for f in \$@
+do
+ case "\$f" in
+ /*)
+ $mkdir -p $targetdir/\`dirname \$f\`
+ $cp \$f $targetdir/\$f || exit 1
+ ;;
+ *)
+ $targetmkdir $targetdir/\`dirname \$f\`
+ $cp \$f $targetdir/\$f || exit 1
+ ;;
+ esac
+done
+exit 0
+EOF
+ ;;
+ *) echo "Unknown targetto '$targetto'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetfrom" in
+ scp|rcp)
+ cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+ $rm -f \$f
+ $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+ ;;
+ cp) cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+ $rm -f \$f
+ cp $targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+ ;;
+ *) echo "Unknown targetfrom '$targetfrom'" >&4
+ exit 1
+ ;;
+ esac
+ if $test ! -f $run; then
+ echo "Target 'run' script '$run' not found." >&4
+ else
+ $chmod a+rx $run
+ fi
+ if $test ! -f $to; then
+ echo "Target 'to' script '$to' not found." >&4
+ else
+ $chmod a+rx $to
+ fi
+ if $test ! -f $from; then
+ echo "Target 'from' script '$from' not found." >&4
+ else
+ $chmod a+rx $from
+ fi
+ if $test ! -f $run -o ! -f $to -o ! -f $from; then
+ exit 1
+ fi
+ cat >&4 <<EOF
+Using '$run' for remote execution,
+and '$from' and '$to'
+for remote file transfer.
+EOF
+ ;;
+*) run=''
+ to=:
+ from=:
+ usecrosscompile='undef'
+ targetarch=''
+ ;;
+esac
+
: see whether [:lower:] and [:upper:] are supported character classes
echo " "
case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
$test -d /usr/apollo/bin && osname=apollo
$test -f /etc/saf/_sactab && osname=svr4
$test -d /usr/include/minix && osname=minix
+ $test -f /system/gnu_library/bin/ar.pm && osname=vos
if $test -d /MachTen -o -d /MachTen_Folder; then
osname=machten
if $test -x /sbin/version; then
;;
next*) osname=next ;;
nonstop-ux) osname=nonstopux ;;
+ openbsd) osname=openbsd
+ osvers="$3"
+ ;;
POSIX-BC | posix-bc ) osname=posix-bc
osvers="$3"
;;
unixware) osname=svr5
osvers="$4"
;;
- uts) osname=uts
+ uts) osname=uts
osvers="$3"
;;
+ vos) osvers="$3"
+ ;;
$2) case "$osname" in
*isc*) ;;
*freebsd*) ;;
fi
fi
+ case "$targetarch" in
+ '') ;;
+ *) hostarch=$osname
+ osname=`echo $targetarch|sed 's,^[^-]*-,,'`
+ osvers=''
+ ;;
+ esac
+
: Now look for a hint file osname_osvers, unless one has been
: specified already.
case "$hintfile" in
elif $test -f $src/hints/$file.sh; then
. $src/hints/$file.sh
$cat $src/hints/$file.sh >> UU/config.sh
- elif $test X$tans = X -o X$tans = Xnone ; then
+ elif $test X"$tans" = X -o X"$tans" = Xnone ; then
: nothing
else
: Give one chance to correct a possible typo.
*) eval "$var=$val";;
esac'
+case "$usesocks" in
+$define|true|[yY]*) dflt='y';;
+*) dflt='n';;
+esac
+cat <<EOM
+
+Perl can be built to use the SOCKS proxy protocol library. To do so,
+Configure must be run with -Dusesocks. If you use SOCKS you also need
+to use the PerlIO abstraction layer, this will be implicitly selected.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Build Perl for SOCKS?'
+. ./myread
+case "$ans" in
+y|Y) val="$define" ;;
+*) val="$undef" ;;
+esac
+set usesocks
+eval $setvar
+
+case "$usesocks" in
+$define|true|[yY]*) useperlio="$define";;
+esac
+
+case "$useperlio" in
+$define|true|[yY]*|'') dflt='y';;
+*) dflt='n';;
+esac
+cat <<EOM
+
+Previous version of $package used the standard IO mechanisms as
+defined in <stdio.h>. Versions 5.003_02 and later of $package allow
+alternate IO mechanisms via the PerlIO abstraction layer, but the
+stdio mechanism is still available if needed. The abstraction layer
+can use AT&T's sfio (if you already have sfio installed) or regular stdio.
+Using PerlIO with sfio may cause problems with some extension modules.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Use the PerlIO abstraction layer?'
+. ./myread
+case "$ans" in
+y|Y)
+ val="$define"
+ ;;
+*)
+ echo "Ok, doing things the stdio way."
+ val="$undef"
+ ;;
+esac
+set useperlio
+eval $setvar
+
+case "$usesocks" in
+$define|true|[yY]*)
+ case "$useperlio" in
+ $define|true|[yY]*) ;;
+ *) cat >&4 <<EOM
+
+You are using the SOCKS proxy protocol library which means that you
+should also use the PerlIO layer. You may be headed for trouble.
+
+EOM
+ ;;
+ esac
+ ;;
+esac
+
+
case "$usethreads" in
$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
+*) # Catch case where user specified ithreads or 5005threads but
+ # forgot -Dusethreads (A.D. 4/2002)
+ case "$useithreads$use5005threads" in
+ *$define*)
+ case "$useperlio" in
+ "$define") dflt='y' ;;
+ *) dflt='n' ;;
+ esac
+ ;;
+ *) dflt='n';;
+ esac
+ ;;
esac
cat <<EOM
Perl can be built to take advantage of threads on some systems.
To do so, Configure can be run with -Dusethreads.
-Note that threading is a highly experimental feature, and
-some known race conditions still remain. If you choose to try
-it, be very sure to not actually deploy it for production
-purposes. README.threads has more details, and is required
-reading if you enable threads.
+Note that Perl built with threading support runs slightly slower
+and uses more memory than plain Perl. The current implementation
+is believed to be stable, but it is fairly new, and so should be
+treated with caution.
If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
$define)
$cat <<EOM
-As of 5.5.640, Perl has two different internal threading implementations,
-the 5.005 version (5005threads) and an interpreter-based version
-(ithreads) that has one interpreter per thread. Both are very
-experimental. This arrangement exists to help developers work out
-which one is better.
+Since release 5.6, Perl has had two different threading implementations,
+the newer interpreter-based version (ithreads) with one interpreter per
+thread, and the older 5.005 version (5005threads).
+The 5005threads version is effectively unmaintained and will probably be
+removed in Perl 5.10, so there should be no need to build a Perl using it
+unless needed for backwards compatibility with some existing 5.005threads
+code.
-If you're a casual user, you probably don't want interpreter-threads
-at this time. There doesn't yet exist a way to create threads from
-within Perl in this model, i.e., "use Thread;" will NOT work.
EOM
: Default to ithreads unless overridden on command line or with
: old config.sh
case "$useithreads" in
$undef|false|[nN]*) dflt='n';;
esac
- rp='Use interpreter-based ithreads?'
+ rp='Use the newer interpreter-based ithreads?'
. ./myread
case "$ans" in
y|Y) val="$define" ;;
;;
esac
+if test X"$usethreads" = "X$define" -a "X$useperlio" = "Xundef"; then
+ cat >&4 <<EOF
+***
+*** To build with ithreads you must also use the PerlIO layer.
+*** Cannot continue, aborting.
+***
+EOF
+ exit 1
+fi
+
case "$d_oldpthreads" in
'') : Configure tests would be welcome here. For now, assume undef.
val="$undef" ;;
set usemultiplicity
eval $setvar
+
+case "$usemorebits" in
+"$define"|true|[yY]*)
+ use64bitint="$define"
+ uselongdouble="$define"
+ usemorebits="$define"
+ ;;
+*) usemorebits="$undef"
+ ;;
+esac
+
: make some quick guesses about what we are up against
echo " "
$echo $n "Hmm... $c"
rp="Use which C compiler?"
. ./myread
cc="$ans"
+
+: See if they have not cc but they do have gcc
+. ./trygcc
: Look for a hint-file generated 'call-back-unit'. Now that the
: user has specified the compiler, we may need to set or change some
: other defaults.
echo " "
echo "Checking for GNU cc in disguise and/or its version number..." >&4
-$cat >gccvers.c <<EOM
+$cat >try.c <<EOM
#include <stdio.h>
int main() {
#ifdef __GNUC__
exit(0);
}
EOM
-if $cc -o gccvers $ccflags $ldflags gccvers.c; then
- gccversion=`./gccvers`
+if $cc -o try $ccflags $ldflags try.c; then
+ gccversion=`$run ./try`
case "$gccversion" in
'') echo "You are not using GNU cc." ;;
*) echo "You are using GNU cc $gccversion."
;;
esac
fi
-$rm -f gccvers*
+$rm -f try try.*
case "$gccversion" in
1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
esac
'') ccname="$cc" ;;
esac
-: see how we invoke the C preprocessor
-echo " "
-echo "Now, how can we feed standard input to your C preprocessor..." >&4
-cat <<'EOT' >testcpp.c
-#define ABC abc
-#define XYZ xyz
-ABC.XYZ
-EOT
-cd ..
-if test ! -f cppstdin; then
- if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
- # AIX cc -E doesn't show the absolute headerfile
- # locations but we'll cheat by using the -M flag.
- echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
- else
- echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
- fi
-else
- echo "Keeping your $hint cppstdin wrapper."
-fi
-chmod 755 cppstdin
-wrapper=`pwd`/cppstdin
-ok='false'
-cd UU
-
-if $test "X$cppstdin" != "X" && \
- $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
-then
- echo "You used to use $cppstdin $cppminus so we'll use that again."
- case "$cpprun" in
- '') echo "But let's see if we can live without a wrapper..." ;;
- *)
- if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
- then
- echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
- ok='true'
- else
- echo "(However, $cpprun $cpplast does not work, let's see...)"
- fi
- ;;
- esac
-else
- case "$cppstdin" in
- '') ;;
- *)
- echo "Good old $cppstdin $cppminus does not seem to be of any help..."
- ;;
- esac
-fi
-
-if $ok; then
- : nothing
-elif echo 'Maybe "'"$cc"' -E" will work...'; \
- $cc -E <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yup, it does."
- x_cpp="$cc -E"
- x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
- $cc -E - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yup, it does."
- x_cpp="$cc -E"
- x_minus='-';
-elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
- $cc -P <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yipee, that works!"
- x_cpp="$cc -P"
- x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
- $cc -P - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "At long last!"
- x_cpp="$cc -P"
- x_minus='-';
-elif echo 'No such luck, maybe "'$cpp'" will work...'; \
- $cpp <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "It works!"
- x_cpp="$cpp"
- x_minus='';
-elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
- $cpp - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Hooray, it works! I was beginning to wonder."
- x_cpp="$cpp"
- x_minus='-';
-elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
- $wrapper <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- x_cpp="$wrapper"
- x_minus=''
- echo "Eureka!"
-else
- dflt=''
- rp="No dice. I can't find a C preprocessor. Name one:"
- . ./myread
- x_cpp="$ans"
- x_minus=''
- $x_cpp <testcpp.c >testcpp.out 2>&1
- if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "OK, that will do." >&4
- else
-echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
- exit 1
- fi
-fi
-
-case "$ok" in
-false)
- cppstdin="$x_cpp"
- cppminus="$x_minus"
- cpprun="$x_cpp"
- cpplast="$x_minus"
- set X $x_cpp
- shift
- case "$1" in
- "$cpp")
- echo "Perhaps can we force $cc -E using a wrapper..."
- if $wrapper <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
- then
- echo "Yup, we can."
- cppstdin="$wrapper"
- cppminus='';
- else
- echo "Nope, we'll have to live without it..."
- fi
- ;;
- esac
- case "$cpprun" in
- "$wrapper")
- cpprun=''
- cpplast=''
- ;;
- esac
- ;;
-esac
-
-case "$cppstdin" in
-"$wrapper"|'cppstdin') ;;
-*) $rm -f $wrapper;;
+# gcc 3.1 complains about adding -Idirectories that it already knows about,
+# so we will take those off from locincpth.
+case "$gccversion" in
+3*)
+ echo "main(){}">try.c
+ for incdir in `$cc -v -c try.c 2>&1 | \
+ sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do
+ locincpth=`echo $locincpth | sed s!$incdir!!`
+ done
+ $rm -f try try.*
esac
-$rm -f testcpp.c testcpp.out
: decide how portable to be. Allow command line overrides.
case "$d_portable" in
case "$fn" in
*\(*)
- expr $fn : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
+ : getfile will accept an answer from the comma-separated list
+ : enclosed in parentheses even if it does not meet other criteria.
+ expr "$fn" : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
fn=`echo $fn | sed 's/(.*)//'`
;;
esac
;;
esac
-: Set private lib path
-case "$plibpth" in
-'') if ./mips; then
- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
- fi;;
-esac
-case "$libpth" in
-' ') dlist='';;
-'') dlist="$loclibpth $plibpth $glibpth";;
-*) dlist="$libpth";;
-esac
-
-: Now check and see which directories actually exist, avoiding duplicates
-libpth=''
-for xxx in $dlist
-do
- if $test -d $xxx; then
- case " $libpth " in
- *" $xxx "*) ;;
- *) libpth="$libpth $xxx";;
- esac
- fi
-done
-$cat <<'EOM'
-
-Some systems have incompatible or broken versions of libraries. Among
-the directories listed in the question below, please remove any you
-know not to be holding relevant libraries, and add any that are needed.
-Say "none" for none.
-
-EOM
-case "$libpth" in
-'') dflt='none';;
-*)
- set X $libpth
- shift
- dflt=${1+"$@"}
- ;;
-esac
-rp="Directories to use for library searches?"
-. ./myread
-case "$ans" in
-none) libpth=' ';;
-*) libpth="$ans";;
-esac
-
-: compute shared library extension
-case "$so" in
-'')
- if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
- dflt='sl'
+: see how we invoke the C preprocessor
+echo " "
+echo "Now, how can we feed standard input to your C preprocessor..." >&4
+cat <<'EOT' >testcpp.c
+#define ABC abc
+#define XYZ xyz
+ABC.XYZ
+EOT
+cd ..
+if test ! -f cppstdin; then
+ if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
+ # AIX cc -E doesn't show the absolute headerfile
+ # locations but we'll cheat by using the -M flag.
+ echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
else
- dflt='so'
+ echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
fi
- ;;
-*) dflt="$so";;
-esac
-$cat <<EOM
-
-On some systems, shared libraries may be available. Answer 'none' if
-you want to suppress searching of shared libraries for the remainder
-of this configuration.
-
-EOM
-rp='What is the file extension used for shared libraries?'
-. ./myread
-so="$ans"
+else
+ echo "Keeping your $hint cppstdin wrapper."
+fi
+chmod 755 cppstdin
+wrapper=`pwd`/cppstdin
+ok='false'
+cd UU
-: Define several unixisms.
-: Hints files or command line option can be used to override them.
-: The convoluted testing is in case hints files set either the old
-: or the new name.
-case "$_exe" in
-'') case "$exe_ext" in
- '') ;;
- *) _exe="$exe_ext" ;;
+if $test "X$cppstdin" != "X" && \
+ $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+then
+ echo "You used to use $cppstdin $cppminus so we'll use that again."
+ case "$cpprun" in
+ '') echo "But let's see if we can live without a wrapper..." ;;
+ *)
+ if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+ then
+ echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
+ ok='true'
+ else
+ echo "(However, $cpprun $cpplast does not work, let's see...)"
+ fi
+ ;;
esac
- ;;
-esac
-case "$_a" in
-'') case "$lib_ext" in
- '') _a='.a';;
- *) _a="$lib_ext" ;;
+else
+ case "$cppstdin" in
+ '') ;;
+ *)
+ echo "Good old $cppstdin $cppminus does not seem to be of any help..."
+ ;;
esac
- ;;
-esac
-case "$_o" in
-'') case "$obj_ext" in
- '') _o='.o';;
+fi
+
+if $ok; then
+ : nothing
+elif echo 'Maybe "'"$cc"' -E" will work...'; \
+ $cc -E <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Yup, it does."
+ x_cpp="$cc -E"
+ x_minus='';
+elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
+ $cc -E - <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Yup, it does."
+ x_cpp="$cc -E"
+ x_minus='-';
+elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
+ $cc -P <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Yipee, that works!"
+ x_cpp="$cc -P"
+ x_minus='';
+elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
+ $cc -P - <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "At long last!"
+ x_cpp="$cc -P"
+ x_minus='-';
+elif echo 'No such luck, maybe "'$cpp'" will work...'; \
+ $cpp <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "It works!"
+ x_cpp="$cpp"
+ x_minus='';
+elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
+ $cpp - <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Hooray, it works! I was beginning to wonder."
+ x_cpp="$cpp"
+ x_minus='-';
+elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
+ $wrapper <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ x_cpp="$wrapper"
+ x_minus=''
+ echo "Eureka!"
+else
+ dflt=''
+ rp="No dice. I can't find a C preprocessor. Name one:"
+ . ./myread
+ x_cpp="$ans"
+ x_minus=''
+ $x_cpp <testcpp.c >testcpp.out 2>&1
+ if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "OK, that will do." >&4
+ else
+echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
+ exit 1
+ fi
+fi
+
+case "$ok" in
+false)
+ cppstdin="$x_cpp"
+ cppminus="$x_minus"
+ cpprun="$x_cpp"
+ cpplast="$x_minus"
+ set X $x_cpp
+ shift
+ case "$1" in
+ "$cpp")
+ echo "Perhaps can we force $cc -E using a wrapper..."
+ if $wrapper <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+ then
+ echo "Yup, we can."
+ cppstdin="$wrapper"
+ cppminus='';
+ else
+ echo "Nope, we'll have to live without it..."
+ fi
+ ;;
+ esac
+ case "$cpprun" in
+ "$wrapper")
+ cpprun=''
+ cpplast=''
+ ;;
+ esac
+ ;;
+esac
+
+case "$cppstdin" in
+"$wrapper"|'cppstdin') ;;
+*) $rm -f $wrapper;;
+esac
+$rm -f testcpp.c testcpp.out
+
+: Set private lib path
+case "$plibpth" in
+'') if ./mips; then
+ plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
+ fi;;
+esac
+case "$libpth" in
+' ') dlist='';;
+'') dlist="$loclibpth $plibpth $glibpth";;
+*) dlist="$libpth";;
+esac
+
+: Now check and see which directories actually exist, avoiding duplicates
+libpth=''
+for xxx in $dlist
+do
+ if $test -d $xxx; then
+ case " $libpth " in
+ *" $xxx "*) ;;
+ *) libpth="$libpth $xxx";;
+ esac
+ fi
+done
+$cat <<'EOM'
+
+Some systems have incompatible or broken versions of libraries. Among
+the directories listed in the question below, please remove any you
+know not to be holding relevant libraries, and add any that are needed.
+Say "none" for none.
+
+EOM
+case "$libpth" in
+'') dflt='none';;
+*)
+ set X $libpth
+ shift
+ dflt=${1+"$@"}
+ ;;
+esac
+rp="Directories to use for library searches?"
+. ./myread
+case "$ans" in
+none) libpth=' ';;
+*) libpth="$ans";;
+esac
+
+: compute shared library extension
+case "$so" in
+'')
+ if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
+ dflt='sl'
+ else
+ dflt='so'
+ fi
+ ;;
+*) dflt="$so";;
+esac
+$cat <<EOM
+
+On some systems, shared libraries may be available. Answer 'none' if
+you want to suppress searching of shared libraries for the remainder
+of this configuration.
+
+EOM
+rp='What is the file extension used for shared libraries?'
+. ./myread
+so="$ans"
+
+: Define several unixisms.
+: Hints files or command line option can be used to override them.
+: The convoluted testing is in case hints files set either the old
+: or the new name.
+case "$_exe" in
+'') case "$exe_ext" in
+ '') ;;
+ *) _exe="$exe_ext" ;;
+ esac
+ ;;
+esac
+case "$_a" in
+'') case "$lib_ext" in
+ '') _a='.a';;
+ *) _a="$lib_ext" ;;
+ esac
+ ;;
+esac
+case "$_o" in
+'') case "$obj_ext" in
+ '') _o='.o';;
*) _o="$obj_ext";;
esac
;;
'') firstmakefile='makefile';;
esac
-case "$usesocks" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to use the SOCKS proxy protocol library. To do so,
-Configure must be run with -Dusesocks. If you use SOCKS you also need
-to use the PerlIO abstraction layer, this will be implicitly selected.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Build Perl for SOCKS?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set usesocks
-eval $setvar
-
-case "$usesocks" in
-$define|true|[yY]*) useperlio="$define";;
-esac
-
: Looking for optional libraries
echo " "
echo "Checking for optional libraries..." >&4
for thisdir in $libspath; do
xxx=''
if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
- xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
+ xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|sed -n '$p'`
$test -f "$xxx" && eval $libscheck
$test -f "$xxx" && libstyle=shared
fi
I used the command:
$*
- ./try
+ $run ./try
and I got the following output:
EOM
dflt=y
if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
- if $sh -c './try' >>try.msg 2>&1; then
- xxx=`./try`
+ if $sh -c "$run ./try" >>try.msg 2>&1; then
+ xxx=`$run ./try`
case "$xxx" in
"Ok") dflt=n ;;
*) echo 'The program compiled OK, but produced no output.' >> try.msg
esac
$rm -f try try.* core
-: define an is-a-typedef? function
-typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
- $rm -f temp.c;
- for inc in $inclist; do
- echo "#include <$inc>" >>temp.c;
- done;
- echo "#ifdef $type" >> temp.c;
- echo "printf(\"We have $type\");" >> temp.c;
- echo "#endif" >> temp.c;
- $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- if $contains $type temp.E >/dev/null 2>&1; then
- eval "$var=\$type";
- else
- eval "$var=\$def";
- fi;
- $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define an is-a-typedef? function that prompts if the type is not available.
-typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
- $rm -f temp.c;
- for inc in $inclist; do
- echo "#include <$inc>" >>temp.c;
- done;
- echo "#ifdef $type" >> temp.c;
- echo "printf(\"We have $type\");" >> temp.c;
- echo "#endif" >> temp.c;
- $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- echo " " ;
- echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
- if $contains $type temp.E >/dev/null 2>&1; then
- echo "$type found." >&4;
- eval "$var=\$type";
- else
- echo "$type NOT found." >&4;
- dflt="$def";
- . ./myread ;
- eval "$var=\$ans";
- fi;
- $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define a shorthand compile call
-compile='
-mc_file=$1;
-shift;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
-: define a shorthand compile call for compilations that should be ok.
-compile_ok='
-mc_file=$1;
-shift;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
+: define a shorthand compile call
+compile='
+mc_file=$1;
+shift;
+$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
+: define a shorthand compile call for compilations that should be ok.
+compile_ok='
+mc_file=$1;
+shift;
+$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
: check for lengths of integral types
echo " "
case "$intsize" in
'')
echo "Checking to see how big your integers are..." >&4
- $cat >intsize.c <<'EOCP'
+ $cat >try.c <<'EOCP'
#include <stdio.h>
int main()
{
exit(0);
}
EOCP
- set intsize
- if eval $compile_ok && ./intsize > /dev/null; then
- eval `./intsize`
+ set try
+ if eval $compile_ok && $run ./try > /dev/null; then
+ eval `$run ./try`
echo "Your integers are $intsize bytes long."
echo "Your long integers are $longsize bytes long."
echo "Your short integers are $shortsize bytes long."
fi
;;
esac
-$rm -f intsize intsize.*
-
-: see what type lseek is declared as in the kernel
-rp="What is the type used for lseek's offset on this system?"
-set off_t lseektype long stdio.h sys/types.h
-eval $typedef_ask
+$rm -f try try.*
+: check for long long
echo " "
-echo "Checking to see how big your file offsets are..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
+echo "Checking to see if you have long long..." >&4
+echo 'int main() { long long x = 7; return 0; }' > try.c
+set try
+if eval $compile; then
+ val="$define"
+ echo "You have long long."
+else
+ val="$undef"
+ echo "You do not have long long."
+fi
+$rm try.*
+set d_longlong
+eval $setvar
+
+: check for length of long long
+case "${d_longlong}${longlongsize}" in
+$define)
+ echo " "
+ echo "Checking to see how big your long longs are..." >&4
+ $cat >try.c <<'EOCP'
#include <stdio.h>
int main()
{
- printf("%d\n", (int)sizeof($lseektype));
- return(0);
+ printf("%d\n", (int)sizeof(long long));
+ return(0);
}
EOCP
-set try
-if eval $compile_ok; then
- lseeksize=`./try`
- echo "Your file offsets are $lseeksize bytes long."
-else
- dflt=$longsize
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of your file offsets (in bytes)?"
- . ./myread
- lseeksize="$ans"
+ set try
+ if eval $compile_ok; then
+ longlongsize=`$run ./try`
+ echo "Your long longs are $longlongsize bytes long."
+ else
+ dflt='8'
+ echo " "
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of a long long (in bytes)?"
+ . ./myread
+ longlongsize="$ans"
+ fi
+ if $test "X$longsize" = "X$longlongsize"; then
+ echo "(That isn't any different from an ordinary long.)"
+ fi
+ ;;
+esac
+$rm -f try.* try
+
+: determine filename position in cpp output
+echo " "
+echo "Computing filename position in cpp output for #include directives..." >&4
+case "$osname" in
+vos) testaccess=-e ;;
+*) testaccess=-r ;;
+esac
+echo '#include <stdio.h>' > foo.c
+$cat >fieldn <<EOF
+$startsh
+$cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
+$grep '^[ ]*#.*stdio\.h' | \
+while read cline; do
+ pos=1
+ set \$cline
+ while $test \$# -gt 0; do
+ if $test $testaccess \`echo \$1 | $tr -d '"'\`; then
+ echo "\$pos"
+ exit 0
+ fi
+ shift
+ pos=\`expr \$pos + 1\`
+ done
+done
+EOF
+chmod +x fieldn
+fieldn=`./fieldn`
+$rm -f foo.c fieldn
+case $fieldn in
+'') pos='???';;
+1) pos=first;;
+2) pos=second;;
+3) pos=third;;
+*) pos="${fieldn}th";;
+esac
+echo "Your cpp writes the filename in the $pos field of the line."
+
+case "$osname" in
+vos) cppfilter="tr '\\\\>' '/' |" ;; # path component separator is >
+*) cppfilter='' ;;
+esac
+: locate header file
+$cat >findhdr <<EOF
+$startsh
+wanted=\$1
+name=''
+for usrincdir in $usrinc
+do
+ if test -f \$usrincdir/\$wanted; then
+ echo "\$usrincdir/\$wanted"
+ exit 0
+ fi
+done
+awkprg='{ print \$$fieldn }'
+echo "#include <\$wanted>" > foo\$\$.c
+$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
+$cppfilter $grep "^[ ]*#.*\$wanted" | \
+while read cline; do
+ name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
+ case "\$name" in
+ *[/\\\\]\$wanted) echo "\$name"; exit 1;;
+ *[\\\\/]\$wanted) echo "\$name"; exit 1;;
+ *) exit 2;;
+ esac;
+done;
+#
+# status = 0: grep returned 0 lines, case statement not executed
+# status = 1: headerfile found
+# status = 2: while loop executed, no headerfile found
+#
+status=\$?
+$rm -f foo\$\$.c;
+if test \$status -eq 1; then
+ exit 0;
fi
-$rm -f try.c try
+exit 1
+EOF
+chmod +x findhdr
-: see what type file positions are declared as in the library
-rp="What is the type for file position used by fsetpos()?"
-set fpos_t fpostype long stdio.h sys/types.h
-eval $typedef_ask
+: define an alternate in-header-list? function
+inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
+cont=true; xxf="echo \"<\$1> found.\" >&4";
+case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
+*) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
+esac;
+case $# in 4) instead=instead;; *) instead="at last";; esac;
+while $test "$cont"; do
+ xxx=`./findhdr $1`
+ var=$2; eval "was=\$$2";
+ if $test "$xxx" && $test -r "$xxx";
+ then eval $xxf;
+ eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
+ cont="";
+ else eval $xxnf;
+ eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
+ set $yyy; shift; shift; yyy=$@;
+ case $# in 0) cont="";;
+ 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
+ xxnf="echo \"and I did not find <\$1> either.\" >&4";;
+ *) xxf="echo \"but I found <\$1\> instead.\" >&4";
+ xxnf="echo \"there is no <\$1>, ...\" >&4";;
+ esac;
+done;
+while $test "$yyy";
+do set $yyy; var=$2; eval "was=\$$2";
+ eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu";
+ set $yyy; shift; shift; yyy=$@;
+done'
+: see if inttypes.h is available
+: we want a real compile instead of Inhdr because some systems
+: have an inttypes.h which includes non-existent headers
echo " "
-case "$fpostype" in
-*_t) zzz="$fpostype" ;;
-*) zzz="fpos_t" ;;
-esac
-echo "Checking the size of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
+$cat >try.c <<EOCP
+#include <inttypes.h>
int main() {
- printf("%d\n", (int)sizeof($fpostype));
- exit(0);
+ static int32_t foo32 = 0x12345678;
}
EOCP
set try
-if eval $compile_ok; then
- yyy=`./try`
- case "$yyy" in
- '') fpossize=4
- echo "(I can't execute the test program--guessing $fpossize.)" >&4
- ;;
- *) fpossize=$yyy
- echo "Your $zzz is $fpossize bytes long."
- ;;
- esac
+if eval $compile; then
+ echo "<inttypes.h> found." >&4
+ val="$define"
else
- dflt="$longsize"
- echo " " >&4
- echo "(I can't compile the test program. Guessing...)" >&4
- rp="What is the size of your file positions (in bytes)?"
- . ./myread
- fpossize="$ans"
+ echo "<inttypes.h> NOT found." >&4
+ val="$undef"
fi
-
-
-
-# Backward compatibility (uselfs is deprecated).
-case "$uselfs" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
-EOM
- uselargefiles="$define"
- ;;
-esac
-
-case "$lseeksize:$fpossize" in
-8:8) cat <<EOM
-
-You can have files larger than 2 gigabytes.
-EOM
- val="$define" ;;
-*) case "$uselargefiles" in
- "$undef"|false|[nN]*) dflt='n' ;;
- *) dflt='y' ;;
- esac
- cat <<EOM
-
-Perl can be built to understand large files (files larger than 2 gigabytes)
-on some systems. To do so, Configure can be run with -Duselargefiles.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
- rp='Try to understand large files, if available?'
- . ./myread
- case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
- esac
- ;;
-esac
-set uselargefiles
-eval $setvar
-case "$uselargefiles" in
-"$define")
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that a large files perl is to be built,
-: we may need to set or change some other defaults.
- if $test -f uselargefiles.cbu; then
- echo "Your platform has some specific hints for large file builds, using them..."
- . ./uselargefiles.cbu
- echo " "
- echo "Rechecking to see how big your file offsets are..." >&4
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof($lseektype));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- lseeksize=`./try`
- $echo "Your file offsets are now $lseeksize bytes long."
- else
- dflt="$lseeksize"
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of your file offsets (in bytes)?"
- . ./myread
- lseeksize="$ans"
- fi
- case "$fpostype" in
- *_t) zzz="$fpostype" ;;
- *) zzz="fpos_t" ;;
- esac
- $echo $n "Rechecking the size of $zzz...$c" >&4
- $cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- printf("%d\n", (int)sizeof($fpostype));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- yyy=`./try`
- dflt="$lseeksize"
- case "$yyy" in
- '') echo " "
- echo "(I can't execute the test program--guessing $fpossize.)" >&4
- ;;
- *) fpossize=$yyy
- echo " $fpossize bytes." >&4
- ;;
- esac
- else
- dflt="$fpossize"
- echo " "
- echo "(I can't compile the test program. Guessing...)" >&4
- rp="What is the size of your file positions (in bytes)?"
- . ./myread
- fpossize="$ans"
- fi
- $rm -f try.c try
- fi
- ;;
-esac
-
-
-case "$usemorebits" in
-"$define"|true|[yY]*)
- use64bitint="$define"
- uselongdouble="$define"
- usemorebits="$define"
- ;;
-*) usemorebits="$undef"
- ;;
-esac
-
-: check for void type
-echo " "
-echo "Checking to see how well your C compiler groks the void type..." >&4
-case "$voidflags" in
-'')
- $cat >try.c <<'EOCP'
-#if TRY & 1
-void sub() {
-#else
-sub() {
-#endif
- extern void moo(); /* function returning void */
- void (*goo)(); /* ptr to func returning void */
-#if TRY & 8
- void *hue; /* generic ptr */
-#endif
-#if TRY & 2
- void (*foo[10])();
-#endif
-
-#if TRY & 4
- if(goo == moo) {
- exit(0);
- }
-#endif
- exit(0);
-}
-int main() { sub(); }
-EOCP
- if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
- voidflags=$defvoidused
- echo "Good. It appears to support void to the level $package wants.">&4
- if $contains warning .out >/dev/null 2>&1; then
- echo "However, you might get some warnings that look like this:"
- $cat .out
- fi
- else
-echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
- if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
- echo "It supports 1..."
- if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
- echo "It also supports 2..."
- if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
- voidflags=7
- echo "And it supports 4 but not 8 definitely."
- else
- echo "It doesn't support 4..."
- if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
- voidflags=11
- echo "But it supports 8."
- else
- voidflags=3
- echo "Neither does it support 8."
- fi
- fi
- else
- echo "It does not support 2..."
- if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
- voidflags=13
- echo "But it supports 4 and 8."
- else
- if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
- voidflags=5
- echo "And it supports 4 but has not heard about 8."
- else
- echo "However it supports 8 but not 4."
- fi
- fi
- fi
- else
- echo "There is no support at all for void."
- voidflags=0
- fi
- fi
-esac
-case "$voidflags" in
-"$defvoidused") ;;
-*) $cat >&4 <<'EOM'
- Support flag bits are:
- 1: basic void declarations.
- 2: arrays of pointers to functions returning void.
- 4: operations between pointers to and addresses of void functions.
- 8: generic void pointers.
-EOM
- dflt="$voidflags";
- rp="Your void support flags add up to what?"
- . ./myread
- voidflags="$ans"
- ;;
-esac
-$rm -f try.* .out
-
-: check for length of pointer
-echo " "
-case "$ptrsize" in
-'')
- echo "Checking to see how big your pointers are..." >&4
- if test "$voidflags" -gt 7; then
- echo '#define VOID_PTR char *' > try.c
- else
- echo '#define VOID_PTR void *' > try.c
- fi
- $cat >>try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof(VOID_PTR));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- ptrsize=`./try`
- echo "Your pointers are $ptrsize bytes long."
- else
- dflt='4'
- echo "(I can't seem to compile the test program. Guessing...)" >&4
- rp="What is the size of a pointer (in bytes)?"
- . ./myread
- ptrsize="$ans"
- fi
- ;;
-esac
-$rm -f try.c try
-
-: check for long long
-echo " "
-echo "Checking to see if you have long long..." >&4
-echo 'int main() { long long x = 7; return 0; }' > try.c
-set try
-if eval $compile; then
- val="$define"
- echo "You have long long."
-else
- val="$undef"
- echo "You do not have long long."
-fi
-$rm try.*
-set d_longlong
-eval $setvar
-
-: check for length of long long
-case "${d_longlong}${longlongsize}" in
-$define)
- echo " "
- echo "Checking to see how big your long longs are..." >&4
- $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof(long long));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- longlongsize=`./try$exe_ext`
- echo "Your long longs are $longlongsize bytes long."
- else
- dflt='8'
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of a long long (in bytes)?"
- . ./myread
- longlongsize="$ans"
- fi
- if $test "X$longsize" = "X$longlongsize"; then
- echo "(That isn't any different from an ordinary long.)"
- fi
- ;;
-esac
-$rm -f try.* try
-
-: determine filename position in cpp output
-echo " "
-echo "Computing filename position in cpp output for #include directives..." >&4
-echo '#include <stdio.h>' > foo.c
-$cat >fieldn <<EOF
-$startsh
-$cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
-$grep '^[ ]*#.*stdio\.h' | \
-while read cline; do
- pos=1
- set \$cline
- while $test \$# -gt 0; do
- if $test -r \`echo \$1 | $tr -d '"'\`; then
- echo "\$pos"
- exit 0
- fi
- shift
- pos=\`expr \$pos + 1\`
- done
-done
-EOF
-chmod +x fieldn
-fieldn=`./fieldn`
-$rm -f foo.c fieldn
-case $fieldn in
-'') pos='???';;
-1) pos=first;;
-2) pos=second;;
-3) pos=third;;
-*) pos="${fieldn}th";;
-esac
-echo "Your cpp writes the filename in the $pos field of the line."
-
-: locate header file
-$cat >findhdr <<EOF
-$startsh
-wanted=\$1
-name=''
-for usrincdir in $usrinc
-do
- if test -f \$usrincdir/\$wanted; then
- echo "\$usrincdir/\$wanted"
- exit 0
- fi
-done
-awkprg='{ print \$$fieldn }'
-echo "#include <\$wanted>" > foo\$\$.c
-$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
-$grep "^[ ]*#.*\$wanted" | \
-while read cline; do
- name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
- case "\$name" in
- *[/\\\\]\$wanted) echo "\$name"; exit 1;;
- *[\\\\/]\$wanted) echo "\$name"; exit 1;;
- *) exit 2;;
- esac;
-done;
-#
-# status = 0: grep returned 0 lines, case statement not executed
-# status = 1: headerfile found
-# status = 2: while loop executed, no headerfile found
-#
-status=\$?
-$rm -f foo\$\$.c;
-if test \$status -eq 1; then
- exit 0;
-fi
-exit 1
-EOF
-chmod +x findhdr
-
-: define an alternate in-header-list? function
-inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
-cont=true; xxf="echo \"<\$1> found.\" >&4";
-case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
-*) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
-esac;
-case $# in 4) instead=instead;; *) instead="at last";; esac;
-while $test "$cont"; do
- xxx=`./findhdr $1`
- var=$2; eval "was=\$$2";
- if $test "$xxx" && $test -r "$xxx";
- then eval $xxf;
- eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
- cont="";
- else eval $xxnf;
- eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
- set $yyy; shift; shift; yyy=$@;
- case $# in 0) cont="";;
- 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
- xxnf="echo \"and I did not find <\$1> either.\" >&4";;
- *) xxf="echo \"but I found <\$1\> instead.\" >&4";
- xxnf="echo \"there is no <\$1>, ...\" >&4";;
- esac;
-done;
-while $test "$yyy";
-do set $yyy; var=$2; eval "was=\$$2";
- eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu";
- set $yyy; shift; shift; yyy=$@;
-done'
-
-: see if inttypes.h is available
-: we want a real compile instead of Inhdr because some systems
-: have an inttypes.h which includes non-existent headers
-echo " "
-$cat >try.c <<EOCP
-#include <inttypes.h>
-int main() {
- static int32_t foo32 = 0x12345678;
-}
-EOCP
-set try
-if eval $compile; then
- echo "<inttypes.h> found." >&4
- val="$define"
-else
- echo "<inttypes.h> NOT found." >&4
- val="$undef"
-fi
-$rm -f try.c try
-set i_inttypes
-eval $setvar
+$rm -f try.c try
+set i_inttypes
+eval $setvar
: check for int64_t
echo " "
;;
esac
-case "$use64bitall" in
-"$define"|true|[yY]*)
- case "$ptrsize" in
- 4) cat <<EOM >&4
-
-*** You have chosen a maximally 64-bit build, but your pointers
-*** are only 4 bytes wide, disabling maximal 64-bitness.
-
-EOM
- use64bitall="$undef"
- case "$use64bitint" in
- "$define"|true|[yY]*) ;;
- *) cat <<EOM >&4
-
-*** Downgrading from maximal 64-bitness to using 64-bit integers.
-
-EOM
- use64bitint="$define"
- ;;
- esac
- ;;
- esac
- ;;
-esac
-
case "$use64bitint" in
"$define"|true|[yY]*)
: Look for a hint-file generated 'call-back-unit'. If the
echo " "
echo "Checking for GNU C Library..." >&4
-cat >gnulibc.c <<EOM
+cat >try.c <<'EOCP'
+/* Find out version of GNU C library. __GLIBC__ and __GLIBC_MINOR__
+ alone are insufficient to distinguish different versions, such as
+ 2.0.6 and 2.0.7. The function gnu_get_libc_version() appeared in
+ libc version 2.1.0. A. Dougherty, June 3, 2002.
+*/
#include <stdio.h>
-int main()
+int main(void)
{
#ifdef __GLIBC__
- exit(0);
+# ifdef __GLIBC_MINOR__
+# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+# include <gnu/libc-version.h>
+ printf("%s\n", gnu_get_libc_version());
+# else
+ printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__);
+# endif
+# else
+ printf("%d\n", __GLIBC__);
+# endif
+ return 0;
#else
- exit(1);
+ return 1;
#endif
}
-EOM
-set gnulibc
-if eval $compile_ok && ./gnulibc; then
+EOCP
+set try
+if eval $compile_ok && $run ./try > glibc.ver; then
val="$define"
- echo "You are using the GNU C Library"
+ gnulibc_version=`$cat glibc.ver`
+ echo "You are using the GNU C Library version $gnulibc_version"
else
val="$undef"
+ gnulibc_version=''
echo "You are not using the GNU C Library"
fi
-$rm -f gnulibc*
+$rm -f try try.* glibc.ver
set d_gnulibc
eval $setvar
esac
;;
esac
-libnames='';
case "$libs" in
'') ;;
*) for thislib in $libs; do
$echo $n ".$c"
$grep fprintf libc.tmp > libc.ptf
xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
-xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
+xrun='eval "<libc.tmp $com >libc.list"; echo "done." >&4'
xxx='[ADTSIW]'
if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\
eval $xscan;\
if $test -f /lib/syscalls.exp; then
echo " "
echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
- $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
+ $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list
fi
;;
esac
set sqrtl d_sqrtl
eval $inlibc
-case "$ccflags" in
-*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
-esac
-
-case "$uselongdouble" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to take advantage of long doubles which
-(if available) may give more accuracy and range for floating point numbers.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Try to use long doubles if available?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set uselongdouble
-eval $setvar
-
-case "$uselongdouble" in
-true|[yY]*) uselongdouble="$define" ;;
-esac
-
-case "$uselongdouble" in
-$define)
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that long doubles should be used,
-: we may need to set or change some other defaults.
- if $test -f uselongdouble.cbu; then
- echo "Your platform has some specific hints for long doubles, using them..."
- . ./uselongdouble.cbu
- else
- $cat <<EOM
-(Your platform doesn't have any specific hints for long doubles.)
-EOM
- fi
- ;;
-esac
-
-case "$uselongdouble:$d_sqrtl" in
-$define:$undef)
- $cat <<EOM >&4
-
-*** You requested the use of long doubles but you do not seem to have
-*** the mathematic functions for long doubles. I'm disabling the use
-*** of long doubles.
-
-EOM
- uselongdouble=$undef
- ;;
-esac
-
: check for length of double
echo " "
case "$doublesize" in
EOCP
set try
if eval $compile_ok; then
- doublesize=`./try`
+ doublesize=`$run ./try`
echo "Your double is $doublesize bytes long."
else
dflt='8'
set try
set try
if eval $compile; then
- longdblsize=`./try$exe_ext`
+ longdblsize=`$run ./try`
echo "Your long doubles are $longdblsize bytes long."
else
dflt='8'
esac
$rm -f try.* try
-case "$useperlio" in
-$define|true|[yY]*|'') dflt='y';;
+echo " "
+
+if $test X"$d_longdbl" = X"$define"; then
+
+echo "Checking how to print long doubles..." >&4
+
+if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then
+ $cat >try.c <<'EOCP'
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+ double d = 123.456;
+ printf("%.3f\n", d);
+}
+EOCP
+ set try
+ if eval $compile; then
+ yyy=`$run ./try`
+ case "$yyy" in
+ 123.456)
+ sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
+ sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
+ echo "We will use %f."
+ ;;
+ esac
+ fi
+fi
+
+if $test X"$sPRIfldbl" = X; then
+ $cat >try.c <<'EOCP'
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+ long double d = 123.456;
+ printf("%.3Lf\n", d);
+}
+EOCP
+ set try
+ if eval $compile; then
+ yyy=`$run ./try`
+ case "$yyy" in
+ 123.456)
+ sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
+ sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
+ echo "We will use %Lf."
+ ;;
+ esac
+ fi
+fi
+
+if $test X"$sPRIfldbl" = X; then
+ $cat >try.c <<'EOCP'
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+ long double d = 123.456;
+ printf("%.3llf\n", d);
+}
+EOCP
+ set try
+ if eval $compile; then
+ yyy=`$run ./try`
+ case "$yyy" in
+ 123.456)
+ sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
+ sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
+ echo "We will use %llf."
+ ;;
+ esac
+ fi
+fi
+
+if $test X"$sPRIfldbl" = X; then
+ $cat >try.c <<'EOCP'
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+ long double d = 123.456;
+ printf("%.3lf\n", d);
+}
+EOCP
+ set try
+ if eval $compile; then
+ yyy=`$run ./try`
+ case "$yyy" in
+ 123.456)
+ sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
+ sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
+ echo "We will use %lf."
+ ;;
+ esac
+ fi
+fi
+
+if $test X"$sPRIfldbl" = X; then
+ echo "Cannot figure out how to print long doubles." >&4
+else
+ sSCNfldbl=$sPRIfldbl # expect consistency
+fi
+
+$rm -f try try.*
+
+fi # d_longdbl
+
+case "$sPRIfldbl" in
+'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
+ d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
+ d_SCNfldbl="$undef";
+ ;;
+*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
+ d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
+ d_SCNfldbl="$define";
+ ;;
+esac
+
+: see if modfl exists
+set modfl d_modfl
+eval $inlibc
+
+d_modfl_pow32_bug="$undef"
+
+case "$d_longdbl$d_modfl" in
+$define$define)
+ $cat <<EOM
+Checking to see whether your modfl() is okay for large values...
+EOM
+$cat >try.c <<EOCP
+#include <math.h>
+#include <stdio.h>
+int main() {
+ long double nv = 4294967303.15;
+ long double v, w;
+ v = modfl(nv, &w);
+#ifdef __GLIBC__
+ printf("glibc");
+#endif
+ printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w);
+ return 0;
+}
+EOCP
+ case "$osname:$gccversion" in
+ aix:) saveccflags="$ccflags"
+ ccflags="$ccflags -qlongdouble" ;; # to avoid core dump
+ esac
+ set try
+ if eval $compile; then
+ foo=`$run ./try`
+ case "$foo" in
+ *" 4294967303.150000 1.150000 4294967302.000000")
+ echo >&4 "Your modfl() is broken for large values."
+ d_modfl_pow32_bug="$define"
+ case "$foo" in
+ glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()."
+ ;;
+ esac
+ ;;
+ *" 4294967303.150000 0.150000 4294967303.000000")
+ echo >&4 "Your modfl() seems okay for large values."
+ ;;
+ *) echo >&4 "I don't understand your modfl() at all."
+ d_modfl="$undef"
+ ;;
+ esac
+ $rm -f try.* try core core.try.*
+ else
+ echo "I cannot figure out whether your modfl() is okay, assuming it isn't."
+ d_modfl="$undef"
+ fi
+ case "$osname:$gccversion" in
+ aix:) ccflags="$saveccflags" ;; # restore
+ esac
+ ;;
+esac
+
+case "$ccflags" in
+*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
+esac
+
+case "$uselongdouble" in
+$define|true|[yY]*) dflt='y';;
*) dflt='n';;
esac
cat <<EOM
-Previous version of $package used the standard IO mechanisms as
-defined in <stdio.h>. Versions 5.003_02 and later of $package allow
-alternate IO mechanisms via the PerlIO abstraction layer, but the
-stdio mechanism is still available if needed. The abstraction layer
-can use AT&T's sfio (if you already have sfio installed) or regular stdio.
-Using PerlIO with sfio may cause problems with some extension modules.
+Perl can be built to take advantage of long doubles which
+(if available) may give more accuracy and range for floating point numbers.
If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
-rp='Use the PerlIO abstraction layer?'
+rp='Try to use long doubles if available?'
. ./myread
case "$ans" in
-y|Y)
- val="$define"
- ;;
-*)
- echo "Ok, doing things the stdio way."
- val="$undef"
+y|Y) val="$define" ;;
+*) val="$undef" ;;
+esac
+set uselongdouble
+eval $setvar
+
+case "$uselongdouble" in
+true|[yY]*) uselongdouble="$define" ;;
+esac
+
+case "$uselongdouble" in
+$define)
+: Look for a hint-file generated 'call-back-unit'. If the
+: user has specified that long doubles should be used,
+: we may need to set or change some other defaults.
+ if $test -f uselongdouble.cbu; then
+ echo "Your platform has some specific hints for long doubles, using them..."
+ . ./uselongdouble.cbu
+ else
+ $cat <<EOM
+(Your platform doesn't have any specific hints for long doubles.)
+EOM
+ fi
;;
esac
-set useperlio
-eval $setvar
-case "$usesocks" in
-$define|true|[yY]*)
- case "$useperlio" in
- $define|true|[yY]*) ;;
- *) cat >&4 <<EOM
+message=X
+case "$uselongdouble:$d_sqrtl:$d_modfl" in
+$define:$define:$define)
+ : You have both
+ ;;
+$define:$define:$undef)
+ message="I could not find modfl"
+ ;;
+$define:$undef:$define)
+ message="I could not find sqrtl"
+ ;;
+$define:$undef:$undef)
+ message="I found neither sqrtl nor modfl"
+ ;;
+esac
-You are using the SOCKS proxy protocol library which means that you
-should also use the PerlIO layer. You may be headed for trouble.
+if $test "$message" != X; then
+ $cat <<EOM >&4
+
+*** You requested the use of long doubles but you do not seem to have
+*** the mathematic functions for long doubles.
+*** ($message)
+*** I'm disabling the use of long doubles.
EOM
- ;;
- esac
- ;;
-esac
-
+ uselongdouble=$undef
+fi
+
: determine the architecture name
echo " "
if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
archname=''
;;
esac
+case "$targetarch" in
+'') ;;
+*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
+esac
myarchname="$tarch"
case "$archname" in
'') dflt="$tarch";;
echo "Long doubles selected." >&4
case "$longdblsize" in
$doublesize)
- "...but long doubles are equal to doubles, not changing architecture name." >&4
+ echo "...but long doubles are equal to doubles, not changing architecture name." >&4
;;
*)
case "$archname" in
prefix="$ans"
prefixexp="$ansexp"
+case "$afsroot" in
+'') afsroot=/afs ;;
+*) afsroot=$afsroot ;;
+esac
+
: is AFS running?
echo " "
case "$afs" in
$define|true) afs=true ;;
$undef|false) afs=false ;;
-*) if test -d /afs; then
+*) if test -d $afsroot; then
afs=true
else
afs=false
esac;;
esac'
-
: get the patchlevel
echo " "
echo "Getting the current patchlevel..." >&4
perl_patchlevel=`cat $rsrc/.patch`
fi
fi
+: Define a handy string here to avoid duplication in myconfig.SH and configpm.
+version_patchlevel_string="version $patchlevel subversion $subversion"
case "$perl_patchlevel" in
-0) ;;
-'') $echo "(You have $package version $patchlevel subversion $subversion.)" ;;
-*) $echo "(You have $package version $patchlevel subversion $subversion patchlevel $perl_patchlevel.)" ;;
+0|'') ;;
+*) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;;
esac
+
+$echo "(You have $package $version_patchlevel_string.)"
+
case "$osname" in
dos|vms)
: XXX Should be a Configure test for double-dots in filenames.
installarchlib="$archlibexp"
fi
-
-: Binary compatibility with 5.005 is not possible for builds
-: with advanced features
-case "$usethreads$usemultiplicity" in
-*define*)
- bincompat5005="$undef"
- d_bincompat5005="$undef"
- ;;
-*) $cat <<EOM
-
-This version of Perl can be compiled for binary compatibility with 5.005.
-If you decide to do so, you will be able to continue using most of the
-extensions that were compiled for Perl 5.005.
-
-EOM
- case "$bincompat5005$d_bincompat5005" in
- *"$undef"*) dflt=n ;;
- *) dflt=y ;;
- esac
- rp='Binary compatibility with Perl 5.005?'
- . ./myread
- case "$ans" in
- y*) val="$define" ;;
- *) val="$undef" ;;
- esac
- set d_bincompat5005
- eval $setvar
- case "$d_bincompat5005" in
- "$define")
- bincompat5005="$define"
- ;;
- *) bincompat5005="$undef"
- d_bincompat5005="$undef"
- ;;
- esac
- ;;
-esac
-
-
: see if setuid scripts can be secure
$cat <<EOM
case "$d_suidsafe" in
"$define")
val="$undef"
- echo "No need to emulate SUID scripts since they are secure here." >& 4
+ echo "No need to emulate SUID scripts since they are secure here." >&4
;;
*)
$cat <<EOM
set stdlib.h i_stdlib
eval $inhdr
+: check for void type
+echo " "
+echo "Checking to see how well your C compiler groks the void type..." >&4
+case "$voidflags" in
+'')
+ $cat >try.c <<'EOCP'
+#if TRY & 1
+void sub() {
+#else
+sub() {
+#endif
+ extern void moo(); /* function returning void */
+ void (*goo)(); /* ptr to func returning void */
+#if TRY & 8
+ void *hue; /* generic ptr */
+#endif
+#if TRY & 2
+ void (*foo[10])();
+#endif
+
+#if TRY & 4
+ if(goo == moo) {
+ exit(0);
+ }
+#endif
+ exit(0);
+}
+int main() { sub(); }
+EOCP
+ if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
+ voidflags=$defvoidused
+ echo "Good. It appears to support void to the level $package wants.">&4
+ if $contains warning .out >/dev/null 2>&1; then
+ echo "However, you might get some warnings that look like this:"
+ $cat .out
+ fi
+ else
+echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
+ if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
+ echo "It supports 1..."
+ if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
+ echo "It also supports 2..."
+ if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
+ voidflags=7
+ echo "And it supports 4 but not 8 definitely."
+ else
+ echo "It doesn't support 4..."
+ if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
+ voidflags=11
+ echo "But it supports 8."
+ else
+ voidflags=3
+ echo "Neither does it support 8."
+ fi
+ fi
+ else
+ echo "It does not support 2..."
+ if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
+ voidflags=13
+ echo "But it supports 4 and 8."
+ else
+ if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
+ voidflags=5
+ echo "And it supports 4 but has not heard about 8."
+ else
+ echo "However it supports 8 but not 4."
+ fi
+ fi
+ fi
+ else
+ echo "There is no support at all for void."
+ voidflags=0
+ fi
+ fi
+esac
+case "$voidflags" in
+"$defvoidused") ;;
+*) $cat >&4 <<'EOM'
+ Support flag bits are:
+ 1: basic void declarations.
+ 2: arrays of pointers to functions returning void.
+ 4: operations between pointers to and addresses of void functions.
+ 8: generic void pointers.
+EOM
+ dflt="$voidflags";
+ rp="Your void support flags add up to what?"
+ . ./myread
+ voidflags="$ans"
+ ;;
+esac
+$rm -f try.* .out
+
+: check for length of pointer
+echo " "
+case "$ptrsize" in
+'')
+ echo "Checking to see how big your pointers are..." >&4
+ if test "$voidflags" -gt 7; then
+ echo '#define VOID_PTR char *' > try.c
+ else
+ echo '#define VOID_PTR void *' > try.c
+ fi
+ $cat >>try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+ printf("%d\n", (int)sizeof(VOID_PTR));
+ exit(0);
+}
+EOCP
+ set try
+ if eval $compile_ok; then
+ ptrsize=`$run ./try`
+ echo "Your pointers are $ptrsize bytes long."
+ else
+ dflt='4'
+ echo "(I can't seem to compile the test program. Guessing...)" >&4
+ rp="What is the size of a pointer (in bytes)?"
+ . ./myread
+ ptrsize="$ans"
+ fi
+ ;;
+esac
+$rm -f try.c try
+case "$use64bitall" in
+"$define"|true|[yY]*)
+ case "$ptrsize" in
+ 4) cat <<EOM >&4
+
+*** You have chosen a maximally 64-bit build, but your pointers
+*** are only 4 bytes wide, disabling maximal 64-bitness.
+
+EOM
+ use64bitall="$undef"
+ case "$use64bitint" in
+ "$define"|true|[yY]*) ;;
+ *) cat <<EOM >&4
+
+*** Downgrading from maximal 64-bitness to using 64-bit integers.
+
+EOM
+ use64bitint="$define"
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+esac
+
+
: determine which malloc to compile in
echo " "
case "$usemymalloc" in
installbin="$binexp"
fi
+echo " "
+case "$extras" in
+'') dflt='n';;
+*) dflt='y';;
+esac
+cat <<EOM
+Perl can be built with extra modules or bundles of modules which
+will be fetched from the CPAN and installed alongside Perl.
+
+Notice that you will need access to the CPAN; either via the Internet,
+or a local copy, for example a CD-ROM or a local CPAN mirror. (You will
+be asked later to configure the CPAN.pm module which will in turn do
+the installation of the rest of the extra modules or bundles.)
+
+Notice also that if the modules require any external software such as
+libraries and headers (the libz library and the zlib.h header for the
+Compress::Zlib module, for example) you MUST have any such software
+already installed, this configuration process will NOT install such
+things for you.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Install any extra modules (y or n)?'
+. ./myread
+case "$ans" in
+y|Y)
+ cat <<EOM
+
+Please list any extra modules or bundles to be installed from CPAN,
+with spaces between the names. The names can be in any format the
+'install' command of CPAN.pm will understand. (Answer 'none',
+without the quotes, to install no extra modules or bundles.)
+EOM
+ rp='Extras?'
+ dflt="$extras"
+ . ./myread
+ extras="$ans"
+esac
+case "$extras" in
+''|'none')
+ val=''
+ $rm -f ../extras.lst
+ ;;
+*) echo "(Saving the list of extras for later...)"
+ echo "$extras" > ../extras.lst
+ val="'$extras'"
+ ;;
+esac
+set extras
+eval $setvar
+echo " "
+
: Find perl5.005 or later.
echo "Looking for a previously installed perl5.005 or later... "
case "$perl5" in
-'') for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do
+'') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do
: Check if this perl is recent and can load a simple module
- if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
perl5=$tdir/perl
break;
- elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
- perl5=$tdir/perl
+ elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ perl5=$tdir/perl5
break;
fi
done
EOPL
chmod +x getverlist
case "$inc_version_list" in
-'') if test -x "$perl5"; then
+'') if test -x "$perl5$exe_ext"; then
dflt=`$perl5 getverlist`
else
dflt='none'
fi
;;
$undef) dflt='none' ;;
-*) dflt="$inc_version_list" ;;
+*) eval dflt=\"$inc_version_list\" ;;
esac
case "$dflt" in
''|' ') dflt=none ;;
esac
case "$dflt" in
-5.005) case "$bincompat5005" in
- $define|true|[yY]*) ;;
- *) dflt=none ;;
- esac
- ;;
+5.005) dflt=none ;;
esac
-$cat <<'EOM'
+$cat <<EOM
In order to ease the process of upgrading, this version of perl
can be configured to use modules built and installed with earlier
esac
echo "The following dynamic loading files are available:"
: Can not go over to $dldir because getfile has path hard-coded in.
- tdir=`pwd`; cd $rsrc; $ls -C $dldir/dl*.xs; cd $tdir
+ tdir=`pwd`; cd "$rsrc"; $ls -C $dldir/dl*.xs; cd "$tdir"
rp="Source file to use for dynamic loading"
fn="fne"
gfpth="$src"
esac
;;
*) case "$osname" in
+ darwin) dflt='none' ;;
svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
*) dflt='-fpic' ;;
esac ;;
exit(1); /* fail */
}
EOM
- if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && ./a.out; then
+ if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then
cat <<EOM
You appear to have ELF support. I'll use $cc to build dynamic libraries.
EOM
esac
for thisflag in $ldflags; do
case "$thisflag" in
- -L*|-R*)
+ -L*|-R*|-Wl,-R*)
case " $dflt " in
*" $thisflag "*) ;;
*) dflt="$dflt $thisflag" ;;
linux*) # ld won't link with a bare -lperl otherwise.
dflt=libperl.$so
;;
- cygwin*) # include version
- dflt=`echo libperl$version | sed -e 's/\./_/g'`$lib_ext
+ cygwin*) # ld links against an importlib
+ dflt=libperl$lib_ext
;;
*) # Try to guess based on whether libc has major.minor.
case "$libc" in
aix)
# We'll set it in Makefile.SH...
;;
- solaris|netbsd)
+ solaris)
xxx="-R $shrpdir"
;;
- freebsd)
+ freebsd|netbsd)
xxx="-Wl,-R$shrpdir"
;;
- linux|irix*|dec_osf)
+ bsdos|linux|irix*|dec_osf)
xxx="-Wl,-rpath,$shrpdir"
;;
next)
echo " "
case "$sysman" in
'')
- syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
- syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
+ syspath='/usr/share/man/man1 /usr/man/man1'
+ syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+ syspath="$syspath /usr/man/u_man/man1"
syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
' ') dflt=none
;;
'')
- lookpath="$prefixexp/man/man1 $prefixexp/man/l_man/man1"
+ lookpath="$prefixexp/share/man/man1"
+ lookpath="$lookpath $prefixexp/man/man1 $prefixexp/man/l_man/man1"
lookpath="$lookpath $prefixexp/man/p_man/man1"
lookpath="$lookpath $prefixexp/man/u_man/man1"
lookpath="$lookpath $prefixexp/man/man.1"
esac
: see if we have to deal with yellow pages, now NIS.
-if $test -d /usr/etc/yp || $test -d /etc/yp; then
+if $test -d /usr/etc/yp || $test -d /etc/yp || $test -d /usr/lib/yp; then
if $test -f /usr/etc/nibindd; then
echo " "
echo "I'm fairly confident you're on a NeXT."
fi
fi
fi
+case "$myhostname" in
+'') myhostname=noname ;;
+esac
: you do not want to know about this
set $myhostname
myhostname=$1
esac
case "$dflt" in
.) echo "(Lost all hope -- silly guess then)"
- dflt='.uucp'
+ dflt='.nonet'
;;
esac
$rm -f hosts
set versiononly
eval $setvar
+case "$versiononly" in
+"$define") inc_version_list=''
+ inc_version_list_init=0
+ ;;
+esac
+
: figure out how to guarantee perl startup
case "$startperl" in
'')
: figure best path for perl in scripts
case "$perlpath" in
'')
- perlpath="$binexp/perl"
+ case "$versiononly" in
+ "$define") perlpath="$binexp/perl$version";;
+ *) perlpath="$binexp/perl";;
+ esac
case "$startperl" in
*!*) ;;
*)
: Change installation prefix, if necessary.
if $test X"$prefix" != X"$installprefix"; then
installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
-else
- installsitebin="$sitebinexp"
-fi
-
-case "$vendorprefix" in
-'') d_vendorbin="$undef"
- vendorbin=''
- vendorbinexp=''
- ;;
-*) d_vendorbin="$define"
- : determine where vendor-supplied executables go.
- case "$vendorbin" in
- '') dflt=$vendorprefix/bin ;;
- *) dflt="$vendorbin" ;;
- esac
- fn=d~+
- rp='Pathname for the vendor-supplied executables directory?'
- . ./getfile
- vendorbin="$ans"
- vendorbinexp="$ansexp"
- ;;
-esac
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
- installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
-else
- installvendorbin="$vendorbinexp"
-fi
-
-: see if qgcvt exists
-set qgcvt d_qgcvt
-eval $inlibc
+else
+ installsitebin="$sitebinexp"
+fi
-echo " "
+: define an is-a-typedef? function
+typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+ $rm -f temp.c;
+ for inc in $inclist; do
+ echo "#include <$inc>" >>temp.c;
+ done;
+ echo "#ifdef $type" >> temp.c;
+ echo "printf(\"We have $type\");" >> temp.c;
+ echo "#endif" >> temp.c;
+ $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+ if $contains $type temp.E >/dev/null 2>&1; then
+ eval "$var=\$type";
+ else
+ eval "$var=\$def";
+ fi;
+ $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
-if $test X"$d_longdbl" = X"$define"; then
+: define an is-a-typedef? function that prompts if the type is not available.
+typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+ $rm -f temp.c;
+ for inc in $inclist; do
+ echo "#include <$inc>" >>temp.c;
+ done;
+ echo "#ifdef $type" >> temp.c;
+ echo "printf(\"We have $type\");" >> temp.c;
+ echo "#endif" >> temp.c;
+ $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+ echo " " ;
+ echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
+ if $contains $type temp.E >/dev/null 2>&1; then
+ echo "$type found." >&4;
+ eval "$var=\$type";
+ else
+ echo "$type NOT found." >&4;
+ dflt="$def";
+ . ./myread ;
+ eval "$var=\$ans";
+ fi;
+ $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
-echo "Checking how to print long doubles..." >&4
+: see what type lseek is declared as in the kernel
+rp="What is the type used for lseek's offset on this system?"
+set off_t lseektype long stdio.h sys/types.h
+eval $typedef_ask
-if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then
- $cat >try.c <<'EOCP'
+echo " "
+echo "Checking to see how big your file offsets are..." >&4
+$cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
-int main() {
- double d = 123.456;
- printf("%.3f\n", d);
+int main()
+{
+ printf("%d\n", (int)sizeof($lseektype));
+ return(0);
}
EOCP
- set try
- if eval $compile; then
- yyy=`./try$exe_ext`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
- sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
- echo "We will use %f."
- ;;
- esac
- fi
+set try
+if eval $compile_ok; then
+ lseeksize=`$run ./try`
+ echo "Your file offsets are $lseeksize bytes long."
+else
+ dflt=$longsize
+ echo " "
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of your file offsets (in bytes)?"
+ . ./myread
+ lseeksize="$ans"
fi
+$rm -f try.c try
-if $test X"$sPRIfldbl" = X; then
- $cat >try.c <<'EOCP'
+: see what type file positions are declared as in the library
+rp="What is the type for file position used by fsetpos()?"
+set fpos_t fpostype long stdio.h sys/types.h
+eval $typedef_ask
+
+echo " "
+case "$fpostype" in
+*_t) zzz="$fpostype" ;;
+*) zzz="fpos_t" ;;
+esac
+echo "Checking the size of $zzz..." >&4
+cat > try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
int main() {
- long double d = 123.456;
- printf("%.3llf\n", d);
+ printf("%d\n", (int)sizeof($fpostype));
+ exit(0);
}
EOCP
- set try
- if eval $compile; then
- yyy=`./try$exe_ext`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
- sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
- echo "We will use %llf."
- ;;
- esac
- fi
+set try
+if eval $compile_ok; then
+ yyy=`$run ./try`
+ case "$yyy" in
+ '') fpossize=4
+ echo "(I can't execute the test program--guessing $fpossize.)" >&4
+ ;;
+ *) fpossize=$yyy
+ echo "Your $zzz is $fpossize bytes long."
+ ;;
+ esac
+else
+ dflt="$longsize"
+ echo " " >&4
+ echo "(I can't compile the test program. Guessing...)" >&4
+ rp="What is the size of your file positions (in bytes)?"
+ . ./myread
+ fpossize="$ans"
fi
-if $test X"$sPRIfldbl" = X; then
- $cat >try.c <<'EOCP'
+
+
+# Backward compatibility (uselfs is deprecated).
+case "$uselfs" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
+EOM
+ uselargefiles="$define"
+ ;;
+esac
+
+case "$lseeksize:$fpossize" in
+8:8) cat <<EOM
+
+You can have files larger than 2 gigabytes.
+EOM
+ val="$define" ;;
+*) case "$uselargefiles" in
+ "$undef"|false|[nN]*) dflt='n' ;;
+ *) dflt='y' ;;
+ esac
+ cat <<EOM
+
+Perl can be built to understand large files (files larger than 2 gigabytes)
+on some systems. To do so, Configure can be run with -Duselargefiles.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+ rp='Try to understand large files, if available?'
+ . ./myread
+ case "$ans" in
+ y|Y) val="$define" ;;
+ *) val="$undef" ;;
+ esac
+ ;;
+esac
+set uselargefiles
+eval $setvar
+case "$uselargefiles" in
+"$define")
+: Look for a hint-file generated 'call-back-unit'. If the
+: user has specified that a large files perl is to be built,
+: we may need to set or change some other defaults.
+ if $test -f uselargefiles.cbu; then
+ echo "Your platform has some specific hints for large file builds, using them..."
+ . ./uselargefiles.cbu
+ echo " "
+ echo "Rechecking to see how big your file offsets are..." >&4
+ $cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
-int main() {
- long double d = 123.456;
- printf("%.3Lf\n", d);
+int main()
+{
+ printf("%d\n", (int)sizeof($lseektype));
+ return(0);
}
EOCP
- set try
- if eval $compile; then
- yyy=`./try$exe_ext`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
- sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
- echo "We will use %Lf."
- ;;
+ set try
+ if eval $compile_ok; then
+ lseeksize=`$run ./try`
+ $echo "Your file offsets are now $lseeksize bytes long."
+ else
+ dflt="$lseeksize"
+ echo " "
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of your file offsets (in bytes)?"
+ . ./myread
+ lseeksize="$ans"
+ fi
+ case "$fpostype" in
+ *_t) zzz="$fpostype" ;;
+ *) zzz="fpos_t" ;;
esac
- fi
-fi
-
-if $test X"$sPRIfldbl" = X; then
- $cat >try.c <<'EOCP'
+ $echo $n "Rechecking the size of $zzz...$c" >&4
+ $cat > try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
int main() {
- long double d = 123.456;
- printf("%.3lf\n", d);
+ printf("%d\n", (int)sizeof($fpostype));
+ exit(0);
}
EOCP
- set try
- if eval $compile; then
- yyy=`./try$exe_ext`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
- sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
- echo "We will use %lf."
- ;;
- esac
+ set try
+ if eval $compile_ok; then
+ yyy=`$run ./try`
+ dflt="$lseeksize"
+ case "$yyy" in
+ '') echo " "
+ echo "(I can't execute the test program--guessing $fpossize.)" >&4
+ ;;
+ *) fpossize=$yyy
+ echo " $fpossize bytes." >&4
+ ;;
+ esac
+ else
+ dflt="$fpossize"
+ echo " "
+ echo "(I can't compile the test program. Guessing...)" >&4
+ rp="What is the size of your file positions (in bytes)?"
+ . ./myread
+ fpossize="$ans"
+ fi
+ $rm -f try.c try
fi
-fi
+ ;;
+esac
-if $test X"$sPRIfldbl" = X; then
- echo "Cannot figure out how to print long doubles." >&4
+case "$vendorprefix" in
+'') d_vendorbin="$undef"
+ vendorbin=''
+ vendorbinexp=''
+ ;;
+*) d_vendorbin="$define"
+ : determine where vendor-supplied executables go.
+ case "$vendorbin" in
+ '') dflt=$vendorprefix/bin ;;
+ *) dflt="$vendorbin" ;;
+ esac
+ fn=d~+
+ rp='Pathname for the vendor-supplied executables directory?'
+ . ./getfile
+ vendorbin="$ans"
+ vendorbinexp="$ansexp"
+ ;;
+esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
else
- sSCNfldbl=$sPRIfldbl # expect consistency
+ installvendorbin="$vendorbinexp"
fi
-$rm -f try try.*
+: see if qgcvt exists
+set qgcvt d_qgcvt
+eval $inlibc
-fi # d_longdbl
+: Check how to convert floats to strings.
-case "$sPRIfldbl" in
-'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
- d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
- d_SCNfldbl="$undef";
- ;;
-*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
- d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
- d_SCNfldbl="$define";
- ;;
-esac
+if test "X$d_Gconvert" = X; then
-: Check how to convert floats to strings.
echo " "
echo "Checking for an efficient way to convert floats to strings."
echo " " > try.c
#define DOUBLETYPE long double
#endif
#ifdef TRY_sprintf
-#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && defined(HAS_PRIgldbl)
+#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
+#ifdef HAS_PRIgldbl
#define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x))
#else
+#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(double)(x))
+#endif
+#else
#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
#endif
char *myname = "sprintf";
Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
checkit("0.1", buf);
+ Gconvert((DOUBLETYPE)0.01, 8, 0, buf);
+ checkit("0.01", buf);
+
+ Gconvert((DOUBLETYPE)0.001, 8, 0, buf);
+ checkit("0.001", buf);
+
+ Gconvert((DOUBLETYPE)0.0001, 8, 0, buf);
+ checkit("0.0001", buf);
+
+ Gconvert((DOUBLETYPE)0.00009, 8, 0, buf);
+ if (strlen(buf) > 5)
+ checkit("9e-005", buf); /* for Microsoft ?? */
+ else
+ checkit("9e-05", buf);
+
Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
checkit("1", buf);
Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
checkit("123.456", buf);
+ /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
+ Gconvert((DOUBLETYPE)1e34, 8, 0, buf);
+ /* 34 should be enough to scare even long double
+ * places into using the e notation. */
+ if (strlen(buf) > 5)
+ checkit("1e+034", buf); /* for Microsoft */
+ else
+ checkit("1e+34", buf);
+
+ /* For Perl, if you add additional tests here, also add them to
+ * t/base/num.t for benefit of platforms not using Configure or
+ * overriding d_Gconvert */
+
exit(0);
}
EOP
-case "$d_Gconvert" in
-gconvert*) xxx_list='gconvert gcvt sprintf' ;;
-gcvt*) xxx_list='gcvt gconvert sprintf' ;;
-sprintf*) xxx_list='sprintf gconvert gcvt' ;;
-*) xxx_list='gconvert gcvt sprintf' ;;
-esac
-
-case "$d_longdbl$uselongdouble$d_PRIgldbl" in
-"$define$define$define")
- # for long doubles prefer first qgcvt, then sprintf
- xxx_list="`echo $xxx_list|sed s/sprintf//`"
- xxx_list="sprintf $xxx_list"
- case "$d_qgcvt" in
- "$define") xxx_list="qgcvt $xxx_list" ;;
- esac
+: first add preferred functions to our list
+xxx_list=""
+for xxx_convert in $gconvert_preference; do
+ case $xxx_convert in
+ gcvt|gconvert|sprintf) xxx_list="$xxx_list $xxx_convert" ;;
+ *) echo "Discarding unrecognized gconvert_preference $xxx_convert" >&4 ;;
+ esac
+done
+: then add any others
+for xxx_convert in gconvert gcvt sprintf; do
+ case "$xxx_list" in
+ *$xxx_convert*) ;;
+ *) xxx_list="$xxx_list $xxx_convert" ;;
+ esac
+done
+
+case "$d_longdbl$uselongdouble" in
+"$define$define")
+ : again, add prefered functions to our list first
+ xxx_ld_list=""
+ for xxx_convert in $gconvert_ld_preference; do
+ case $xxx_convert in
+ qgcvt|gcvt|gconvert|sprintf) xxx_ld_list="$xxx_ld_list $xxx_convert" ;;
+ *) echo "Discarding unrecognized gconvert_ld_preference $xxx_convert" ;;
+ esac
+ done
+ : then add qgcvt, sprintf--then, in xxx_list order, gconvert and gcvt
+ for xxx_convert in qgcvt sprintf $xxx_list; do
+ case "$xxx_ld_list" in
+ $xxx_convert*|*" $xxx_convert"*) ;;
+ *) xxx_ld_list="$xxx_ld_list $xxx_convert" ;;
+ esac
+ done
+ : if sprintf cannot do long doubles, move it to the end
+ if test "$d_PRIgldbl" != "$define"; then
+ xxx_ld_list="`echo $xxx_ld_list|sed s/sprintf//` sprintf"
+ fi
+ : if no qgcvt, remove it
+ if test "$d_qgcvt" != "$define"; then
+ xxx_ld_list="`echo $xxx_ld_list|sed s/qgcvt//`"
+ fi
+ : use the ld_list
+ xxx_list="$xxx_ld_list"
;;
esac
set try -DTRY_$xxx_convert
if eval $compile; then
echo "$xxx_convert() found." >&4
- if ./try; then
+ if $run ./try; then
echo "I'll use $xxx_convert to convert floats into a string." >&4
break;
else
echo "...But $xxx_convert didn't work as I expected."
+ xxx_convert=''
fi
else
echo "$xxx_convert NOT found." >&4
fi
done
-
+
+if test X$xxx_convert = X; then
+ echo "*** WHOA THERE!!! ***" >&4
+ echo "None of ($xxx_list) seemed to work properly. I'll use sprintf." >&4
+ xxx_convert=sprintf
+fi
+
case "$xxx_convert" in
gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
*) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
"$define$define$define")
d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;;
+ "$define$define$undef")
+ d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;;
*) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
esac
;;
esac
+fi
+
: see if _fwalk exists
set fwalk d__fwalk
eval $inlibc
fi
;;
esac
-$rm -f access*
-
-: see if accessx exists
-set accessx d_accessx
-eval $inlibc
+$rm -f access*
+
+: see if accessx exists
+set accessx d_accessx
+eval $inlibc
+
+: see if alarm exists
+set alarm d_alarm
+eval $inlibc
+
+: see if POSIX threads are available
+set pthread.h i_pthread
+eval $inhdr
+
+: define a fucntion to check prototypes
+$cat > protochk <<EOSH
+$startsh
+cc="$cc"
+optimize="$optimize"
+ccflags="$ccflags"
+prototype="$prototype"
+define="$define"
+rm=$rm
+usethreads=$usethreads
+i_pthread=$i_pthread
+pthread_h_first=$pthread_h_first
+EOSH
+
+$cat >> protochk <<'EOSH'
+
+$rm -f try.c
+foo="$1"
+shift
+while test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>" >> try.c ;;
+ literal) echo "$2" >> try.c ;;
+ esac
+ # Extra magic for the benefit of systems that need pthread.h
+ # to be included early to correctly detect threadsafe functions.
+ # Such functions must guarantee themselves, though, that the usethreads
+ # and i_pthread have been defined, before calling protochk.
+ if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then
+ echo "#include <pthread.h>" >> try.c
+ pthread_h_done=yes
+ fi
+ shift 2
+done
+test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
+cat >> try.c <<'EOCP'
+#ifdef CAN_PROTOTYPE
+#define _(args) args
+#else
+#define _(args) ()
+#endif
+EOCP
+echo "$foo" >> try.c
+echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
+$cc $optimize $ccflags -c try.c > /dev/null 2>&1
+status=$?
+$rm -f try.[co]
+exit $status
+EOSH
+chmod +x protochk
+$eunicefix protochk
+
+hasproto='varname=$1; func=$2; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
+if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
+ echo "$func() prototype found.";
+ val="$define";
+else
+ echo "$func() prototype NOT found.";
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c tryout.c'
+
+: see if sys/types.h has to be included
+set sys/types.h i_systypes
+eval $inhdr
+
+: see if sys/select.h has to be included
+set sys/select.h i_sysselct
+eval $inhdr
+
+hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
+set try;
+if eval $compile; then
+ val="$define";
+else
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c try.o'
+
+: see if we should include time.h, sys/time.h, or both
+echo " "
+if test "X$timeincl" = X; then
+ echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
+ $echo $n "I'm now running the test program...$c"
+ $cat >try.c <<'EOCP'
+#include <sys/types.h>
+#ifdef I_TIME
+#include <time.h>
+#endif
+#ifdef I_SYSTIME
+#ifdef SYSTIMEKERNEL
+#define KERNEL
+#endif
+#include <sys/time.h>
+#endif
+#ifdef I_SYSSELECT
+#include <sys/select.h>
+#endif
+int main()
+{
+ struct tm foo;
+#ifdef S_TIMEVAL
+ struct timeval bar;
+#endif
+#ifdef S_TIMEZONE
+ struct timezone tzp;
+#endif
+ if (foo.tm_sec == foo.tm_sec)
+ exit(0);
+#ifdef S_TIMEVAL
+ if (bar.tv_sec == bar.tv_sec)
+ exit(0);
+#endif
+ exit(1);
+}
+EOCP
+ flags=''
+ for s_timezone in '-DS_TIMEZONE' ''; do
+ sysselect=''
+ for s_timeval in '-DS_TIMEVAL' ''; do
+ for i_systimek in '' '-DSYSTIMEKERNEL'; do
+ for i_time in '' '-DI_TIME'; do
+ for i_systime in '-DI_SYSTIME' ''; do
+ case "$flags" in
+ '') $echo $n ".$c"
+ set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
+ if eval $compile; then
+ set X $i_time $i_systime $i_systimek $sysselect $s_timeval
+ shift
+ flags="$*"
+ echo " "
+ $echo $n "Succeeded with $flags$c"
+ fi
+ ;;
+ esac
+ done
+ done
+ done
+ done
+ done
+ timeincl=''
+ echo " "
+ case "$flags" in
+ *SYSTIMEKERNEL*) i_systimek="$define"
+ timeincl=`./findhdr sys/time.h`
+ echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
+ *) i_systimek="$undef";;
+ esac
+ case "$flags" in
+ *I_TIME*) i_time="$define"
+ timeincl=`./findhdr time.h`" $timeincl"
+ echo "We'll include <time.h>." >&4;;
+ *) i_time="$undef";;
+ esac
+ case "$flags" in
+ *I_SYSTIME*) i_systime="$define"
+ timeincl=`./findhdr sys/time.h`" $timeincl"
+ echo "We'll include <sys/time.h>." >&4;;
+ *) i_systime="$undef";;
+ esac
+ $rm -f try.c try
+fi
+: see if struct tm knows about tm_zone
+case "$i_systime$i_time" in
+*$define*)
+ echo " "
+ echo "Checking to see if your struct tm has tm_zone field..." >&4
+ set d_tm_tm_zone tm tm_zone $i_systime sys/time.h $i_time time.h
+ eval $hasfield
+ ;;
+*) val="$undef"
+ set d_tm_tm_zone
+ eval $setvar
+ ;;
+esac
+case "$d_tm_tm_zone" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
+: see if struct tm knows about tm_gmtoff
+case "$i_systime$i_time" in
+*$define*)
+ echo " "
+ echo "Checking to see if your struct tm has tm_gmtoff field..." >&4
+ set d_tm_tm_gmtoff tm tm_gmtoff $i_systime sys/time.h $i_time time.h
+ eval $hasfield
+ ;;
+*) val="$undef"
+ set d_tm_tm_gmtoff
+ eval $setvar
+ ;;
+esac
+case "$d_tm_tm_gmtoff" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
-: see if alarm exists
-set alarm d_alarm
+: see if asctime_r exists
+set asctime_r d_asctime_r
eval $inlibc
+case "$d_asctime_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
+ case "$d_asctime_r_proto:$usethreads" in
+ ":define") d_asctime_r_proto=define
+ set d_asctime_r_proto asctime_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_asctime_r_proto" in
+ define)
+ case "$asctime_r_proto" in
+ ''|0) try='char* asctime_r(const struct tm*, char*);'
+ ./protochk "extern $try" $hdrs && asctime_r_proto=B_SB ;;
+ esac
+ case "$asctime_r_proto" in
+ ''|0) try='char* asctime_r(const struct tm*, char*, int);'
+ ./protochk "extern $try" $hdrs && asctime_r_proto=B_SBI ;;
+ esac
+ case "$asctime_r_proto" in
+ ''|0) try='int asctime_r(const struct tm*, char*);'
+ ./protochk "extern $try" $hdrs && asctime_r_proto=I_SB ;;
+ esac
+ case "$asctime_r_proto" in
+ ''|0) try='int asctime_r(const struct tm*, char*, int);'
+ ./protochk "extern $try" $hdrs && asctime_r_proto=I_SBI ;;
+ esac
+ case "$asctime_r_proto" in
+ ''|0) d_asctime_r=undef
+ asctime_r_proto=0
+ echo "Disabling asctime_r, cannot determine prototype." >&4 ;;
+ * ) case "$asctime_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) asctime_r_proto="REENTRANT_PROTO_$asctime_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "asctime_r has no prototype, not using it." >&4 ;;
+ esac
+ d_asctime_r=undef
+ asctime_r_proto=0
+ ;;
+ esac
+ ;;
+*) asctime_r_proto=0
+ ;;
+esac
: see if atolf exists
set atolf d_atolf
"$define")
echo " "
echo "Checking to see which flavor of getpgrp is in use..."
- $cat >set.c <<EOP
+ $cat >try.c <<EOP
#$i_unistd I_UNISTD
#include <sys/types.h>
#ifdef I_UNISTD
exit(1);
}
EOP
- if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
val="$define"
- elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
val="$undef"
else
esac
set d_bsdgetpgrp
eval $setvar
-$rm -f set set.c
+$rm -f try try.*
: see if setpgrp exists
set setpgrp d_setpgrp
"$define")
echo " "
echo "Checking to see which flavor of setpgrp is in use..."
- $cat >set.c <<EOP
+ $cat >try.c <<EOP
#$i_unistd I_UNISTD
#include <sys/types.h>
#ifdef I_UNISTD
exit(1);
}
EOP
- if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
val="$define"
- elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
val="$undef"
else
esac
set d_bsdsetpgrp
eval $setvar
-$rm -f set set.c
+$rm -f try try.*
: see if bzero exists
set bzero d_bzero
eval $inlibc
EOCP
set try
if eval $compile_ok; then
- ./try
+ $run ./try
yyy=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
EOCP
set try
if eval $compile_ok; then
- ./try
+ $run ./try
castflags=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
if set vprintf val -f d_vprintf; eval $csym; $val; then
echo 'vprintf() found.' >&4
val="$define"
- $cat >vprintf.c <<'EOF'
+ $cat >try.c <<'EOF'
#include <varargs.h>
int main() { xxx("foo"); }
exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
}
EOF
- set vprintf
- if eval $compile && ./vprintf; then
+ set try
+ if eval $compile && $run ./try; then
echo "Your vsprintf() returns (int)." >&4
val2="$undef"
else
val="$undef"
val2="$undef"
fi
+$rm -f try try.*
set d_vprintf
eval $setvar
val=$val2
set chsize d_chsize
eval $inlibc
+: see if class exists
+set class d_class
+eval $inlibc
+
hasstruct='varname=$1; struct=$2; shift; shift;
while $test $# -ge 2; do
case "$1" in
eval $setvar;
$rm -f try.c try.o'
-: see if sys/types.h has to be included
-set sys/types.h i_systypes
-eval $inhdr
-
-hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
-set try;
-if eval $compile; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c try.o'
-
socketlib=''
sockethdr=''
: see whether socket exists
sockethdr="-I/usr/netinclude"
;;
esac
- echo "Found Berkeley sockets interface in lib$net." >& 4
+ echo "Found Berkeley sockets interface in lib$net." >&4
if $contains setsockopt libc.list >/dev/null 2>&1; then
d_oldsock="$undef"
else
echo " "
-echo "Checking the availability of certain socket constants..." >& 4
+echo "Checking the availability of certain socket constants..." >&4
for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
$cat >try.c <<EOF
: see if crypt exists
echo " "
-if set crypt val -f d_crypt; eval $csym; $val; then
- echo 'crypt() found.' >&4
- val="$define"
- cryptlib=''
-else
- cryptlib=`./loc Slibcrypt$_a "" $xlibpth`
- if $test -z "$cryptlib"; then
- cryptlib=`./loc Mlibcrypt$_a "" $xlibpth`
- else
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- cryptlib=`./loc Llibcrypt$_a "" $xlibpth`
- else
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- cryptlib=`./loc libcrypt$_a "" $libpth`
- else
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- echo 'crypt() NOT found.' >&4
- val="$undef"
- else
+set crypt d_crypt
+eval $inlibc
+case "$d_crypt" in
+$define) cryptlib='' ;;
+*) if set crypt val -f d_crypt; eval $csym; $val; then
+ echo 'crypt() found.' >&4
val="$define"
+ cryptlib=''
+ else
+ cryptlib=`./loc Slibcrypt$_a "" $xlibpth`
+ if $test -z "$cryptlib"; then
+ cryptlib=`./loc Mlibcrypt$_a "" $xlibpth`
+ else
+ cryptlib=-lcrypt
+ fi
+ if $test -z "$cryptlib"; then
+ cryptlib=`./loc Llibcrypt$_a "" $xlibpth`
+ else
+ cryptlib=-lcrypt
+ fi
+ if $test -z "$cryptlib"; then
+ cryptlib=`./loc libcrypt$_a "" $libpth`
+ else
+ cryptlib=-lcrypt
+ fi
+ if $test -z "$cryptlib"; then
+ echo 'crypt() NOT found.' >&4
+ val="$undef"
+ else
+ val="$define"
+ fi
fi
-fi
-set d_crypt
-eval $setvar
+ set d_crypt
+ eval $setvar
+ ;;
+esac
+
+: see if this is a crypt.h system
+set crypt.h i_crypt
+eval $inhdr
+
+: see if crypt_r exists
+set crypt_r d_crypt_r
+eval $inlibc
+case "$d_crypt_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_crypt crypt.h"
+ case "$d_crypt_r_proto:$usethreads" in
+ ":define") d_crypt_r_proto=define
+ set d_crypt_r_proto crypt_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_crypt_r_proto" in
+ define)
+ case "$crypt_r_proto" in
+ ''|0) try='char* crypt_r(const char*, const char*, struct crypt_data*);'
+ ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCS ;;
+ esac
+ case "$crypt_r_proto" in
+ ''|0) try='char* crypt_r(const char*, const char*, CRYPTD*);'
+ ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCD ;;
+ esac
+ case "$crypt_r_proto" in
+ ''|0) d_crypt_r=undef
+ crypt_r_proto=0
+ echo "Disabling crypt_r, cannot determine prototype." >&4 ;;
+ * ) case "$crypt_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) crypt_r_proto="REENTRANT_PROTO_$crypt_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "crypt_r has no prototype, not using it." >&4 ;;
+ esac
+ d_crypt_r=undef
+ crypt_r_proto=0
+ ;;
+ esac
+ ;;
+*) crypt_r_proto=0
+ ;;
+esac
: get csh whereabouts
case "$csh" in
'') full_csh=$csh ;;
esac
+: see if ctermid_r exists
+set ctermid_r d_ctermid_r
+eval $inlibc
+case "$d_ctermid_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h "
+ case "$d_ctermid_r_proto:$usethreads" in
+ ":define") d_ctermid_r_proto=define
+ set d_ctermid_r_proto ctermid_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_ctermid_r_proto" in
+ define)
+ case "$ctermid_r_proto" in
+ ''|0) try='char* ctermid_r(char*);'
+ ./protochk "extern $try" $hdrs && ctermid_r_proto=B_B ;;
+ esac
+ case "$ctermid_r_proto" in
+ ''|0) d_ctermid_r=undef
+ ctermid_r_proto=0
+ echo "Disabling ctermid_r, cannot determine prototype." >&4 ;;
+ * ) case "$ctermid_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) ctermid_r_proto="REENTRANT_PROTO_$ctermid_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "ctermid_r has no prototype, not using it." >&4 ;;
+ esac
+ d_ctermid_r=undef
+ ctermid_r_proto=0
+ ;;
+ esac
+ ;;
+*) ctermid_r_proto=0
+ ;;
+esac
+
+: see if ctime_r exists
+set ctime_r d_ctime_r
+eval $inlibc
+case "$d_ctime_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
+ case "$d_ctime_r_proto:$usethreads" in
+ ":define") d_ctime_r_proto=define
+ set d_ctime_r_proto ctime_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_ctime_r_proto" in
+ define)
+ case "$ctime_r_proto" in
+ ''|0) try='char* ctime_r(const time_t*, char*);'
+ ./protochk "extern $try" $hdrs && ctime_r_proto=B_SB ;;
+ esac
+ case "$ctime_r_proto" in
+ ''|0) try='char* ctime_r(const time_t*, char*, int);'
+ ./protochk "extern $try" $hdrs && ctime_r_proto=B_SBI ;;
+ esac
+ case "$ctime_r_proto" in
+ ''|0) try='int ctime_r(const time_t*, char*);'
+ ./protochk "extern $try" $hdrs && ctime_r_proto=I_SB ;;
+ esac
+ case "$ctime_r_proto" in
+ ''|0) try='int ctime_r(const time_t*, char*, int);'
+ ./protochk "extern $try" $hdrs && ctime_r_proto=I_SBI ;;
+ esac
+ case "$ctime_r_proto" in
+ ''|0) d_ctime_r=undef
+ ctime_r_proto=0
+ echo "Disabling ctime_r, cannot determine prototype." >&4 ;;
+ * ) case "$ctime_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) ctime_r_proto="REENTRANT_PROTO_$ctime_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "ctime_r has no prototype, not using it." >&4 ;;
+ esac
+ d_ctime_r=undef
+ ctime_r_proto=0
+ ;;
+ esac
+ ;;
+*) ctime_r_proto=0
+ ;;
+esac
+
: see if cuserid exists
set cuserid d_cuserid
eval $inlibc
set d_dbl_dig
eval $setvar
+: see if dbm.h is available
+: see if dbmclose exists
+set dbmclose d_dbmclose
+eval $inlibc
+
+case "$d_dbmclose" in
+$define)
+ set dbm.h i_dbm
+ eval $inhdr
+ case "$i_dbm" in
+ $define)
+ val="$undef"
+ set i_rpcsvcdbm
+ eval $setvar
+ ;;
+ *) set rpcsvc/dbm.h i_rpcsvcdbm
+ eval $inhdr
+ ;;
+ esac
+ ;;
+*) echo "We won't be including <dbm.h>"
+ val="$undef"
+ set i_dbm
+ eval $setvar
+ val="$undef"
+ set i_rpcsvcdbm
+ eval $setvar
+ ;;
+esac
+
+: see if prototype for dbminit is available
+echo " "
+set d_dbminitproto dbminit $i_dbm dbm.h
+eval $hasproto
+
: see if difftime exists
set difftime d_difftime
eval $inlibc
eval $setvar
$rm -f try.c
+: see if this is an sysdir system
+set sys/dir.h i_sysdir
+eval $inhdr
+
+: see if this is an sysndir system
+set sys/ndir.h i_sysndir
+eval $inhdr
+
+: Look for dirfd
+echo " "
+$cat >dirfd.c <<EOM
+#include <stdio.h>
+#$i_dirent I_DIRENT /**/
+#$i_sysdir I_SYS_DIR /**/
+#$i_sysndir I_SYS_NDIR /**/
+#$i_systypes I_SYS_TYPES /**/
+#if defined(I_SYS_TYPES)
+#include <sys/types.h>
+#endif
+#if defined(I_DIRENT)
+#include <dirent.h>
+#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
+#include <sys/dir.h>
+#endif
+#else
+#ifdef I_SYS_NDIR
+#include <sys/ndir.h>
+#else
+#ifdef I_SYS_DIR
+#ifdef hp9000s500
+#include <ndir.h> /* may be wrong in the future */
+#else
+#include <sys/dir.h>
+#endif
+#endif
+#endif
+#endif
+int main() {
+ DIR *dirp = opendir(".");
+ if (dirfd(dirp) >= 0)
+ exit(0);
+ else
+ exit(1);
+}
+EOM
+set dirfd
+if eval $compile; then
+ val="$define"
+fi
+case "$val" in
+$define) echo "dirfd() found." >&4 ;;
+*) echo "dirfd() NOT found." >&4 ;;
+esac
+set d_dirfd
+eval $setvar
+$rm -f dirfd*
+
: see if dlerror exists
xxx_runnm="$runnm"
runnm=false
#include <stdio.h>
#$i_dlfcn I_DLFCN
#ifdef I_DLFCN
-#include <dlfcn.h> /* the dynamic linker include file for Sunos/Solaris */
+#include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */
#else
#include <sys/types.h>
#include <nlist.h>
if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
$ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
- $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then
- xxx=`./fred`
+ $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
+ xxx=`$run ./fred`
case $xxx in
1) echo "Test program failed using dlopen." >&4
echo "Perhaps you should not use dynamic loading." >&4;;
;;
esac
-$rm -f fred fred.? dyna.$dlext dyna.? tmp-dyna.?
+$rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.*
set d_dlsymun
eval $setvar
-hasproto='varname=$1; func=$2; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
-if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
- echo "$func() prototype found.";
- val="$define";
-else
- echo "$func() prototype NOT found.";
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c tryout.c'
+: see if drand48_r exists
+set drand48_r d_drand48_r
+eval $inlibc
+case "$d_drand48_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
+ case "$d_drand48_r_proto:$usethreads" in
+ ":define") d_drand48_r_proto=define
+ set d_drand48_r_proto drand48_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_drand48_r_proto" in
+ define)
+ case "$drand48_r_proto" in
+ ''|0) try='int drand48_r(struct drand48_data*, double*);'
+ ./protochk "extern $try" $hdrs && drand48_r_proto=I_ST ;;
+ esac
+ case "$drand48_r_proto" in
+ ''|0) d_drand48_r=undef
+ drand48_r_proto=0
+ echo "Disabling drand48_r, cannot determine prototype." >&4 ;;
+ * ) case "$drand48_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) drand48_r_proto="REENTRANT_PROTO_$drand48_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "drand48_r has no prototype, not using it." >&4 ;;
+ esac
+ d_drand48_r=undef
+ drand48_r_proto=0
+ ;;
+ esac
+ ;;
+*) drand48_r_proto=0
+ ;;
+esac
: see if prototype for drand48 is available
echo " "
set endgrent d_endgrent
eval $inlibc
+: see if this is an grp system
+set grp.h i_grp
+eval $inhdr
+
+case "$i_grp" in
+$define)
+ xxx=`./findhdr grp.h`
+ $cppstdin $cppflags $cppminus < $xxx >$$.h
+
+ if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_grpasswd
+ eval $setvar
+
+ $rm -f $$.h
+ ;;
+*)
+ val="$undef";
+ set d_grpasswd; eval $setvar
+ ;;
+esac
+
+: see if endgrent_r exists
+set endgrent_r d_endgrent_r
+eval $inlibc
+case "$d_endgrent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
+ case "$d_endgrent_r_proto:$usethreads" in
+ ":define") d_endgrent_r_proto=define
+ set d_endgrent_r_proto endgrent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_endgrent_r_proto" in
+ define)
+ case "$endgrent_r_proto" in
+ ''|0) try='int endgrent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && endgrent_r_proto=I_H ;;
+ esac
+ case "$endgrent_r_proto" in
+ ''|0) try='void endgrent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && endgrent_r_proto=V_H ;;
+ esac
+ case "$endgrent_r_proto" in
+ ''|0) d_endgrent_r=undef
+ endgrent_r_proto=0
+ echo "Disabling endgrent_r, cannot determine prototype." >&4 ;;
+ * ) case "$endgrent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) endgrent_r_proto="REENTRANT_PROTO_$endgrent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "endgrent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_endgrent_r=undef
+ endgrent_r_proto=0
+ ;;
+ esac
+ ;;
+*) endgrent_r_proto=0
+ ;;
+esac
+
: see if endhostent exists
set endhostent d_endhent
eval $inlibc
+: see if this is a netdb.h system
+set netdb.h i_netdb
+eval $inhdr
+
+: see if endhostent_r exists
+set endhostent_r d_endhostent_r
+eval $inlibc
+case "$d_endhostent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_endhostent_r_proto:$usethreads" in
+ ":define") d_endhostent_r_proto=define
+ set d_endhostent_r_proto endhostent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_endhostent_r_proto" in
+ define)
+ case "$endhostent_r_proto" in
+ ''|0) try='int endhostent_r(struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && endhostent_r_proto=I_D ;;
+ esac
+ case "$endhostent_r_proto" in
+ ''|0) try='void endhostent_r(struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && endhostent_r_proto=V_D ;;
+ esac
+ case "$endhostent_r_proto" in
+ ''|0) d_endhostent_r=undef
+ endhostent_r_proto=0
+ echo "Disabling endhostent_r, cannot determine prototype." >&4 ;;
+ * ) case "$endhostent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) endhostent_r_proto="REENTRANT_PROTO_$endhostent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "endhostent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_endhostent_r=undef
+ endhostent_r_proto=0
+ ;;
+ esac
+ ;;
+*) endhostent_r_proto=0
+ ;;
+esac
+
: see if endnetent exists
set endnetent d_endnent
eval $inlibc
+: see if endnetent_r exists
+set endnetent_r d_endnetent_r
+eval $inlibc
+case "$d_endnetent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_endnetent_r_proto:$usethreads" in
+ ":define") d_endnetent_r_proto=define
+ set d_endnetent_r_proto endnetent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_endnetent_r_proto" in
+ define)
+ case "$endnetent_r_proto" in
+ ''|0) try='int endnetent_r(struct netent_data*);'
+ ./protochk "extern $try" $hdrs && endnetent_r_proto=I_D ;;
+ esac
+ case "$endnetent_r_proto" in
+ ''|0) try='void endnetent_r(struct netent_data*);'
+ ./protochk "extern $try" $hdrs && endnetent_r_proto=V_D ;;
+ esac
+ case "$endnetent_r_proto" in
+ ''|0) d_endnetent_r=undef
+ endnetent_r_proto=0
+ echo "Disabling endnetent_r, cannot determine prototype." >&4 ;;
+ * ) case "$endnetent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) endnetent_r_proto="REENTRANT_PROTO_$endnetent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "endnetent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_endnetent_r=undef
+ endnetent_r_proto=0
+ ;;
+ esac
+ ;;
+*) endnetent_r_proto=0
+ ;;
+esac
+
: see if endprotoent exists
set endprotoent d_endpent
eval $inlibc
+: see if endprotoent_r exists
+set endprotoent_r d_endprotoent_r
+eval $inlibc
+case "$d_endprotoent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_endprotoent_r_proto:$usethreads" in
+ ":define") d_endprotoent_r_proto=define
+ set d_endprotoent_r_proto endprotoent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_endprotoent_r_proto" in
+ define)
+ case "$endprotoent_r_proto" in
+ ''|0) try='int endprotoent_r(struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_D ;;
+ esac
+ case "$endprotoent_r_proto" in
+ ''|0) try='void endprotoent_r(struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_D ;;
+ esac
+ case "$endprotoent_r_proto" in
+ ''|0) d_endprotoent_r=undef
+ endprotoent_r_proto=0
+ echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;;
+ * ) case "$endprotoent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) endprotoent_r_proto="REENTRANT_PROTO_$endprotoent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "endprotoent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_endprotoent_r=undef
+ endprotoent_r_proto=0
+ ;;
+ esac
+ ;;
+*) endprotoent_r_proto=0
+ ;;
+esac
+
: see if endpwent exists
set endpwent d_endpwent
eval $inlibc
+: see if this is a pwd.h system
+set pwd.h i_pwd
+eval $inhdr
+
+case "$i_pwd" in
+$define)
+ xxx=`./findhdr pwd.h`
+ $cppstdin $cppflags $cppminus < $xxx >$$.h
+
+ if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwquota
+ eval $setvar
+
+ if $contains 'pw_age' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwage
+ eval $setvar
+
+ if $contains 'pw_change' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwchange
+ eval $setvar
+
+ if $contains 'pw_class' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwclass
+ eval $setvar
+
+ if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwexpire
+ eval $setvar
+
+ if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwcomment
+ eval $setvar
+
+ if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwgecos
+ eval $setvar
+
+ if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ set d_pwpasswd
+ eval $setvar
+
+ $rm -f $$.h
+ ;;
+*)
+ val="$undef";
+ set d_pwquota; eval $setvar
+ set d_pwage; eval $setvar
+ set d_pwchange; eval $setvar
+ set d_pwclass; eval $setvar
+ set d_pwexpire; eval $setvar
+ set d_pwcomment; eval $setvar
+ set d_pwgecos; eval $setvar
+ set d_pwpasswd; eval $setvar
+ ;;
+esac
+
+: see if endpwent_r exists
+set endpwent_r d_endpwent_r
+eval $inlibc
+case "$d_endpwent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
+ case "$d_endpwent_r_proto:$usethreads" in
+ ":define") d_endpwent_r_proto=define
+ set d_endpwent_r_proto endpwent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_endpwent_r_proto" in
+ define)
+ case "$endpwent_r_proto" in
+ ''|0) try='int endpwent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && endpwent_r_proto=I_H ;;
+ esac
+ case "$endpwent_r_proto" in
+ ''|0) try='void endpwent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && endpwent_r_proto=V_H ;;
+ esac
+ case "$endpwent_r_proto" in
+ ''|0) d_endpwent_r=undef
+ endpwent_r_proto=0
+ echo "Disabling endpwent_r, cannot determine prototype." >&4 ;;
+ * ) case "$endpwent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) endpwent_r_proto="REENTRANT_PROTO_$endpwent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "endpwent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_endpwent_r=undef
+ endpwent_r_proto=0
+ ;;
+ esac
+ ;;
+*) endpwent_r_proto=0
+ ;;
+esac
+
: see if endservent exists
set endservent d_endsent
eval $inlibc
+: see if endservent_r exists
+set endservent_r d_endservent_r
+eval $inlibc
+case "$d_endservent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_endservent_r_proto:$usethreads" in
+ ":define") d_endservent_r_proto=define
+ set d_endservent_r_proto endservent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_endservent_r_proto" in
+ define)
+ case "$endservent_r_proto" in
+ ''|0) try='int endservent_r(struct servent_data*);'
+ ./protochk "extern $try" $hdrs && endservent_r_proto=I_D ;;
+ esac
+ case "$endservent_r_proto" in
+ ''|0) try='void endservent_r(struct servent_data*);'
+ ./protochk "extern $try" $hdrs && endservent_r_proto=V_D ;;
+ esac
+ case "$endservent_r_proto" in
+ ''|0) d_endservent_r=undef
+ endservent_r_proto=0
+ echo "Disabling endservent_r, cannot determine prototype." >&4 ;;
+ * ) case "$endservent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) endservent_r_proto="REENTRANT_PROTO_$endservent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "endservent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_endservent_r=undef
+ endservent_r_proto=0
+ ;;
+ esac
+ ;;
+*) endservent_r_proto=0
+ ;;
+esac
+
: Locate the flags for 'open()'
echo " "
-$cat >open3.c <<'EOCP'
+$cat >try.c <<'EOCP'
#include <sys/types.h>
#ifdef I_FCNTL
#include <fcntl.h>
EOCP
: check sys/file.h first to get FREAD on Sun
if $test `./findhdr sys/file.h` && \
- set open3 -DI_SYS_FILE && eval $compile; then
+ set try -DI_SYS_FILE && eval $compile; then
h_sysfile=true;
echo "<sys/file.h> defines the O_* constants..." >&4
- if ./open3; then
+ if $run ./try; then
echo "and you have the 3 argument form of open()." >&4
val="$define"
else
val="$undef"
fi
elif $test `./findhdr fcntl.h` && \
- set open3 -DI_FCNTL && eval $compile; then
+ set try -DI_FCNTL && eval $compile; then
h_fcntl=true;
echo "<fcntl.h> defines the O_* constants..." >&4
- if ./open3; then
+ if $run ./try; then
echo "and you have the 3 argument form of open()." >&4
val="$define"
else
fi
set d_open3
eval $setvar
-$rm -f open3*
+$rm -f try try.*
: see which of string.h or strings.h is needed
echo " "
if $test "$strings" && $test -r "$strings"; then
echo "Using <strings.h> instead of <string.h>." >&4
else
- echo "No string header found -- You'll surely have problems." >&4
+ echo "No string header found -- You'll surely have problems." >&4
+ fi
+fi
+set i_string
+eval $setvar
+case "$i_string" in
+"$undef") strings=`./findhdr strings.h`;;
+*) strings=`./findhdr string.h`;;
+esac
+
+: see if this is a sys/file.h system
+val=''
+set sys/file.h val
+eval $inhdr
+
+: do we need to include sys/file.h ?
+case "$val" in
+"$define")
+ echo " "
+ if $h_sysfile; then
+ val="$define"
+ echo "We'll be including <sys/file.h>." >&4
+ else
+ val="$undef"
+ echo "We won't be including <sys/file.h>." >&4
+ fi
+ ;;
+*)
+ h_sysfile=false
+ ;;
+esac
+set i_sysfile
+eval $setvar
+
+: see if fcntl.h is there
+val=''
+set fcntl.h val
+eval $inhdr
+
+: see if we can include fcntl.h
+case "$val" in
+"$define")
+ echo " "
+ if $h_fcntl; then
+ val="$define"
+ echo "We'll be including <fcntl.h>." >&4
+ else
+ val="$undef"
+ if $h_sysfile; then
+ echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
+ else
+ echo "We won't be including <fcntl.h>." >&4
+ fi
fi
-fi
-set i_string
-eval $setvar
-case "$i_string" in
-"$undef") strings=`./findhdr strings.h`;;
-*) strings=`./findhdr string.h`;;
+ ;;
+*)
+ h_fcntl=false
+ val="$undef"
+ ;;
esac
+set i_fcntl
+eval $setvar
: check for non-blocking I/O stuff
case "$h_sysfile" in
case "$o_nonblock" in
'')
$cat head.c > try.c
- $cat >>try.c <<'EOCP'
+ $cat >>try.c <<EOCP
#include <stdio.h>
+#include <stdlib.h>
+#$i_fcntl I_FCNTL
+#ifdef I_FCNTL
+#include <fcntl.h>
+#endif
int main() {
#ifdef O_NONBLOCK
printf("O_NONBLOCK\n");
EOCP
set try
if eval $compile_ok; then
- o_nonblock=`./try`
+ o_nonblock=`$run ./try`
case "$o_nonblock" in
'') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
*) echo "Seems like we can use $o_nonblock.";;
#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
+#include <stdlib.h>
+#$i_fcntl I_FCNTL
+#ifdef I_FCNTL
+#include <fcntl.h>
+#endif
#define MY_O_NONBLOCK $o_nonblock
#ifndef errno /* XXX need better Configure test */
extern int errno;
ret = read(pd[0], buf, 1); /* Should read EOF */
alarm(0);
sprintf(string, "%d\n", ret);
- write(3, string, strlen(string));
+ write(4, string, strlen(string));
exit(0);
}
set try
if eval $compile_ok; then
echo "$startsh" >mtry
- echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
+ echo "$run ./try >try.out 2>try.ret 4>try.err || exit 4" >>mtry
chmod +x mtry
./mtry >/dev/null 2>&1
case $? in
esac
$rm -f try try.* .out core head.c mtry
+: see if fchdir exists
+set fchdir d_fchdir
+eval $inlibc
+
: see if fchmod exists
set fchmod d_fchmod
eval $inlibc
echo " "
: See if fcntl-based locking works.
-$cat >try.c <<'EOCP'
+$cat >try.c <<EOCP
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
+#include <signal.h>
+$signal_t blech(x) int x; { exit(3); }
int main() {
#if defined(F_SETLK) && defined(F_SETLKW)
struct flock flock;
flock.l_type = F_RDLCK;
flock.l_whence = SEEK_SET;
flock.l_start = flock.l_len = 0;
+ signal(SIGALRM, blech);
+ alarm(10);
retval = fcntl(fd, F_SETLK, &flock);
close(fd);
(retval < 0 ? exit(2) : exit(0));
"$define")
set try
if eval $compile_ok; then
- if ./try; then
+ if $run ./try; then
echo "Yes, it seems to work."
val="$define"
else
echo "Nope, it didn't work."
val="$undef"
+ case "$?" in
+ 3) $cat >&4 <<EOM
+***
+*** I had to forcibly timeout from fcntl(..., F_SETLK, ...).
+*** This is (almost) impossible.
+*** If your NFS lock daemons are not feeling well, something like
+*** this may happen, please investigate. Cannot continue, aborting.
+***
+EOM
+ exit 1
+ ;;
+ esac
fi
else
echo "I'm unable to compile the test program, so I'll assume not."
$rm -f try*
-: see if sys/select.h has to be included
-set sys/select.h i_sysselct
-eval $inhdr
-
-: see if we should include time.h, sys/time.h, or both
-echo " "
-if test "X$timeincl" = X; then
- echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
- $echo $n "I'm now running the test program...$c"
- $cat >try.c <<'EOCP'
-#include <sys/types.h>
-#ifdef I_TIME
-#include <time.h>
-#endif
-#ifdef I_SYSTIME
-#ifdef SYSTIMEKERNEL
-#define KERNEL
-#endif
-#include <sys/time.h>
-#endif
-#ifdef I_SYSSELECT
-#include <sys/select.h>
-#endif
-int main()
-{
- struct tm foo;
-#ifdef S_TIMEVAL
- struct timeval bar;
-#endif
-#ifdef S_TIMEZONE
- struct timezone tzp;
-#endif
- if (foo.tm_sec == foo.tm_sec)
- exit(0);
-#ifdef S_TIMEVAL
- if (bar.tv_sec == bar.tv_sec)
- exit(0);
-#endif
- exit(1);
-}
-EOCP
- flags=''
- for s_timezone in '-DS_TIMEZONE' ''; do
- sysselect=''
- for s_timeval in '-DS_TIMEVAL' ''; do
- for i_systimek in '' '-DSYSTIMEKERNEL'; do
- for i_time in '' '-DI_TIME'; do
- for i_systime in '-DI_SYSTIME' ''; do
- case "$flags" in
- '') $echo $n ".$c"
- set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
- if eval $compile; then
- set X $i_time $i_systime $i_systimek $sysselect $s_timeval
- shift
- flags="$*"
- echo " "
- $echo $n "Succeeded with $flags$c"
- fi
- ;;
- esac
- done
- done
- done
- done
- done
- timeincl=''
- echo " "
- case "$flags" in
- *SYSTIMEKERNEL*) i_systimek="$define"
- timeincl=`./findhdr sys/time.h`
- echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
- *) i_systimek="$undef";;
- esac
- case "$flags" in
- *I_TIME*) i_time="$define"
- timeincl=`./findhdr time.h`" $timeincl"
- echo "We'll include <time.h>." >&4;;
- *) i_time="$undef";;
- esac
- case "$flags" in
- *I_SYSTIME*) i_systime="$define"
- timeincl=`./findhdr sys/time.h`" $timeincl"
- echo "We'll include <sys/time.h>." >&4;;
- *) i_systime="$undef";;
- esac
- $rm -f try.c try
-fi
-
: check for fd_set items
$cat <<EOM
Checking to see how well your C compiler handles fd_set and friends ...
EOM
-$cat >fd_set.c <<EOCP
+$cat >try.c <<EOCP
#$i_systime I_SYS_TIME
#$i_sysselct I_SYS_SELECT
#$d_socket HAS_SOCKET
#endif
}
EOCP
-set fd_set -DTRYBITS
+set try -DTRYBITS
if eval $compile; then
d_fds_bits="$define"
d_fd_set="$define"
echo "Well, your system knows about the normal fd_set typedef..." >&4
- if ./fd_set; then
+ if $run ./try; then
echo "and you have the normal fd_set macros (just as I'd expect)." >&4
d_fd_macros="$define"
else
$cat <<'EOM'
Hmm, your compiler has some difficulty with fd_set. Checking further...
EOM
- set fd_set
+ set try
if eval $compile; then
d_fds_bits="$undef"
d_fd_set="$define"
echo "Well, your system has some sort of fd_set available..." >&4
- if ./fd_set; then
+ if $run ./try; then
echo "and you have the normal fd_set macros." >&4
d_fd_macros="$define"
else
d_fd_macros="$undef"
fi
fi
-$rm -f fd_set*
+$rm -f try try.*
: see if fgetpos exists
set fgetpos d_fgetpos
eval $inlibc
+: see if finite exists
+set finite d_finite
+eval $inlibc
+
+: see if finitel exists
+set finitel d_finitel
+eval $inlibc
+
: see if flock exists
set flock d_flock
eval $inlibc
+: see if prototype for flock is available
+echo " "
+set d_flockproto flock $i_sysfile sys/file.h
+eval $hasproto
+
: see if fork exists
set fork d_fork
eval $inlibc
+: see if fp_class exists
+set fp_class d_fp_class
+eval $inlibc
+
: see if pathconf exists
set pathconf d_pathconf
eval $inlibc
set fpathconf d_fpathconf
eval $inlibc
+: see if fpclass exists
+set fpclass d_fpclass
+eval $inlibc
+
+: see if fpclassify exists
+set fpclassify d_fpclassify
+eval $inlibc
+
+: see if fpclassl exists
+set fpclassl d_fpclassl
+eval $inlibc
+
: check for fpos64_t
echo " "
set getgrent d_getgrent
eval $inlibc
+: see if getgrent_r exists
+set getgrent_r d_getgrent_r
+eval $inlibc
+case "$d_getgrent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
+ case "$d_getgrent_r_proto:$usethreads" in
+ ":define") d_getgrent_r_proto=define
+ set d_getgrent_r_proto getgrent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getgrent_r_proto" in
+ define)
+ case "$getgrent_r_proto" in
+ ''|0) try='int getgrent_r(struct group*, char*, size_t, struct group**);'
+ ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBWR ;;
+ esac
+ case "$getgrent_r_proto" in
+ ''|0) try='int getgrent_r(struct group*, char*, int, struct group**);'
+ ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIR ;;
+ esac
+ case "$getgrent_r_proto" in
+ ''|0) try='struct group* getgrent_r(struct group*, char*, size_t);'
+ ./protochk "extern $try" $hdrs && getgrent_r_proto=S_SBW ;;
+ esac
+ case "$getgrent_r_proto" in
+ ''|0) try='struct group* getgrent_r(struct group*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrent_r_proto=S_SBI ;;
+ esac
+ case "$getgrent_r_proto" in
+ ''|0) try='int getgrent_r(struct group*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBI ;;
+ esac
+ case "$getgrent_r_proto" in
+ ''|0) try='int getgrent_r(struct group*, char*, int, FILE**);'
+ ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIH ;;
+ esac
+ case "$getgrent_r_proto" in
+ ''|0) d_getgrent_r=undef
+ getgrent_r_proto=0
+ echo "Disabling getgrent_r, cannot determine prototype." >&4 ;;
+ * ) case "$getgrent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getgrent_r_proto="REENTRANT_PROTO_$getgrent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getgrent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getgrent_r=undef
+ getgrent_r_proto=0
+ ;;
+ esac
+ ;;
+*) getgrent_r_proto=0
+ ;;
+esac
+
+: see if getgrgid_r exists
+set getgrgid_r d_getgrgid_r
+eval $inlibc
+case "$d_getgrgid_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
+ case "$d_getgrgid_r_proto:$usethreads" in
+ ":define") d_getgrgid_r_proto=define
+ set d_getgrgid_r_proto getgrgid_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getgrgid_r_proto" in
+ define)
+ case "$getgrgid_r_proto" in
+ ''|0) try='int getgrgid_r(gid_t, struct group*, char*, size_t, struct group**);'
+ ./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBWR ;;
+ esac
+ case "$getgrgid_r_proto" in
+ ''|0) try='int getgrgid_r(gid_t, struct group*, char*, int, struct group**);'
+ ./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBIR ;;
+ esac
+ case "$getgrgid_r_proto" in
+ ''|0) try='int getgrgid_r(gid_t, struct group*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBI ;;
+ esac
+ case "$getgrgid_r_proto" in
+ ''|0) try='struct group* getgrgid_r(gid_t, struct group*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrgid_r_proto=S_TSBI ;;
+ esac
+ case "$getgrgid_r_proto" in
+ ''|0) d_getgrgid_r=undef
+ getgrgid_r_proto=0
+ echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;;
+ * ) case "$getgrgid_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getgrgid_r_proto="REENTRANT_PROTO_$getgrgid_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getgrgid_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getgrgid_r=undef
+ getgrgid_r_proto=0
+ ;;
+ esac
+ ;;
+*) getgrgid_r_proto=0
+ ;;
+esac
+
+: see if getgrnam_r exists
+set getgrnam_r d_getgrnam_r
+eval $inlibc
+case "$d_getgrnam_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
+ case "$d_getgrnam_r_proto:$usethreads" in
+ ":define") d_getgrnam_r_proto=define
+ set d_getgrnam_r_proto getgrnam_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getgrnam_r_proto" in
+ define)
+ case "$getgrnam_r_proto" in
+ ''|0) try='int getgrnam_r(const char*, struct group*, char*, size_t, struct group**);'
+ ./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBWR ;;
+ esac
+ case "$getgrnam_r_proto" in
+ ''|0) try='int getgrnam_r(const char*, struct group*, char*, int, struct group**);'
+ ./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBIR ;;
+ esac
+ case "$getgrnam_r_proto" in
+ ''|0) try='struct group* getgrnam_r(const char*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CBI ;;
+ esac
+ case "$getgrnam_r_proto" in
+ ''|0) try='int getgrnam_r(const char*, struct group*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBI ;;
+ esac
+ case "$getgrnam_r_proto" in
+ ''|0) try='struct group* getgrnam_r(const char*, struct group*, char*, int);'
+ ./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CSBI ;;
+ esac
+ case "$getgrnam_r_proto" in
+ ''|0) d_getgrnam_r=undef
+ getgrnam_r_proto=0
+ echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;;
+ * ) case "$getgrnam_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getgrnam_r_proto="REENTRANT_PROTO_$getgrnam_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getgrnam_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getgrnam_r=undef
+ getgrnam_r_proto=0
+ ;;
+ esac
+ ;;
+*) getgrnam_r_proto=0
+ ;;
+esac
+
: see if gethostbyaddr exists
set gethostbyaddr d_gethbyaddr
eval $inlibc
esac
;;
esac
-case "$d_uname$d_gethname" in
-*define*) ;;
-*)
- case "$phostname" in
- '')
- echo "There will be no way for $package to get your hostname." >&4;;
- *)
- echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
+case "$d_uname$d_gethname" in
+*define*) ;;
+*)
+ case "$phostname" in
+ '')
+ echo "There will be no way for $package to get your hostname." >&4;;
+ *)
+ echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
+ ;;
+ esac;;
+esac
+case "$d_phostname" in
+'') d_phostname="$undef";;
+esac
+
+: see if gethostbyaddr_r exists
+set gethostbyaddr_r d_gethostbyaddr_r
+eval $inlibc
+case "$d_gethostbyaddr_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_gethostbyaddr_r_proto:$usethreads" in
+ ":define") d_gethostbyaddr_r_proto=define
+ set d_gethostbyaddr_r_proto gethostbyaddr_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_gethostbyaddr_r_proto" in
+ define)
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, struct hostent**, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CWISBWRE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CWISBWIE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CWISBIE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='struct hostent* gethostbyaddr_r(const void*, size_t, int, struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_TWISBIE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='struct hostent* gethostbyaddr_r(const char*, int, int, struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CIISBIE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='struct hostent* gethostbyaddr_r(const char*, struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CSBIE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='struct hostent* gethostbyaddr_r(const void*, struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_TSBIE ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CWISD ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='int gethostbyaddr_r(const char*, int, int, struct hostent*, struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CIISD ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) try='int gethostbyaddr_r(const char*, int, int);'
+ ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CII ;;
+ esac
+ case "$gethostbyaddr_r_proto" in
+ ''|0) d_gethostbyaddr_r=undef
+ gethostbyaddr_r_proto=0
+ echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;;
+ * ) case "$gethostbyaddr_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) gethostbyaddr_r_proto="REENTRANT_PROTO_$gethostbyaddr_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "gethostbyaddr_r has no prototype, not using it." >&4 ;;
+ esac
+ d_gethostbyaddr_r=undef
+ gethostbyaddr_r_proto=0
+ ;;
+ esac
+ ;;
+*) gethostbyaddr_r_proto=0
+ ;;
+esac
+
+: see if gethostbyname_r exists
+set gethostbyname_r d_gethostbyname_r
+eval $inlibc
+case "$d_gethostbyname_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_gethostbyname_r_proto:$usethreads" in
+ ":define") d_gethostbyname_r_proto=define
+ set d_gethostbyname_r_proto gethostbyname_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_gethostbyname_r_proto" in
+ define)
+ case "$gethostbyname_r_proto" in
+ ''|0) try='int gethostbyname_r(const char*, struct hostent*, char*, size_t, struct hostent**, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSBWRE ;;
+ esac
+ case "$gethostbyname_r_proto" in
+ ''|0) try='struct hostent* gethostbyname_r(const char*, struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostbyname_r_proto=S_CSBIE ;;
+ esac
+ case "$gethostbyname_r_proto" in
+ ''|0) try='int gethostbyname_r(const char*, struct hostent*, struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSD ;;
+ esac
+ case "$gethostbyname_r_proto" in
+ ''|0) d_gethostbyname_r=undef
+ gethostbyname_r_proto=0
+ echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;;
+ * ) case "$gethostbyname_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) gethostbyname_r_proto="REENTRANT_PROTO_$gethostbyname_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "gethostbyname_r has no prototype, not using it." >&4 ;;
+ esac
+ d_gethostbyname_r=undef
+ gethostbyname_r_proto=0
+ ;;
+ esac
+ ;;
+*) gethostbyname_r_proto=0
+ ;;
+esac
+
+: see if gethostent_r exists
+set gethostent_r d_gethostent_r
+eval $inlibc
+case "$d_gethostent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_gethostent_r_proto:$usethreads" in
+ ":define") d_gethostent_r_proto=define
+ set d_gethostent_r_proto gethostent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_gethostent_r_proto" in
+ define)
+ case "$gethostent_r_proto" in
+ ''|0) try='int gethostent_r(struct hostent*, char*, size_t, struct hostent**, int*);'
+ ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBWRE ;;
+ esac
+ case "$gethostent_r_proto" in
+ ''|0) try='int gethostent_r(struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBIE ;;
+ esac
+ case "$gethostent_r_proto" in
+ ''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && gethostent_r_proto=S_SBIE ;;
+ esac
+ case "$gethostent_r_proto" in
+ ''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int);'
+ ./protochk "extern $try" $hdrs && gethostent_r_proto=S_SBI ;;
+ esac
+ case "$gethostent_r_proto" in
+ ''|0) try='int gethostent_r(struct hostent*, char*, int);'
+ ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBI ;;
+ esac
+ case "$gethostent_r_proto" in
+ ''|0) try='int gethostent_r(struct hostent*, struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SD ;;
+ esac
+ case "$gethostent_r_proto" in
+ ''|0) d_gethostent_r=undef
+ gethostent_r_proto=0
+ echo "Disabling gethostent_r, cannot determine prototype." >&4 ;;
+ * ) case "$gethostent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) gethostent_r_proto="REENTRANT_PROTO_$gethostent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "gethostent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_gethostent_r=undef
+ gethostent_r_proto=0
;;
- esac;;
-esac
-case "$d_phostname" in
-'') d_phostname="$undef";;
+ esac
+ ;;
+*) gethostent_r_proto=0
+ ;;
esac
-: see if this is a netdb.h system
-set netdb.h i_netdb
-eval $inhdr
-
: see if prototypes for various gethostxxx netdb.h functions are available
echo " "
set d_gethostprotos gethostent $i_netdb netdb.h
set getlogin d_getlogin
eval $inlibc
+: see if getlogin_r exists
+set getlogin_r d_getlogin_r
+eval $inlibc
+case "$d_getlogin_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h"
+ case "$d_getlogin_r_proto:$usethreads" in
+ ":define") d_getlogin_r_proto=define
+ set d_getlogin_r_proto getlogin_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getlogin_r_proto" in
+ define)
+ case "$getlogin_r_proto" in
+ ''|0) try='int getlogin_r(char*, size_t);'
+ ./protochk "extern $try" $hdrs && getlogin_r_proto=I_BW ;;
+ esac
+ case "$getlogin_r_proto" in
+ ''|0) try='int getlogin_r(char*, int);'
+ ./protochk "extern $try" $hdrs && getlogin_r_proto=I_BI ;;
+ esac
+ case "$getlogin_r_proto" in
+ ''|0) try='char* getlogin_r(char*, size_t);'
+ ./protochk "extern $try" $hdrs && getlogin_r_proto=B_BW ;;
+ esac
+ case "$getlogin_r_proto" in
+ ''|0) try='char* getlogin_r(char*, int);'
+ ./protochk "extern $try" $hdrs && getlogin_r_proto=B_BI ;;
+ esac
+ case "$getlogin_r_proto" in
+ ''|0) d_getlogin_r=undef
+ getlogin_r_proto=0
+ echo "Disabling getlogin_r, cannot determine prototype." >&4 ;;
+ * ) case "$getlogin_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getlogin_r_proto="REENTRANT_PROTO_$getlogin_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getlogin_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getlogin_r=undef
+ getlogin_r_proto=0
+ ;;
+ esac
+ ;;
+*) getlogin_r_proto=0
+ ;;
+esac
+
: see if getmnt exists
set getmnt d_getmnt
eval $inlibc
set getnetent d_getnent
eval $inlibc
+: see if getnetbyaddr_r exists
+set getnetbyaddr_r d_getnetbyaddr_r
+eval $inlibc
+case "$d_getnetbyaddr_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getnetbyaddr_r_proto:$usethreads" in
+ ":define") d_getnetbyaddr_r_proto=define
+ set d_getnetbyaddr_r_proto getnetbyaddr_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getnetbyaddr_r_proto" in
+ define)
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='int getnetbyaddr_r(unsigned long, int, struct netent*, char*, size_t, struct netent**, int*);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_UISBWRE ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='int getnetbyaddr_r(long, int, struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_LISBI ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='struct netent* getnetbyaddr_r(in_addr_t, int, struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=S_TISBI ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='struct netent* getnetbyaddr_r(long, int, struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=S_LISBI ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='int getnetbyaddr_r(in_addr_t, int, struct netent*, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_TISD ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='int getnetbyaddr_r(long, int, struct netent*, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_LISD ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) try='int getnetbyaddr_r(int, int, struct netent*, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_IISD ;;
+ esac
+ case "$getnetbyaddr_r_proto" in
+ ''|0) d_getnetbyaddr_r=undef
+ getnetbyaddr_r_proto=0
+ echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;;
+ * ) case "$getnetbyaddr_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getnetbyaddr_r_proto="REENTRANT_PROTO_$getnetbyaddr_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getnetbyaddr_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getnetbyaddr_r=undef
+ getnetbyaddr_r_proto=0
+ ;;
+ esac
+ ;;
+*) getnetbyaddr_r_proto=0
+ ;;
+esac
+
+: see if getnetbyname_r exists
+set getnetbyname_r d_getnetbyname_r
+eval $inlibc
+case "$d_getnetbyname_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getnetbyname_r_proto:$usethreads" in
+ ":define") d_getnetbyname_r_proto=define
+ set d_getnetbyname_r_proto getnetbyname_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getnetbyname_r_proto" in
+ define)
+ case "$getnetbyname_r_proto" in
+ ''|0) try='int getnetbyname_r(const char*, struct netent*, char*, size_t, struct netent**, int*);'
+ ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSBWRE ;;
+ esac
+ case "$getnetbyname_r_proto" in
+ ''|0) try='int getnetbyname_r(const char*, struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSBI ;;
+ esac
+ case "$getnetbyname_r_proto" in
+ ''|0) try='struct netent* getnetbyname_r(const char*, struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetbyname_r_proto=S_CSBI ;;
+ esac
+ case "$getnetbyname_r_proto" in
+ ''|0) try='int getnetbyname_r(const char*, struct netent*, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSD ;;
+ esac
+ case "$getnetbyname_r_proto" in
+ ''|0) d_getnetbyname_r=undef
+ getnetbyname_r_proto=0
+ echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;;
+ * ) case "$getnetbyname_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getnetbyname_r_proto="REENTRANT_PROTO_$getnetbyname_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getnetbyname_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getnetbyname_r=undef
+ getnetbyname_r_proto=0
+ ;;
+ esac
+ ;;
+*) getnetbyname_r_proto=0
+ ;;
+esac
+
+: see if getnetent_r exists
+set getnetent_r d_getnetent_r
+eval $inlibc
+case "$d_getnetent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getnetent_r_proto:$usethreads" in
+ ":define") d_getnetent_r_proto=define
+ set d_getnetent_r_proto getnetent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getnetent_r_proto" in
+ define)
+ case "$getnetent_r_proto" in
+ ''|0) try='int getnetent_r(struct netent*, char*, size_t, struct netent**, int*);'
+ ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBWRE ;;
+ esac
+ case "$getnetent_r_proto" in
+ ''|0) try='int getnetent_r(struct netent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBIE ;;
+ esac
+ case "$getnetent_r_proto" in
+ ''|0) try='struct netent* getnetent_r(struct netent*, char*, int, int*);'
+ ./protochk "extern $try" $hdrs && getnetent_r_proto=S_SBIE ;;
+ esac
+ case "$getnetent_r_proto" in
+ ''|0) try='struct netent* getnetent_r(struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetent_r_proto=S_SBI ;;
+ esac
+ case "$getnetent_r_proto" in
+ ''|0) try='int getnetent_r(struct netent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBI ;;
+ esac
+ case "$getnetent_r_proto" in
+ ''|0) try='int getnetent_r(struct netent*, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SD ;;
+ esac
+ case "$getnetent_r_proto" in
+ ''|0) d_getnetent_r=undef
+ getnetent_r_proto=0
+ echo "Disabling getnetent_r, cannot determine prototype." >&4 ;;
+ * ) case "$getnetent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getnetent_r_proto="REENTRANT_PROTO_$getnetent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getnetent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getnetent_r=undef
+ getnetent_r_proto=0
+ ;;
+ esac
+ ;;
+*) getnetent_r_proto=0
+ ;;
+esac
+
: see if prototypes for various getnetxxx netdb.h functions are available
echo " "
set d_getnetprotos getnetent $i_netdb netdb.h
set getpriority d_getprior
eval $inlibc
+: see if getprotobyname_r exists
+set getprotobyname_r d_getprotobyname_r
+eval $inlibc
+case "$d_getprotobyname_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getprotobyname_r_proto:$usethreads" in
+ ":define") d_getprotobyname_r_proto=define
+ set d_getprotobyname_r_proto getprotobyname_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getprotobyname_r_proto" in
+ define)
+ case "$getprotobyname_r_proto" in
+ ''|0) try='int getprotobyname_r(const char*, struct protoent*, char*, size_t, struct protoent**);'
+ ./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSBWR ;;
+ esac
+ case "$getprotobyname_r_proto" in
+ ''|0) try='struct protoent* getprotobyname_r(const char*, struct protoent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getprotobyname_r_proto=S_CSBI ;;
+ esac
+ case "$getprotobyname_r_proto" in
+ ''|0) try='int getprotobyname_r(const char*, struct protoent*, struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSD ;;
+ esac
+ case "$getprotobyname_r_proto" in
+ ''|0) d_getprotobyname_r=undef
+ getprotobyname_r_proto=0
+ echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;;
+ * ) case "$getprotobyname_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getprotobyname_r_proto="REENTRANT_PROTO_$getprotobyname_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getprotobyname_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getprotobyname_r=undef
+ getprotobyname_r_proto=0
+ ;;
+ esac
+ ;;
+*) getprotobyname_r_proto=0
+ ;;
+esac
+
+: see if getprotobynumber_r exists
+set getprotobynumber_r d_getprotobynumber_r
+eval $inlibc
+case "$d_getprotobynumber_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getprotobynumber_r_proto:$usethreads" in
+ ":define") d_getprotobynumber_r_proto=define
+ set d_getprotobynumber_r_proto getprotobynumber_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getprotobynumber_r_proto" in
+ define)
+ case "$getprotobynumber_r_proto" in
+ ''|0) try='int getprotobynumber_r(int, struct protoent*, char*, size_t, struct protoent**);'
+ ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISBWR ;;
+ esac
+ case "$getprotobynumber_r_proto" in
+ ''|0) try='struct protoent* getprotobynumber_r(int, struct protoent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=S_ISBI ;;
+ esac
+ case "$getprotobynumber_r_proto" in
+ ''|0) try='int getprotobynumber_r(int, struct protoent*, struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISD ;;
+ esac
+ case "$getprotobynumber_r_proto" in
+ ''|0) d_getprotobynumber_r=undef
+ getprotobynumber_r_proto=0
+ echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;;
+ * ) case "$getprotobynumber_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getprotobynumber_r_proto="REENTRANT_PROTO_$getprotobynumber_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getprotobynumber_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getprotobynumber_r=undef
+ getprotobynumber_r_proto=0
+ ;;
+ esac
+ ;;
+*) getprotobynumber_r_proto=0
+ ;;
+esac
+
+: see if getprotoent_r exists
+set getprotoent_r d_getprotoent_r
+eval $inlibc
+case "$d_getprotoent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getprotoent_r_proto:$usethreads" in
+ ":define") d_getprotoent_r_proto=define
+ set d_getprotoent_r_proto getprotoent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getprotoent_r_proto" in
+ define)
+ case "$getprotoent_r_proto" in
+ ''|0) try='int getprotoent_r(struct protoent*, char*, size_t, struct protoent**);'
+ ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SBWR ;;
+ esac
+ case "$getprotoent_r_proto" in
+ ''|0) try='int getprotoent_r(struct protoent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SBI ;;
+ esac
+ case "$getprotoent_r_proto" in
+ ''|0) try='struct protoent* getprotoent_r(struct protoent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getprotoent_r_proto=S_SBI ;;
+ esac
+ case "$getprotoent_r_proto" in
+ ''|0) try='int getprotoent_r(struct protoent*, struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SD ;;
+ esac
+ case "$getprotoent_r_proto" in
+ ''|0) d_getprotoent_r=undef
+ getprotoent_r_proto=0
+ echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;;
+ * ) case "$getprotoent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getprotoent_r_proto="REENTRANT_PROTO_$getprotoent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getprotoent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getprotoent_r=undef
+ getprotoent_r_proto=0
+ ;;
+ esac
+ ;;
+*) getprotoent_r_proto=0
+ ;;
+esac
+
: see if prototypes for various getprotoxxx netdb.h functions are available
echo " "
set d_getprotoprotos getprotoent $i_netdb netdb.h
set getpwent d_getpwent
eval $inlibc
+: see if getpwent_r exists
+set getpwent_r d_getpwent_r
+eval $inlibc
+case "$d_getpwent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
+ case "$d_getpwent_r_proto:$usethreads" in
+ ":define") d_getpwent_r_proto=define
+ set d_getpwent_r_proto getpwent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getpwent_r_proto" in
+ define)
+ case "$getpwent_r_proto" in
+ ''|0) try='int getpwent_r(struct passwd*, char*, size_t, struct passwd**);'
+ ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBWR ;;
+ esac
+ case "$getpwent_r_proto" in
+ ''|0) try='int getpwent_r(struct passwd*, char*, int, struct passwd**);'
+ ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIR ;;
+ esac
+ case "$getpwent_r_proto" in
+ ''|0) try='struct passwd* getpwent_r(struct passwd*, char*, size_t);'
+ ./protochk "extern $try" $hdrs && getpwent_r_proto=S_SBW ;;
+ esac
+ case "$getpwent_r_proto" in
+ ''|0) try='struct passwd* getpwent_r(struct passwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getpwent_r_proto=S_SBI ;;
+ esac
+ case "$getpwent_r_proto" in
+ ''|0) try='int getpwent_r(struct passwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBI ;;
+ esac
+ case "$getpwent_r_proto" in
+ ''|0) try='int getpwent_r(struct passwd*, char*, int, FILE**);'
+ ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIH ;;
+ esac
+ case "$getpwent_r_proto" in
+ ''|0) d_getpwent_r=undef
+ getpwent_r_proto=0
+ echo "Disabling getpwent_r, cannot determine prototype." >&4 ;;
+ * ) case "$getpwent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getpwent_r_proto="REENTRANT_PROTO_$getpwent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getpwent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getpwent_r=undef
+ getpwent_r_proto=0
+ ;;
+ esac
+ ;;
+*) getpwent_r_proto=0
+ ;;
+esac
+
+: see if getpwnam_r exists
+set getpwnam_r d_getpwnam_r
+eval $inlibc
+case "$d_getpwnam_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
+ case "$d_getpwnam_r_proto:$usethreads" in
+ ":define") d_getpwnam_r_proto=define
+ set d_getpwnam_r_proto getpwnam_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getpwnam_r_proto" in
+ define)
+ case "$getpwnam_r_proto" in
+ ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**);'
+ ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBWR ;;
+ esac
+ case "$getpwnam_r_proto" in
+ ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int, struct passwd**);'
+ ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBIR ;;
+ esac
+ case "$getpwnam_r_proto" in
+ ''|0) try='struct passwd* getpwnam_r(const char*, struct passwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getpwnam_r_proto=S_CSBI ;;
+ esac
+ case "$getpwnam_r_proto" in
+ ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBI ;;
+ esac
+ case "$getpwnam_r_proto" in
+ ''|0) d_getpwnam_r=undef
+ getpwnam_r_proto=0
+ echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;;
+ * ) case "$getpwnam_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getpwnam_r_proto="REENTRANT_PROTO_$getpwnam_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getpwnam_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getpwnam_r=undef
+ getpwnam_r_proto=0
+ ;;
+ esac
+ ;;
+*) getpwnam_r_proto=0
+ ;;
+esac
+
+: see if getpwuid_r exists
+set getpwuid_r d_getpwuid_r
+eval $inlibc
+case "$d_getpwuid_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
+ case "$d_getpwuid_r_proto:$usethreads" in
+ ":define") d_getpwuid_r_proto=define
+ set d_getpwuid_r_proto getpwuid_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getpwuid_r_proto" in
+ define)
+ case "$getpwuid_r_proto" in
+ ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**);'
+ ./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBWR ;;
+ esac
+ case "$getpwuid_r_proto" in
+ ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int, struct passwd**);'
+ ./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBIR ;;
+ esac
+ case "$getpwuid_r_proto" in
+ ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBI ;;
+ esac
+ case "$getpwuid_r_proto" in
+ ''|0) try='struct passwd* getpwuid_r(uid_t, struct passwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getpwuid_r_proto=S_TSBI ;;
+ esac
+ case "$getpwuid_r_proto" in
+ ''|0) d_getpwuid_r=undef
+ getpwuid_r_proto=0
+ echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;;
+ * ) case "$getpwuid_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getpwuid_r_proto="REENTRANT_PROTO_$getpwuid_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getpwuid_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getpwuid_r=undef
+ getpwuid_r_proto=0
+ ;;
+ esac
+ ;;
+*) getpwuid_r_proto=0
+ ;;
+esac
+
: see if getservbyname exists
set getservbyname d_getsbyname
set getservent d_getsent
eval $inlibc
+: see if getservbyname_r exists
+set getservbyname_r d_getservbyname_r
+eval $inlibc
+case "$d_getservbyname_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getservbyname_r_proto:$usethreads" in
+ ":define") d_getservbyname_r_proto=define
+ set d_getservbyname_r_proto getservbyname_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getservbyname_r_proto" in
+ define)
+ case "$getservbyname_r_proto" in
+ ''|0) try='int getservbyname_r(const char*, const char*, struct servent*, char*, size_t, struct servent**);'
+ ./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSBWR ;;
+ esac
+ case "$getservbyname_r_proto" in
+ ''|0) try='struct servent* getservbyname_r(const char*, const char*, struct servent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getservbyname_r_proto=S_CCSBI ;;
+ esac
+ case "$getservbyname_r_proto" in
+ ''|0) try='int getservbyname_r(const char*, const char*, struct servent*, struct servent_data*);'
+ ./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSD ;;
+ esac
+ case "$getservbyname_r_proto" in
+ ''|0) d_getservbyname_r=undef
+ getservbyname_r_proto=0
+ echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;;
+ * ) case "$getservbyname_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getservbyname_r_proto="REENTRANT_PROTO_$getservbyname_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getservbyname_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getservbyname_r=undef
+ getservbyname_r_proto=0
+ ;;
+ esac
+ ;;
+*) getservbyname_r_proto=0
+ ;;
+esac
+
+: see if getservbyport_r exists
+set getservbyport_r d_getservbyport_r
+eval $inlibc
+case "$d_getservbyport_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getservbyport_r_proto:$usethreads" in
+ ":define") d_getservbyport_r_proto=define
+ set d_getservbyport_r_proto getservbyport_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getservbyport_r_proto" in
+ define)
+ case "$getservbyport_r_proto" in
+ ''|0) try='int getservbyport_r(int, const char*, struct servent*, char*, size_t, struct servent**);'
+ ./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSBWR ;;
+ esac
+ case "$getservbyport_r_proto" in
+ ''|0) try='struct servent* getservbyport_r(int, const char*, struct servent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getservbyport_r_proto=S_ICSBI ;;
+ esac
+ case "$getservbyport_r_proto" in
+ ''|0) try='int getservbyport_r(int, const char*, struct servent*, struct servent_data*);'
+ ./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSD ;;
+ esac
+ case "$getservbyport_r_proto" in
+ ''|0) d_getservbyport_r=undef
+ getservbyport_r_proto=0
+ echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;;
+ * ) case "$getservbyport_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getservbyport_r_proto="REENTRANT_PROTO_$getservbyport_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getservbyport_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getservbyport_r=undef
+ getservbyport_r_proto=0
+ ;;
+ esac
+ ;;
+*) getservbyport_r_proto=0
+ ;;
+esac
+
+: see if getservent_r exists
+set getservent_r d_getservent_r
+eval $inlibc
+case "$d_getservent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_getservent_r_proto:$usethreads" in
+ ":define") d_getservent_r_proto=define
+ set d_getservent_r_proto getservent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getservent_r_proto" in
+ define)
+ case "$getservent_r_proto" in
+ ''|0) try='int getservent_r(struct servent*, char*, size_t, struct servent**);'
+ ./protochk "extern $try" $hdrs && getservent_r_proto=I_SBWR ;;
+ esac
+ case "$getservent_r_proto" in
+ ''|0) try='int getservent_r(struct servent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getservent_r_proto=I_SBI ;;
+ esac
+ case "$getservent_r_proto" in
+ ''|0) try='struct servent* getservent_r(struct servent*, char*, int);'
+ ./protochk "extern $try" $hdrs && getservent_r_proto=S_SBI ;;
+ esac
+ case "$getservent_r_proto" in
+ ''|0) try='int getservent_r(struct servent*, struct servent_data*);'
+ ./protochk "extern $try" $hdrs && getservent_r_proto=I_SD ;;
+ esac
+ case "$getservent_r_proto" in
+ ''|0) d_getservent_r=undef
+ getservent_r_proto=0
+ echo "Disabling getservent_r, cannot determine prototype." >&4 ;;
+ * ) case "$getservent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getservent_r_proto="REENTRANT_PROTO_$getservent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getservent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getservent_r=undef
+ getservent_r_proto=0
+ ;;
+ esac
+ ;;
+*) getservent_r_proto=0
+ ;;
+esac
+
: see if prototypes for various getservxxx netdb.h functions are available
echo " "
set d_getservprotos getservent $i_netdb netdb.h
set getspnam d_getspnam
eval $inlibc
+: see if this is a shadow.h system
+set shadow.h i_shadow
+eval $inhdr
+
+: see if getspnam_r exists
+set getspnam_r d_getspnam_r
+eval $inlibc
+case "$d_getspnam_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_shadow shadow.h"
+ case "$d_getspnam_r_proto:$usethreads" in
+ ":define") d_getspnam_r_proto=define
+ set d_getspnam_r_proto getspnam_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_getspnam_r_proto" in
+ define)
+ case "$getspnam_r_proto" in
+ ''|0) try='int getspnam_r(const char*, struct spwd*, char*, size_t, struct spwd**);'
+ ./protochk "extern $try" $hdrs && getspnam_r_proto=I_CSBWR ;;
+ esac
+ case "$getspnam_r_proto" in
+ ''|0) try='struct spwd* getspnam_r(const char*, struct spwd*, char*, int);'
+ ./protochk "extern $try" $hdrs && getspnam_r_proto=S_CSBI ;;
+ esac
+ case "$getspnam_r_proto" in
+ ''|0) d_getspnam_r=undef
+ getspnam_r_proto=0
+ echo "Disabling getspnam_r, cannot determine prototype." >&4 ;;
+ * ) case "$getspnam_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) getspnam_r_proto="REENTRANT_PROTO_$getspnam_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "getspnam_r has no prototype, not using it." >&4 ;;
+ esac
+ d_getspnam_r=undef
+ getspnam_r_proto=0
+ ;;
+ esac
+ ;;
+*) getspnam_r_proto=0
+ ;;
+esac
+
: see if gettimeofday or ftime exists
set gettimeofday d_gettimeod
eval $inlibc
;;
esac
-: see if this is an grp system
-set grp.h i_grp
-eval $inhdr
-
-case "$i_grp" in
-$define)
- xxx=`./findhdr grp.h`
- $cppstdin $cppflags $cppminus < $xxx >$$.h
-
- if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_grpasswd
- eval $setvar
-
- $rm -f $$.h
+: see if gmtime_r exists
+set gmtime_r d_gmtime_r
+eval $inlibc
+case "$d_gmtime_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
+ case "$d_gmtime_r_proto:$usethreads" in
+ ":define") d_gmtime_r_proto=define
+ set d_gmtime_r_proto gmtime_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_gmtime_r_proto" in
+ define)
+ case "$gmtime_r_proto" in
+ ''|0) try='struct tm* gmtime_r(const time_t*, struct tm*);'
+ ./protochk "extern $try" $hdrs && gmtime_r_proto=S_TS ;;
+ esac
+ case "$gmtime_r_proto" in
+ ''|0) try='int gmtime_r(const time_t*, struct tm*);'
+ ./protochk "extern $try" $hdrs && gmtime_r_proto=I_TS ;;
+ esac
+ case "$gmtime_r_proto" in
+ ''|0) d_gmtime_r=undef
+ gmtime_r_proto=0
+ echo "Disabling gmtime_r, cannot determine prototype." >&4 ;;
+ * ) case "$gmtime_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) gmtime_r_proto="REENTRANT_PROTO_$gmtime_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
;;
-*)
- val="$undef";
- set d_grpasswd; eval $setvar
+ *) case "$usethreads" in
+ define) echo "gmtime_r has no prototype, not using it." >&4 ;;
+ esac
+ d_gmtime_r=undef
+ gmtime_r_proto=0
+ ;;
+ esac
+ ;;
+*) gmtime_r_proto=0
;;
esac
set d_htonl
eval $setvar
-: see if iconv exists
-set iconv d_iconv
-eval $inlibc
-
: index or strchr
echo " "
if set index val -f; eval $csym; $val; then
eval $setvar
$rm -f isascii*
+: see if isfinite exists
+set isfinite d_isfinite
+eval $inlibc
+
+: see if isinf exists
+set isinf d_isinf
+eval $inlibc
+
: see if isnan exists
set isnan d_isnan
eval $inlibc
set link d_link
eval $inlibc
+: see if localtime_r exists
+set localtime_r d_localtime_r
+eval $inlibc
+case "$d_localtime_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
+ case "$d_localtime_r_proto:$usethreads" in
+ ":define") d_localtime_r_proto=define
+ set d_localtime_r_proto localtime_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_localtime_r_proto" in
+ define)
+ case "$localtime_r_proto" in
+ ''|0) try='struct tm* localtime_r(const time_t*, struct tm*);'
+ ./protochk "extern $try" $hdrs && localtime_r_proto=S_TS ;;
+ esac
+ case "$localtime_r_proto" in
+ ''|0) try='int localtime_r(const time_t*, struct tm*);'
+ ./protochk "extern $try" $hdrs && localtime_r_proto=I_TS ;;
+ esac
+ case "$localtime_r_proto" in
+ ''|0) d_localtime_r=undef
+ localtime_r_proto=0
+ echo "Disabling localtime_r, cannot determine prototype." >&4 ;;
+ * ) case "$localtime_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) localtime_r_proto="REENTRANT_PROTO_$localtime_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "localtime_r has no prototype, not using it." >&4 ;;
+ esac
+ d_localtime_r=undef
+ localtime_r_proto=0
+ ;;
+ esac
+ ;;
+*) localtime_r_proto=0
+ ;;
+esac
+
: see if localeconv exists
set localeconv d_locconv
eval $inlibc
-: see if modfl exists
-set modfl d_modfl
-eval $inlibc
-
: see if mprotect exists
set mprotect d_mprotect
eval $inlibc
set nice d_nice
eval $inlibc
+: see if this is a langinfo.h system
+set langinfo.h i_langinfo
+eval $inhdr
+
+: see if nl_langinfo exists
+set nl_langinfo d_nl_langinfo
+eval $inlibc
+
: check for length of character
echo " "
case "$charsize" in
EOCP
set try
if eval $compile_ok; then
- dflt=`./try`
+ dflt=`$run ./try`
else
dflt='1'
echo "(I can't seem to compile the test program. Guessing...)"
case "$i8type" in
'') set try -DINT8
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int8_t) i8type=int8_t
u8type=uint8_t
i8size=1
case "$i16type" in
'') set try -DINT16
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int16_t)
i16type=int16_t
u16type=uint16_t
case "$i32type" in
'') set try -DINT32
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int32_t)
i32type=int32_t
u32type=uint32_t
d_nv_preserves_uv="$undef"
if eval $compile; then
- d_nv_preserves_uv_bits="`./try$exe_ext`"
+ nv_preserves_uv_bits="`$run ./try`"
fi
-case "$d_nv_preserves_uv_bits" in
+case "$nv_preserves_uv_bits" in
\-[1-9]*)
- d_nv_preserves_uv_bits=`expr 0 - $d_nv_preserves_uv_bits`
- $echo "Your NVs can preserve all $d_nv_preserves_uv_bits bits of your UVs." 2>&1
+ nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits`
+ $echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs." 2>&1
d_nv_preserves_uv="$define"
;;
-[1-9]*) $echo "Your NVs can preserve only $d_nv_preserves_uv_bits bits of your UVs." 2>&1
+[1-9]*) $echo "Your NVs can preserve only $nv_preserves_uv_bits bits of your UVs." 2>&1
d_nv_preserves_uv="$undef" ;;
*) $echo "Can't figure out how many bits your NVs preserve." 2>&1
- d_nv_preserves_uv_bits="$undef" ;;
+ nv_preserves_uv_bits="$undef" ;;
esac
$rm -f try.* try
set d_off64_t
eval $setvar
-: see if POSIX threads are available
-set pthread.h i_pthread
-eval $inhdr
-
-
-
-
: how to create joinable pthreads
if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
echo " "
set poll d_poll
eval $inlibc
+: see if readlink exists
+set readlink d_readlink
+eval $inlibc
+
+echo " "
+procselfexe=''
+val="$undef"
+case "$d_readlink" in
+"$define")
+ if $issymlink /proc/self/exe ; then
+ $ls -l /proc/self/exe > reflect
+ if $contains /`basename $ls` reflect >/dev/null 2>&1; then
+ echo "You have Linux-like /proc/self/exe."
+ procselfexe='"/proc/self/exe"'
+ val="$define"
+ fi
+ fi
+ if $issymlink /proc/curproc/file ; then
+ $ls -l /proc/curproc/file > reflect
+ if $contains /`basename $ls` reflect >/dev/null 2>&1; then
+ echo "You have BSD-like /proc/curproc/file."
+ procselfexe='"/proc/curproc/file"'
+ val="$define"
+ fi
+ fi
+ ;;
+esac
+$rm -f reflect
+set d_procselfexe
+eval $setvar
+
+: see whether the pthread_atfork exists
+$cat >try.c <<EOP
+#include <pthread.h>
+#include <stdio.h>
+int main() {
+#ifdef PTHREAD_ATFORK
+ pthread_atfork(NULL,NULL,NULL);
+#endif
+}
+EOP
+
+: see if pthread_atfork exists
+set try -DPTHREAD_ATFORK
+if eval $compile; then
+ val="$define"
+else
+ val="$undef"
+fi
+case "$usethreads" in
+$define)
+ case "$val" in
+ $define) echo 'pthread_atfork found.' >&4 ;;
+ *) echo 'pthread_atfork NOT found.' >&4 ;;
+ esac
+esac
+set d_pthread_atfork
+eval $setvar
+
: see whether the various POSIXish _yields exist
$cat >try.c <<EOP
$rm -f try try.*
-: see if this is a pwd.h system
-set pwd.h i_pwd
-eval $inhdr
-
-case "$i_pwd" in
-$define)
- xxx=`./findhdr pwd.h`
- $cppstdin $cppflags $cppminus < $xxx >$$.h
-
- if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwquota
- eval $setvar
-
- if $contains 'pw_age' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwage
- eval $setvar
-
- if $contains 'pw_change' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwchange
- eval $setvar
-
- if $contains 'pw_class' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwclass
- eval $setvar
-
- if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwexpire
- eval $setvar
-
- if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwcomment
- eval $setvar
-
- if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwgecos
- eval $setvar
-
- if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
- val="$define"
- else
- val="$undef"
- fi
- set d_pwpasswd
- eval $setvar
-
- $rm -f $$.h
+: see if random_r exists
+set random_r d_random_r
+eval $inlibc
+case "$d_random_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
+ case "$d_random_r_proto:$usethreads" in
+ ":define") d_random_r_proto=define
+ set d_random_r_proto random_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_random_r_proto" in
+ define)
+ case "$random_r_proto" in
+ ''|0) try='int random_r(int*, struct random_data*);'
+ ./protochk "extern $try" $hdrs && random_r_proto=I_TS ;;
+ esac
+ case "$random_r_proto" in
+ ''|0) d_random_r=undef
+ random_r_proto=0
+ echo "Disabling random_r, cannot determine prototype." >&4 ;;
+ * ) case "$random_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) random_r_proto="REENTRANT_PROTO_$random_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
;;
-*)
- val="$undef";
- set d_pwquota; eval $setvar
- set d_pwage; eval $setvar
- set d_pwchange; eval $setvar
- set d_pwclass; eval $setvar
- set d_pwexpire; eval $setvar
- set d_pwcomment; eval $setvar
- set d_pwgecos; eval $setvar
- set d_pwpasswd; eval $setvar
+ *) case "$usethreads" in
+ define) echo "random_r has no prototype, not using it." >&4 ;;
+ esac
+ d_random_r=undef
+ random_r_proto=0
+ ;;
+ esac
+ ;;
+*) random_r_proto=0
;;
esac
set rewinddir d_rewinddir
eval $inlibc
-: see if readlink exists
-set readlink d_readlink
+: see if readdir64_r exists
+set readdir64_r d_readdir64_r
+eval $inlibc
+case "$d_readdir64_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
+ case "$d_readdir64_r_proto:$usethreads" in
+ ":define") d_readdir64_r_proto=define
+ set d_readdir64_r_proto readdir64_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_readdir64_r_proto" in
+ define)
+ case "$readdir64_r_proto" in
+ ''|0) try='int readdir64_r(DIR*, struct dirent64*, struct dirent64**);'
+ ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TSR ;;
+ esac
+ case "$readdir64_r_proto" in
+ ''|0) try='int readdir64_r(DIR*, struct dirent64*);'
+ ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;;
+ esac
+ case "$readdir64_r_proto" in
+ ''|0) d_readdir64_r=undef
+ readdir64_r_proto=0
+ echo "Disabling readdir64_r, cannot determine prototype." >&4 ;;
+ * ) case "$readdir64_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) readdir64_r_proto="REENTRANT_PROTO_$readdir64_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "readdir64_r has no prototype, not using it." >&4 ;;
+ esac
+ d_readdir64_r=undef
+ readdir64_r_proto=0
+ ;;
+ esac
+ ;;
+*) readdir64_r_proto=0
+ ;;
+esac
+
+: see if readdir_r exists
+set readdir_r d_readdir_r
eval $inlibc
+case "$d_readdir_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
+ case "$d_readdir_r_proto:$usethreads" in
+ ":define") d_readdir_r_proto=define
+ set d_readdir_r_proto readdir_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_readdir_r_proto" in
+ define)
+ case "$readdir_r_proto" in
+ ''|0) try='int readdir_r(DIR*, struct dirent*, struct dirent**);'
+ ./protochk "extern $try" $hdrs && readdir_r_proto=I_TSR ;;
+ esac
+ case "$readdir_r_proto" in
+ ''|0) try='int readdir_r(DIR*, struct dirent*);'
+ ./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;;
+ esac
+ case "$readdir_r_proto" in
+ ''|0) d_readdir_r=undef
+ readdir_r_proto=0
+ echo "Disabling readdir_r, cannot determine prototype." >&4 ;;
+ * ) case "$readdir_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) readdir_r_proto="REENTRANT_PROTO_$readdir_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "readdir_r has no prototype, not using it." >&4 ;;
+ esac
+ d_readdir_r=undef
+ readdir_r_proto=0
+ ;;
+ esac
+ ;;
+*) readdir_r_proto=0
+ ;;
+esac
: see if readv exists
set readv d_readv
eval $setvar
: can bcopy handle overlapping blocks?
+echo " "
val="$undef"
-case "$d_bcopy" in
-"$define")
- echo " "
- echo "Checking to see if your bcopy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
+case "$d_memmove" in
+"$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
+*) case "$d_bcopy" in
+ "$define")
+ echo "Checking to see if bcopy() can do overlapping copies..." >&4
+ $cat >try.c <<EOCP
#$i_memory I_MEMORY
#$i_stdlib I_STDLIB
#$i_string I_STRING
int off;
int align;
+/* Copy "abcde..." string to char abc[] so that gcc doesn't
+ try to store the string in read-only memory. */
bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
for (align = 7; align >= 0; align--) {
exit(0);
}
EOCP
- set try
- if eval $compile_ok; then
- if ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
+ set try
+ if eval $compile_ok; then
+ if ./try 2>/dev/null; then
+ echo "Yes, it can."
+ val="$define"
+ else
+ echo "It can't, sorry."
+ fi
else
- echo "It can't, sorry."
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
+ echo "(I can't compile the test program, so we'll assume not...)"
fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
- fi
+ ;;
+ esac
+ $rm -f try.* try core
;;
esac
-$rm -f try.* try core
set d_safebcpy
eval $setvar
: can memcpy handle overlapping blocks?
+echo " "
val="$undef"
-case "$d_memcpy" in
-"$define")
- echo " "
- echo "Checking to see if your memcpy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
+case "$d_memmove" in
+"$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
+*) case "$d_memcpy" in
+ "$define")
+ echo "Checking to see if memcpy() can do overlapping copies..." >&4
+ $cat >try.c <<EOCP
#$i_memory I_MEMORY
#$i_stdlib I_STDLIB
#$i_string I_STRING
exit(0);
}
EOCP
- set try
- if eval $compile_ok; then
- if ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
+ set try
+ if eval $compile_ok; then
+ if ./try 2>/dev/null; then
+ echo "Yes, it can."
+ val="$define"
+ else
+ echo "It can't, sorry."
+ fi
else
- echo "It can't, sorry."
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
+ echo "(I can't compile the test program, so we'll assume not...)"
fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
- fi
+ ;;
+ esac
+ $rm -f try.* try core
;;
esac
-$rm -f try.* try core
set d_safemcpy
eval $setvar
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
val="$undef"
set try
if eval $compile; then
- xxx=`./try`
+ xxx=`$run ./try`
case "$xxx" in
semun) val="$define" ;;
esac
val="$undef"
set try
if eval $compile; then
- xxx=`./try`
+ xxx=`$run ./try`
case "$xxx" in
semid_ds) val="$define" ;;
esac
set setgrent d_setgrent
eval $inlibc
+: see if setgrent_r exists
+set setgrent_r d_setgrent_r
+eval $inlibc
+case "$d_setgrent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
+ case "$d_setgrent_r_proto:$usethreads" in
+ ":define") d_setgrent_r_proto=define
+ set d_setgrent_r_proto setgrent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_setgrent_r_proto" in
+ define)
+ case "$setgrent_r_proto" in
+ ''|0) try='int setgrent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && setgrent_r_proto=I_H ;;
+ esac
+ case "$setgrent_r_proto" in
+ ''|0) try='void setgrent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && setgrent_r_proto=V_H ;;
+ esac
+ case "$setgrent_r_proto" in
+ ''|0) d_setgrent_r=undef
+ setgrent_r_proto=0
+ echo "Disabling setgrent_r, cannot determine prototype." >&4 ;;
+ * ) case "$setgrent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) setgrent_r_proto="REENTRANT_PROTO_$setgrent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "setgrent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_setgrent_r=undef
+ setgrent_r_proto=0
+ ;;
+ esac
+ ;;
+*) setgrent_r_proto=0
+ ;;
+esac
+
: see if sethostent exists
set sethostent d_sethent
eval $inlibc
+: see if sethostent_r exists
+set sethostent_r d_sethostent_r
+eval $inlibc
+case "$d_sethostent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_sethostent_r_proto:$usethreads" in
+ ":define") d_sethostent_r_proto=define
+ set d_sethostent_r_proto sethostent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_sethostent_r_proto" in
+ define)
+ case "$sethostent_r_proto" in
+ ''|0) try='int sethostent_r(int, struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && sethostent_r_proto=I_ID ;;
+ esac
+ case "$sethostent_r_proto" in
+ ''|0) try='void sethostent_r(int, struct hostent_data*);'
+ ./protochk "extern $try" $hdrs && sethostent_r_proto=V_ID ;;
+ esac
+ case "$sethostent_r_proto" in
+ ''|0) d_sethostent_r=undef
+ sethostent_r_proto=0
+ echo "Disabling sethostent_r, cannot determine prototype." >&4 ;;
+ * ) case "$sethostent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) sethostent_r_proto="REENTRANT_PROTO_$sethostent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "sethostent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_sethostent_r=undef
+ sethostent_r_proto=0
+ ;;
+ esac
+ ;;
+*) sethostent_r_proto=0
+ ;;
+esac
+
: see if setitimer exists
set setitimer d_setitimer
eval $inlibc
set setlocale d_setlocale
eval $inlibc
+: see if locale.h is available
+set locale.h i_locale
+eval $inhdr
+
+: see if setlocale_r exists
+set setlocale_r d_setlocale_r
+eval $inlibc
+case "$d_setlocale_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_locale locale.h"
+ case "$d_setlocale_r_proto:$usethreads" in
+ ":define") d_setlocale_r_proto=define
+ set d_setlocale_r_proto setlocale_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_setlocale_r_proto" in
+ define)
+ case "$setlocale_r_proto" in
+ ''|0) try='int setlocale_r(int, const char*, char*, int);'
+ ./protochk "extern $try" $hdrs && setlocale_r_proto=I_ICBI ;;
+ esac
+ case "$setlocale_r_proto" in
+ ''|0) d_setlocale_r=undef
+ setlocale_r_proto=0
+ echo "Disabling setlocale_r, cannot determine prototype." >&4 ;;
+ * ) case "$setlocale_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) setlocale_r_proto="REENTRANT_PROTO_$setlocale_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "setlocale_r has no prototype, not using it." >&4 ;;
+ esac
+ d_setlocale_r=undef
+ setlocale_r_proto=0
+ ;;
+ esac
+ ;;
+*) setlocale_r_proto=0
+ ;;
+esac
+
: see if setnetent exists
set setnetent d_setnent
eval $inlibc
+: see if setnetent_r exists
+set setnetent_r d_setnetent_r
+eval $inlibc
+case "$d_setnetent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_setnetent_r_proto:$usethreads" in
+ ":define") d_setnetent_r_proto=define
+ set d_setnetent_r_proto setnetent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_setnetent_r_proto" in
+ define)
+ case "$setnetent_r_proto" in
+ ''|0) try='int setnetent_r(int, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && setnetent_r_proto=I_ID ;;
+ esac
+ case "$setnetent_r_proto" in
+ ''|0) try='void setnetent_r(int, struct netent_data*);'
+ ./protochk "extern $try" $hdrs && setnetent_r_proto=V_ID ;;
+ esac
+ case "$setnetent_r_proto" in
+ ''|0) d_setnetent_r=undef
+ setnetent_r_proto=0
+ echo "Disabling setnetent_r, cannot determine prototype." >&4 ;;
+ * ) case "$setnetent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) setnetent_r_proto="REENTRANT_PROTO_$setnetent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "setnetent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_setnetent_r=undef
+ setnetent_r_proto=0
+ ;;
+ esac
+ ;;
+*) setnetent_r_proto=0
+ ;;
+esac
+
: see if setprotoent exists
set setprotoent d_setpent
eval $inlibc
set setproctitle d_setproctitle
eval $inlibc
+: see if setprotoent_r exists
+set setprotoent_r d_setprotoent_r
+eval $inlibc
+case "$d_setprotoent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_setprotoent_r_proto:$usethreads" in
+ ":define") d_setprotoent_r_proto=define
+ set d_setprotoent_r_proto setprotoent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_setprotoent_r_proto" in
+ define)
+ case "$setprotoent_r_proto" in
+ ''|0) try='int setprotoent_r(int, struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && setprotoent_r_proto=I_ID ;;
+ esac
+ case "$setprotoent_r_proto" in
+ ''|0) try='void setprotoent_r(int, struct protoent_data*);'
+ ./protochk "extern $try" $hdrs && setprotoent_r_proto=V_ID ;;
+ esac
+ case "$setprotoent_r_proto" in
+ ''|0) d_setprotoent_r=undef
+ setprotoent_r_proto=0
+ echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;;
+ * ) case "$setprotoent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) setprotoent_r_proto="REENTRANT_PROTO_$setprotoent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "setprotoent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_setprotoent_r=undef
+ setprotoent_r_proto=0
+ ;;
+ esac
+ ;;
+*) setprotoent_r_proto=0
+ ;;
+esac
+
: see if setpwent exists
set setpwent d_setpwent
eval $inlibc
+: see if setpwent_r exists
+set setpwent_r d_setpwent_r
+eval $inlibc
+case "$d_setpwent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
+ case "$d_setpwent_r_proto:$usethreads" in
+ ":define") d_setpwent_r_proto=define
+ set d_setpwent_r_proto setpwent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_setpwent_r_proto" in
+ define)
+ case "$setpwent_r_proto" in
+ ''|0) try='int setpwent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && setpwent_r_proto=I_H ;;
+ esac
+ case "$setpwent_r_proto" in
+ ''|0) try='void setpwent_r(FILE**);'
+ ./protochk "extern $try" $hdrs && setpwent_r_proto=V_H ;;
+ esac
+ case "$setpwent_r_proto" in
+ ''|0) d_setpwent_r=undef
+ setpwent_r_proto=0
+ echo "Disabling setpwent_r, cannot determine prototype." >&4 ;;
+ * ) case "$setpwent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) setpwent_r_proto="REENTRANT_PROTO_$setpwent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "setpwent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_setpwent_r=undef
+ setpwent_r_proto=0
+ ;;
+ esac
+ ;;
+*) setpwent_r_proto=0
+ ;;
+esac
+
: see if setregid exists
set setregid d_setregid
eval $inlibc
set setservent d_setsent
eval $inlibc
+: see if setservent_r exists
+set setservent_r d_setservent_r
+eval $inlibc
+case "$d_setservent_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
+ case "$d_setservent_r_proto:$usethreads" in
+ ":define") d_setservent_r_proto=define
+ set d_setservent_r_proto setservent_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_setservent_r_proto" in
+ define)
+ case "$setservent_r_proto" in
+ ''|0) try='int setservent_r(int, struct servent_data*);'
+ ./protochk "extern $try" $hdrs && setservent_r_proto=I_ID ;;
+ esac
+ case "$setservent_r_proto" in
+ ''|0) try='void setservent_r(int, struct servent_data*);'
+ ./protochk "extern $try" $hdrs && setservent_r_proto=V_ID ;;
+ esac
+ case "$setservent_r_proto" in
+ ''|0) d_setservent_r=undef
+ setservent_r_proto=0
+ echo "Disabling setservent_r, cannot determine prototype." >&4 ;;
+ * ) case "$setservent_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) setservent_r_proto="REENTRANT_PROTO_$setservent_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "setservent_r has no prototype, not using it." >&4 ;;
+ esac
+ d_setservent_r=undef
+ setservent_r_proto=0
+ ;;
+ esac
+ ;;
+*) setservent_r_proto=0
+ ;;
+esac
+
: see if setsid exists
set setsid d_setsid
eval $inlibc
case "$d_sfio" in
$define) ;;
*) : Remove sfio from list of libraries to use
- set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
- shift
- libs="$*"
- echo "libs = $libs" >&4
+ case "$libs" in
+ *-lsfio*)
+ echo "Removing unneeded -lsfio from library list" >&4
+ set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
+ shift
+ libs="$*"
+ echo "libs = $libs" >&4
+ ;;
+ esac
;;
esac
EOP
set try
if eval $compile; then
- if ./try >/dev/null 2>&1; then
+ if $run ./try >/dev/null 2>&1; then
echo "POSIX sigsetjmp found." >&4
val="$define"
else
set sockatmark d_sockatmark
eval $inlibc
+: see if prototype for sockatmark is available
+echo " "
+set d_sockatmarkproto sockatmark $d_socket sys/socket.h
+eval $hasproto
+
: see if socks5_init exists
set socks5_init d_socks5_init
eval $inlibc
+: see if srand48_r exists
+set srand48_r d_srand48_r
+eval $inlibc
+case "$d_srand48_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
+ case "$d_srand48_r_proto:$usethreads" in
+ ":define") d_srand48_r_proto=define
+ set d_srand48_r_proto srand48_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_srand48_r_proto" in
+ define)
+ case "$srand48_r_proto" in
+ ''|0) try='int srand48_r(long, struct drand48_data*);'
+ ./protochk "extern $try" $hdrs && srand48_r_proto=I_LS ;;
+ esac
+ case "$srand48_r_proto" in
+ ''|0) d_srand48_r=undef
+ srand48_r_proto=0
+ echo "Disabling srand48_r, cannot determine prototype." >&4 ;;
+ * ) case "$srand48_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) srand48_r_proto="REENTRANT_PROTO_$srand48_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "srand48_r has no prototype, not using it." >&4 ;;
+ esac
+ d_srand48_r=undef
+ srand48_r_proto=0
+ ;;
+ esac
+ ;;
+*) srand48_r_proto=0
+ ;;
+esac
+
+: see if srandom_r exists
+set srandom_r d_srandom_r
+eval $inlibc
+case "$d_srandom_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
+ case "$d_srandom_r_proto:$usethreads" in
+ ":define") d_srandom_r_proto=define
+ set d_srandom_r_proto srandom_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_srandom_r_proto" in
+ define)
+ case "$srandom_r_proto" in
+ ''|0) try='int srandom_r(unsigned int, struct random_data*);'
+ ./protochk "extern $try" $hdrs && srandom_r_proto=I_TS ;;
+ esac
+ case "$srandom_r_proto" in
+ ''|0) d_srandom_r=undef
+ srandom_r_proto=0
+ echo "Disabling srandom_r, cannot determine prototype." >&4 ;;
+ * ) case "$srandom_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) srandom_r_proto="REENTRANT_PROTO_$srandom_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "srandom_r has no prototype, not using it." >&4 ;;
+ esac
+ d_srandom_r=undef
+ srandom_r_proto=0
+ ;;
+ esac
+ ;;
+*) srandom_r_proto=0
+ ;;
+esac
+
+: see if prototype for setresgid is available
+echo " "
+set d_sresgproto setresgid $i_unistd unistd.h
+eval $hasproto
+
+: see if prototype for setresuid is available
+echo " "
+set d_sresuproto setresuid $i_unistd unistd.h
+eval $hasproto
+
: see if sys/stat.h is available
set sys/stat.h i_sysstat
eval $inhdr
EOP
val="$undef"
set try
-if eval $compile; then
- if ./try; then
+if eval $compile && $to try.c; then
+ if $run ./try; then
echo "Your stdio acts pretty std."
val="$define"
else
echo "Your stdio doesn't appear very std."
fi
$rm -f try.c try
+
+# glibc 2.2.90 and above apparently change stdio streams so Perl's
+# direct buffer manipulation no longer works. The Configure tests
+# should be changed to correctly detect this, but until then,
+# the following check should at least let perl compile and run.
+# (This quick fix should be updated before 5.8.1.)
+# To be defensive, reject all unknown versions, and all versions > 2.2.9.
+# A. Dougherty, June 3, 2002.
+case "$d_gnulibc" in
+$define)
+ case "$gnulibc_version" in
+ 2.[01]*) ;;
+ 2.2) ;;
+ 2.2.[0-9]) ;;
+ *) echo "But I will not snoop inside glibc $gnulibc_version stdio buffers."
+ val="$undef"
+ ;;
+ esac
+ ;;
+esac
set d_stdstdio
eval $setvar
}
EOP
set try
- if eval $compile; then
- case `./try$exe_ext` in
+ if eval $compile && $to try.c; then
+ case `$run ./try` in
Pass_changed)
echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
d_stdio_ptr_lval_sets_cnt="$define" ;;
}
EOP
set try
- if eval $compile; then
- if ./try; then
+ if eval $compile && $to try.c; then
+ if $run ./try; then
echo "And its _base field acts std."
val="$define"
else
do
set try -DSTDIO_STREAM_ARRAY=$s
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
yes) stdio_stream_array=$s; break ;;
esac
fi
fi
fi
+: see if strerror_r exists
+set strerror_r d_strerror_r
+eval $inlibc
+case "$d_strerror_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_string string.h"
+ case "$d_strerror_r_proto:$usethreads" in
+ ":define") d_strerror_r_proto=define
+ set d_strerror_r_proto strerror_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_strerror_r_proto" in
+ define)
+ case "$strerror_r_proto" in
+ ''|0) try='int strerror_r(int, char*, size_t);'
+ ./protochk "extern $try" $hdrs && strerror_r_proto=I_IBW ;;
+ esac
+ case "$strerror_r_proto" in
+ ''|0) try='int strerror_r(int, char*, int);'
+ ./protochk "extern $try" $hdrs && strerror_r_proto=I_IBI ;;
+ esac
+ case "$strerror_r_proto" in
+ ''|0) try='char* strerror_r(int, char*, size_t);'
+ ./protochk "extern $try" $hdrs && strerror_r_proto=B_IBW ;;
+ esac
+ case "$strerror_r_proto" in
+ ''|0) d_strerror_r=undef
+ strerror_r_proto=0
+ echo "Disabling strerror_r, cannot determine prototype." >&4 ;;
+ * ) case "$strerror_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) strerror_r_proto="REENTRANT_PROTO_$strerror_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "strerror_r has no prototype, not using it." >&4 ;;
+ esac
+ d_strerror_r=undef
+ strerror_r_proto=0
+ ;;
+ esac
+ ;;
+*) strerror_r_proto=0
+ ;;
+esac
+
: see if strftime exists
set strftime d_strftime
eval $inlibc
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
ok) echo "Your strtoll() seems to be working okay." ;;
*) cat <<EOM >&4
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtoul() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtoul() doesn't seem to be working okay.
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtoull() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtoull() doesn't seem to be working okay.
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtouq() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtouq() doesn't seem to be working okay.
set syscall d_syscall
eval $inlibc
+: see if prototype for syscall is available
+echo " "
+set d_syscallproto syscall $i_unistd unistd.h
+eval $hasproto
+
: see if sysconf exists
set sysconf d_sysconf
eval $inlibc
set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
eval $hasproto
+: see if time exists
+echo " "
+if test "X$d_time" = X -o X"$timetype" = X; then
+ if set time val -f d_time; eval $csym; $val; then
+ echo 'time() found.' >&4
+ val="$define"
+ rp="What is the type returned by time() on this system?"
+ set time_t timetype long stdio.h sys/types.h
+ eval $typedef_ask
+ else
+ echo 'time() not found, hope that will do.' >&4
+ val="$undef"
+ timetype='int';
+ fi
+ set d_time
+ eval $setvar
+fi
+
: see if this is a sys/times.h system
set sys/times.h i_systimes
eval $inhdr
clocktype='int'
fi
+: see if tmpnam_r exists
+set tmpnam_r d_tmpnam_r
+eval $inlibc
+case "$d_tmpnam_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h "
+ case "$d_tmpnam_r_proto:$usethreads" in
+ ":define") d_tmpnam_r_proto=define
+ set d_tmpnam_r_proto tmpnam_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_tmpnam_r_proto" in
+ define)
+ case "$tmpnam_r_proto" in
+ ''|0) try='char* tmpnam_r(char*);'
+ ./protochk "extern $try" $hdrs && tmpnam_r_proto=B_B ;;
+ esac
+ case "$tmpnam_r_proto" in
+ ''|0) d_tmpnam_r=undef
+ tmpnam_r_proto=0
+ echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;;
+ * ) case "$tmpnam_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) tmpnam_r_proto="REENTRANT_PROTO_$tmpnam_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "tmpnam_r has no prototype, not using it." >&4 ;;
+ esac
+ d_tmpnam_r=undef
+ tmpnam_r_proto=0
+ ;;
+ esac
+ ;;
+*) tmpnam_r_proto=0
+ ;;
+esac
+
: see if truncate exists
set truncate d_truncate
eval $inlibc
+: see if ttyname_r exists
+set ttyname_r d_ttyname_r
+eval $inlibc
+case "$d_ttyname_r" in
+"$define")
+ hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h"
+ case "$d_ttyname_r_proto:$usethreads" in
+ ":define") d_ttyname_r_proto=define
+ set d_ttyname_r_proto ttyname_r $hdrs
+ eval $hasproto ;;
+ *) ;;
+ esac
+ case "$d_ttyname_r_proto" in
+ define)
+ case "$ttyname_r_proto" in
+ ''|0) try='int ttyname_r(int, char*, size_t);'
+ ./protochk "extern $try" $hdrs && ttyname_r_proto=I_IBW ;;
+ esac
+ case "$ttyname_r_proto" in
+ ''|0) try='int ttyname_r(int, char*, int);'
+ ./protochk "extern $try" $hdrs && ttyname_r_proto=I_IBI ;;
+ esac
+ case "$ttyname_r_proto" in
+ ''|0) try='char* ttyname_r(int, char*, int);'
+ ./protochk "extern $try" $hdrs && ttyname_r_proto=B_IBI ;;
+ esac
+ case "$ttyname_r_proto" in
+ ''|0) d_ttyname_r=undef
+ ttyname_r_proto=0
+ echo "Disabling ttyname_r, cannot determine prototype." >&4 ;;
+ * ) case "$ttyname_r_proto" in
+ REENTRANT_PROTO*) ;;
+ *) ttyname_r_proto="REENTRANT_PROTO_$ttyname_r_proto" ;;
+ esac
+ echo "Prototype: $try" ;;
+ esac
+ ;;
+ *) case "$usethreads" in
+ define) echo "ttyname_r has no prototype, not using it." >&4 ;;
+ esac
+ d_ttyname_r=undef
+ ttyname_r_proto=0
+ ;;
+ esac
+ ;;
+*) ttyname_r_proto=0
+ ;;
+esac
+
: see if tzname[] exists
echo " "
if set tzname val -a d_tzname; eval $csym; $val; then
set d_tzname
eval $setvar
-case "$crosscompile" in
-''|[nN]*) crosscompile="$undef" ;;
-esac
-
case "$osname" in
next|rhapsody|darwin) multiarch="$define" ;;
esac
''|[nN]*) multiarch="$undef" ;;
esac
-: check for ordering of bytes in a long
+: check for ordering of bytes in a UV
echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
*$define*)
$cat <<EOM
You seem to be either cross-compiling or doing a multiarchitecture build,
skipping the byteorder check.
EOM
- byteorder='0xffff'
+ byteorder='ffff'
;;
*)
case "$byteorder" in
probably right.
I'm now running the test program...
EOM
- $cat >try.c <<'EOCP'
+ $cat >try.c <<EOCP
#include <stdio.h>
+#include <sys/types.h>
+typedef $uvtype UV;
int main()
{
int i;
union {
- unsigned long l;
- char c[sizeof(long)];
+ UV l;
+ char c[$uvsize];
} u;
- if (sizeof(long) > 4)
- u.l = (0x08070605L << 32) | 0x04030201L;
+ if ($uvsize > 4)
+ u.l = (((UV)0x08070605) << 32) | (UV)0x04030201;
else
- u.l = 0x04030201L;
- for (i = 0; i < sizeof(long); i++)
+ u.l = (UV)0x04030201;
+ for (i = 0; i < $uvsize; i++)
printf("%c", u.c[i]+'0');
printf("\n");
exit(0);
xxx_prompt=y
set try
if eval $compile && ./try > /dev/null; then
- dflt=`./try`
+ dflt=`$run ./try`
case "$dflt" in
[1-4][1-4][1-4][1-4]|12345678|87654321)
echo "(The test program ran ok.)"
fi
case "$xxx_prompt" in
y)
- rp="What is the order of bytes in a long?"
+ rp="What is the order of bytes in $uvtype?"
. ./myread
byteorder="$ans"
;;
Checking to see whether you can access character data unalignedly...
EOM
-$cat >try.c <<EOCP
+case "$d_u32align" in
+'') $cat >try.c <<EOCP
#include <stdio.h>
#define U32 $u32type
-#define BYTEORDER $byteorder
+#define BYTEORDER 0x$byteorder
+#define U8 $u8type
+#include <signal.h>
+#ifdef SIGBUS
+$signal_t bletch(s) int s; { exit(4); }
+#endif
int main() {
#if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
- U8 buf[] = "\0\0\0\1\0\0\0\0";
+ U8 buf[8];
U32 *up;
int i;
fflush(stdout);
+#ifdef SIGBUS
+ signal(SIGBUS, bletch);
+#endif
+
+ buf[0] = 0;
+ buf[1] = 0;
+ buf[2] = 0;
+ buf[3] = 1;
+ buf[5] = 0;
+ buf[6] = 0;
+ buf[7] = 0;
+ buf[8] = 1;
+
for (i = 0; i < 4; i++) {
up = (U32*)(buf + i);
if (! ((*up == 1 << (8*i)) || /* big-endian */
EOCP
set try
if eval $compile_ok; then
- echo "(This test may dump core.)" >&4
- ./try >&2 >/dev/null
+ echo "(Testing for character data alignment may crash the test. That's okay.)" >&4
+ $run ./try 2>&1 >/dev/null
case "$?" in
0) cat >&4 <<EOM
You can access character data pretty unalignedly.
d_u32align="$define"
;;
esac
- $rm -f core core.try.* try.core
else
rp='Can you access character data at unaligned addresses?'
dflt='n'
*) d_u32align="$define" ;;
esac
fi
+$rm -f core core.try.* try.core
+;;
+esac
: see if ualarm exists
set ualarm d_ualarm
set umask d_umask
eval $inlibc
+: see if unordered exists
+set unordered d_unordered
+eval $inlibc
+
: see if usleep exists
set usleep d_usleep
eval $inlibc
+: see if prototype for usleep is available
+echo " "
+set d_usleepproto usleep $i_unistd unistd.h
+eval $hasproto
+
: see if ustat exists
set ustat d_ustat
eval $inlibc
*) usevfork='false';;
esac
-: see if this is an sysdir system
-set sys/dir.h i_sysdir
-eval $inhdr
-
-: see if this is an sysndir system
-set sys/ndir.h i_sysndir
-eval $inhdr
-
: see if closedir exists
set closedir d_closedir
eval $inlibc
"$define")
echo " "
echo "Checking whether closedir() returns a status..." >&4
- cat > closedir.c <<EOM
+ cat > try.c <<EOM
#$i_dirent I_DIRENT /**/
#$i_sysdir I_SYS_DIR /**/
#$i_sysndir I_SYS_NDIR /**/
#endif
int main() { return closedir(opendir(".")); }
EOM
- set closedir
+ set try
if eval $compile_ok; then
- if ./closedir > /dev/null 2>&1 ; then
+ if $run ./try > /dev/null 2>&1 ; then
echo "Yes, it does."
val="$undef"
else
esac
set d_void_closedir
eval $setvar
-$rm -f closedir*
+$rm -f try try.*
: see if there is a wait4
set wait4 d_wait4
eval $inlibc
: check for alignment requirements
echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
*$define*)
$cat <<EOM
You seem to be either cross-compiling or doing a multiarchitecture build,
EOCP
set try
if eval $compile_ok; then
- dflt=`./try`
+ dflt=`$run ./try`
else
dflt='8'
echo "(I can't seem to compile the test program...)"
#include <sys/types.h>
#include <stdio.h>
#include <db.h>
-int main()
+int main(int argc, char *argv[])
{
#ifdef DB_VERSION_MAJOR /* DB version >= 2 */
int Major, Minor, Patch ;
unsigned long Version ;
(void)db_version(&Major, &Minor, &Patch) ;
- printf("You have Berkeley DB Version 2 or greater\n");
+ if (argc == 2) {
+ printf("%d %d %d %d %d %d\n",
+ DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+ Major, Minor, Patch);
+ exit(0);
+ }
+ printf("You have Berkeley DB Version 2 or greater.\n");
printf("db.h is from Berkeley DB Version %d.%d.%d\n",
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
/* check that db.h & libdb are compatible */
if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
- printf("db.h and libdb are incompatible\n") ;
+ printf("db.h and libdb are incompatible.\n") ;
exit(3);
}
- printf("db.h and libdb are compatible\n") ;
+ printf("db.h and libdb are compatible.\n") ;
Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
+ DB_VERSION_PATCH ;
/* needs to be >= 2.3.4 */
if (Version < 2003004) {
/* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
- printf("but Perl needs Berkeley DB 2.3.4 or greater\n") ;
+ printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
exit(2);
}
exit(0);
#else
#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
- printf("You have Berkeley DB Version 1\n");
+ if (argc == 2) {
+ printf("1 0 0\n");
+ exit(0);
+ }
+ printf("You have Berkeley DB Version 1.\n");
exit(0); /* DB version < 2: the coast is clear. */
#else
exit(1); /* <db.h> not Berkeley DB? */
}
EOCP
set try
- if eval $compile_ok && ./try; then
+ if eval $compile_ok && $run ./try; then
echo 'Looks OK.' >&4
+ set `$run ./try 1`
+ db_version_major=$1
+ db_version_minor=$2
+ db_version_patch=$3
else
echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
i_db=$undef
echo " "
echo "Determining whether or not we are on an EBCDIC system..." >&4
-$cat >tebcdic.c <<'EOM'
+$cat >try.c <<'EOM'
int main()
{
if ('M'==0xd4) return 0;
EOM
val=$undef
-set tebcdic
+set try
if eval $compile_ok; then
- if ./tebcdic; then
+ if $run ./try; then
echo "You seem to speak EBCDIC." >&4
val="$define"
else
- echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4
+ echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
fi
else
echo "I'm unable to compile the test program." >&4
echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
fi
-$rm -f tebcdic.c tebcdic
+$rm -f try try.*
set ebcdic
eval $setvar
# define STDIO_STREAM_ARRAY $stdio_stream_array
#endif
int main() {
- FILE* p = fopen("try.out", "w");
+ FILE* p;
+ unlink("try.out");
+ p = fopen("try.out", "w");
#ifdef TRY_FPUTC
fputc('x', p);
#else
}
EOCP
: first we have to find out how _not_ to flush
+$to try.c
if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
output=''
set try -DTRY_FPUTC
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test ! -s try.out -a "X$?" = X42; then
+ $run ./try 2>/dev/null
+ code="$?"
+ $from try.out
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPUTC
fi
fi
case "$output" in
'')
set try -DTRY_FPRINTF
- $rm -f try.out
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test ! -s try.out -a "X$?" = X42; then
+ $run ./try 2>/dev/null
+ code="$?"
+ $from try.out
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPRINTF
fi
fi
case "$fflushNULL" in
'') set try -DTRY_FFLUSH_NULL $output
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
+ $run ./try 2>/dev/null
code="$?"
+ $from try.out
if $test -s try.out -a "X$code" = X42; then
fflushNULL="`$cat try.out`"
else
set tryp
if eval $compile; then
$rm -f tryp.out
- $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+ $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
if cmp tryp.c tryp.out >/dev/null 2>&1; then
$cat >&4 <<EOM
fflush(NULL) seems to behave okay with input streams.
set tryp
if eval $compile; then
$rm -f tryp.out
- $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+ $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
if cmp tryp.c tryp.out >/dev/null 2>&1; then
$cat >&4 <<EOM
Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
$cat >&4 <<EOM
(Now testing the other method--but note that this also may fail.)
EOM
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test -s try.out -a "X$?" = X42; then
+ $run ./try 2>/dev/null
+ code=$?
+ $from try.out
+ if $test -s try.out -a "X$code" = X42; then
fflushall="`$cat try.out`"
fi
fi
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') gidsize=4
echo "(I can't execute the test program--guessing $gidsize.)" >&4
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') gidsign=1
echo "(I can't execute the test program--guessing unsigned.)" >&4
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
fi
fi
-if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
- $cat >try.c <<'EOCP'
+if $test X"$sPRId64" = X -a X"$quadtype" != X; then
+ $cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
int main() {
- long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
- printf("%lld\n", q);
+ $quadtype q = 12345678901;
+ printf("%Ld\n", q);
}
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
- sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
- sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
- echo "We will use the %lld style."
+ sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
+ sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
+ echo "We will use %Ld."
;;
esac
fi
fi
-if $test X"$sPRId64" = X -a X"$quadtype" != X; then
- $cat >try.c <<EOCP
+if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
+ $cat >try.c <<'EOCP'
#include <sys/types.h>
#include <stdio.h>
int main() {
- $quadtype q = 12345678901;
- printf("%Ld\n", q);
+ long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
+ printf("%lld\n", q);
}
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
- sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
- sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
- echo "We will use %Ld."
+ sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
+ sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
+ echo "We will use the %lld style."
;;
esac
fi
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
fi
case "$ivdformat" in
-'') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4
+'') echo "$0: Fatal: failed to find format strings, cannot continue." >&4
exit 1
;;
esac
}
EOCP
set try
- if eval $compile && ./try 2>&1 >/dev/null; then
- case "`./try`" in
+ if eval $compile && $run ./try 2>&1 >/dev/null; then
+ case "`$run ./try`" in
"that's all right, then")
okay=yes
;;
;;
esac
-: define a fucntion to check prototypes
-$cat > protochk <<EOSH
-$startsh
-cc="$cc"
-optimize="$optimize"
-ccflags="$ccflags"
-prototype="$prototype"
-define="$define"
-rm=$rm
-EOSH
-
-$cat >> protochk <<'EOSH'
-
-$rm -f try.c
-foo="$1"
-shift
-while test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>" >> try.c ;;
- literal) echo "$2" >> try.c ;;
- esac
- shift 2
-done
-test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
-cat >> try.c <<'EOCP'
-#ifdef CAN_PROTOTYPE
-#define _(args) args
-#else
-#define _(args) ()
-#endif
-EOCP
-echo "$foo" >> try.c
-echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
-$cc $optimize $ccflags -c try.c > /dev/null 2>&1
-status=$?
-$rm -f try.[co]
-exit $status
-EOSH
-chmod +x protochk
-$eunicefix protochk
-
: see what type is used for size_t
rp="What is the type used for the length parameter for string functions?"
set size_t sizetype 'unsigned int' stdio.h sys/types.h
esac
fi
: locate the preferred pager for this system
+fn=f/
case "$pager" in
'')
dflt=''
'') dflt=/usr/ucb/more;;
esac
;;
-*) dflt="$pager";;
+*) dflt="$pager"
+ : Instruct ./getfile to trust the hinted or previous pager value,
+ : even if it does not begin with a slash. For example, on os2,
+ : pager might be cmd /c more. See comments in UU/getfile.
+ fn="f/($pager)"
+ ;;
esac
echo " "
-fn=f/
rp='What pager is used on your system?'
. ./getfile
pager="$ans"
eval $typedef_ask
: Find earliest binary compatible site_perl subdirectory perl can use.
-case "$bincompat5005" in
-"$define") xs_apiversion='5.005' ;;
-*) xs_apiversion=$version ;; # The current site_perl version.
-esac
+xs_apiversion=$version # The current site_perl version.
: Find earliest pure perl site_perl subdirectory perl can use.
: The versioned directories started at 5.005.
pm_apiversion='5.005'
$cc $ccflags -c foo.c >/dev/null 2>&1
$ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- ./foobar >/dev/null 2>&1; then
+ $run ./foobar >/dev/null 2>&1; then
echo "$ar appears to generate random libraries itself."
orderlib=false
ranlib=":"
elif $ar ts bar$_a >/dev/null 2>&1 &&
$cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- ./foobar >/dev/null 2>&1; then
+ $run ./foobar >/dev/null 2>&1; then
echo "a table of contents needs to be added with '$ar ts'."
orderlib=false
ranlib="$ar ts"
EOCP
set try
if eval $compile_ok; then
- selectminbits=`./try`
+ selectminbits=`$run ./try`
case "$selectminbits" in
'') cat >&4 <<EOM
Cannot figure out on how many bits at a time your select() operates.
xxx=`echo '#include <signal.h>' |
$cppstdin $cppminus $cppflags 2>/dev/null |
$grep '^[ ]*#.*include' |
- $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sort | $uniq`
+ $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq`
fi
: Check this list of files to be sure we have parsed the cpp output ok.
: This will also avoid potentially non-existent files, such
set signal
if eval $compile_ok; then
- ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
+ $run ./signal$_exe | ($sort -n -k 2 2>/dev/null || $sort -n +1) | $uniq | $awk -f signal.awk >signal.lst
else
echo "(I can't seem be able to compile the whole test program)" >&4
echo "(I'll try it in little pieces.)" >&4
set signal -DJUST_NSIG
if eval $compile_ok; then
- ./signal$_exe > signal.nsg
+ $run ./signal$_exe > signal.nsg
$cat signal.nsg
else
echo "I can't seem to figure out how many signals you have." >&4
set signal
if eval $compile; then
echo "SIG${xx} found."
- ./signal$_exe >> signal.ls1
+ $run ./signal$_exe >> signal.ls1
else
echo "SIG${xx} NOT found."
fi
done
if $test -s signal.ls1; then
$cat signal.nsg signal.ls1 |
- $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
+ $sort -n | $uniq | $awk -f signal.awk >signal.lst
fi
fi
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') sizesize=4
echo "(I can't execute the test program--guessing $sizesize.)" >&4
set ssize_t ssizetype int stdio.h sys/types.h
eval $typedef
dflt="$ssizetype"
-$cat > ssize.c <<EOM
+$cat > try.c <<EOM
#include <stdio.h>
#include <sys/types.h>
#define Size_t $sizetype
}
EOM
echo " "
-set ssize
-if eval $compile_ok && ./ssize > /dev/null; then
- ssizetype=`./ssize`
+set try
+if eval $compile_ok && $run ./try > /dev/null; then
+ ssizetype=`$run ./try`
echo "I'll be using $ssizetype for functions returning a byte count." >&4
else
$cat >&4 <<EOM
. ./myread
ssizetype="$ans"
fi
-$rm -f ssize ssize.*
+$rm -f try try.*
: see what type of char stdio uses.
echo " "
-: see if time exists
-echo " "
-if test "X$d_time" = X -o X"$timetype" = X; then
- if set time val -f d_time; eval $csym; $val; then
- echo 'time() found.' >&4
- val="$define"
- rp="What is the type returned by time() on this system?"
- set time_t timetype long stdio.h sys/types.h
- eval $typedef_ask
- else
- echo 'time() not found, hope that will do.' >&4
- val="$undef"
- timetype='int';
- fi
- set d_time
- eval $setvar
-fi
-
: see what type uids are declared as in the kernel
echo " "
echo "Looking for the type for user ids returned by getuid()."
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') uidsize=4
echo "(I can't execute the test program--guessing $uidsize.)" >&4
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') uidsign=1
echo "(I can't execute the test program--guessing unsigned.)" >&4
esac
echo " "
comp='yacc'
-if $test -f "$byacc"; then
+if $test -f "$byacc$_exe"; then
dflt="$byacc"
comp="byacc or $comp"
fi
-if $test -f "$bison"; then
+if $test -f "$bison$_exe"; then
comp="$comp or bison -y"
fi
rp="Which compiler compiler ($comp) shall I use?"
;;
esac
-: see if dbm.h is available
-: see if dbmclose exists
-set dbmclose d_dbmclose
-eval $inlibc
-
-case "$d_dbmclose" in
-$define)
- set dbm.h i_dbm
- eval $inhdr
- case "$i_dbm" in
- $define)
- val="$undef"
- set i_rpcsvcdbm
- eval $setvar
- ;;
- *) set rpcsvc/dbm.h i_rpcsvcdbm
- eval $inhdr
- ;;
- esac
- ;;
-*) echo "We won't be including <dbm.h>"
- val="$undef"
- set i_dbm
- eval $setvar
- val="$undef"
- set i_rpcsvcdbm
- eval $setvar
- ;;
-esac
-
-: see if this is a sys/file.h system
-val=''
-set sys/file.h val
-eval $inhdr
-
-: do we need to include sys/file.h ?
-case "$val" in
-"$define")
- echo " "
- if $h_sysfile; then
- val="$define"
- echo "We'll be including <sys/file.h>." >&4
- else
- val="$undef"
- echo "We won't be including <sys/file.h>." >&4
- fi
- ;;
-*)
- h_sysfile=false
- ;;
-esac
-set i_sysfile
-eval $setvar
-
-: see if fcntl.h is there
-val=''
-set fcntl.h val
+: see if this is a fp.h system
+set fp.h i_fp
eval $inhdr
-: see if we can include fcntl.h
-case "$val" in
-"$define")
- echo " "
- if $h_fcntl; then
- val="$define"
- echo "We'll be including <fcntl.h>." >&4
- else
- val="$undef"
- if $h_sysfile; then
- echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
- else
- echo "We won't be including <fcntl.h>." >&4
- fi
- fi
- ;;
-*)
- h_fcntl=false
- val="$undef"
- ;;
-esac
-set i_fcntl
-eval $setvar
-
-: see if this is a iconv.h system
-set iconv.h i_iconv
+: see if this is a fp_class.h system
+set fp_class.h i_fp_class
eval $inhdr
: see if this is a ieeefp.h system
-set ieeefp.h i_ieeefp
-eval $inhdr
+case "$i_ieeefp" in
+'' ) set ieeefp.h i_ieeefp
+ eval $inhdr
+ ;;
+esac
: see if this is a libutil.h system
set libutil.h i_libutil
eval $inhdr
-: see if locale.h is available
-set locale.h i_locale
-eval $inhdr
-
: see if mach cthreads are available
if test "X$usethreads" = "X$define"; then
set mach/cthreads.h i_machcthr
: see if ndbm.h is available
set ndbm.h t_ndbm
eval $inhdr
+
+case "$t_ndbm" in
+$undef)
+ # Some Linux distributions such as RedHat 7.1 put the
+ # ndbm.h header in /usr/include/gdbm/ndbm.h.
+ if $test -f /usr/include/gdbm/ndbm.h; then
+ echo '<gdbm/ndbm.h> found.'
+ ccflags="$ccflags -I/usr/include/gdbm"
+ cppflags="$cppflags -I/usr/include/gdbm"
+ t_ndbm=$define
+ fi
+ ;;
+esac
+
case "$t_ndbm" in
$define)
: see if dbm_open exists
bull c cadmus clipper CMU COFF COMPILER_VERSION
concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX
CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
-Dynix DynixPTX ELF encore EPI EXTENSIONS FILE_OFFSET_BITS
-FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
-GNU_SOURCE GNUC GNUC_MINOR GO32 gould GOULD_PN
+Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD
+FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
+GLIBC GLIBC_MINOR
+GNU_SOURCE GNUC GNUC_MINOR GNU_LIBRARY GO32 gould GOULD_PN
H3050R H3050RX hbullx20 hcx host_mips
hp200 hp300 hp700 HP700 hp800 hp9000
hp9000s200 hp9000s300 hp9000s400 hp9000s500
tower32_800 tower32_850 tss
u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5
ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK
-unix UNIX95 UNIX99 unixpc unos USGr4 USGr4_2
+unix UNIX95 UNIX99 unixpc unos
+USE_BSD USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE USE_LARGEFILE64
+USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2
+USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED
+USGr4 USGr4_2
Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
EOSH
cat <<'EOSH' >> Cppsym.try
'length($1) > 0 {
- printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", %s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
- printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", _%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
- printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", __%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
- printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", __%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", (long)%s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", (long)_%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", (long)__%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", (long)__%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
}' >> try.c
-echo '}' >> try.c
+echo 'return 0;}' >> try.c
EOSH
cat <<EOSH >> Cppsym.try
ccflags="$ccflags"
irix-) ccflags="\$ccflags -woff 1178" ;;
os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
esac
-$cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext
+$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
EOSH
chmod +x Cppsym.try
$eunicefix Cppsym.try
do
case "\$i" in
-D*) echo "\$i" | $sed 's/^-D//';;
- -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';;
+ -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';;
esac
done
$rm -f try.c
$test "$silent" || sleep 1
fi
fi
-$rm -f ccsym* Cppsym.*
: see if this is a termio system
val="$undef"
val=$val2; set i_sgtty; eval $setvar
val=$val3; set i_termios; eval $setvar
-: see if this is a shadow.h system
-set shadow.h i_shadow
-eval $inhdr
-
: see if stddef is available
set stddef.h i_stddef
eval $inhdr
else
if $test -d $xxx -a $# -lt 10; then
set $1$xxx/ $*;
- cd $xxx;
+ cd "$xxx";
eval $find_extensions;
cd ..;
shift;
esac;
done'
tdir=`pwd`
-cd $rsrc/ext
+cd "$rsrc/ext"
set X
shift
eval $find_extensions
+# Special case: Add in threads/shared since it is not picked up by the
+# recursive find above (and adding in general recursive finding breaks
+# SDBM_File/sdbm). A.D. 10/25/2001.
+known_extensions="$known_extensions threads/shared"
set X $nonxs_extensions
shift
nonxs_extensions="$*"
set X $known_extensions
shift
known_extensions="$*"
-cd $tdir
+cd "$tdir"
: Now see which are supported on this system.
avail_ext=''
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
+ I18N/Langinfo|i18n_lan)
+ case "$i_langinfo$d_nl_langinfo" in
+ $define$define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
NDBM_File|ndbm_fil)
case "$i_ndbm" in
$define)
case "$osname-$use64bitint" in
- hpux-define)
+ cygwin-*|hpux-define)
case "$libs" in
*-lndbm*) avail_ext="$avail_ext $xxx" ;;
esac
case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*)
case "$osname-$use64bitint" in
- hpux-define)
+ cygwin-*|hpux-define)
case "$libs" in
*-ldbm*) avail_ext="$avail_ext $xxx" ;;
esac
;;
Socket|socket)
case "$d_socket" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
+ true|$define|y)
+ case "$osname" in
+ beos) ;; # not unless BONE
+ *) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
esac
;;
Sys/Syslog|sys/syslog)
esac
;;
Thread|thread)
- case "$usethreads" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
+ case "$usethreads" in
+ true|$define|y)
+ case "$useithreads" in
+ $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ esac
+ ;;
+ XS/APItest|xs/apitest)
+ # This is just for testing. Skip it unless we have dynamic loading.
+
+ case "$usedl" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ XS/Typemap|xs/typemap)
+ # This is just for testing. Skip it unless we have dynamic loading.
+ case "$usedl" in
+ $define) avail_ext="$avail_ext $xxx" ;;
esac
;;
+ threads|threads/shared)
+ # threads and threads::shared are special cases.
+ # To stop people from asking "Perl 5.8.0 was supposed
+ # to have this new fancy threads implementation but my
+ # perl doesn't have it" and from people trying to
+ # (re)install the threads module using CPAN.pm and
+ # CPAN.pm then offering to reinstall Perl 5.8.0,
+ # the threads.pm and threads/shared.pm will always be
+ # there, croaking informatively ("you need to rebuild
+ # all of Perl with threads, sorry") when threads haven't
+ # been compiled in.
+ # --jhi
+ avail_ext="$avail_ext $xxx"
+ ;;
IPC/SysV|ipc/sysv)
: XXX Do we need a useipcsysv variable here
case "${d_msg}${d_sem}${d_shm}" in
esac
;;
esac
+#
+# Encode is a special case. If we are building Encode as a static
+# extension, we need to explicitly list its subextensions as well.
+# For other nested extensions, this is handled automatically by
+# the appropriate Makefile.PL.
+case " $static_ext " in
+ *" Encode "*) # Add the subextensions of Encode
+ cd "$rsrc/ext"
+ for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do
+ static_ext="$static_ext Encode/$xxx"
+ done
+ cd "$tdir"
+ ;;
+esac
set X $dynamic_ext $static_ext $nonxs_ext
shift
cd ..
fi
+: configuration may be patched via a 'config.arch' file
+if $test -f config.arch; then
+ echo "I see a config.arch file, loading it."
+ . ./config.arch
+fi
+
: configuration may be patched via a 'config.over' file
if $test -f config.over; then
echo " "
_exe='$_exe'
_o='$_o'
afs='$afs'
+afsroot='$afsroot'
alignbytes='$alignbytes'
ansi2knr='$ansi2knr'
aphostname='$aphostname'
archname64='$archname64'
archname='$archname'
archobjs='$archobjs'
+asctime_r_proto='$asctime_r_proto'
awk='$awk'
baserev='$baserev'
bash='$bash'
bin='$bin'
-bincompat5005='$bincompat5005'
binexp='$binexp'
bison='$bison'
byacc='$byacc'
cpprun='$cpprun'
cppstdin='$cppstdin'
cppsymbols='$cppsymbols'
-crosscompile='$crosscompile'
+crypt_r_proto='$crypt_r_proto'
cryptlib='$cryptlib'
csh='$csh'
+ctermid_r_proto='$ctermid_r_proto'
+ctime_r_proto='$ctime_r_proto'
d_Gconvert='$d_Gconvert'
d_PRIEUldbl='$d_PRIEUldbl'
d_PRIFUldbl='$d_PRIFUldbl'
d_accessx='$d_accessx'
d_alarm='$d_alarm'
d_archlib='$d_archlib'
+d_asctime_r='$d_asctime_r'
d_atolf='$d_atolf'
d_atoll='$d_atoll'
d_attribut='$d_attribut'
d_bcmp='$d_bcmp'
d_bcopy='$d_bcopy'
-d_bincompat5005='$d_bincompat5005'
d_bsd='$d_bsd'
d_bsdgetpgrp='$d_bsdgetpgrp'
d_bsdsetpgrp='$d_bsdsetpgrp'
d_chown='$d_chown'
d_chroot='$d_chroot'
d_chsize='$d_chsize'
+d_class='$d_class'
d_closedir='$d_closedir'
d_cmsghdr_s='$d_cmsghdr_s'
d_const='$d_const'
d_crypt='$d_crypt'
+d_crypt_r='$d_crypt_r'
d_csh='$d_csh'
+d_ctermid_r='$d_ctermid_r'
+d_ctime_r='$d_ctime_r'
d_cuserid='$d_cuserid'
d_dbl_dig='$d_dbl_dig'
+d_dbminitproto='$d_dbminitproto'
d_difftime='$d_difftime'
+d_dirfd='$d_dirfd'
d_dirnamlen='$d_dirnamlen'
d_dlerror='$d_dlerror'
d_dlopen='$d_dlopen'
d_dlsymun='$d_dlsymun'
d_dosuid='$d_dosuid'
+d_drand48_r='$d_drand48_r'
d_drand48proto='$d_drand48proto'
d_dup2='$d_dup2'
d_eaccess='$d_eaccess'
d_endgrent='$d_endgrent'
+d_endgrent_r='$d_endgrent_r'
d_endhent='$d_endhent'
+d_endhostent_r='$d_endhostent_r'
d_endnent='$d_endnent'
+d_endnetent_r='$d_endnetent_r'
d_endpent='$d_endpent'
+d_endprotoent_r='$d_endprotoent_r'
d_endpwent='$d_endpwent'
+d_endpwent_r='$d_endpwent_r'
d_endsent='$d_endsent'
+d_endservent_r='$d_endservent_r'
d_eofnblk='$d_eofnblk'
d_eunice='$d_eunice'
+d_fchdir='$d_fchdir'
d_fchmod='$d_fchmod'
d_fchown='$d_fchown'
d_fcntl='$d_fcntl'
d_fd_set='$d_fd_set'
d_fds_bits='$d_fds_bits'
d_fgetpos='$d_fgetpos'
+d_finite='$d_finite'
+d_finitel='$d_finitel'
d_flexfnam='$d_flexfnam'
d_flock='$d_flock'
+d_flockproto='$d_flockproto'
d_fork='$d_fork'
+d_fp_class='$d_fp_class'
d_fpathconf='$d_fpathconf'
+d_fpclass='$d_fpclass'
+d_fpclassify='$d_fpclassify'
+d_fpclassl='$d_fpclassl'
d_fpos64_t='$d_fpos64_t'
d_frexpl='$d_frexpl'
d_fs_data_s='$d_fs_data_s'
d_getespwnam='$d_getespwnam'
d_getfsstat='$d_getfsstat'
d_getgrent='$d_getgrent'
+d_getgrent_r='$d_getgrent_r'
+d_getgrgid_r='$d_getgrgid_r'
+d_getgrnam_r='$d_getgrnam_r'
d_getgrps='$d_getgrps'
d_gethbyaddr='$d_gethbyaddr'
d_gethbyname='$d_gethbyname'
d_gethent='$d_gethent'
d_gethname='$d_gethname'
+d_gethostbyaddr_r='$d_gethostbyaddr_r'
+d_gethostbyname_r='$d_gethostbyname_r'
+d_gethostent_r='$d_gethostent_r'
d_gethostprotos='$d_gethostprotos'
d_getitimer='$d_getitimer'
d_getlogin='$d_getlogin'
+d_getlogin_r='$d_getlogin_r'
d_getmnt='$d_getmnt'
d_getmntent='$d_getmntent'
d_getnbyaddr='$d_getnbyaddr'
d_getnbyname='$d_getnbyname'
d_getnent='$d_getnent'
+d_getnetbyaddr_r='$d_getnetbyaddr_r'
+d_getnetbyname_r='$d_getnetbyname_r'
+d_getnetent_r='$d_getnetent_r'
d_getnetprotos='$d_getnetprotos'
d_getpagsz='$d_getpagsz'
d_getpbyname='$d_getpbyname'
d_getpgrp='$d_getpgrp'
d_getppid='$d_getppid'
d_getprior='$d_getprior'
+d_getprotobyname_r='$d_getprotobyname_r'
+d_getprotobynumber_r='$d_getprotobynumber_r'
+d_getprotoent_r='$d_getprotoent_r'
d_getprotoprotos='$d_getprotoprotos'
d_getprpwnam='$d_getprpwnam'
d_getpwent='$d_getpwent'
+d_getpwent_r='$d_getpwent_r'
+d_getpwnam_r='$d_getpwnam_r'
+d_getpwuid_r='$d_getpwuid_r'
d_getsbyname='$d_getsbyname'
d_getsbyport='$d_getsbyport'
d_getsent='$d_getsent'
+d_getservbyname_r='$d_getservbyname_r'
+d_getservbyport_r='$d_getservbyport_r'
+d_getservent_r='$d_getservent_r'
d_getservprotos='$d_getservprotos'
d_getspnam='$d_getspnam'
+d_getspnam_r='$d_getspnam_r'
d_gettimeod='$d_gettimeod'
+d_gmtime_r='$d_gmtime_r'
d_gnulibc='$d_gnulibc'
d_grpasswd='$d_grpasswd'
d_hasmntopt='$d_hasmntopt'
d_htonl='$d_htonl'
-d_iconv='$d_iconv'
d_index='$d_index'
d_inetaton='$d_inetaton'
d_int64_t='$d_int64_t'
d_isascii='$d_isascii'
+d_isfinite='$d_isfinite'
+d_isinf='$d_isinf'
d_isnan='$d_isnan'
d_isnanl='$d_isnanl'
d_killpg='$d_killpg'
d_lchown='$d_lchown'
d_ldbl_dig='$d_ldbl_dig'
d_link='$d_link'
+d_localtime_r='$d_localtime_r'
d_locconv='$d_locconv'
d_lockf='$d_lockf'
d_longdbl='$d_longdbl'
d_mktime='$d_mktime'
d_mmap='$d_mmap'
d_modfl='$d_modfl'
+d_modfl_pow32_bug='$d_modfl_pow32_bug'
d_mprotect='$d_mprotect'
d_msg='$d_msg'
d_msg_ctrunc='$d_msg_ctrunc'
d_munmap='$d_munmap'
d_mymalloc='$d_mymalloc'
d_nice='$d_nice'
+d_nl_langinfo='$d_nl_langinfo'
d_nv_preserves_uv='$d_nv_preserves_uv'
-d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
d_off64_t='$d_off64_t'
d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
d_oldpthreads='$d_oldpthreads'
d_pipe='$d_pipe'
d_poll='$d_poll'
d_portable='$d_portable'
+d_procselfexe='$d_procselfexe'
+d_pthread_atfork='$d_pthread_atfork'
d_pthread_yield='$d_pthread_yield'
d_pwage='$d_pwage'
d_pwchange='$d_pwchange'
d_pwquota='$d_pwquota'
d_qgcvt='$d_qgcvt'
d_quad='$d_quad'
+d_random_r='$d_random_r'
+d_readdir64_r='$d_readdir64_r'
d_readdir='$d_readdir'
+d_readdir_r='$d_readdir_r'
d_readlink='$d_readlink'
d_readv='$d_readv'
d_recvmsg='$d_recvmsg'
d_setegid='$d_setegid'
d_seteuid='$d_seteuid'
d_setgrent='$d_setgrent'
+d_setgrent_r='$d_setgrent_r'
d_setgrps='$d_setgrps'
d_sethent='$d_sethent'
+d_sethostent_r='$d_sethostent_r'
d_setitimer='$d_setitimer'
d_setlinebuf='$d_setlinebuf'
d_setlocale='$d_setlocale'
+d_setlocale_r='$d_setlocale_r'
d_setnent='$d_setnent'
+d_setnetent_r='$d_setnetent_r'
d_setpent='$d_setpent'
d_setpgid='$d_setpgid'
d_setpgrp2='$d_setpgrp2'
d_setpgrp='$d_setpgrp'
d_setprior='$d_setprior'
d_setproctitle='$d_setproctitle'
+d_setprotoent_r='$d_setprotoent_r'
d_setpwent='$d_setpwent'
+d_setpwent_r='$d_setpwent_r'
d_setregid='$d_setregid'
d_setresgid='$d_setresgid'
d_setresuid='$d_setresuid'
d_setrgid='$d_setrgid'
d_setruid='$d_setruid'
d_setsent='$d_setsent'
+d_setservent_r='$d_setservent_r'
d_setsid='$d_setsid'
d_setvbuf='$d_setvbuf'
d_sfio='$d_sfio'
d_sigprocmask='$d_sigprocmask'
d_sigsetjmp='$d_sigsetjmp'
d_sockatmark='$d_sockatmark'
+d_sockatmarkproto='$d_sockatmarkproto'
d_socket='$d_socket'
d_socklen_t='$d_socklen_t'
d_sockpair='$d_sockpair'
d_socks5_init='$d_socks5_init'
d_sqrtl='$d_sqrtl'
+d_srand48_r='$d_srand48_r'
+d_srandom_r='$d_srandom_r'
+d_sresgproto='$d_sresgproto'
+d_sresuproto='$d_sresuproto'
d_statblks='$d_statblks'
d_statfs_f_flags='$d_statfs_f_flags'
d_statfs_s='$d_statfs_s'
d_strctcpy='$d_strctcpy'
d_strerrm='$d_strerrm'
d_strerror='$d_strerror'
+d_strerror_r='$d_strerror_r'
d_strftime='$d_strftime'
d_strtod='$d_strtod'
d_strtol='$d_strtol'
d_suidsafe='$d_suidsafe'
d_symlink='$d_symlink'
d_syscall='$d_syscall'
+d_syscallproto='$d_syscallproto'
d_sysconf='$d_sysconf'
d_sysernlst='$d_sysernlst'
d_syserrlst='$d_syserrlst'
d_telldirproto='$d_telldirproto'
d_time='$d_time'
d_times='$d_times'
+d_tm_tm_gmtoff='$d_tm_tm_gmtoff'
+d_tm_tm_zone='$d_tm_tm_zone'
+d_tmpnam_r='$d_tmpnam_r'
d_truncate='$d_truncate'
+d_ttyname_r='$d_ttyname_r'
d_tzname='$d_tzname'
d_u32align='$d_u32align'
d_ualarm='$d_ualarm'
d_umask='$d_umask'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
+d_unordered='$d_unordered'
d_usleep='$d_usleep'
+d_usleepproto='$d_usleepproto'
d_ustat='$d_ustat'
d_vendorarch='$d_vendorarch'
d_vendorbin='$d_vendorbin'
date='$date'
db_hashtype='$db_hashtype'
db_prefixtype='$db_prefixtype'
+db_version_major='$db_version_major'
+db_version_minor='$db_version_minor'
+db_version_patch='$db_version_patch'
defvoidused='$defvoidused'
direntrytype='$direntrytype'
dlext='$dlext'
dlsrc='$dlsrc'
doublesize='$doublesize'
drand01='$drand01'
+drand48_r_proto='$drand48_r_proto'
dynamic_ext='$dynamic_ext'
eagain='$eagain'
ebcdic='$ebcdic'
echo='$echo'
egrep='$egrep'
emacs='$emacs'
+endgrent_r_proto='$endgrent_r_proto'
+endhostent_r_proto='$endhostent_r_proto'
+endnetent_r_proto='$endnetent_r_proto'
+endprotoent_r_proto='$endprotoent_r_proto'
+endpwent_r_proto='$endpwent_r_proto'
+endservent_r_proto='$endservent_r_proto'
eunicefix='$eunicefix'
exe_ext='$exe_ext'
expr='$expr'
extensions='$extensions'
+extras='$extras'
fflushNULL='$fflushNULL'
fflushall='$fflushall'
find='$find'
fpossize='$fpossize'
fpostype='$fpostype'
freetype='$freetype'
+from='$from'
full_ar='$full_ar'
full_csh='$full_csh'
full_sed='$full_sed'
gccosandvers='$gccosandvers'
gccversion='$gccversion'
+getgrent_r_proto='$getgrent_r_proto'
+getgrgid_r_proto='$getgrgid_r_proto'
+getgrnam_r_proto='$getgrnam_r_proto'
+gethostbyaddr_r_proto='$gethostbyaddr_r_proto'
+gethostbyname_r_proto='$gethostbyname_r_proto'
+gethostent_r_proto='$gethostent_r_proto'
+getlogin_r_proto='$getlogin_r_proto'
+getnetbyaddr_r_proto='$getnetbyaddr_r_proto'
+getnetbyname_r_proto='$getnetbyname_r_proto'
+getnetent_r_proto='$getnetent_r_proto'
+getprotobyname_r_proto='$getprotobyname_r_proto'
+getprotobynumber_r_proto='$getprotobynumber_r_proto'
+getprotoent_r_proto='$getprotoent_r_proto'
+getpwent_r_proto='$getpwent_r_proto'
+getpwnam_r_proto='$getpwnam_r_proto'
+getpwuid_r_proto='$getpwuid_r_proto'
+getservbyname_r_proto='$getservbyname_r_proto'
+getservbyport_r_proto='$getservbyport_r_proto'
+getservent_r_proto='$getservent_r_proto'
+getspnam_r_proto='$getspnam_r_proto'
gidformat='$gidformat'
gidsign='$gidsign'
gidsize='$gidsize'
gidtype='$gidtype'
glibpth='$glibpth'
+gmake='$gmake'
+gmtime_r_proto='$gmtime_r_proto'
+gnulibc_version='$gnulibc_version'
grep='$grep'
groupcat='$groupcat'
groupstype='$groupstype'
i8type='$i8type'
i_arpainet='$i_arpainet'
i_bsdioctl='$i_bsdioctl'
+i_crypt='$i_crypt'
i_db='$i_db'
i_dbm='$i_dbm'
i_dirent='$i_dirent'
i_dlfcn='$i_dlfcn'
i_fcntl='$i_fcntl'
i_float='$i_float'
+i_fp='$i_fp'
+i_fp_class='$i_fp_class'
i_gdbm='$i_gdbm'
i_grp='$i_grp'
-i_iconv='$i_iconv'
i_ieeefp='$i_ieeefp'
i_inttypes='$i_inttypes'
+i_langinfo='$i_langinfo'
i_libutil='$i_libutil'
i_limits='$i_limits'
i_locale='$i_locale'
lkflags='$lkflags'
ln='$ln'
lns='$lns'
+localtime_r_proto='$localtime_r_proto'
locincpth='$locincpth'
loclibpth='$loclibpth'
longdblsize='$longdblsize'
nvEUformat='$nvEUformat'
nvFUformat='$nvFUformat'
nvGUformat='$nvGUformat'
+nv_preserves_uv_bits='$nv_preserves_uv_bits'
nveformat='$nveformat'
nvfformat='$nvfformat'
nvgformat='$nvgformat'
prefixexp='$prefixexp'
privlib='$privlib'
privlibexp='$privlibexp'
+procselfexe='$procselfexe'
prototype='$prototype'
ptrsize='$ptrsize'
quadkind='$quadkind'
quadtype='$quadtype'
randbits='$randbits'
randfunc='$randfunc'
+random_r_proto='$random_r_proto'
randseedtype='$randseedtype'
ranlib='$ranlib'
rd_nodata='$rd_nodata'
+readdir64_r_proto='$readdir64_r_proto'
+readdir_r_proto='$readdir_r_proto'
revision='$revision'
rm='$rm'
rmail='$rmail'
+run='$run'
runnm='$runnm'
sPRIEUldbl='$sPRIEUldbl'
sPRIFUldbl='$sPRIFUldbl'
selectminbits='$selectminbits'
selecttype='$selecttype'
sendmail='$sendmail'
+setgrent_r_proto='$setgrent_r_proto'
+sethostent_r_proto='$sethostent_r_proto'
+setlocale_r_proto='$setlocale_r_proto'
+setnetent_r_proto='$setnetent_r_proto'
+setprotoent_r_proto='$setprotoent_r_proto'
+setpwent_r_proto='$setpwent_r_proto'
+setservent_r_proto='$setservent_r_proto'
sh='$sh'
shar='$shar'
sharpbang='$sharpbang'
sort='$sort'
spackage='$spackage'
spitshell='$spitshell'
+srand48_r_proto='$srand48_r_proto'
+srandom_r_proto='$srandom_r_proto'
src='$src'
ssizetype='$ssizetype'
startperl='$startperl'
stdio_filbuf='$stdio_filbuf'
stdio_ptr='$stdio_ptr'
stdio_stream_array='$stdio_stream_array'
+strerror_r_proto='$strerror_r_proto'
strings='$strings'
submit='$submit'
subversion='$subversion'
sysman='$sysman'
tail='$tail'
tar='$tar'
+targetarch='$targetarch'
tbl='$tbl'
tee='$tee'
test='$test'
timeincl='$timeincl'
timetype='$timetype'
+tmpnam_r_proto='$tmpnam_r_proto'
+to='$to'
touch='$touch'
tr='$tr'
trnl='$trnl'
troff='$troff'
+ttyname_r_proto='$ttyname_r_proto'
u16size='$u16size'
u16type='$u16type'
u32size='$u32size'
use5005threads='$use5005threads'
use64bitall='$use64bitall'
use64bitint='$use64bitint'
+usecrosscompile='$usecrosscompile'
usedl='$usedl'
useithreads='$useithreads'
uselargefiles='$uselargefiles'
useopcode='$useopcode'
useperlio='$useperlio'
useposix='$useposix'
+usereentrant='$usereentrant'
usesfio='$usesfio'
useshrplib='$useshrplib'
usesocks='$usesocks'
vendorprefix='$vendorprefix'
vendorprefixexp='$vendorprefixexp'
version='$version'
+version_patchlevel_string='$version_patchlevel_string'
versiononly='$versiononly'
vi='$vi'
voidflags='$voidflags'
case "$alldone" in
exit)
$rm -rf UU
- echo "Done."
+ echo "Extraction done."
exit 0
;;
cont)
echo " "
exec 1>&4
+pwd=`pwd`
. ./UU/extract
+cd "$pwd"
if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
dflt=y
echo " "
echo "Now you must run a $make."
else
- echo "Done."
+ echo "Configure done."
fi
if $test -f Policy.sh; then