# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Thu Feb 24 03:13:49 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Sat Mar 11 20:26:09 EET 2000 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
d_flexfnam=''
d_flock=''
d_fork=''
+d_fpos64_t=''
d_fs_data_s=''
d_fseeko=''
d_fsetpos=''
d_gettimeod=''
d_Gconvert=''
d_getcwd=''
+d_getfsstat=''
d_getgrent=''
d_getgrps=''
d_gethbyaddr=''
longdblsize=''
d_longlong=''
longlongsize=''
+d_lseekproto=''
d_lstat=''
+d_madvise=''
d_mblen=''
d_mbstowcs=''
d_mbtowc=''
d_msync=''
d_munmap=''
d_nice=''
+d_off64_t=''
d_open3=''
d_fpathconf=''
d_pathconf=''
d_pthread_yield=''
d_sched_yield=''
sched_yield=''
+d_qgcvt=''
d_readdir=''
d_rewinddir=''
d_seekdir=''
d_grpasswd=''
i_grp=''
i_iconv=''
+i_ieeefp=''
i_inttypes=''
i_limits=''
i_locale=''
i_stdlib=''
i_string=''
strings=''
+i_sunmath=''
i_sysaccess=''
i_sysdir=''
i_sysfile=''
intsize=''
longsize=''
shortsize=''
-d_fpos64_t=''
-d_off64_t=''
libc=''
ldlibpthname=''
libperl=''
api_version=''
api_versionstring=''
patchlevel=''
+revision=''
subversion=''
version=''
+perl5=''
perladmin=''
perlpath=''
d_nv_preserves_uv=''
sitebinexp=''
installsitelib=''
sitelib=''
+sitelib_stem=''
sitelibexp=''
siteprefix=''
siteprefixexp=''
sizetype=''
so=''
+socksizetype=''
sharpbang=''
shsharp=''
spitshell=''
uidsize=''
uidtype=''
archname64=''
-use64bits=''
+use64bitall=''
+use64bitint=''
uselargefiles=''
uselongdouble=''
usemorebits=''
incpath=''
mips_type=''
usrinc=''
+d_vendorarch=''
+installvendorarch=''
+vendorarch=''
+vendorarchexp=''
d_vendorbin=''
installvendorbin=''
vendorbin=''
d_vendorlib=''
installvendorlib=''
vendorlib=''
+vendorlib_stem=''
vendorlibexp=''
usevendorprefix=''
vendorprefix=''
: List of libraries we want.
: If anyone needs -lnet, put it in a hint file.
-libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl'
+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"
+libswanted="$libswanted ucb bsd BSD PW x iconv"
: 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 ! !'`
more
nm
nroff
-perl
pg
test
uname
$define|true|[yY]*) dflt='y';;
*) dflt='n';;
esac
+ echo " "
echo "If this doesn't make any sense to you, just accept the default '$dflt'."
rp='Build Perl for multiplicity?'
. ./myread
'') libswanted='c_s';;
esac
case "$usesocks" in
-$define)
- libswanted="$libswanted socks5 socks5_sh"
- ;;
+"$define") libswanted="$libswanted socks5 socks5_sh" ;;
esac
libsfound=''
libsfiles=''
xxx=$thisdir/lib${thislib}_s$_a
$test -f "$xxx" && eval $libscheck
$test -f "$xxx" && libstyle=static
+ $test -f "$xxx" && thislib=${thislib}_s
fi
if test ! -f "$xxx"; then
xxx=$thisdir/Slib$thislib$_a
eval $typedef_ask
echo " "
-$echo $n "Checking to see how big your file offsets are...$c" >&4
+echo "Checking to see how big your file offsets are..." >&4
$cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
set try
if eval $compile_ok; then
lseeksize=`./try`
- $echo " $lseeksize bytes." >&4
+ echo "Your file offsets are $lseeksize bytes long."
else
dflt=$longsize
echo " "
*_t) zzz="$fpostype" ;;
*) zzz="fpos_t" ;;
esac
-$echo $n "Checking the size of $zzz...$c" >&4
+echo "Checking the size of $zzz..." >&4
cat > try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
yyy=`./try`
case "$yyy" in
'') fpossize=4
- echo " " >&4
echo "(I can't execute the test program--guessing $fpossize.)" >&4
;;
*) fpossize=$yyy
- echo " $fpossize bytes." >&4
+ echo "Your $zzz is $fpossize bytes long."
;;
esac
else
+# 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
: 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 uselfs.cbu; then
+ if $test -f uselargefiles.cbu; then
echo "Your platform has some specific hints for large file builds, using them..."
- . ./uselfs.cbu
+ . ./uselargefiles.cbu
echo " "
- $echo $n "Rechecking to see how big your file offsets are...$c" >&4
+ echo "Rechecking to see how big your file offsets are..." >&4
$cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
set try
if eval $compile_ok; then
lseeksize=`./try`
- $echo " $lseeksize bytes." >&4
+ $echo "Your file offsets are now $lseeksize bytes long."
else
dflt="$lseeksize"
echo " "
echo "(I can't execute the test program--guessing $fpossize.)" >&4
;;
*) fpossize=$yyy
- echo " $fpossize bytes."
+ echo " $fpossize bytes." >&4
;;
esac
else
case "$usemorebits" in
"$define"|true|[yY]*)
- use64bits="$define"
+ use64bitint="$define"
uselongdouble="$define"
usemorebits="$define"
;;
esac
-case "$intsize:$longsize" in
-8:*|*:8) cat <<EOM
+case "$uselonglong" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
+EOM
+ use64bitint="$define"
+ ;;
+esac
+case "$use64bits" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
+EOM
+ use64bitint="$define"
+ ;;
+esac
+case "$use64bitints" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** There is no Configure -Duse64bitints, using -Duse64bitint instead.
+EOM
+ use64bitint="$define"
+ ;;
+esac
+case "$use64bitsint" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
+EOM
+ use64bitint="$define"
+ ;;
+esac
+case "$uselonglongs" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** There is no Configure -Duselonglongs, using -Duse64bitint instead.
+EOM
+ use64bitint="$define"
+ ;;
+esac
+case "$use64bitsall" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
+EOM
+ use64bitall="$define"
+ ;;
+esac
+
+case "$ccflags" in
+*-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
+esac
+case "$use64bitall" in
+"$define"|true|[yY]*) use64bitint="$define" ;;
+esac
+
+case "$longsize" in
+8) cat <<EOM
-You have natively 64-bit integers.
+You have natively 64-bit long integers.
EOM
val="$define"
;;
-*) case "$ccflags" in
- *-DUSE_64_BITS*|*-DUSE_LONG_LONG*) use64bits="$define";;
- *) case "$uselonglong" in
- $define|true|[yY]*) use64bits="$define";;
- esac
- ;;
- esac
- case "$use64bits" in
- $define|true|[yY]*) dflt='y';;
+*) case "$use64bitint" in
+ "$define"|true|[yY]*) dflt='y';;
*) dflt='n';;
esac
-cat <<EOM
+ cat <<EOM
Perl can be built to take advantage of 64-bit integer types
-on some systems. To do so, Configure can be run with -Duse64bits.
+on some systems. To do so, Configure can be run with -Duse64bitint.
+Choosing this option will most probably introduce binary incompatibilities.
If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
esac
;;
esac
-set use64bits
+set use64bitint
+eval $setvar
+
+case "$use64bitall" in
+"$define"|true|[yY]*) dflt='y' ;;
+*) case "$longsize" in
+ 8) dflt='y' ;;
+ *) dflt='n' ;;
+ esac
+ ;;
+esac
+cat <<EOM
+
+You may also choose to try maximal 64-bitness. It means using as much
+64-bitness as possible on the platform. This in turn means even more
+binary incompatibilities. On the other hand, your platform may not
+have any more 64-bitness available than what you already have chosen.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Try to use maximal 64-bit support, if available?'
+. ./myread
+case "$ans" in
+[yY]*) val="$define" ;;
+*) val="$undef" ;;
+esac
+set use64bitall
eval $setvar
+case "$use64bitall" in
+"$define")
+ case "$use64bitint" in
+ "$undef")
+ cat <<EOM
-case "$archname64" in
-'') archname64='' ;; # not a typo
+Since you have chosen a maximally 64-bit build, I'm also turning on
+the use of 64-bit integers.
+EOM
+ use64bitint="$define" ;;
+ esac
+ ;;
esac
-case "$use64bits" in
+case "$use64bitint" in
"$define"|true|[yY]*)
: Look for a hint-file generated 'call-back-unit'. If the
: user has specified that a 64-bit perl is to be built,
: we may need to set or change some other defaults.
- if $test -f use64bits.cbu; then
+ if $test -f use64bitint.cbu; then
+ echo "Your platform has some specific hints for 64-bit integers, using them..."
+ . ./use64bitint.cbu
+ fi
+ case "$longsize" in
+ 4) case "$archname64" in
+ '') archname64=64int ;;
+ esac
+ ;;
+ esac
+ ;;
+esac
+
+case "$use64bitall" in
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'. If the
+: user has specified that a maximally 64-bit perl is to be built,
+: we may need to set or change some other defaults.
+ if $test -f use64bitall.cbu; then
echo "Your platform has some specific hints for 64-bit builds, using them..."
- . ./use64bits.cbu
- else
- $cat <<EOM
-(Your platform doesn't have any specific hints for 64-bit builds.)
-EOM
- case "$intsize:$longsize" in
-8:*|*:8) cat <<EOM
-(This is probably okay, as your system is a natively 64-bit system.)
-EOM
- ;;
- esac
- case "$gccversion" in
- '') ;;
- *) case "$ccflags" in
- *-DUSE_64_BITS*) ;;
- *) $cat <<EOM
-But since you seem to be using gcc, I will now add -DUSE_64_BITS
-to the compilation flags to get long longs.
-EOM
- ccflags="$ccflags -DUSE_64_BITS"
- ;;
- esac
- ;;
- esac
+ . ./use64bitall.cbu
fi
+ case "$longsize" in
+ 4) case "$archname64" in
+ ''|64int) archname64=64all ;;
+ esac
+ ;;
+ esac
;;
esac
esac
;;
esac
-case "$use64bits" in
+case "$use64bitint" in
$define)
case "$archname64" in
'')
esac;;
esac'
-: set the base revision
-baserev=5.0
-
: get the patchlevel
echo " "
echo "Getting the current patchlevel..." >&4
if $test -r $rsrc/patchlevel.h;then
+ revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
else
+ revision=0
patchlevel=0
subversion=0
api_revision=0
api_version=0
api_subversion=0
fi
-$echo $n "(You have $package" $c
-case "$package" in
-"*$baserev") ;;
-*) $echo $n " $baserev" $c ;;
-esac
+$echo $n "(You have $package revision $revision" $c
$echo $n " patchlevel $patchlevel" $c
test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
echo ".)"
case "$osname" in
dos|vms)
: XXX Should be a Configure test for double-dots in filenames.
- version=`echo $baserev $patchlevel $subversion | \
+ version=`echo $revision $patchlevel $subversion | \
$awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
api_versionstring=`echo $api_revision $api_version $api_subversion | \
$awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
;;
*)
- version=`echo $baserev $patchlevel $subversion | \
+ version=`echo $revision $patchlevel $subversion | \
$awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
api_versionstring=`echo $api_revision $api_version $api_subversion | \
$awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
*) dflt='lib/perl5' ;;
esac
;;
-*) dflt='lib/perl5' ;;
+*) dflt="$installstyle" ;;
esac
: Probably not worth prompting for this since we prompt for all
: the directories individually, and the prompt would be too long and
rp='Do you want to configure vendor-specific add-on directories?'
case "$usevendorprefix" in
define|true|[yY]*) dflt=y ;;
-*) dflt=n ;;
+*) : User may have set vendorprefix directly on Configure command line.
+ case "$vendorprefix" in
+ ''|' ') dflt=n ;;
+ *) dflt=y ;;
+ esac
+ ;;
esac
. ./myread
case "$ans" in
*) dflt=$vendorprefix ;;
esac
. ./getfile
+ : XXX Prefixit unit does not yet support siteprefix and vendorprefix
oldvendorprefix=''
case "$vendorprefix" in
'') ;;
*) d_vendorlib="$define"
: determine where vendor-supplied modules go.
: Usual default is /usr/local/lib/perl5/vendor_perl/$version
- prog=`echo $package | $sed 's/-*[0-9.]*$//'`
- case "$installstyle" in
- *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
- *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
+ case "$vendorlib" in
+ '')
+ prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+ case "$installstyle" in
+ *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
+ *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
+ esac
+ ;;
+ *) dflt="$vendorlib"
+ ;;
esac
fn=d~+
rp='Pathname for the vendor-supplied library files?'
. ./getfile
vendorlib="$ans"
vendorlibexp="$ansexp"
- : Change installation prefix, if necessary.
- if $test X"$prefix" != X"$installprefix"; then
- installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
- else
- installvendorlib="$vendorlibexp"
- fi
;;
esac
+vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"`
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
+else
+ installvendorlib="$vendorlibexp"
+fi
+
+case "$vendorprefix" in
+'') d_vendorarch="$undef"
+ vendorarch=''
+ vendorarchexp=''
+ ;;
+*) d_vendorarch="$define"
+ : determine where vendor-supplied architecture-dependent libraries go.
+ : vendorlib default is /usr/local/lib/perl5/vendor_perl/$version
+ : vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname
+ : vendorlib may have an optional trailing /share.
+ case "$vendorarch" in
+ '') dflt=`echo $vendorlib | $sed 's,/share$,,'`
+ dflt="$dflt/$archname"
+ ;;
+ *) dflt="$vendorarch" ;;
+ esac
+ fn=d~+
+ rp='Pathname for vendor-supplied architecture-dependent files?'
+ . ./getfile
+ vendorarch="$ans"
+ vendorarchexp="$ansexp"
+ ;;
+esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installvendorarch=`echo $vendorarchexp | sed "s#^$prefix#$installprefix#"`
+else
+ installvendorarch="$vendorarchexp"
+fi
: Cruising for prototypes
echo " "
installbin="$binexp"
fi
+: 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
+ : 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
+ perl5=$tdir/perl
+ break;
+ elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ perl5=$tdir/perl
+ break;
+ fi
+ done
+ ;;
+*) perl5="$perl5"
+ ;;
+esac
+case "$perl5" in
+'') echo "None found. That's ok.";;
+*) echo "Using $perl5." ;;
+esac
+
$cat <<EOM
After $package is installed, you may wish to install various
*) dflt=$siteprefix ;;
esac
. ./getfile
+: XXX Prefixit unit does not yet support siteprefix and vendorprefix
oldsiteprefix=''
case "$siteprefix" in
'') ;;
-*)
- case "$ans" in
+*) case "$ans" in
"$prefix") ;;
*) oldsiteprefix="$prefix";;
esac
: The default "style" setting is made in installstyle.U
: XXX No longer works with Prefixit stuff.
prog=`echo $package | $sed 's/-*[0-9.]*$//'`
-case "$installstyle" in
-*lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
-*) dflt=$siteprefix/lib/site_$prog/$version ;;
+case "$sitelib" in
+'') case "$installstyle" in
+ *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
+ *) dflt=$siteprefix/lib/site_$prog/$version ;;
+ esac
+ ;;
+*) dflt="$sitelib"
+ ;;
esac
$cat <<EOM
. ./getfile
sitelib="$ans"
sitelibexp="$ansexp"
+sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
: Change installation prefix, if necessary.
if $test X"$prefix" != X"$installprefix"; then
- installsitelib=`echo $sitelibexp | sed "s#^$prefix#$installprefix#"`
+ installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
else
installsitelib="$sitelibexp"
fi
: Determine list of previous versions to include in @INC
$cat > getverlist <<EOPL
-#!$perl -w
+#!$perl5 -w
use File::Basename;
\$api_versionstring = "$api_versionstring";
\$version = "$version";
# Can't have leading @ because metaconfig interprets it as a command!
;@inc_version_list=();
$stem=dirname($sitelib);
-# Redo to do opendir/readdir?
+# XXX Redo to do opendir/readdir?
if (-d $stem) {
chdir($stem);
;@candidates = glob("5.*");
EOPL
chmod +x getverlist
case "$inc_version_list" in
-'') if test -x $perl; then
- dflt=`$perl getverlist`
+'') if test -x "$perl5"; then
+ dflt=`$perl5 getverlist`
else
dflt='none'
fi
$undef) dflt='none' ;;
*) dflt="$inc_version_list" ;;
esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
$cat <<'EOM'
In order to ease the process of upgrading, this version of perl
rp='List of earlier versions to include in @INC?'
. ./myread
case "$ans" in
-[Nn]one) inc_version_list=' ' ;;
+[Nn]one|''|' ') inc_version_list=' ' ;;
*) inc_version_list="$ans" ;;
esac
case "$inc_version_list" in
echo " "
if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
$cat <<EOM
-Many scripts expect to perl to be installed as /usr/bin/perl.
+Many scripts expect perl to be installed as /usr/bin/perl.
I can install the perl you are about to compile also as /usr/bin/perl
(in addition to $installbin/perl).
EOM
case "$lddlflags" in
'') case "$osname" in
beos) dflt='-nostart' ;;
- hpux) dflt='-b +vnocompatwarnings' ;;
+ hpux) dflt='-b';
+ case "$gccversion" in
+ '') dflt="$dflt +vnocompatwarnings" ;;
+ esac
+ ;;
linux|irix*) dflt='-shared' ;;
next) dflt='none' ;;
solaris) dflt='-G' ;;
: sitelib default is /usr/local/lib/perl5/site_perl/$version
: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
: sitelib may have an optional trailing /share.
-tdflt=`echo $sitelib | $sed 's,/share$,,'`
-tdflt="$tdflt/$archname"
-set sitearch sitearch none
-eval $prefixit
case "$sitearch" in
-'') dflt="$tdflt" ;;
-*) dflt="$sitearch" ;;
+'') dflt=`echo $sitelib | $sed 's,/share$,,'`
+ dflt="$dflt/$archname"
+ ;;
+*) dflt="$sitearch"
+ ;;
esac
+set sitearch sitearch none
+eval $prefixit
$cat <<EOM
The installation process will also create a directory for
architecture-dependent site-specific extensions and modules.
EOM
-fn=nd~+
+fn=d~+
rp='Pathname for the site-specific architecture-dependent library files?'
. ./getfile
sitearch="$ans"
: determine where add-on public executables go
case "$sitebin" in
'') dflt=$siteprefix/bin ;;
-*) dflt=$sitebin ;;
+*) dflt=$sitebin ;;
esac
fn=d~
rp='Pathname where the add-on public executables should be installed?'
$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.
+*** 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
;;
;;
*) d_vendorbin="$define"
: determine where vendor-supplied executables go.
- dflt=$vendorprefix/bin
+ case "$vendorbin" in
+ '') dflt=$vendorprefix/bin ;;
+ *) dflt="$vendorbin" ;;
+ esac
fn=d~+
rp='Pathname for the vendor-supplied executables directory?'
. ./getfile
vendorbin="$ans"
vendorbinexp="$ansexp"
- : Change installation prefix, if necessary.
- if $test X"$prefix" != X"$installprefix"; then
- installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
- else
- installvendorbin="$vendorbinexp"
- fi
;;
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
: check for length of double
echo " "
case "$doublesize" in
'')
- $echo $n "Checking to see how big your double precision numbers are...$c" >&4
+ echo "Checking to see how big your double precision numbers are..." >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
int main()
set try
if eval $compile_ok; then
doublesize=`./try`
- $echo " $doublesize bytes." >&4
+ echo "Your double is $doublesize bytes long."
else
dflt='8'
echo "(I can't seem to compile the test program. Guessing...)"
: check for long doubles
echo " "
-$echo $n "Checking to see if your system supports long double..." $c >&4
+echo "Checking to see if you have long double..." >&4
echo 'int main() { long double x = 7.0; }' > try.c
set try
if eval $compile; then
val="$define"
- echo " " >&4
echo "You have long double."
else
val="$undef"
- echo " " >&4
echo "You do not have long double."
fi
$rm try.*
case "${d_longdbl}${longdblsize}" in
$define)
echo " "
- $echo $n "Checking to see how big your long doubles are..." $c >&4
+ echo "Checking to see how big your long doubles are..." >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
int main()
set try
if eval $compile; then
longdblsize=`./try$exe_ext`
- $echo " $longdblsize bytes." >&4
+ echo "Your long doubles are $longdblsize bytes long."
else
dflt='8'
echo " "
esac
$rm -f try.* try
-: Check how to convert floats to strings.
-if test "X$d_Gconvert" = X; then
- echo " "
- echo "Checking for an efficient way to convert floats to strings."
- $cat >try.c <<EOP
-#ifdef TRY_gconvert
-#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
-char *myname = "gconvert";
-#endif
-#ifdef TRY_gcvt
-#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
-char *myname = "gcvt";
-#endif
-#ifdef TRY_qgcvt
-#define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
-char *myname = "qgcvt";
-#define DOUBLETYPE long double
-#endif
-#ifdef TRY_sprintf
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
-char *myname = "sprintf";
-#endif
-
-#ifndef DOUBLETYPE
-#define DOUBLETYPE double
-#endif
+echo " "
-#include <stdio.h>
+if $test X"$d_longdbl" = X"$define"; then
-#define I_STDLIB $i_stdlib
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
+echo "Checking how to print long doubles..." >&4
-int
-checkit(expect, got)
-char *expect;
-char *got;
-{
- if (strcmp(expect, got)) {
- printf("%s oddity: Expected %s, got %s\n",
- myname, expect, got);
- exit(1);
- }
+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=`./try$exe_ext`
+ case "$yyy" in
+ 123.456)
+ sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
+ sPRIFldbl='"F"'; sPRIGldbl='"G"'; sPRIEldbl='"E"';
+ echo "We will use %f."
+ ;;
+ esac
+ fi
+fi
-int main()
-{
- char buf[64];
- buf[63] = '\0';
-
- /* This must be 1st test on (which?) platform */
- /* Alan Burlison <AlanBurlsin@unn.unisys.com> */
- Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
- checkit("0.1", buf);
-
- Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
- checkit("1", buf);
-
- Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
- checkit("0", buf);
-
- Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
- checkit("-1", buf);
-
- /* Some Linux gcvt's give 1.e+5 here. */
- Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
- checkit("100000", buf);
-
- /* Some Linux gcvt's give -1.e+5 here. */
- Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
- checkit("-100000", buf);
-
- 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" in
- definedefine) xxx_list="`echo $xxx_list|sed 's/gcvt/qgcvt gcvt/'`" ;;
- esac
-
- for xxx_convert in $xxx_list; do
- echo "Trying $xxx_convert..."
- $rm -f try try$_o
- set try -DTRY_$xxx_convert
- if eval $compile; then
- echo "$xxx_convert() found." >&4
- if ./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."
- fi
- else
- echo "$xxx_convert NOT found." >&4
- fi
- done
-
- case "$xxx_convert" in
- gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
- gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
- qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
- *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
- esac
-fi
-
-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=`./try$exe_ext`
- case "$yyy" in
- 123.456)
- sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
- sPRIFldbl='"F"'; sPRIGldbl='"G"'; sPRIEldbl='"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("%.3llf\n", d);
+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
;;
esac
+: Check how to convert floats to strings.
+if test "X$d_Gconvert" = X; then
+ echo " "
+ echo "Checking for an efficient way to convert floats to strings."
+ echo " " > try.c
+ case "$uselongdouble" in
+ "$define") echo "#define USE_LONG_DOUBLE" >>try.c ;;
+ esac
+ case "$d_longdbl" in
+ "$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;;
+ esac
+ case "$d_PRIgldbl" in
+ "$define") echo "#define HAS_PRIgldbl" >>try.c ;;
+ esac
+ $cat >>try.c <<EOP
+#ifdef TRY_gconvert
+#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
+char *myname = "gconvert";
+#endif
+#ifdef TRY_gcvt
+#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
+char *myname = "gcvt";
+#endif
+#ifdef TRY_qgcvt
+#define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
+char *myname = "qgcvt";
+#define DOUBLETYPE long double
+#endif
+#ifdef TRY_sprintf
+#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && defined(HAS_PRIgldbl)
+#define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x))
+#else
+#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
+#endif
+char *myname = "sprintf";
+#endif
+
+#ifndef DOUBLETYPE
+#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
+#define DOUBLETYPE long double
+#else
+#define DOUBLETYPE double
+#endif
+#endif
+
+#include <stdio.h>
+
+#define I_STDLIB $i_stdlib
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
+
+int
+checkit(expect, got)
+char *expect;
+char *got;
+{
+ if (strcmp(expect, got)) {
+ printf("%s oddity: Expected %s, got %s\n",
+ myname, expect, got);
+ exit(1);
+ }
+}
+
+int main()
+{
+ char buf[64];
+ buf[63] = '\0';
+
+ /* This must be 1st test on (which?) platform */
+ /* Alan Burlison <AlanBurlsin@unn.unisys.com> */
+ Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
+ checkit("0.1", buf);
+
+ Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
+ checkit("1", buf);
+
+ Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
+ checkit("1.1", buf);
+
+ Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
+ checkit("1.01", buf);
+
+ Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
+ checkit("1.001", buf);
+
+ Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
+ checkit("1.0001", buf);
+
+ Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
+ checkit("1.00001", buf);
+
+ Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
+ checkit("1.000001", buf);
+
+ Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
+ checkit("0", buf);
+
+ Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
+ checkit("-1", buf);
+
+ /* Some Linux gcvt's give 1.e+5 here. */
+ Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
+ checkit("100000", buf);
+
+ /* Some Linux gcvt's give -1.e+5 here. */
+ Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
+ checkit("-100000", buf);
+
+ 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_qgcvt" in
+ "$define$define$define") xxx_list="`echo $xxx_list|sed 's/gcvt/qgcvt gcvt/'`" ;;
+ esac
+
+ for xxx_convert in $xxx_list; do
+ echo "Trying $xxx_convert..."
+ $rm -f try try$_o
+ set try -DTRY_$xxx_convert
+ if eval $compile; then
+ echo "$xxx_convert() found." >&4
+ if ./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."
+ fi
+ else
+ echo "$xxx_convert NOT found." >&4
+ fi
+ done
+
+ case "$xxx_convert" in
+ gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
+ gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
+ qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
+ *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
+ "$define$define$define")
+ d_Gconvert="sprintf((b),\"%.*$sPRIgldbl\",(n),(x))" ;;
+ *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
+ esac
+ ;;
+ esac
+fi
+
: Initialize h_fcntl
h_fcntl=false
#ifdef I_UNISTD
#include <unistd.h>
#endif
-#ifdef $i_string
+#$i_string I_STRING
+#ifdef I_STRING
#include <string.h>
#else
#include <strings.h>
eval $inlibc
-: check for off64_t
-echo " "
-echo "Checking to see if your system supports off64_t..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#include <unistd.h>
-int main() { off64_t x = 7; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo "Yes, it does."
-else
- val="$undef"
- echo "No, it doesn't."
- case "$lseeksize" in
- 8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
- esac
-fi
-$rm -f try.* try
-set d_off64_t
-eval $setvar
-
: check for fpos64_t
echo " "
-echo "Checking to see if your system supports fpos64_t..." >&4
+echo "Checking to see if you have fpos64_t..." >&4
$cat >try.c <<EOCP
#include <stdio.h>
int main() { fpos64_t x = 7; }
set try
if eval $compile; then
val="$define"
- echo "Yes, it does."
+ echo "You have fpos64_t."
else
val="$undef"
- echo "No, it doesn't."
+ echo "You do not have fpos64_t."
case "$fpossize" in
8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
esac
set getcwd d_getcwd
eval $inlibc
+
+: see if getfsstat exists
+set getfsstat d_getfsstat
+eval $inlibc
+
: see if getgrent exists
set getgrent d_getgrent
eval $inlibc
: check for int64_t
echo " "
-$echo $n "Checking to see if your system supports int64_t...$c" >&4
+echo "Checking to see if you have int64_t..." >&4
$cat >try.c <<EOCP
#include <sys/types.h>
#$i_inttypes I_INTTYPES
set try
if eval $compile; then
val="$define"
- echo " " >&4
echo "You have int64_t."
else
val="$undef"
- echo " " >&4
echo "You do not have int64_t."
fi
$rm -f try try.*
: check for long long
echo " "
-$echo $n "Checking to see if your system supports long long..." $c >&4
+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 " " >&4
echo "You have have long long."
else
val="$undef"
- echo " " >&4
echo "You do not have long long."
fi
$rm try.*
case "${d_longlong}${longlongsize}" in
$define)
echo " "
- $echo $n "Checking to see how big your long longs are..." $c >&4
+ echo "Checking to see how big your long longs are..." >&4
$cat >try.c <<'EOCP'
#include <stdio.h>
int main()
set try
if eval $compile_ok; then
longlongsize=`./try$exe_ext`
- $echo " $longlongsize bytes." >&4
+ echo "Your long longs are $longlongsize bytes long."
else
dflt='8'
echo " "
esac
$rm -f try.* try
+: see if prototype for lseek is available
+echo " "
+set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h
+eval $hasproto
+
: see if lstat exists
set lstat d_lstat
eval $inlibc
+: see if madvise exists
+set madvise d_madvise
+eval $inlibc
+
: see if mblen exists
set mblen d_mblen
eval $inlibc
'') echo "Alas, no 64-bit integer types in sight." >&4
d_quad="$undef"
;;
-*) if test X"$use64bits" = Xdefine -o X"$longsize" = X8; then
+*) if test X"$use64bitint" = Xdefine -o X"$longsize" = X8; then
verb="will"
else
verb="could"
echo " "
$echo "Choosing the C types to be used for Perl's internal types..." >&4
-case "$use64bits:$d_quad:$quadtype" in
+case "$use64bitint:$d_quad:$quadtype" in
define:define:?*)
ivtype="$quadtype"
uvtype="$uquadtype"
$rm -f try.* try
+
+: check for off64_t
+echo " "
+echo "Checking to see if you have off64_t..." >&4
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#include <unistd.h>
+int main() { off64_t x = 7; }
+EOCP
+set try
+if eval $compile; then
+ val="$define"
+ echo "You have off64_t."
+else
+ val="$undef"
+ echo "You do not have off64_t."
+ case "$lseeksize" in
+ 8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
+ esac
+fi
+$rm -f try.* try
+set d_off64_t
+eval $setvar
+
: see if POSIX threads are available
set pthread.h i_pthread
eval $inhdr
eval $setvar
$rm -f try.c try
-: check for socklen_t
-echo " "
-$echo $n "Checking to see if your system supports socklen_t...$c" >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#$d_socket HAS_SOCKET
-#ifdef HAS_SOCKET
-#include <sys/socket.h>
-#endif
-int main() { socklen_t x = 16; }
-EOCP
-set try
-if eval $compile; then
- val="$define"
- echo " " >&4
- echo "You have socklen_t."
-else
- val="$undef"
- echo " " >&4
- echo "You do not have socklen_t."
-fi
-$rm -f try try.*
-set d_socklen_t
-eval $setvar
-
: see if sys/stat.h is available
set sys/stat.h i_sysstat
eval $inhdr
set strtoll d_strtoll
eval $inlibc
+case "$d_longlong-$d_strtoll" in
+"$define-$define")
+ $cat <<EOM
+Checking whether your strtoll() works okay...
+EOM
+ $cat >try.c <<'EOCP'
+#include <errno.h>
+#ifdef __hpux
+#define strtoll __strtoll
+#endif
+#include <stdio.h>
+extern long long int strtoll(char *s, char **, int);
+static int bad = 0;
+int check(char *s, long long ell, int een) {
+ long long gll;
+ errno = 0;
+ gll = strtoll(s, 0, 10);
+ if (!((gll == ell) && (errno == een)))
+ bad++;
+}
+int main() {
+ check(" 1", 1LL, 0);
+ check(" 0", 0LL, 0);
+ check("-1", -1LL, 0);
+ check("-9223372036854775808", -9223372036854775808LL, 0);
+ check("-9223372036854775808", -9223372036854775808LL, 0);
+ check(" 9223372036854775807", 9223372036854775807LL, 0);
+ check("-9223372036854775808", -9223372036854775808LL, 0);
+ check(" 9223372036854775808", 9223372036854775807LL, ERANGE);
+ check("-9223372036854775809", -9223372036854775808LL, ERANGE);
+ if (!bad)
+ printf("ok\n");
+}
+EOCP
+ set try
+ if eval $compile; then
+ case "`./try`" in
+ ok) echo "Your strtoll() seems to be working okay." ;;
+ *) cat <<EOM >&4
+Your strtoll() doesn't seem to be working okay.
+EOM
+ d_strtoll="$undef"
+ ;;
+ esac
+ fi
+ ;;
+esac
+
: see if strtoul exists
set strtoul d_strtoul
eval $inlibc
set strtoull d_strtoull
eval $inlibc
+case "$d_longlong-$d_strtoull" in
+"$define-$define")
+ $cat <<EOM
+Checking whether your strtoull() works okay...
+EOM
+ $cat >try.c <<'EOCP'
+#include <errno.h>
+#ifdef __hpux
+#define strtoull __strtoull
+#endif
+#include <stdio.h>
+extern unsigned long long int strtoull(char *s, char **, int);
+static int bad = 0;
+int check(char *s, long long eull, int een) {
+ long long gull;
+ errno = 0;
+ gull = strtoull(s, 0, 10);
+ if (!((gull == eull) && (errno == een)))
+ bad++;
+}
+int main() {
+ check(" 1", 1LL, 0);
+ check(" 0", 0LL, 0);
+ check("18446744073709551615", 18446744073709551615ULL, 0);
+ check("18446744073709551616", 18446744073709551615ULL, ERANGE);
+ if (!bad)
+ printf("ok\n");
+}
+EOCP
+ set try
+ if eval $compile; then
+ case "`./try`" in
+ ok) echo "Your strtoull() seems to be working okay." ;;
+ *) cat <<EOM >&4
+Your strtoull() doesn't seem to be working okay.
+EOM
+ d_strtoull="$undef"
+ ;;
+ esac
+ fi
+ ;;
+esac
+
: see if strtouq exists
set strtouq d_strtouq
eval $inlibc
esac
case "$osname" in
-next|rhapsody) multiarch="$define" ;;
+next|rhapsody|darwin) multiarch="$define" ;;
esac
case "$multiarch" in
''|[nN]*) multiarch="$undef" ;;
esac
+: set the base revision
+baserev=5.0
+
: check for ordering of bytes in a long
echo " "
case "$crosscompile$multiarch" in
$rm -f core try.core core.try.*
case "$fflushNULL" in
x) $cat >&4 <<EOM
-Your fflush(NULL) works okay.
+Your fflush(NULL) works okay for output streams.
+Let's see if it clobbers input pipes...
EOM
- fflushNULL="$define"
+# As of mid-March 2000 all versions of Solaris appear to have a stdio
+# bug that improperly flushes the input end of pipes. So we avoid the
+# autoflush on fork/system/exec support for now. :-(
+$cat >tryp.c <<EOCP
+#include <stdio.h>
+int
+main(int argc, char **argv)
+{
+ char buf[1024];
+ int i;
+ char *bp = buf;
+ while (1) {
+ while ((i = getc(stdin)) != -1
+ && (*bp++ = i) != '\n'
+ && bp < &buf[1024])
+ /* DO NOTHING */ ;
+ *bp = '\0';
+ fprintf(stdout, "%s", buf);
+ fflush(NULL);
+ if (i == -1)
+ return 0;
+ bp = buf;
+ }
+}
+EOCP
+ fflushNULL="$define"
+ set tryp
+ if eval $compile; then
+ $rm -f tryp.out
+ $cat tryp.c | ./tryp$exe_ext 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.
+EOM
+ fflushNULL="$define"
+ else
+ $cat >&4 <<EOM
+Ouch, fflush(NULL) clobbers input pipes! We will not use it.
+EOM
+ fflushNULL="$undef"
+ fi
+ fi
+ $rm -f core tryp.c tryp.core core.tryp.*
;;
'') $cat >&4 <<EOM
Your fflush(NULL) isn't working (contrary to ANSI C).
fflushNULL="$undef"
;;
esac
-: check explicit looping only if NULL did not work
+: check explicit looping only if NULL did not work, and if the pipe
+: bug does not show up on an explicit flush too
case "$fflushNULL" in
"$undef")
- : check for fflush all behaviour
- case "$fflushall" in
- '') set try -DTRY_FFLUSH_ALL $output
- if eval $compile; then
- $cat >&4 <<EOM
-(Now testing the other method--but note that also this may fail.)
+ $cat >tryp.c <<EOCP
+#include <stdio.h>
+int
+main(int argc, char **argv)
+{
+ char buf[1024];
+ int i;
+ char *bp = buf;
+ while (1) {
+ while ((i = getc(stdin)) != -1
+ && (*bp++ = i) != '\n'
+ && bp < &buf[1024])
+ /* DO NOTHING */ ;
+ *bp = '\0';
+ fprintf(stdout, "%s", buf);
+ fflush(stdin);
+ if (i == -1)
+ return 0;
+ bp = buf;
+ }
+}
+EOCP
+ set tryp
+ if eval $compile; then
+ $rm -f tryp.out
+ $cat tryp.c | ./tryp$exe_ext 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.
EOM
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test -s try.out -a "X$?" = X42; then
- fflushall="`$cat try.out`"
- fi
- fi
- $rm -f core try.core core.try.*
+ : now check for fflushall behaviour
case "$fflushall" in
- x) $cat >&4 <<EOM
+ '') set try -DTRY_FFLUSH_ALL $output
+ if eval $compile; then
+ $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
+ fflushall="`$cat try.out`"
+ fi
+ fi
+ $rm -f core try.core core.try.*
+ case "$fflushall" in
+ x) $cat >&4 <<EOM
Whew. Flushing explicitly all the stdio streams works.
EOM
- fflushall="$define"
- ;;
- '') $cat >&4 <<EOM
+ fflushall="$define"
+ ;;
+ '') $cat >&4 <<EOM
Sigh. Flushing explicitly all the stdio streams doesn't work.
EOM
- fflushall="$undef"
- ;;
- *) $cat >&4 <<EOM
+ fflushall="$undef"
+ ;;
+ *) $cat >&4 <<EOM
Cannot figure out whether flushing stdio streams explicitly works or not.
I'm assuming it doesn't.
EOM
+ fflushall="$undef"
+ ;;
+ esac
+ ;;
+ "$define"|true|[yY]*)
+ fflushall="$define"
+ ;;
+ *)
fflushall="$undef"
;;
esac
- ;;
- "$define"|true|[yY]*)
- fflushall="$define"
- ;;
- *)
+ else
+ $cat >&4 <<EOM
+All is futile. Even fflush(stdin) clobbers input pipes!
+EOM
fflushall="$undef"
- ;;
- esac
+ fi
+ else
+ fflushall="$undef"
+ fi
+ $rm -f core tryp.c tryp.core core.tryp.*
;;
-*) fflushall="$undef"
+*) fflushall="$undef"
;;
esac
+
case "$fflushNULL$fflushall" in
undefundef)
$cat <<EOM
-I cannot figure out how to flush pending stdio output.
+OK, I give up. I cannot figure out how to flush pending stdio output.
+We won't be flushing handles at all before fork/exec/popen.
EOM
;;
esac
echo "(I can't execute the test program--guessing $gidsize.)" >&4
;;
*) gidsize=$yyy
- echo "Your $zzz size is $gidsize bytes."
+ echo "Your $zzz is $gidsize bytes long."
;;
esac
else
echo " "
case "$ptrsize" in
'')
- $echo $n "Checking to see how big your pointers are...$c" >&4
+ echo "Checking to see how big your pointers are..." >&4
if test "$voidflags" -gt 7; then
echo '#define VOID_PTR char *' > try.c
else
set try
if eval $compile_ok; then
ptrsize=`./try`
- $echo " $ptrsize bytes." >&4
+ echo "Your pointers are $ptrsize bytes long."
else
dflt='4'
echo "(I can't seem to compile the test program. Guessing...)" >&4
}'
$rm -f signal signal.c signal.awk signal.lst signal_cmd
+: check for socklen_t
+echo " "
+echo "Checking to see if you have socklen_t..." >&4
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#$d_socket HAS_SOCKET
+#ifdef HAS_SOCKET
+#include <sys/socket.h>
+#endif
+int main() { socklen_t x = 16; }
+EOCP
+set try
+if eval $compile; then
+ val="$define"
+ echo "You have socklen_t."
+else
+ val="$undef"
+ echo "You do not have socklen_t."
+ case "$sizetype" in
+ size_t) echo "(You do have size_t, that might work.)" ;;
+ esac
+fi
+$rm -f try try.*
+set d_socklen_t
+eval $setvar
+
+: check for type of the size argument to socket calls
+case "$d_socket" in
+"$define")
+ $cat <<EOM
+
+Checking to see what type is the last argument of accept().
+EOM
+ hdrs="$define sys/types.h $d_socket sys/socket.h"
+ yyy=''
+ case "$d_socklen_t" in
+ "$define") yyy="$yyy socklen_t"
+ esac
+ yyy="$yyy $sizetype int long"
+ for xxx in $yyy; do
+ case "$socksizetype" in
+ '') try="extern int accept(int, struct sockaddr *, $xxx *);"
+ if ./protochk "$try" $hdrs; then
+ echo "Your system accepts '$xxx *' for the last argument of accept()."
+ socksizetype="$xxx"
+ fi
+ ;;
+ esac
+ done
+: In case none of those worked, prompt the user.
+ case "$socksizetype" in
+ '') rp='What is the type for socket address structure sizes?'
+ dflt='int'
+ . ./myread
+ socksizetype=$ans
+ ;;
+ esac
+ ;;
+*) : no sockets, so pick relatively harmless defaults
+ socksizetype='char *'
+ ;;
+esac
+
: see what type is used for signed size_t
set ssize_t ssizetype int stdio.h sys/types.h
eval $typedef
echo "(I can't execute the test program--guessing $uidsize.)" >&4
;;
*) uidsize=$yyy
- echo "Your $zzz size is $uidsize bytes."
+ echo "Your $zzz is $uidsize bytes long."
;;
esac
else
set iconv.h i_iconv
eval $inhdr
+: see if this is a ieeefp.h system
+set ieeefp.h i_ieeefp
+eval $inhdr
+
: see if locale.h is available
set locale.h i_locale
eval $inhdr
echo '}' >> try.c
EOSH
cat <<EOSH >> Cppsym.try
-cc="$cc"
-optimize="$optimize"
ccflags="$ccflags"
-ldflags="$ldflags"
-libs="$libs"
-exe_ext="$exe_ext"
-$cc $optimize $ccflags $ldflags -o try try.c $libs && ./try$exe_ext
+case "$osname-$gccversion" in
+irix-) ccflags="\$ccflags -woff 1178" ;;
+esac
+$cc $optimize \$ccflags $ldflags -o try try.c $libs && ./try$exe_ext
EOSH
chmod +x Cppsym.try
$eunicefix Cppsym.try
set stddef.h i_stddef
eval $inhdr
+: see if this is a sunmath.h system
+set sunmath.h i_sunmath
+eval $inhdr
+
: see if sys/access.h is available
set sys/access.h i_sysaccess
eval $inhdr
NDBM_File|ndbm_fil)
case "$i_ndbm" in
$define)
- case "$osname-$use64bits" in
+ case "$osname-$use64bitint" in
hpux-define)
case "$libs" in
*-lndbm*) avail_ext="$avail_ext $xxx" ;;
ODBM_File|odbm_fil)
case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*)
- case "$osname-$use64bits" in
+ case "$osname-$use64bitint" in
hpux-define)
case "$libs" in
*-ldbm*) avail_ext="$avail_ext $xxx" ;;
d_ftello='$d_ftello'
d_ftime='$d_ftime'
d_getcwd='$d_getcwd'
+d_getfsstat='$d_getfsstat'
d_getgrent='$d_getgrent'
d_getgrps='$d_getgrps'
d_gethbyaddr='$d_gethbyaddr'
d_lockf='$d_lockf'
d_longdbl='$d_longdbl'
d_longlong='$d_longlong'
+d_lseekproto='$d_lseekproto'
d_lstat='$d_lstat'
+d_madvise='$d_madvise'
d_mblen='$d_mblen'
d_mbstowcs='$d_mbstowcs'
d_mbtowc='$d_mbtowc'
d_pwgecos='$d_pwgecos'
d_pwpasswd='$d_pwpasswd'
d_pwquota='$d_pwquota'
+d_qgcvt='$d_qgcvt'
d_quad='$d_quad'
d_readdir='$d_readdir'
d_readlink='$d_readlink'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
d_ustat='$d_ustat'
+d_vendorarch='$d_vendorarch'
d_vendorbin='$d_vendorbin'
d_vendorlib='$d_vendorlib'
d_vfork='$d_vfork'
i_gdbm='$i_gdbm'
i_grp='$i_grp'
i_iconv='$i_iconv'
+i_ieeefp='$i_ieeefp'
i_inttypes='$i_inttypes'
i_limits='$i_limits'
i_locale='$i_locale'
i_stddef='$i_stddef'
i_stdlib='$i_stdlib'
i_string='$i_string'
+i_sunmath='$i_sunmath'
i_sysaccess='$i_sysaccess'
i_sysdir='$i_sysdir'
i_sysfile='$i_sysfile'
installsitelib='$installsitelib'
installstyle='$installstyle'
installusrbinperl='$installusrbinperl'
+installvendorarch='$installvendorarch'
installvendorbin='$installvendorbin'
installvendorlib='$installvendorlib'
intsize='$intsize'
passcat='$passcat'
patchlevel='$patchlevel'
path_sep='$path_sep'
+perl5='$perl5'
perl='$perl'
perladmin='$perladmin'
perlpath='$perlpath'
randseedtype='$randseedtype'
ranlib='$ranlib'
rd_nodata='$rd_nodata'
+revision='$revision'
rm='$rm'
rmail='$rmail'
runnm='$runnm'
sitebin='$sitebin'
sitebinexp='$sitebinexp'
sitelib='$sitelib'
+sitelib_stem='$sitelib_stem'
sitelibexp='$sitelibexp'
siteprefix='$siteprefix'
siteprefixexp='$siteprefixexp'
so='$so'
sockethdr='$sockethdr'
socketlib='$socketlib'
+socksizetype='$socksizetype'
sort='$sort'
spackage='$spackage'
spitshell='$spitshell'
uniq='$uniq'
uquadtype='$uquadtype'
use5005threads='$use5005threads'
-use64bits='$use64bits'
+use64bitall='$use64bitall'
+use64bitint='$use64bitint'
usedl='$usedl'
useithreads='$useithreads'
uselargefiles='$uselargefiles'
uvtype='$uvtype'
uvuformat='$uvuformat'
uvxformat='$uvxformat'
+vendorarch='$vendorarch'
+vendorarchexp='$vendorarchexp'
vendorbin='$vendorbin'
vendorbinexp='$vendorbinexp'
vendorlib='$vendorlib'
+vendorlib_stem='$vendorlib_stem'
vendorlibexp='$vendorlibexp'
vendorprefix='$vendorprefix'
vendorprefixexp='$vendorprefixexp'