# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sat Feb 12 21:21: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=''
d_htonl=''
d_iconv=''
d_inetaton=''
-d_int64t=''
+d_int64_t=''
d_isascii=''
d_killpg=''
d_lchown=''
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_sockpair=''
sockethdr=''
socketlib=''
+d_socklen_t=''
d_sqrtl=''
d_statblks=''
d_statfs_f_flags=''
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=''
i_syssockio=''
i_syslog=''
i_sysmman=''
+i_sysmode=''
i_sysmount=''
i_sysndir=''
i_sysparam=''
i_systypes=''
i_sysuio=''
i_sysun=''
+i_sysutsname=''
i_sysvfs=''
i_syswait=''
i_sgtty=''
intsize=''
longsize=''
shortsize=''
-d_fpos64_t=''
-d_off64_t=''
libc=''
ldlibpthname=''
libperl=''
libsdirs=''
libsfiles=''
libsfound=''
+libspath=''
lns=''
d_PRIEldbl=''
d_PRIFldbl=''
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=''
groupstype=''
: change the next line if compiling for Xenix/286 on Xenix/386
xlibpth='/usr/lib/386 /lib/386'
-
: Possible local library directories to search.
loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
: general looking path for locating libraries
-glibpth="/shlib /usr/shlib /lib/pa20_64 /lib/pa1.1 /usr/lib/large"
-glibpth="$glibpth /lib /usr/lib $xlibpth"
+glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
+test -f /shlib/libc.so && glibpth="/shlib $glibpth"
: Private path used by Configure to find libraries. Its value
: is prepended to libpth. This variable takes care of special
: 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 ! !'`
echo "$yyy=$zzz" >> posthint.sh ;;
*) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
esac
+ shift
;;
-V) echo "$me generated by metaconfig 3.0 PL70." >&2
exit 0;;
more
nm
nroff
-perl
pg
test
uname
: specified already.
case "$hintfile" in
''|' ')
- file=`echo "${osname}_${osvers}" | $sed -e 's@\.@_@g' -e 's@_$@@'`
+ file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
: Also try without trailing minor version numbers.
- xfile=`echo $file | $sed -e 's@_[^_]*$@@'`
- xxfile=`echo $xfile | $sed -e 's@_[^_]*$@@'`
- xxxfile=`echo $xxfile | $sed -e 's@_[^_]*$@@'`
- xxxxfile=`echo $xxxfile | $sed -e 's@_[^_]*$@@'`
+ xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
+ xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
+ xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
+ xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
case "$file" in
'') dflt=none ;;
*) case "$osvers" in
*) eval "$var=$val";;
esac'
+case "$usethreads" in
+$define|true|[yY]*) dflt='y';;
+*) dflt='n';;
+esac
cat <<EOM
Perl can be built to take advantage of threads on some systems.
-To do so, Configure must be run with -Dusethreads.
+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.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
-case "$usethreads" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
rp='Build a threading Perl?'
. ./myread
case "$ans" in
EOM
val="$define"
;;
-*)
- echo 'Normally you do not need this and you should answer no.'
- case "$usemultiplicity" in
+*) case "$usemultiplicity" in
$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
case "$ans" in
exit(0);
}
EOM
-if $cc -o gccvers gccvers.c; then
+if $cc $ldflags -o gccvers gccvers.c; then
gccversion=`./gccvers`
case "$gccversion" in
'') echo "You are not using GNU cc." ;;
'') 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.
-Normally you do not need this and you should answer no.
-
+If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
-case "$usesocks" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
rp='Build Perl for SOCKS?'
. ./myread
case "$ans" in
'') libswanted='c_s';;
esac
case "$usesocks" in
-$define)
- libswanted="$libswanted socks5 socks5_sh"
- ;;
+"$define") libswanted="$libswanted socks5 socks5_sh" ;;
esac
+libsfound=''
+libsfiles=''
+libsdirs=''
+libspath=''
+for thisdir in $libpth $xlibpth; do
+ test -d $thisdir && libspath="$libspath $thisdir"
+done
for thislib in $libswanted; do
-
- libname="$thislib"
- if xxx=`./loc lib$thislib.$so.[0-9]'*' X $libpth`
- $test -f "$xxx" -a "X$ignore_versioned_solibs" = "X" ; then
- libstyle=shared
- elif xxx=`./loc lib$thislib.$so X $libpth` ; $test -f "$xxx"; then
- libstyle=shared
- elif xxx=`./loc lib$thislib$_a X $libpth`; $test -f "$xxx"; then
- libstyle=static
- elif xxx=`./loc $thislib$_a X $libpth`; $test -f "$xxx"; then
- libstyle=static
- elif xxx=`./loc lib${thislib}_s$_a X $libpth`; $test -f "$xxx"; then
- libstyle=static
- libname=${thislib}_s
- elif xxx=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$xxx"; then
- libstyle="static"
- fi
- if $test -f "$xxx"; then
+ 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`
+ $test -f "$xxx" && eval $libscheck
+ $test -f "$xxx" && libstyle=shared
+ fi
+ if test ! -f "$xxx"; then
+ xxx=$thisdir/lib$thislib.$so
+ $test -f "$xxx" && eval $libscheck
+ $test -f "$xxx" && libstyle=shared
+ fi
+ if test ! -f "$xxx"; then
+ xxx=$thisdir/lib$thislib$_a
+ $test -f "$xxx" && eval $libscheck
+ $test -f "$xxx" && libstyle=static
+ fi
+ if test ! -f "$xxx"; then
+ xxx=$thisdir/$thislib$_a
+ $test -f "$xxx" && eval $libscheck
+ $test -f "$xxx" && libstyle=static
+ fi
+ if test ! -f "$xxx"; then
+ 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
+ $test -f "$xxx" && eval $libscheck
+ $test -f "$xxx" && libstyle=static
+ fi
+ if $test -f "$xxx"; then
case "$libstyle" in
- shared) echo "Found -l$libname (shared)." ;;
- static) echo "Found -l$libname." ;;
- *) echo "Found -l$libname ($libstyle)." ;;
+ shared) echo "Found -l$thislib (shared)." ;;
+ static) echo "Found -l$thislib." ;;
+ *) echo "Found -l$thislib ($libstyle)." ;;
esac
case " $dflt " in
*"-l$thislib "*);;
- *) dflt="$dflt -l$libname"
+ *) dflt="$dflt -l$thislib"
libsfound="$libsfound $xxx"
yyy=`basename $xxx`
libsfiles="$libsfiles $yyy"
- yyy=`echo $xxx|sed "s@/$yyy\\$@@"`
+ yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
case " $libsdirs " in
*" $yyy "*) ;;
*) libsdirs="$libsdirs $yyy" ;;
esac
;;
esac
- else
- echo "No -l$thislib."
+ break
+ fi
+ done
+ if $test ! -f "$xxx"; then
+ echo "No -l$thislib."
fi
done
set X $dflt
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 " "
echo "(I can't execute the test program--guessing $fpossize.)" >&4
;;
*) fpossize=$yyy
- echo " $fpossize bytes."
+ echo "Your $zzz is $fpossize bytes long."
;;
esac
else
dflt="$longsize"
- echo " "
+ echo " " >&4
echo "(I can't compile the test program. Guessing...)" >&4
rp="What is the size of your file positions (in bytes)?"
. ./myread
+# 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" ;;
-*) cat <<EOM
+*) 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 must be run with -Duselargefiles.
+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 'y'.
+If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
- case "$uselargefiles" in
- "$undef"|false|[nN]*) dflt='n' ;;
- *) dflt='y' ;;
- esac
rp='Try to understand large files, if available?'
. ./myread
case "$ans" in
: 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 must 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
. ./getfile
usedl="$define"
: emulate basename
- dlsrc=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@'`
+ dlsrc=`echo $ans | $sed -e 's%.*/\([^/]*\)$%\1%'`
$cat << EOM
case "$lddlflags" in
'') case "$osname" in
beos) dflt='-nostart' ;;
- hpux) dflt='-b' ;;
+ 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?'
set sqrtl d_sqrtl
eval $inlibc
-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 'n'.
-EOM
-
case "$ccflags" in
*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
esac
$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
$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
;;
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
problems with some extension modules. Using PerlIO with stdio is safe,
but it is slower than plain stdio and therefore is not the default.
-If this doesn't make any sense to you, just accept the default 'n'.
+If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
-case "$useperlio" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
rp='Use the experimental PerlIO abstraction layer?'
. ./myread
case "$ans" in
;;
*) 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 " Yes, it does." >&4
+ echo "You have long double."
else
val="$undef"
- echo " No, it doesn't." >&4
+ echo "You do not have long double."
fi
$rm try.*
set d_longdbl
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
-
-#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)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
;;
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 <sys/stdio.h>
-int main() { fpos64_t x x = 7; }'
+#include <stdio.h>
+int main() { fpos64_t x = 7; }
EOCP
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 " Yes, it does." >&4
+ echo "You have int64_t."
else
val="$undef"
- echo " No, it doesn't." >&4
+ echo "You do not have int64_t."
fi
$rm -f try try.*
-set d_int64t
+set d_int64_t
eval $setvar
: Look for isascii
: 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 " Yes, it does." >&4
+ echo "You have have long long."
else
val="$undef"
- echo " No, it doesn't." >&4
+ echo "You do not have long long."
fi
$rm try.*
set d_longlong
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
set mktime d_mktime
eval $inlibc
+: see if this is a sys/mman.h system
+set sys/mman.h i_sysmman
+eval $inhdr
+
+: see if mmap exists
+set mmap d_mmap
+eval $inlibc
+: see what shmat returns
+: default to something harmless
+mmaptype='void *'
+case "$i_sysmman$d_mmap" in
+"$define$define")
+ $cat >mmap.c <<'END'
+#include <sys/mman.h>
+void *mmap();
+END
+ if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
+ mmaptype='void *'
+ else
+ mmaptype='caddr_t'
+ fi
+ echo "and it returns ($mmaptype)." >&4
+ ;;
+esac
+
+
+
: see if mprotect exists
set mprotect d_mprotect
eval $inlibc
eval $setvar
quadkind=3
;;
- *) case "$d_int64t" in
+ *) case "$d_int64_t" in
define)
val=int64_t
set quadtype
'') 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
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" ;;
*)
case "$alignbytes" in
'') echo "Checking alignment constraints..." >&4
- $cat >try.c <<'EOCP'
+ if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then
+ $cat >try.c <<'EOCP'
+typedef long double NV;
+EOCP
+ else
+ $cat >try.c <<'EOCP'
+typedef double NV;
+EOCP
+ fi
+ $cat >>try.c <<'EOCP'
#include <stdio.h>
struct foobar {
char foo;
- double bar;
+ NV bar;
} try_algn;
int main()
{
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
+# 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="$define"
+ 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 "Nope, it doesn't.";;
esac
-: see if this is a sys/mman.h system
-set sys/mman.h i_sysmman
-eval $inhdr
-
-: see if mmap exists
-set mmap d_mmap
-eval $inlibc
-: see what shmat returns
-: default to something harmless
-mmaptype='void *'
-case "$i_sysmman$d_mmap" in
-"$define$define")
- $cat >mmap.c <<'END'
-#include <sys/mman.h>
-void *mmap();
-END
- if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
- mmaptype='void *'
- else
- mmaptype='caddr_t'
- fi
- echo "and it returns ($mmaptype)." >&4
- ;;
-esac
-
-
-
: see what type is used for mode_t
rp="What is the type used for file modes for system calls (e.g. fchmod())?"
set mode_t modetype int stdio.h sys/types.h
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
set syslog.h i_syslog
eval $inhdr
+
+: see if this is a sys/mode.h system
+set sys/mode.h i_sysmode
+eval $inhdr
+
: see if sys/resource.h has to be included
set sys/resource.h i_sysresrc
eval $inhdr
set sys/un.h i_sysun
eval $inhdr
+
+: see if this is a sys/utsname.h system
+set sys/utsname.h i_sysutsname
+eval $inhdr
+
: see if this is a syswait system
set sys/wait.h i_syswait
eval $inhdr
;;
NDBM_File|ndbm_fil)
case "$i_ndbm" in
- $define) avail_ext="$avail_ext $xxx" ;;
+ $define)
+ case "$osname-$use64bitint" in
+ hpux-define)
+ case "$libs" in
+ *-lndbm*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ *) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
esac
;;
ODBM_File|odbm_fil)
case "${i_dbm}${i_rpcsvcdbm}" in
- *"${define}"*) avail_ext="$avail_ext $xxx" ;;
+ *"${define}"*)
+ case "$osname-$use64bitint" in
+ hpux-define)
+ case "$libs" in
+ *-ldbm*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ *) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
esac
;;
POSIX|posix)
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_iconv='$d_iconv'
d_index='$d_index'
d_inetaton='$d_inetaton'
-d_int64t='$d_int64t'
+d_int64_t='$d_int64_t'
d_isascii='$d_isascii'
d_killpg='$d_killpg'
d_lchown='$d_lchown'
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_sigaction='$d_sigaction'
d_sigsetjmp='$d_sigsetjmp'
d_socket='$d_socket'
+d_socklen_t='$d_socklen_t'
d_sockpair='$d_sockpair'
d_sqrtl='$d_sqrtl'
d_statblks='$d_statblks'
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'
i_sysioctl='$i_sysioctl'
i_syslog='$i_syslog'
i_sysmman='$i_sysmman'
+i_sysmode='$i_sysmode'
i_sysmount='$i_sysmount'
i_sysndir='$i_sysndir'
i_sysparam='$i_sysparam'
i_systypes='$i_systypes'
i_sysuio='$i_sysuio'
i_sysun='$i_sysun'
+i_sysutsname='$i_sysutsname'
i_sysvfs='$i_sysvfs'
i_syswait='$i_syswait'
i_termio='$i_termio'
installsitelib='$installsitelib'
installstyle='$installstyle'
installusrbinperl='$installusrbinperl'
+installvendorarch='$installvendorarch'
installvendorbin='$installvendorbin'
installvendorlib='$installvendorlib'
intsize='$intsize'
libsdirs='$libsdirs'
libsfiles='$libsfiles'
libsfound='$libsfound'
+libspath='$libspath'
libswanted='$libswanted'
line='$line'
lint='$lint'
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'