# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Tue Apr 3 04:12:27 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Tue Sep 11 15:19:00 EET DST 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
ccsymbols=''
cppccsymbols=''
cppsymbols=''
+from=''
+run=''
+targetarch=''
+to=''
+usecrosscompile=''
perllibs=''
dynamic_ext=''
extensions=''
static_ext=''
useopcode=''
useposix=''
+extras=''
d_bsd=''
d_eunice=''
d_xenix=''
obj_ext=''
path_sep=''
afs=''
+afsroot=''
alignbytes=''
ansi2knr=''
archlib=''
cppminus=''
cpprun=''
cppstdin=''
-crosscompile=''
d__fwalk=''
d_access=''
d_accessx=''
d_chown=''
d_chroot=''
d_chsize=''
+d_class=''
d_closedir=''
d_void_closedir=''
+d_cmsghdr_s=''
d_const=''
cryptlib=''
d_crypt=''
full_csh=''
d_cuserid=''
d_dbl_dig=''
+d_dbminitproto=''
d_difftime=''
d_dlerror=''
d_dlopen=''
d_endpent=''
d_endpwent=''
d_endsent=''
+d_fchdir=''
d_fchmod=''
d_fchown=''
d_fcntl=''
d_fd_set=''
d_fds_bits=''
d_fgetpos=''
+d_finite=''
+d_finitel=''
d_flexfnam=''
d_flock=''
+d_flockproto=''
d_fork=''
+d_fp_class=''
+d_fpclass=''
+d_fpclassify=''
+d_fpclassl=''
d_fpos64_t=''
d_frexpl=''
d_fs_data_s=''
d_phostname=''
d_uname=''
d_gethostprotos=''
+d_getitimer=''
d_getlogin=''
d_getmnt=''
d_getmntent=''
d_inetaton=''
d_int64_t=''
d_isascii=''
+d_isfinite=''
+d_isinf=''
d_isnan=''
d_isnanl=''
d_killpg=''
d_mmap=''
mmaptype=''
d_modfl=''
+d_modfl_pow32_bug=''
d_mprotect=''
d_msg=''
d_msgctl=''
d_msgget=''
+d_msghdr_s=''
d_msgrcv=''
d_msgsnd=''
d_msync=''
d_munmap=''
d_nice=''
+d_nl_langinfo=''
d_off64_t=''
d_open3=''
d_fpathconf=''
d_portable=''
d_old_pthread_create_joinable=''
old_pthread_create_joinable=''
+d_pthread_atfork=''
d_pthread_yield=''
d_sched_yield=''
sched_yield=''
d_seekdir=''
d_telldir=''
d_readlink=''
+d_readv=''
+d_recvmsg=''
d_rename=''
d_rmdir=''
d_safebcpy=''
d_semctl=''
d_semget=''
d_semop=''
+d_sendmsg=''
d_setegid=''
d_seteuid=''
d_setgrent=''
d_setgrps=''
d_sethent=''
+d_setitimer=''
d_setlinebuf=''
d_setlocale=''
d_setnent=''
d_sigprocmask=''
d_sigsetjmp=''
d_sockatmark=''
+d_sockatmarkproto=''
d_msg_ctrunc=''
d_msg_dontroute=''
d_msg_oob=''
d_socklen_t=''
d_socks5_init=''
d_sqrtl=''
+d_sresgproto=''
+d_sresuproto=''
d_statblks=''
d_statfs_f_flags=''
d_statfs_s=''
d_strerror=''
d_sysernlst=''
d_syserrlst=''
+d_strftime=''
d_strtod=''
d_strtol=''
d_strtold=''
d_strxfrm=''
d_symlink=''
d_syscall=''
+d_syscallproto=''
d_sysconf=''
d_system=''
d_tcgetpgrp=''
d_times=''
d_truncate=''
d_tzname=''
+d_u32align=''
+d_ualarm=''
d_umask=''
d_semctl_semid_ds=''
d_semctl_semun=''
d_union_semun=''
+d_unordered=''
+d_usleep=''
+d_usleepproto=''
d_ustat=''
d_vfork=''
usevfork=''
d_waitpid=''
d_wcstombs=''
d_wctomb=''
+d_writev=''
dlext=''
cccdlflags=''
ccdlflags=''
i_arpainet=''
db_hashtype=''
db_prefixtype=''
+db_version_major=''
+db_version_minor=''
+db_version_patch=''
i_db=''
i_dbm=''
i_rpcsvcdbm=''
i_dlfcn=''
i_fcntl=''
i_float=''
+i_fp=''
+i_fp_class=''
i_gdbm=''
d_grpasswd=''
i_grp=''
i_iconv=''
i_ieeefp=''
i_inttypes=''
+i_langinfo=''
i_libutil=''
i_limits=''
i_locale=''
api_version=''
api_versionstring=''
patchlevel=''
+perl_patchlevel=''
revision=''
subversion=''
version=''
+version_patchlevel_string=''
perl5=''
perladmin=''
perlpath=''
d_oldpthreads=''
use5005threads=''
useithreads=''
+usereentrant=''
usethreads=''
incpath=''
mips_type=''
inclwanted=''
groupstype=''
+libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
xlibpth='/usr/lib/386 /lib/386'
: Possible local library directories to search.
: set usemultiplicity on the Configure command line to enable multiplicity.
: set usesocks on the Configure command line to enable socks.
: set usethreads on the Configure command line to enable threads.
+usereentrant='undef'
: full support for void wanted by default
defvoidused=15
esac
case "$sh" in
-'') cat <<EOM >&2
+'') cat >&2 <<EOM
$me: Fatal Error: I can't find a Bourne Shell anywhere.
Usually it's in /bin/sh. How did you even get this far?
spitshell=cat
xcat=/bin/cat
test -f $xcat || xcat=/usr/bin/cat
- echo "#!$xcat" >try
- $eunicefix try
- chmod +x try
- ./try > today
+ echo "#!$xcat" >sharp
+ $eunicefix sharp
+ chmod +x sharp
+ ./sharp > today
if test -s today; then
sharpbang='#!'
else
- echo "#! $xcat" > try
- $eunicefix try
- chmod +x try
- ./try > today
+ echo "#! $xcat" > sharp
+ $eunicefix sharp
+ chmod +x sharp
+ ./sharp > today
if test -s today; then
sharpbang='#! '
else
echo "I presume that if # doesn't work, #! won't work either!"
sharpbang=': use '
fi
-rm -f try today
+rm -f sharp today
: figure out how to guarantee sh startup
case "$startsh" in
'') startsh=${sharpbang}${sh} ;;
*)
esac
-cat >try <<EOSS
+cat >sharp <<EOSS
$startsh
set abc
test "$?abc" != 1
EOSS
-chmod +x try
-$eunicefix try
-if ./try; then
+chmod +x sharp
+$eunicefix sharp
+if ./sharp; then
: echo "Yup, it does."
else
echo "Hmm... '$startsh' does not guarantee sh startup..."
echo "You may have to fix up the shell scripts to make sure $sh runs them."
fi
-rm -f try
+rm -f sharp
: Save command line options in file UU/cmdline.opt for later use in
config_argc=$#
EOSH
argn=1
+args_exp=''
+args_sep=''
for arg in "$@"; do
cat >>cmdline.opt <<EOSH
config_arg$argn='$arg'
EOSH
+ # Extreme backslashitis: replace each ' by '"'"'
+ cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
+$arg
+EOC
+ arg_exp=`cat cmdl.opt`
+ args_exp="$args_exp$args_sep'$arg_exp'"
argn=`expr $argn + 1`
+ args_sep=' '
done
+# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@"
+# used by ./hints/os2.sh
+rm -f cmdl.opt
: produce awk script to parse command line options
cat >options.awk <<'EOF'
: script used to extract .SH files with variable substitutions
cat >extract <<'EOS'
-CONFIGDOTSH=true
+PERL_CONFIG_SH=true
echo "Doing variable substitutions on .SH files..."
-if test -f $src/MANIFEST; then
- set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
+if test -f MANIFEST; then
+ set x `awk '{print $1}' < MANIFEST | grep '\.SH$'`
else
echo "(Looking for .SH files under the source directory.)"
set x `(cd $src; find . -name "*.SH" -print)`
echo " "
. UU/extract
rm -rf UU
- echo "Done."
+ echo "Extraction done."
exit 0
;;
esac
loclist="
awk
cat
+chmod
comm
cp
echo
return 0;
}
EOM
- if $cc -o try $ccflags try.c; then
+ if $cc -o try $ccflags $ldflags try.c; then
:
else
echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
fi
done
# Sanity check 2.
- if test ! -f t/base/commonsense.t; then
- echo "Failed to create the symlinks. Aborting." >&4
+ if test ! -f t/base/lex.t; then
+ echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
exit 1
fi
cd UU
;;
esac
+
+case "$usecrosscompile" in
+$define|true|[yY]*)
+ $echo "Cross-compiling..."
+ croak=''
+ case "$cc" in
+ *-*-gcc) # A cross-compiling gcc, probably.
+ targetarch=`$echo $cc|$sed 's/-gcc$//'`
+ ar=$targetarch-ar
+ # leave out ld, choosing it is more complex
+ nm=$targetarch-nm
+ ranlib=$targetarch-ranlib
+ $echo 'extern int foo;' > try.c
+ set X `$cc -v -E try.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
+ shift
+ if $test $# -gt 0; then
+ incpth="$incpth $*"
+ incpth="`$echo $incpth|$sed 's/^ //'`"
+ echo "Guessing incpth '$incpth'." >&4
+ for i in $*; do
+ j="`$echo $i|$sed 's,/include$,/lib,'`"
+ if $test -d $j; then
+ libpth="$libpth $j"
+ fi
+ done
+ libpth="`$echo $libpth|$sed 's/^ //'`"
+ echo "Guessing libpth '$libpth'." >&4
+ fi
+ $rm -f try.c
+ ;;
+ esac
+ case "$targetarch" in
+ '') echo "Targetarch not defined." >&4; croak=y ;;
+ *) echo "Using targetarch $targetarch." >&4 ;;
+ esac
+ case "$incpth" in
+ '') echo "Incpth not defined." >&4; croak=y ;;
+ *) echo "Using incpth '$incpth'." >&4 ;;
+ esac
+ case "$libpth" in
+ '') echo "Libpth not defined." >&4; croak=y ;;
+ *) echo "Using libpth '$libpth'." >&4 ;;
+ esac
+ case "$usrinc" in
+ '') for i in $incpth; do
+ if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
+ usrinc=$i
+ echo "Guessing usrinc $usrinc." >&4
+ break
+ fi
+ done
+ case "$usrinc" in
+ '') echo "Usrinc not defined." >&4; croak=y ;;
+ esac
+ ;;
+ *) echo "Using usrinc $usrinc." >&4 ;;
+ esac
+ case "$targethost" in
+ '') echo "Targethost not defined." >&4; croak=y ;;
+ *) echo "Using targethost $targethost." >&4
+ esac
+ locincpth=' '
+ loclibpth=' '
+ case "$croak" in
+ y) echo "Cannot continue, aborting." >&4; exit 1 ;;
+ esac
+ case "$src" in
+ /*) run=$src/Cross/run
+ targetmkdir=$src/Cross/mkdir
+ to=$src/Cross/to
+ from=$src/Cross/from
+ ;;
+ *) pwd=`$test -f ../Configure & cd ..; pwd`
+ run=$pwd/Cross/run
+ targetmkdir=$pwd/Cross/mkdir
+ to=$pwd/Cross/to
+ from=$pwd/Cross/from
+ ;;
+ esac
+ case "$targetrun" in
+ '') targetrun=ssh ;;
+ esac
+ case "$targetto" in
+ '') targetto=scp ;;
+ esac
+ case "$targetfrom" in
+ '') targetfrom=scp ;;
+ esac
+ run=$run-$targetrun
+ to=$to-$targetto
+ from=$from-$targetfrom
+ case "$targetdir" in
+ '') targetdir=/tmp
+ echo "Guessing targetdir $targetdir." >&4
+ ;;
+ esac
+ case "$targetuser" in
+ '') targetuser=root
+ echo "Guessing targetuser $targetuser." >&4
+ ;;
+ esac
+ case "$targetfrom" in
+ scp) q=-q ;;
+ *) q='' ;;
+ esac
+ case "$targetrun" in
+ ssh|rsh)
+ cat >$run <<EOF
+#!/bin/sh
+case "\$1" in
+-cwd)
+ shift
+ cwd=\$1
+ shift
+ ;;
+esac
+case "\$cwd" in
+'') cwd=$targetdir ;;
+esac
+exe=\$1
+shift
+if $test ! -f \$exe.xok; then
+ $to \$exe
+ $touch \$exe.xok
+fi
+$targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
+EOF
+ ;;
+ *) echo "Unknown targetrun '$targetrun'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetmkdir" in
+ */Cross/mkdir)
+ cat >$targetmkdir <<EOF
+#!/bin/sh
+$targetrun -l $targetuser $targethost "mkdir -p \$@"
+EOF
+ $chmod a+rx $targetmkdir
+ ;;
+ *) echo "Unknown targetmkdir '$targetmkdir'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetto" in
+ scp|rcp)
+ cat >$to <<EOF
+#!/bin/sh
+for f in \$@
+do
+ case "\$f" in
+ /*)
+ $targetmkdir \`dirname \$f\`
+ $targetto $q \$f $targetuser@$targethost:\$f || exit 1
+ ;;
+ *)
+ $targetmkdir $targetdir/\`dirname \$f\`
+ $targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1
+ ;;
+ esac
+done
+exit 0
+EOF
+ ;;
+ cp) cat >$to <<EOF
+#!/bin/sh
+for f in \$@
+do
+ case "\$f" in
+ /*)
+ $mkdir -p $targetdir/\`dirname \$f\`
+ $cp \$f $targetdir/\$f || exit 1
+ ;;
+ *)
+ $targetmkdir $targetdir/\`dirname \$f\`
+ $cp \$f $targetdir/\$f || exit 1
+ ;;
+ esac
+done
+exit 0
+EOF
+ ;;
+ *) echo "Unknown targetto '$targetto'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetfrom" in
+ scp|rcp)
+ cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+ $rm -f \$f
+ $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+ ;;
+ cp) cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+ $rm -f \$f
+ cp $targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+ ;;
+ *) echo "Unknown targetfrom '$targetfrom'" >&4
+ exit 1
+ ;;
+ esac
+ if $test ! -f $run; then
+ echo "Target 'run' script '$run' not found." >&4
+ else
+ $chmod a+rx $run
+ fi
+ if $test ! -f $to; then
+ echo "Target 'to' script '$to' not found." >&4
+ else
+ $chmod a+rx $to
+ fi
+ if $test ! -f $from; then
+ echo "Target 'from' script '$from' not found." >&4
+ else
+ $chmod a+rx $from
+ fi
+ if $test ! -f $run -o ! -f $to -o ! -f $from; then
+ exit 1
+ fi
+ cat >&4 <<EOF
+Using '$run' for remote execution,
+and '$from' and '$to'
+for remote file transfer.
+EOF
+ ;;
+*) run=''
+ to=:
+ from=:
+ usecrosscompile='undef'
+ targetarch=''
+ ;;
+esac
+
: see whether [:lower:] and [:upper:] are supported character classes
echo " "
case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
fi
fi
+ case "$targetarch" in
+ '') ;;
+ *) hostarch=$osname
+ osname=`echo $targetarch|sed 's,^[^-]*-,,'`
+ osvers=''
+ ;;
+ esac
+
: Now look for a hint file osname_osvers, unless one has been
: specified already.
case "$hintfile" in
elif $test -f $src/hints/$file.sh; then
. $src/hints/$file.sh
$cat $src/hints/$file.sh >> UU/config.sh
- elif $test X$tans = X -o X$tans = Xnone ; then
+ elif $test X"$tans" = X -o X"$tans" = Xnone ; then
: nothing
else
: Give one chance to correct a possible typo.
set usemultiplicity
eval $setvar
+
+case "$usemorebits" in
+"$define"|true|[yY]*)
+ use64bitint="$define"
+ uselongdouble="$define"
+ usemorebits="$define"
+ ;;
+*) usemorebits="$undef"
+ ;;
+esac
+
: make some quick guesses about what we are up against
echo " "
$echo $n "Hmm... $c"
echo " "
echo "Checking for GNU cc in disguise and/or its version number..." >&4
-$cat >gccvers.c <<EOM
+$cat >try.c <<EOM
#include <stdio.h>
int main() {
#ifdef __GNUC__
exit(0);
}
EOM
-if $cc -o gccvers $ccflags $ldflags gccvers.c; then
- gccversion=`./gccvers`
+if $cc -o try $ccflags $ldflags try.c; then
+ gccversion=`$run ./try`
case "$gccversion" in
'') echo "You are not using GNU cc." ;;
*) echo "You are using GNU cc $gccversion."
;;
esac
fi
-$rm -f gccvers*
+$rm -f try try.*
case "$gccversion" in
1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
esac
'') ccname="$cc" ;;
esac
-: see how we invoke the C preprocessor
-echo " "
-echo "Now, how can we feed standard input to your C preprocessor..." >&4
-cat <<'EOT' >testcpp.c
-#define ABC abc
-#define XYZ xyz
-ABC.XYZ
-EOT
-cd ..
-if test ! -f cppstdin; then
- if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
- # AIX cc -E doesn't show the absolute headerfile
- # locations but we'll cheat by using the -M flag.
- echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
- else
- echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
- fi
-else
- echo "Keeping your $hint cppstdin wrapper."
-fi
-chmod 755 cppstdin
-wrapper=`pwd`/cppstdin
-ok='false'
-cd UU
-
-if $test "X$cppstdin" != "X" && \
- $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
-then
- echo "You used to use $cppstdin $cppminus so we'll use that again."
- case "$cpprun" in
- '') echo "But let's see if we can live without a wrapper..." ;;
- *)
- if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
- then
- echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
- ok='true'
- else
- echo "(However, $cpprun $cpplast does not work, let's see...)"
- fi
- ;;
- esac
-else
- case "$cppstdin" in
- '') ;;
- *)
- echo "Good old $cppstdin $cppminus does not seem to be of any help..."
- ;;
- esac
-fi
-
-if $ok; then
- : nothing
-elif echo 'Maybe "'"$cc"' -E" will work...'; \
- $cc -E <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yup, it does."
- x_cpp="$cc -E"
- x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
- $cc -E - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yup, it does."
- x_cpp="$cc -E"
- x_minus='-';
-elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
- $cc -P <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Yipee, that works!"
- x_cpp="$cc -P"
- x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
- $cc -P - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "At long last!"
- x_cpp="$cc -P"
- x_minus='-';
-elif echo 'No such luck, maybe "'$cpp'" will work...'; \
- $cpp <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "It works!"
- x_cpp="$cpp"
- x_minus='';
-elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
- $cpp - <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "Hooray, it works! I was beginning to wonder."
- x_cpp="$cpp"
- x_minus='-';
-elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
- $wrapper <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- x_cpp="$wrapper"
- x_minus=''
- echo "Eureka!"
-else
- dflt=''
- rp="No dice. I can't find a C preprocessor. Name one:"
- . ./myread
- x_cpp="$ans"
- x_minus=''
- $x_cpp <testcpp.c >testcpp.out 2>&1
- if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
- echo "OK, that will do." >&4
- else
-echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
- exit 1
- fi
-fi
-
-case "$ok" in
-false)
- cppstdin="$x_cpp"
- cppminus="$x_minus"
- cpprun="$x_cpp"
- cpplast="$x_minus"
- set X $x_cpp
- shift
- case "$1" in
- "$cpp")
- echo "Perhaps can we force $cc -E using a wrapper..."
- if $wrapper <testcpp.c >testcpp.out 2>&1; \
- $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
- then
- echo "Yup, we can."
- cppstdin="$wrapper"
- cppminus='';
- else
- echo "Nope, we'll have to live without it..."
- fi
- ;;
- esac
- case "$cpprun" in
- "$wrapper")
- cpprun=''
- cpplast=''
- ;;
- esac
- ;;
-esac
-
-case "$cppstdin" in
-"$wrapper"|'cppstdin') ;;
-*) $rm -f $wrapper;;
-esac
-$rm -f testcpp.c testcpp.out
: decide how portable to be. Allow command line overrides.
case "$d_portable" in
;;
esac
-: Set private lib path
-case "$plibpth" in
-'') if ./mips; then
- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
- fi;;
-esac
-case "$libpth" in
-' ') dlist='';;
-'') dlist="$loclibpth $plibpth $glibpth";;
-*) dlist="$libpth";;
-esac
-
-: Now check and see which directories actually exist, avoiding duplicates
-libpth=''
-for xxx in $dlist
-do
- if $test -d $xxx; then
- case " $libpth " in
- *" $xxx "*) ;;
- *) libpth="$libpth $xxx";;
- esac
+: see how we invoke the C preprocessor
+echo " "
+echo "Now, how can we feed standard input to your C preprocessor..." >&4
+cat <<'EOT' >testcpp.c
+#define ABC abc
+#define XYZ xyz
+ABC.XYZ
+EOT
+cd ..
+if test ! -f cppstdin; then
+ if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
+ # AIX cc -E doesn't show the absolute headerfile
+ # locations but we'll cheat by using the -M flag.
+ echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
+ else
+ echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
+ fi
+else
+ echo "Keeping your $hint cppstdin wrapper."
+fi
+chmod 755 cppstdin
+wrapper=`pwd`/cppstdin
+ok='false'
+cd UU
+
+if $test "X$cppstdin" != "X" && \
+ $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+then
+ echo "You used to use $cppstdin $cppminus so we'll use that again."
+ case "$cpprun" in
+ '') echo "But let's see if we can live without a wrapper..." ;;
+ *)
+ if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+ then
+ echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
+ ok='true'
+ else
+ echo "(However, $cpprun $cpplast does not work, let's see...)"
+ fi
+ ;;
+ esac
+else
+ case "$cppstdin" in
+ '') ;;
+ *)
+ echo "Good old $cppstdin $cppminus does not seem to be of any help..."
+ ;;
+ esac
+fi
+
+if $ok; then
+ : nothing
+elif echo 'Maybe "'"$cc"' -E" will work...'; \
+ $cc -E <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Yup, it does."
+ x_cpp="$cc -E"
+ x_minus='';
+elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
+ $cc -E - <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Yup, it does."
+ x_cpp="$cc -E"
+ x_minus='-';
+elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
+ $cc -P <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Yipee, that works!"
+ x_cpp="$cc -P"
+ x_minus='';
+elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
+ $cc -P - <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "At long last!"
+ x_cpp="$cc -P"
+ x_minus='-';
+elif echo 'No such luck, maybe "'$cpp'" will work...'; \
+ $cpp <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "It works!"
+ x_cpp="$cpp"
+ x_minus='';
+elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
+ $cpp - <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "Hooray, it works! I was beginning to wonder."
+ x_cpp="$cpp"
+ x_minus='-';
+elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
+ $wrapper <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ x_cpp="$wrapper"
+ x_minus=''
+ echo "Eureka!"
+else
+ dflt=''
+ rp="No dice. I can't find a C preprocessor. Name one:"
+ . ./myread
+ x_cpp="$ans"
+ x_minus=''
+ $x_cpp <testcpp.c >testcpp.out 2>&1
+ if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+ echo "OK, that will do." >&4
+ else
+echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
+ exit 1
+ fi
+fi
+
+case "$ok" in
+false)
+ cppstdin="$x_cpp"
+ cppminus="$x_minus"
+ cpprun="$x_cpp"
+ cpplast="$x_minus"
+ set X $x_cpp
+ shift
+ case "$1" in
+ "$cpp")
+ echo "Perhaps can we force $cc -E using a wrapper..."
+ if $wrapper <testcpp.c >testcpp.out 2>&1; \
+ $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+ then
+ echo "Yup, we can."
+ cppstdin="$wrapper"
+ cppminus='';
+ else
+ echo "Nope, we'll have to live without it..."
+ fi
+ ;;
+ esac
+ case "$cpprun" in
+ "$wrapper")
+ cpprun=''
+ cpplast=''
+ ;;
+ esac
+ ;;
+esac
+
+case "$cppstdin" in
+"$wrapper"|'cppstdin') ;;
+*) $rm -f $wrapper;;
+esac
+$rm -f testcpp.c testcpp.out
+
+: Set private lib path
+case "$plibpth" in
+'') if ./mips; then
+ plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
+ fi;;
+esac
+case "$libpth" in
+' ') dlist='';;
+'') dlist="$loclibpth $plibpth $glibpth";;
+*) dlist="$libpth";;
+esac
+
+: Now check and see which directories actually exist, avoiding duplicates
+libpth=''
+for xxx in $dlist
+do
+ if $test -d $xxx; then
+ case " $libpth " in
+ *" $xxx "*) ;;
+ *) libpth="$libpth $xxx";;
+ esac
fi
done
$cat <<'EOM'
esac
: the following weeds options from ccflags that are of no interest to cpp
-cppflags="$ccflags"
+case "$cppflags" in
+'') cppflags="$ccflags" ;;
+*) cppflags="$cppflags $ccflags" ;;
+esac
case "$gccversion" in
1*) cppflags="$cppflags -D__GNUC__"
esac
I used the command:
$*
- ./try
+ $run ./try
and I got the following output:
EOM
dflt=y
if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
- if $sh -c './try' >>try.msg 2>&1; then
- xxx=`./try`
+ if $sh -c "$run ./try" >>try.msg 2>&1; then
+ xxx=`$run ./try`
case "$xxx" in
"Ok") dflt=n ;;
*) echo 'The program compiled OK, but produced no output.' >> try.msg
esac
$rm -f try try.* core
-: define an is-a-typedef? function
-typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
- $rm -f temp.c;
- for inc in $inclist; do
- echo "#include <$inc>" >>temp.c;
- done;
- echo "#ifdef $type" >> temp.c;
- echo "printf(\"We have $type\");" >> temp.c;
- echo "#endif" >> temp.c;
- $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- if $contains $type temp.E >/dev/null 2>&1; then
- eval "$var=\$type";
- else
- eval "$var=\$def";
- fi;
- $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define an is-a-typedef? function that prompts if the type is not available.
-typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
- $rm -f temp.c;
- for inc in $inclist; do
- echo "#include <$inc>" >>temp.c;
- done;
- echo "#ifdef $type" >> temp.c;
- echo "printf(\"We have $type\");" >> temp.c;
- echo "#endif" >> temp.c;
- $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- echo " " ;
- echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
- if $contains $type temp.E >/dev/null 2>&1; then
- echo "$type found." >&4;
- eval "$var=\$type";
- else
- echo "$type NOT found." >&4;
- dflt="$def";
- . ./myread ;
- eval "$var=\$ans";
- fi;
- $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
: define a shorthand compile call
compile='
mc_file=$1;
-shift;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
-: define a shorthand compile call for compilations that should be ok.
-compile_ok='
-mc_file=$1;
-shift;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
-
-: check for lengths of integral types
-echo " "
-case "$intsize" in
-'')
- echo "Checking to see how big your integers are..." >&4
- $cat >intsize.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- printf("intsize=%d;\n", (int)sizeof(int));
- printf("longsize=%d;\n", (int)sizeof(long));
- printf("shortsize=%d;\n", (int)sizeof(short));
- exit(0);
-}
-EOCP
- set intsize
- if eval $compile_ok && ./intsize > /dev/null; then
- eval `./intsize`
- echo "Your integers are $intsize bytes long."
- echo "Your long integers are $longsize bytes long."
- echo "Your short integers are $shortsize bytes long."
- else
- $cat >&4 <<EOM
-!
-Help! I can't compile and run the intsize test program: please enlighten me!
-(This is probably a misconfiguration in your system or libraries, and
-you really ought to fix it. Still, I'll try anyway.)
-!
-EOM
- dflt=4
- rp="What is the size of an integer (in bytes)?"
- . ./myread
- intsize="$ans"
- dflt=$intsize
- rp="What is the size of a long integer (in bytes)?"
- . ./myread
- longsize="$ans"
- dflt=2
- rp="What is the size of a short integer (in bytes)?"
- . ./myread
- shortsize="$ans"
- fi
- ;;
-esac
-$rm -f intsize intsize.*
-
-: see what type lseek is declared as in the kernel
-rp="What is the type used for lseek's offset on this system?"
-set off_t lseektype long stdio.h sys/types.h
-eval $typedef_ask
-
-echo " "
-echo "Checking to see how big your file offsets are..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof($lseektype));
- return(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- lseeksize=`./try`
- echo "Your file offsets are $lseeksize bytes long."
-else
- dflt=$longsize
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of your file offsets (in bytes)?"
- . ./myread
- lseeksize="$ans"
-fi
-$rm -f try.c try
-
-: see what type file positions are declared as in the library
-rp="What is the type for file position used by fsetpos()?"
-set fpos_t fpostype long stdio.h sys/types.h
-eval $typedef_ask
-
-echo " "
-case "$fpostype" in
-*_t) zzz="$fpostype" ;;
-*) zzz="fpos_t" ;;
-esac
-echo "Checking the size of $zzz..." >&4
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- printf("%d\n", (int)sizeof($fpostype));
- exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
- yyy=`./try`
- case "$yyy" in
- '') fpossize=4
- echo "(I can't execute the test program--guessing $fpossize.)" >&4
- ;;
- *) fpossize=$yyy
- echo "Your $zzz is $fpossize bytes long."
- ;;
- esac
-else
- dflt="$longsize"
- echo " " >&4
- echo "(I can't compile the test program. Guessing...)" >&4
- rp="What is the size of your file positions (in bytes)?"
- . ./myread
- fpossize="$ans"
-fi
-
-
-
-# Backward compatibility (uselfs is deprecated).
-case "$uselfs" in
-"$define"|true|[yY]*)
- cat <<EOM >&4
-
-*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
-EOM
- uselargefiles="$define"
- ;;
-esac
-
-case "$lseeksize:$fpossize" in
-8:8) cat <<EOM
-
-You can have files larger than 2 gigabytes.
-EOM
- val="$define" ;;
-*) case "$uselargefiles" in
- "$undef"|false|[nN]*) dflt='n' ;;
- *) dflt='y' ;;
- esac
- cat <<EOM
-
-Perl can be built to understand large files (files larger than 2 gigabytes)
-on some systems. To do so, Configure can be run with -Duselargefiles.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
- rp='Try to understand large files, if available?'
- . ./myread
- case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
- esac
- ;;
-esac
-set uselargefiles
-eval $setvar
-case "$uselargefiles" in
-"$define")
-: Look for a hint-file generated 'call-back-unit'. If the
-: user has specified that a large files perl is to be built,
-: we may need to set or change some other defaults.
- if $test -f uselargefiles.cbu; then
- echo "Your platform has some specific hints for large file builds, using them..."
- . ./uselargefiles.cbu
- echo " "
- echo "Rechecking to see how big your file offsets are..." >&4
- $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof($lseektype));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- lseeksize=`./try`
- $echo "Your file offsets are now $lseeksize bytes long."
- else
- dflt="$lseeksize"
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of your file offsets (in bytes)?"
- . ./myread
- lseeksize="$ans"
- fi
- case "$fpostype" in
- *_t) zzz="$fpostype" ;;
- *) zzz="fpos_t" ;;
- esac
- $echo $n "Rechecking the size of $zzz...$c" >&4
- $cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
- printf("%d\n", (int)sizeof($fpostype));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- yyy=`./try`
- dflt="$lseeksize"
- case "$yyy" in
- '') echo " "
- echo "(I can't execute the test program--guessing $fpossize.)" >&4
- ;;
- *) fpossize=$yyy
- echo " $fpossize bytes." >&4
- ;;
- esac
- else
- dflt="$fpossize"
- echo " "
- echo "(I can't compile the test program. Guessing...)" >&4
- rp="What is the size of your file positions (in bytes)?"
- . ./myread
- fpossize="$ans"
- fi
- $rm -f try.c try
- fi
- ;;
-esac
-
+shift;
+$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
+: define a shorthand compile call for compilations that should be ok.
+compile_ok='
+mc_file=$1;
+shift;
+$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
-case "$usemorebits" in
-"$define"|true|[yY]*)
- use64bitint="$define"
- uselongdouble="$define"
- usemorebits="$define"
- ;;
-*) usemorebits="$undef"
+: check for lengths of integral types
+echo " "
+case "$intsize" in
+'')
+ echo "Checking to see how big your integers are..." >&4
+ $cat >try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+ printf("intsize=%d;\n", (int)sizeof(int));
+ printf("longsize=%d;\n", (int)sizeof(long));
+ printf("shortsize=%d;\n", (int)sizeof(short));
+ exit(0);
+}
+EOCP
+ set try
+ if eval $compile_ok && $run ./try > /dev/null; then
+ eval `$run ./try`
+ echo "Your integers are $intsize bytes long."
+ echo "Your long integers are $longsize bytes long."
+ echo "Your short integers are $shortsize bytes long."
+ else
+ $cat >&4 <<EOM
+!
+Help! I can't compile and run the intsize test program: please enlighten me!
+(This is probably a misconfiguration in your system or libraries, and
+you really ought to fix it. Still, I'll try anyway.)
+!
+EOM
+ dflt=4
+ rp="What is the size of an integer (in bytes)?"
+ . ./myread
+ intsize="$ans"
+ dflt=$intsize
+ rp="What is the size of a long integer (in bytes)?"
+ . ./myread
+ longsize="$ans"
+ dflt=2
+ rp="What is the size of a short integer (in bytes)?"
+ . ./myread
+ shortsize="$ans"
+ fi
;;
esac
+$rm -f try try.*
: check for void type
echo " "
EOCP
set try
if eval $compile_ok; then
- ptrsize=`./try`
+ ptrsize=`$run ./try`
echo "Your pointers are $ptrsize bytes long."
else
dflt='4'
EOCP
set try
if eval $compile_ok; then
- longlongsize=`./try$exe_ext`
+ longlongsize=`$run ./try`
echo "Your long longs are $longlongsize bytes long."
else
dflt='8'
echo " "
echo "Checking for GNU C Library..." >&4
-cat >gnulibc.c <<EOM
+cat >try.c <<EOM
#include <stdio.h>
int main()
{
#endif
}
EOM
-set gnulibc
-if eval $compile_ok && ./gnulibc; then
+set try
+if eval $compile_ok && $run ./try; then
val="$define"
echo "You are using the GNU C Library"
else
val="$undef"
echo "You are not using the GNU C Library"
fi
-$rm -f gnulibc*
+$rm -f try try.*
set d_gnulibc
eval $setvar
esac
;;
esac
-libnames='';
case "$libs" in
'') ;;
*) for thislib in $libs; do
if $test -f /lib/syscalls.exp; then
echo " "
echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
- $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
+ $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list
fi
;;
esac
EOCP
set try
if eval $compile_ok; then
- doublesize=`./try`
+ doublesize=`$run ./try`
echo "Your double is $doublesize bytes long."
else
dflt='8'
set try
set try
if eval $compile; then
- longdblsize=`./try$exe_ext`
+ longdblsize=`$run ./try`
echo "Your long doubles are $longdblsize bytes long."
else
dflt='8'
archname=''
;;
esac
+case "$targetarch" in
+'') ;;
+*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
+esac
myarchname="$tarch"
case "$archname" in
'') dflt="$tarch";;
echo "Long doubles selected." >&4
case "$longdblsize" in
$doublesize)
- "...but long doubles are equal to doubles, not changing architecture name." >&4
+ echo "...but long doubles are equal to doubles, not changing architecture name." >&4
;;
*)
case "$archname" in
prefix="$ans"
prefixexp="$ansexp"
+case "$afsroot" in
+'') afsroot=/afs ;;
+*) afsroot=$afsroot ;;
+esac
+
: is AFS running?
echo " "
case "$afs" in
$define|true) afs=true ;;
$undef|false) afs=false ;;
-*) if test -d /afs; then
+*) if test -d $afsroot; then
afs=true
else
afs=false
esac;;
esac'
-
: get the patchlevel
echo " "
echo "Getting the current patchlevel..." >&4
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`
+ perl_patchlevel=`grep ',"DEVEL[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'`
else
revision=0
patchlevel=0
api_revision=0
api_version=0
api_subversion=0
+ perl_patchlevel=0
+ $echo "(You do not have patchlevel.h. Eek.)"
+fi
+if $test -r $rsrc/.patch ; then
+ if $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then
+ perl_patchlevel=`cat $rsrc/.patch`
+ fi
fi
-$echo "(You have $package version $patchlevel subversion $subversion.)"
+: Define a handy string here to avoid duplication in myconfig.SH and configpm.
+version_patchlevel_string="version $patchlevel subversion $subversion"
+case "$perl_patchlevel" in
+0|'') ;;
+*) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;;
+esac
+
+$echo "(You have $package $version_patchlevel_string.)"
+
case "$osname" in
dos|vms)
: XXX Should be a Configure test for double-dots in filenames.
: determine which malloc to compile in
echo " "
case "$usemymalloc" in
-''|[yY]*|true|$define) dflt='y' ;;
-*) dflt='n' ;;
-esac
-case "$ptrsize" in
-4) ;;
-*) dflt='n' ;;
+[yY]*|true|$define) dflt='y' ;;
+[nN]*|false|$undef) dflt='n' ;;
+*) case "$ptrsize" in
+ 4) dflt='y' ;;
+ *) dflt='n' ;;
+ esac
+ ;;
esac
rp="Do you wish to attempt to use the malloc that comes with $package?"
. ./myread
installbin="$binexp"
fi
+echo " "
+case "$extras" in
+'') dflt='n';;
+*) dflt='y';;
+esac
+cat <<EOM
+Perl can be built with extra modules or bundles of modules which
+will be fetched from the CPAN and installed alongside Perl.
+
+Notice that you will need access to the CPAN; either via the Internet,
+or a local copy, for example a CD-ROM or a local CPAN mirror. (You will
+be asked later to configure the CPAN.pm module which will in turn do
+the installation of the rest of the extra modules or bundles.)
+
+Notice also that if the modules require any external software such as
+libraries and headers (the libz library and the zlib.h header for the
+Compress::Zlib module, for example) you MUST have any such software
+already installed, this configuration process will NOT install such
+things for you.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Install any extra modules (y or n)?'
+. ./myread
+case "$ans" in
+y|Y)
+ cat <<EOM
+
+Please list any extra modules or bundles to be installed from CPAN,
+with spaces between the names. The names can be in any format the
+'install' command of CPAN.pm will understand. (Answer 'none',
+without the quotes, to install no extra modules or bundles.)
+EOM
+ rp='Extras?'
+ dflt="$extras"
+ . ./myread
+ extras="$ans"
+esac
+case "$extras" in
+''|'none')
+ val=''
+ $rm -f ../extras.lst
+ ;;
+*) echo "(Saving the list of extras for later...)"
+ echo "$extras" > ../extras.lst
+ val="'$extras'"
+ ;;
+esac
+set extras
+eval $setvar
+echo " "
+
: Find perl5.005 or later.
echo "Looking for a previously installed perl5.005 or later... "
case "$perl5" in
-'') for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do
+'') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do
: Check if this perl is recent and can load a simple module
- if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
perl5=$tdir/perl
break;
- elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
- perl5=$tdir/perl
+ elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+ perl5=$tdir/perl5
break;
fi
done
EOPL
chmod +x getverlist
case "$inc_version_list" in
-'') if test -x "$perl5"; then
+'') if test -x "$perl5$exe_ext"; then
dflt=`$perl5 getverlist`
else
dflt='none'
fi
;;
$undef) dflt='none' ;;
-*) dflt="$inc_version_list" ;;
+*) eval dflt=\"$inc_version_list\" ;;
esac
case "$dflt" in
''|' ') dflt=none ;;
esac
;;
*) case "$osname" in
+ darwin) dflt='none' ;;
svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
*) dflt='-fpic' ;;
esac ;;
exit(1); /* fail */
}
EOM
- if $cc $ccflags try.c >/dev/null 2>&1 && ./a.out; then
+ if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then
cat <<EOM
You appear to have ELF support. I'll use $cc to build dynamic libraries.
EOM
echo " "
case "$sysman" in
'')
- syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
- syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
+ syspath='/usr/share/man/man1 /usr/man/man1'
+ syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+ syspath="$syspath /usr/man/u_man/man1"
syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
' ') dflt=none
;;
'')
- lookpath="$prefixexp/man/man1 $prefixexp/man/l_man/man1"
+ lookpath="$prefixexp/share/man/man1"
+ lookpath="$lookpath $prefixexp/man/man1 $prefixexp/man/l_man/man1"
lookpath="$lookpath $prefixexp/man/p_man/man1"
lookpath="$lookpath $prefixexp/man/u_man/man1"
lookpath="$lookpath $prefixexp/man/man.1"
installscript="$scriptdirexp"
fi
-: determine where add-on public executables go
-case "$sitebin" in
-'') dflt=$siteprefix/bin ;;
-*) dflt=$sitebin ;;
+: determine where add-on public executables go
+case "$sitebin" in
+'') dflt=$siteprefix/bin ;;
+*) dflt=$sitebin ;;
+esac
+fn=d~
+rp='Pathname where the add-on public executables should be installed?'
+. ./getfile
+sitebin="$ans"
+sitebinexp="$ansexp"
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+ installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
+else
+ installsitebin="$sitebinexp"
+fi
+
+: define an is-a-typedef? function
+typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+ $rm -f temp.c;
+ for inc in $inclist; do
+ echo "#include <$inc>" >>temp.c;
+ done;
+ echo "#ifdef $type" >> temp.c;
+ echo "printf(\"We have $type\");" >> temp.c;
+ echo "#endif" >> temp.c;
+ $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+ if $contains $type temp.E >/dev/null 2>&1; then
+ eval "$var=\$type";
+ else
+ eval "$var=\$def";
+ fi;
+ $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
+
+: define an is-a-typedef? function that prompts if the type is not available.
+typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+ $rm -f temp.c;
+ for inc in $inclist; do
+ echo "#include <$inc>" >>temp.c;
+ done;
+ echo "#ifdef $type" >> temp.c;
+ echo "printf(\"We have $type\");" >> temp.c;
+ echo "#endif" >> temp.c;
+ $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+ echo " " ;
+ echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
+ if $contains $type temp.E >/dev/null 2>&1; then
+ echo "$type found." >&4;
+ eval "$var=\$type";
+ else
+ echo "$type NOT found." >&4;
+ dflt="$def";
+ . ./myread ;
+ eval "$var=\$ans";
+ fi;
+ $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
+
+: see what type lseek is declared as in the kernel
+rp="What is the type used for lseek's offset on this system?"
+set off_t lseektype long stdio.h sys/types.h
+eval $typedef_ask
+
+echo " "
+echo "Checking to see how big your file offsets are..." >&4
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main()
+{
+ printf("%d\n", (int)sizeof($lseektype));
+ return(0);
+}
+EOCP
+set try
+if eval $compile_ok; then
+ lseeksize=`$run ./try`
+ echo "Your file offsets are $lseeksize bytes long."
+else
+ dflt=$longsize
+ echo " "
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of your file offsets (in bytes)?"
+ . ./myread
+ lseeksize="$ans"
+fi
+$rm -f try.c try
+
+: see what type file positions are declared as in the library
+rp="What is the type for file position used by fsetpos()?"
+set fpos_t fpostype long stdio.h sys/types.h
+eval $typedef_ask
+
+echo " "
+case "$fpostype" in
+*_t) zzz="$fpostype" ;;
+*) zzz="fpos_t" ;;
+esac
+echo "Checking the size of $zzz..." >&4
+cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+ printf("%d\n", (int)sizeof($fpostype));
+ exit(0);
+}
+EOCP
+set try
+if eval $compile_ok; then
+ yyy=`$run ./try`
+ case "$yyy" in
+ '') fpossize=4
+ echo "(I can't execute the test program--guessing $fpossize.)" >&4
+ ;;
+ *) fpossize=$yyy
+ echo "Your $zzz is $fpossize bytes long."
+ ;;
+ esac
+else
+ dflt="$longsize"
+ echo " " >&4
+ echo "(I can't compile the test program. Guessing...)" >&4
+ rp="What is the size of your file positions (in bytes)?"
+ . ./myread
+ fpossize="$ans"
+fi
+
+
+
+# Backward compatibility (uselfs is deprecated).
+case "$uselfs" in
+"$define"|true|[yY]*)
+ cat <<EOM >&4
+
+*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
+EOM
+ uselargefiles="$define"
+ ;;
+esac
+
+case "$lseeksize:$fpossize" in
+8:8) cat <<EOM
+
+You can have files larger than 2 gigabytes.
+EOM
+ val="$define" ;;
+*) case "$uselargefiles" in
+ "$undef"|false|[nN]*) dflt='n' ;;
+ *) dflt='y' ;;
+ esac
+ cat <<EOM
+
+Perl can be built to understand large files (files larger than 2 gigabytes)
+on some systems. To do so, Configure can be run with -Duselargefiles.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+ rp='Try to understand large files, if available?'
+ . ./myread
+ case "$ans" in
+ y|Y) val="$define" ;;
+ *) val="$undef" ;;
+ esac
+ ;;
+esac
+set uselargefiles
+eval $setvar
+case "$uselargefiles" in
+"$define")
+: Look for a hint-file generated 'call-back-unit'. If the
+: user has specified that a large files perl is to be built,
+: we may need to set or change some other defaults.
+ if $test -f uselargefiles.cbu; then
+ echo "Your platform has some specific hints for large file builds, using them..."
+ . ./uselargefiles.cbu
+ echo " "
+ echo "Rechecking to see how big your file offsets are..." >&4
+ $cat >try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main()
+{
+ printf("%d\n", (int)sizeof($lseektype));
+ return(0);
+}
+EOCP
+ set try
+ if eval $compile_ok; then
+ lseeksize=`$run ./try`
+ $echo "Your file offsets are now $lseeksize bytes long."
+ else
+ dflt="$lseeksize"
+ echo " "
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of your file offsets (in bytes)?"
+ . ./myread
+ lseeksize="$ans"
+ fi
+ case "$fpostype" in
+ *_t) zzz="$fpostype" ;;
+ *) zzz="fpos_t" ;;
+ esac
+ $echo $n "Rechecking the size of $zzz...$c" >&4
+ $cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+ printf("%d\n", (int)sizeof($fpostype));
+ exit(0);
+}
+EOCP
+ set try
+ if eval $compile_ok; then
+ yyy=`$run ./try`
+ dflt="$lseeksize"
+ case "$yyy" in
+ '') echo " "
+ echo "(I can't execute the test program--guessing $fpossize.)" >&4
+ ;;
+ *) fpossize=$yyy
+ echo " $fpossize bytes." >&4
+ ;;
+ esac
+ else
+ dflt="$fpossize"
+ echo " "
+ echo "(I can't compile the test program. Guessing...)" >&4
+ rp="What is the size of your file positions (in bytes)?"
+ . ./myread
+ fpossize="$ans"
+ fi
+ $rm -f try.c try
+ fi
+ ;;
esac
-fn=d~
-rp='Pathname where the add-on public executables should be installed?'
-. ./getfile
-sitebin="$ans"
-sitebinexp="$ansexp"
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
- installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
-else
- installsitebin="$sitebinexp"
-fi
case "$vendorprefix" in
'') d_vendorbin="$undef"
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
#include <stdio.h>
int main() {
long double d = 123.456;
- printf("%.3llf\n", d);
+ printf("%.3Lf\n", d);
}
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
- sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
- sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
- echo "We will use %llf."
+ sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
+ sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
+ echo "We will use %Lf."
;;
esac
fi
#include <stdio.h>
int main() {
long double d = 123.456;
- printf("%.3Lf\n", d);
+ printf("%.3llf\n", d);
}
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
- sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
- sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
- echo "We will use %Lf."
+ sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
+ sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
+ echo "We will use %llf."
;;
esac
fi
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
checkit("123.456", buf);
+ /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
+ Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
+ if (strlen(buf) > 5)
+ checkit("1e+030", buf); /* for Microsoft */
+ else
+ checkit("1e+30", buf);
+
exit(0);
}
EOP
set try -DTRY_$xxx_convert
if eval $compile; then
echo "$xxx_convert() found." >&4
- if ./try; then
+ if $run ./try; then
echo "I'll use $xxx_convert to convert floats into a string." >&4
break;
else
"$define")
echo " "
echo "Checking to see which flavor of getpgrp is in use..."
- $cat >set.c <<EOP
+ $cat >try.c <<EOP
#$i_unistd I_UNISTD
#include <sys/types.h>
#ifdef I_UNISTD
exit(1);
}
EOP
- if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
val="$define"
- elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
val="$undef"
else
esac
set d_bsdgetpgrp
eval $setvar
-$rm -f set set.c
+$rm -f try try.*
: see if setpgrp exists
set setpgrp d_setpgrp
"$define")
echo " "
echo "Checking to see which flavor of setpgrp is in use..."
- $cat >set.c <<EOP
+ $cat >try.c <<EOP
#$i_unistd I_UNISTD
#include <sys/types.h>
#ifdef I_UNISTD
exit(1);
}
EOP
- if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
val="$define"
- elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
val="$undef"
else
esac
set d_bsdsetpgrp
eval $setvar
-$rm -f set set.c
+$rm -f try try.*
: see if bzero exists
set bzero d_bzero
eval $inlibc
EOCP
set try
if eval $compile_ok; then
- ./try
+ $run ./try
yyy=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
EOCP
set try
if eval $compile_ok; then
- ./try
+ $run ./try
castflags=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
if set vprintf val -f d_vprintf; eval $csym; $val; then
echo 'vprintf() found.' >&4
val="$define"
- $cat >vprintf.c <<'EOF'
+ $cat >try.c <<'EOF'
#include <varargs.h>
int main() { xxx("foo"); }
exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
}
EOF
- set vprintf
- if eval $compile && ./vprintf; then
+ set try
+ if eval $compile && $run ./try; then
echo "Your vsprintf() returns (int)." >&4
val2="$undef"
else
val="$undef"
val2="$undef"
fi
+$rm -f try try.*
set d_vprintf
eval $setvar
val=$val2
set chsize d_chsize
eval $inlibc
+: see if class exists
+set class d_class
+eval $inlibc
+
+hasstruct='varname=$1; struct=$2; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+echo "int main () { struct $struct foo; }" >> try.c;
+set try;
+if eval $compile; then
+ val="$define";
+else
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c try.o'
+
+: see if sys/types.h has to be included
+set sys/types.h i_systypes
+eval $inhdr
+
+hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
+set try;
+if eval $compile; then
+ val="$define";
+else
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c try.o'
+
+socketlib=''
+sockethdr=''
+: see whether socket exists
+echo " "
+$echo $n "Hmm... $c" >&4
+if set socket val -f d_socket; eval $csym; $val; then
+ echo "Looks like you have Berkeley networking support." >&4
+ d_socket="$define"
+ if set setsockopt val -f; eval $csym; $val; then
+ d_oldsock="$undef"
+ else
+ echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
+ d_oldsock="$define"
+ fi
+else
+ if $contains socklib libc.list >/dev/null 2>&1; then
+ echo "Looks like you have Berkeley networking support." >&4
+ d_socket="$define"
+ : we will have to assume that it supports the 4.2 BSD interface
+ d_oldsock="$undef"
+ else
+ echo "You don't have Berkeley networking in libc$_a..." >&4
+ if test "X$d_socket" = "X$define"; then
+ echo "...but you seem to believe that you have sockets." >&4
+ else
+ for net in net socket
+ do
+ if test -f /usr/lib/lib$net$_a; then
+ ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
+ $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
+ if $contains socket libc.list >/dev/null 2>&1; then
+ d_socket="$define"
+ socketlib="-l$net"
+ case "$net" in
+ net)
+ echo "...but the Wollongong group seems to have hacked it in." >&4
+ sockethdr="-I/usr/netinclude"
+ ;;
+ esac
+ echo "Found Berkeley sockets interface in lib$net." >& 4
+ if $contains setsockopt libc.list >/dev/null 2>&1; then
+ d_oldsock="$undef"
+ else
+ echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
+ d_oldsock="$define"
+ fi
+ break
+ fi
+ fi
+ done
+ if test "X$d_socket" != "X$define"; then
+ echo "or anywhere else I see." >&4
+ d_socket="$undef"
+ d_oldsock="$undef"
+ fi
+ fi
+ fi
+fi
+
+: see if socketpair exists
+set socketpair d_sockpair
+eval $inlibc
+
+
+echo " "
+echo "Checking the availability of certain socket constants..." >& 4
+for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
+ enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
+ $cat >try.c <<EOF
+#include <sys/types.h>
+#include <sys/socket.h>
+int main() {
+ int i = $ENUM;
+}
+EOF
+ val="$undef"
+ set try; if eval $compile; then
+ val="$define"
+ fi
+ set d_${enum}; eval $setvar
+ $rm -f try.c try
+done
+
+: see if this is a sys/uio.h system
+set sys/uio.h i_sysuio
+eval $inhdr
+
+
+echo " "
+echo "Checking to see if your system supports struct cmsghdr..." >&4
+set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
+eval $hasstruct
+case "$d_cmsghdr_s" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
+
+
: check for const keyword
echo " "
echo 'Checking to see if your C compiler knows about "const"...' >&4
set d_dbl_dig
eval $setvar
+hasproto='varname=$1; func=$2; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
+if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
+ echo "$func() prototype found.";
+ val="$define";
+else
+ echo "$func() prototype NOT found.";
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c tryout.c'
+
+: see if dbm.h is available
+: see if dbmclose exists
+set dbmclose d_dbmclose
+eval $inlibc
+
+case "$d_dbmclose" in
+$define)
+ set dbm.h i_dbm
+ eval $inhdr
+ case "$i_dbm" in
+ $define)
+ val="$undef"
+ set i_rpcsvcdbm
+ eval $setvar
+ ;;
+ *) set rpcsvc/dbm.h i_rpcsvcdbm
+ eval $inhdr
+ ;;
+ esac
+ ;;
+*) echo "We won't be including <dbm.h>"
+ val="$undef"
+ set i_dbm
+ eval $setvar
+ val="$undef"
+ set i_rpcsvcdbm
+ eval $setvar
+ ;;
+esac
+
+: see if prototype for dbminit is available
+echo " "
+set d_dbminitproto dbminit $i_dbm dbm.h
+eval $hasproto
+
: see if difftime exists
set difftime d_difftime
eval $inlibc
#include <stdio.h>
#$i_dlfcn I_DLFCN
#ifdef I_DLFCN
-#include <dlfcn.h> /* the dynamic linker include file for Sunos/Solaris */
+#include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */
#else
#include <sys/types.h>
#include <nlist.h>
: Call the object file tmp-dyna.o in case dlext=o.
if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
- $ld -o dyna.$dlext $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
- $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then
- xxx=`./fred`
+ $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
+ $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
+ xxx=`$run ./fred`
case $xxx in
1) echo "Test program failed using dlopen." >&4
echo "Perhaps you should not use dynamic loading." >&4;;
set d_dlsymun
eval $setvar
-hasproto='varname=$1; func=$2; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
-if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
- echo "$func() prototype found.";
- val="$define";
-else
- echo "$func() prototype NOT found.";
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c tryout.c'
-
: see if prototype for drand48 is available
echo " "
set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h
: Locate the flags for 'open()'
echo " "
-$cat >open3.c <<'EOCP'
+$cat >try.c <<'EOCP'
#include <sys/types.h>
#ifdef I_FCNTL
#include <fcntl.h>
EOCP
: check sys/file.h first to get FREAD on Sun
if $test `./findhdr sys/file.h` && \
- set open3 -DI_SYS_FILE && eval $compile; then
+ set try -DI_SYS_FILE && eval $compile; then
h_sysfile=true;
echo "<sys/file.h> defines the O_* constants..." >&4
- if ./open3; then
+ if $run ./try; then
echo "and you have the 3 argument form of open()." >&4
val="$define"
else
val="$undef"
fi
elif $test `./findhdr fcntl.h` && \
- set open3 -DI_FCNTL && eval $compile; then
+ set try -DI_FCNTL && eval $compile; then
h_fcntl=true;
echo "<fcntl.h> defines the O_* constants..." >&4
- if ./open3; then
+ if $run ./try; then
echo "and you have the 3 argument form of open()." >&4
val="$define"
else
fi
set d_open3
eval $setvar
-$rm -f open3*
+$rm -f try try.*
: see which of string.h or strings.h is needed
echo " "
$cat head.c > try.c
$cat >>try.c <<'EOCP'
#include <stdio.h>
+#include <stdlib.h>
int main() {
#ifdef O_NONBLOCK
printf("O_NONBLOCK\n");
EOCP
set try
if eval $compile_ok; then
- o_nonblock=`./try`
+ o_nonblock=`$run ./try`
case "$o_nonblock" in
'') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
*) echo "Seems like we can use $o_nonblock.";;
#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
+#include <stdlib.h>
#define MY_O_NONBLOCK $o_nonblock
#ifndef errno /* XXX need better Configure test */
extern int errno;
set try
if eval $compile_ok; then
echo "$startsh" >mtry
- echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
+ echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
chmod +x mtry
./mtry >/dev/null 2>&1
case $? in
esac
$rm -f try try.* .out core head.c mtry
+: see if fchdir exists
+set fchdir d_fchdir
+eval $inlibc
+
: see if fchmod exists
set fchmod d_fchmod
eval $inlibc
echo " "
: See if fcntl-based locking works.
-$cat >try.c <<'EOCP'
+$cat >try.c <<EOCP
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
+#include <signal.h>
+$signal_t blech(x) int x; { exit(3); }
int main() {
#if defined(F_SETLK) && defined(F_SETLKW)
struct flock flock;
flock.l_type = F_RDLCK;
flock.l_whence = SEEK_SET;
flock.l_start = flock.l_len = 0;
+ signal(SIGALRM, blech);
+ alarm(10);
retval = fcntl(fd, F_SETLK, &flock);
close(fd);
(retval < 0 ? exit(2) : exit(0));
"$define")
set try
if eval $compile_ok; then
- if ./try; then
+ if $run ./try; then
echo "Yes, it seems to work."
val="$define"
else
echo "Nope, it didn't work."
val="$undef"
+ case "$?" in
+ 3) $cat >&4 <<EOM
+***
+*** I had to forcibly timeout from fcntl(..., F_SETLK, ...).
+*** This is (almost) impossible.
+*** If your NFS lock daemons are not feeling well, something like
+*** this may happen, please investigate. Cannot continue, aborting.
+***
+EOM
+ exit 1
+ ;;
+ esac
fi
else
echo "I'm unable to compile the test program, so I'll assume not."
$rm -f try*
-hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
-set try;
-if eval $compile; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c try.o'
-
-socketlib=''
-sockethdr=''
-: see whether socket exists
-echo " "
-$echo $n "Hmm... $c" >&4
-if set socket val -f d_socket; eval $csym; $val; then
- echo "Looks like you have Berkeley networking support." >&4
- d_socket="$define"
- if set setsockopt val -f; eval $csym; $val; then
- d_oldsock="$undef"
- else
- echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
- d_oldsock="$define"
- fi
-else
- if $contains socklib libc.list >/dev/null 2>&1; then
- echo "Looks like you have Berkeley networking support." >&4
- d_socket="$define"
- : we will have to assume that it supports the 4.2 BSD interface
- d_oldsock="$undef"
- else
- echo "You don't have Berkeley networking in libc$_a..." >&4
- if test "X$d_socket" = "X$define"; then
- echo "...but you seem to believe that you have sockets." >&4
- else
- for net in net socket
- do
- if test -f /usr/lib/lib$net$_a; then
- ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
- $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
- if $contains socket libc.list >/dev/null 2>&1; then
- d_socket="$define"
- socketlib="-l$net"
- case "$net" in
- net)
- echo "...but the Wollongong group seems to have hacked it in." >&4
- sockethdr="-I/usr/netinclude"
- ;;
- esac
- echo "Found Berkeley sockets interface in lib$net." >& 4
- if $contains setsockopt libc.list >/dev/null 2>&1; then
- d_oldsock="$undef"
- else
- echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
- d_oldsock="$define"
- fi
- break
- fi
- fi
- done
- if test "X$d_socket" != "X$define"; then
- echo "or anywhere else I see." >&4
- d_socket="$undef"
- d_oldsock="$undef"
- fi
- fi
- fi
-fi
-
-: see if socketpair exists
-set socketpair d_sockpair
-eval $inlibc
-
-
-echo " "
-echo "Checking the availability of certain socket constants..." >& 4
-for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
- enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
- $cat >try.c <<EOF
-#include <sys/types.h>
-#include <sys/socket.h>
-int main() {
- int i = $ENUM;
-}
-EOF
- val="$undef"
- set try; if eval $compile; then
- val="$define"
- fi
- set d_${enum}; eval $setvar
- $rm -f try.c try
-done
-
: see if sys/select.h has to be included
set sys/select.h i_sysselct
eval $inhdr
Checking to see how well your C compiler handles fd_set and friends ...
EOM
-$cat >fd_set.c <<EOCP
+$cat >try.c <<EOCP
#$i_systime I_SYS_TIME
#$i_sysselct I_SYS_SELECT
#$d_socket HAS_SOCKET
#endif
}
EOCP
-set fd_set -DTRYBITS
+set try -DTRYBITS
if eval $compile; then
d_fds_bits="$define"
d_fd_set="$define"
echo "Well, your system knows about the normal fd_set typedef..." >&4
- if ./fd_set; then
+ if $run ./try; then
echo "and you have the normal fd_set macros (just as I'd expect)." >&4
d_fd_macros="$define"
else
$cat <<'EOM'
Hmm, your compiler has some difficulty with fd_set. Checking further...
EOM
- set fd_set
+ set try
if eval $compile; then
d_fds_bits="$undef"
d_fd_set="$define"
echo "Well, your system has some sort of fd_set available..." >&4
- if ./fd_set; then
+ if $run ./try; then
echo "and you have the normal fd_set macros." >&4
d_fd_macros="$define"
else
d_fd_macros="$undef"
fi
fi
-$rm -f fd_set*
+$rm -f try try.*
: see if fgetpos exists
set fgetpos d_fgetpos
eval $inlibc
+: see if finite exists
+set finite d_finite
+eval $inlibc
+
+: see if finitel exists
+set finitel d_finitel
+eval $inlibc
+
: see if flock exists
set flock d_flock
eval $inlibc
+: see if this is a sys/file.h system
+val=''
+set sys/file.h val
+eval $inhdr
+
+: do we need to include sys/file.h ?
+case "$val" in
+"$define")
+ echo " "
+ if $h_sysfile; then
+ val="$define"
+ echo "We'll be including <sys/file.h>." >&4
+ else
+ val="$undef"
+ echo "We won't be including <sys/file.h>." >&4
+ fi
+ ;;
+*)
+ h_sysfile=false
+ ;;
+esac
+set i_sysfile
+eval $setvar
+
+: see if prototype for flock is available
+echo " "
+set d_flockproto flock $i_sysfile sys/file.h
+eval $hasproto
+
: see if fork exists
set fork d_fork
eval $inlibc
+: see if fp_class exists
+set fp_class d_fp_class
+eval $inlibc
+
: see if pathconf exists
set pathconf d_pathconf
eval $inlibc
set fpathconf d_fpathconf
eval $inlibc
+: see if fpclass exists
+set fpclass d_fpclass
+eval $inlibc
+
+: see if fpclassify exists
+set fpclassify d_fpclassify
+eval $inlibc
+
+: see if fpclassl exists
+set fpclassl d_fpclassl
+eval $inlibc
+
: check for fpos64_t
echo " "
set frexpl d_frexpl
eval $inlibc
-hasstruct='varname=$1; struct=$2; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-echo "int main () { struct $struct foo; }" >> try.c;
-set try;
-if eval $compile; then
- val="$define";
-else
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c try.o'
-
: see if this is a sys/param system
set sys/param.h i_sysparam
eval $inhdr
set sys/mount.h i_sysmount
eval $inhdr
-: see if sys/types.h has to be included
-set sys/types.h i_systypes
-eval $inhdr
-
echo " "
echo "Checking to see if your system supports struct fs_data..." >&4
set d_gethostprotos gethostent $i_netdb netdb.h
eval $hasproto
+: see if getitimer exists
+set getitimer d_getitimer
+eval $inlibc
+
: see if getlogin exists
set getlogin d_getlogin
eval $inlibc
eval $setvar
$rm -f isascii*
+: see if isfinite exists
+set isfinite d_isfinite
+eval $inlibc
+
+: see if isinf exists
+set isinf d_isinf
+eval $inlibc
+
: see if isnan exists
set isnan d_isnan
eval $inlibc
set modfl d_modfl
eval $inlibc
+d_modfl_pow32_bug="$undef"
+
+case "$d_longdbl$d_modfl" in
+$define$define)
+ $cat <<EOM
+Checking to see whether your modfl() is okay for large values...
+EOM
+$cat >try.c <<EOCP
+#include <math.h>
+#include <stdio.h>
+int main() {
+ long double nv = 4294967303.15;
+ long double v, w;
+ v = modfl(nv, &w);
+#ifdef __GLIBC__
+ printf("glibc");
+#endif
+ printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w);
+ return 0;
+}
+EOCP
+ case "$osname:$gccversion" in
+ aix:) saveccflags="$ccflags"
+ ccflags="$ccflags -qlongdouble" ;; # to avoid core dump
+ esac
+ set try
+ if eval $compile; then
+ foo=`$run ./try`
+ case "$foo" in
+ *" 4294967303.150000 1.150000 4294967302.000000")
+ echo >&4 "Your modfl() is broken for large values."
+ d_modfl_pow32_bug="$define"
+ case "$foo" in
+ glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()."
+ ;;
+ esac
+ ;;
+ *" 4294967303.150000 0.150000 4294967303.000000")
+ echo >&4 "Your modfl() seems okay for large values."
+ ;;
+ *) echo >&4 "I don't understand your modfl() at all."
+ d_modfl="$undef"
+ ;;
+ esac
+ $rm -f try.* try core core.try.*
+ else
+ echo "I cannot figure out whether your modfl() is okay, assuming it isn't."
+ d_modfl="$undef"
+ fi
+ case "$osname:$gccversion" in
+ aix:) ccflags="$saveccflags" ;; # restore
+ esac
+ ;;
+esac
+
: see if mprotect exists
set mprotect d_mprotect
eval $inlibc
set d_msg
eval $setvar
+
+echo " "
+echo "Checking to see if your system supports struct msghdr..." >&4
+set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
+eval $hasstruct
+case "$d_msghdr_s" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
+
+
: see if msync exists
set msync d_msync
eval $inlibc
set nice d_nice
eval $inlibc
+: see if this is a langinfo.h system
+set langinfo.h i_langinfo
+eval $inhdr
+
+: see if nl_langinfo exists
+set nl_langinfo d_nl_langinfo
+eval $inlibc
+
: check for length of character
echo " "
case "$charsize" in
EOCP
set try
if eval $compile_ok; then
- dflt=`./try`
+ dflt=`$run ./try`
else
dflt='1'
echo "(I can't seem to compile the test program. Guessing...)"
case "$i8type" in
'') set try -DINT8
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int8_t) i8type=int8_t
u8type=uint8_t
i8size=1
case "$i16type" in
'') set try -DINT16
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int16_t)
i16type=int16_t
u16type=uint16_t
case "$i32type" in
'') set try -DINT32
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int32_t)
i32type=int32_t
u32type=uint32_t
d_nv_preserves_uv="$undef"
if eval $compile; then
- d_nv_preserves_uv_bits="`./try$exe_ext`"
+ d_nv_preserves_uv_bits="`$run ./try`"
fi
case "$d_nv_preserves_uv_bits" in
\-[1-9]*)
set poll d_poll
eval $inlibc
+: see if pthread_atfork exists
+set pthread_atfork d_pthread_atfork
+eval $inlibc
+
: see whether the various POSIXish _yields exist
$cat >try.c <<EOP
set readlink d_readlink
eval $inlibc
+: see if readv exists
+set readv d_readv
+eval $inlibc
+
+: see if recvmsg exists
+set recvmsg d_recvmsg
+eval $inlibc
+
: see if rename exists
set rename d_rename
eval $inlibc
eval $setvar
: can bcopy handle overlapping blocks?
+echo " "
val="$undef"
-case "$d_bcopy" in
-"$define")
- echo " "
- echo "Checking to see if your bcopy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
+case "$d_memmove" in
+"$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
+*) case "$d_bcopy" in
+ "$define")
+ echo "Checking to see if bcopy() can do overlapping copies..." >&4
+ $cat >try.c <<EOCP
#$i_memory I_MEMORY
#$i_stdlib I_STDLIB
#$i_string I_STRING
int off;
int align;
+/* Copy "abcde..." string to char abc[] so that gcc doesn't
+ try to store the string in read-only memory. */
bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
for (align = 7; align >= 0; align--) {
exit(0);
}
EOCP
- set try
- if eval $compile_ok; then
- if ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
+ set try
+ if eval $compile_ok; then
+ if ./try 2>/dev/null; then
+ echo "Yes, it can."
+ val="$define"
+ else
+ echo "It can't, sorry."
+ fi
else
- echo "It can't, sorry."
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
+ echo "(I can't compile the test program, so we'll assume not...)"
fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
- fi
+ ;;
+ esac
+ $rm -f try.* try core
;;
esac
-$rm -f try.* try core
set d_safebcpy
eval $setvar
: can memcpy handle overlapping blocks?
+echo " "
val="$undef"
-case "$d_memcpy" in
-"$define")
- echo " "
- echo "Checking to see if your memcpy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
+case "$d_memmove" in
+"$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
+*) case "$d_memcpy" in
+ "$define")
+ echo "Checking to see if memcpy() can do overlapping copies..." >&4
+ $cat >try.c <<EOCP
#$i_memory I_MEMORY
#$i_stdlib I_STDLIB
#$i_string I_STRING
exit(0);
}
EOCP
- set try
- if eval $compile_ok; then
- if ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
+ set try
+ if eval $compile_ok; then
+ if ./try 2>/dev/null; then
+ echo "Yes, it can."
+ val="$define"
+ else
+ echo "It can't, sorry."
+ fi
else
- echo "It can't, sorry."
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
+ echo "(I can't compile the test program, so we'll assume not...)"
fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
- fi
+ ;;
+ esac
+ $rm -f try.* try core
;;
esac
-$rm -f try.* try core
set d_safemcpy
eval $setvar
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
val="$undef"
set try
if eval $compile; then
- xxx=`./try`
+ xxx=`$run ./try`
case "$xxx" in
semun) val="$define" ;;
esac
val="$undef"
set try
if eval $compile; then
- xxx=`./try`
+ xxx=`$run ./try`
case "$xxx" in
semid_ds) val="$define" ;;
esac
;;
esac
+: see if sendmsg exists
+set sendmsg d_sendmsg
+eval $inlibc
+
: see if setegid exists
set setegid d_setegid
eval $inlibc
set sethostent d_sethent
eval $inlibc
+: see if setitimer exists
+set setitimer d_setitimer
+eval $inlibc
+
: see if setlinebuf exists
set setlinebuf d_setlinebuf
eval $inlibc
case "$d_sfio" in
$define) ;;
*) : Remove sfio from list of libraries to use
- set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
- shift
- libs="$*"
- echo "libs = $libs" >&4
+ case "$libs" in
+ *-lsfio*)
+ echo "Removing unneeded -lsfio from library list" >&4
+ set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
+ shift
+ libs="$*"
+ echo "libs = $libs" >&4
+ ;;
+ esac
;;
esac
EOP
set try
if eval $compile; then
- if ./try >/dev/null 2>&1; then
+ if $run ./try >/dev/null 2>&1; then
echo "POSIX sigsetjmp found." >&4
val="$define"
else
set sockatmark d_sockatmark
eval $inlibc
+: see if prototype for sockatmark is available
+echo " "
+set d_sockatmarkproto sockatmark $d_socket sys/socket.h
+eval $hasproto
+
: see if socks5_init exists
set socks5_init d_socks5_init
eval $inlibc
+: see if prototype for setresgid is available
+echo " "
+set d_sresgproto setresgid $i_unistd unistd.h
+eval $hasproto
+
+: see if prototype for setresuid is available
+echo " "
+set d_sresuproto setresuid $i_unistd unistd.h
+eval $hasproto
+
: see if sys/stat.h is available
set sys/stat.h i_sysstat
eval $inhdr
EOP
val="$undef"
set try
-if eval $compile; then
- if ./try; then
+if eval $compile && $to try.c; then
+ if $run ./try; then
echo "Your stdio acts pretty std."
val="$define"
else
}
EOP
set try
- if eval $compile; then
- case `./try$exe_ext` in
+ if eval $compile && $to try.c; then
+ case `$run ./try` in
Pass_changed)
echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
d_stdio_ptr_lval_sets_cnt="$define" ;;
}
EOP
set try
- if eval $compile; then
- if ./try; then
+ if eval $compile && $to try.c; then
+ if $run ./try; then
echo "And its _base field acts std."
val="$define"
else
do
set try -DSTDIO_STREAM_ARRAY=$s
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
yes) stdio_stream_array=$s; break ;;
esac
fi
fi
fi
+: see if strftime exists
+set strftime d_strftime
+eval $inlibc
+
: see if strtod exists
set strtod d_strtod
eval $inlibc
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
ok) echo "Your strtoll() seems to be working okay." ;;
*) cat <<EOM >&4
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtoul() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtoul() doesn't seem to be working okay.
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtoull() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtoull() doesn't seem to be working okay.
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtouq() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtouq() doesn't seem to be working okay.
set syscall d_syscall
eval $inlibc
+: see if prototype for syscall is available
+echo " "
+set d_syscallproto syscall $i_unistd unistd.h
+eval $hasproto
+
: see if sysconf exists
set sysconf d_sysconf
eval $inlibc
set tcsetpgrp d_tcsetpgrp
eval $inlibc
-: see if prototype for telldir is available
-echo " "
-set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
-eval $hasproto
+: see if prototype for telldir is available
+echo " "
+set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
+eval $hasproto
+
+: see if this is a sys/times.h system
+set sys/times.h i_systimes
+eval $inhdr
+
+: see if times exists
+echo " "
+if set times val -f d_times; eval $csym; $val; then
+ echo 'times() found.' >&4
+ d_times="$define"
+ inc=''
+ case "$i_systimes" in
+ "$define") inc='sys/times.h';;
+ esac
+ rp="What is the type returned by times() on this system?"
+ set clock_t clocktype long stdio.h sys/types.h $inc
+ eval $typedef_ask
+else
+ echo 'times() NOT found, hope that will do.' >&4
+ d_times="$undef"
+ clocktype='int'
+fi
+
+: see if truncate exists
+set truncate d_truncate
+eval $inlibc
+
+: see if tzname[] exists
+echo " "
+if set tzname val -a d_tzname; eval $csym; $val; then
+ val="$define"
+ echo 'tzname[] found.' >&4
+else
+ val="$undef"
+ echo 'tzname[] NOT found.' >&4
+fi
+set d_tzname
+eval $setvar
+
+case "$osname" in
+next|rhapsody|darwin) multiarch="$define" ;;
+esac
+case "$multiarch" in
+''|[nN]*) multiarch="$undef" ;;
+esac
+
+: check for ordering of bytes in a long
+echo " "
+case "$usecrosscompile$multiarch" in
+*$define*)
+ $cat <<EOM
+You seem to be either cross-compiling or doing a multiarchitecture build,
+skipping the byteorder check.
+
+EOM
+ byteorder='ffff'
+ ;;
+*)
+ case "$byteorder" in
+ '')
+ $cat <<'EOM'
+In the following, larger digits indicate more significance. A big-endian
+machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
+little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
+machines may have weird orders like 3412. A Cray will report 87654321,
+an Alpha will report 12345678. If the test program works the default is
+probably right.
+I'm now running the test program...
+EOM
+ $cat >try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+ int i;
+ union {
+ unsigned long l;
+ char c[sizeof(long)];
+ } u;
+
+ if (sizeof(long) > 4)
+ u.l = (0x08070605L << 32) | 0x04030201L;
+ else
+ u.l = 0x04030201L;
+ for (i = 0; i < sizeof(long); i++)
+ printf("%c", u.c[i]+'0');
+ printf("\n");
+ exit(0);
+}
+EOCP
+ xxx_prompt=y
+ set try
+ if eval $compile && ./try > /dev/null; then
+ dflt=`$run ./try`
+ case "$dflt" in
+ [1-4][1-4][1-4][1-4]|12345678|87654321)
+ echo "(The test program ran ok.)"
+ echo "byteorder=$dflt"
+ xxx_prompt=n
+ ;;
+ ????|????????) echo "(The test program ran ok.)" ;;
+ *) echo "(The test program didn't run right for some reason.)" ;;
+ esac
+ else
+ dflt='4321'
+ cat <<'EOM'
+(I can't seem to compile the test program. Guessing big-endian...)
+EOM
+ fi
+ case "$xxx_prompt" in
+ y)
+ rp="What is the order of bytes in a long?"
+ . ./myread
+ byteorder="$ans"
+ ;;
+ *) byteorder=$dflt
+ ;;
+ esac
+ ;;
+ esac
+ $rm -f try.c try
+ ;;
+esac
+
+
+$cat <<EOM
+
+Checking to see whether you can access character data unalignedly...
+EOM
+$cat >try.c <<EOCP
+#include <stdio.h>
+#define U32 $u32type
+#define BYTEORDER $byteorder
+int main() {
+#if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
+ U8 buf[] = "\0\0\0\1\0\0\0\0";
+ U32 *up;
+ int i;
+
+ if (sizeof(U32) != 4) {
+ printf("sizeof(U32) is not 4, but %d\n", sizeof(U32));
+ exit(1);
+ }
+
+ fflush(stdout);
+
+ for (i = 0; i < 4; i++) {
+ up = (U32*)(buf + i);
+ if (! ((*up == 1 << (8*i)) || /* big-endian */
+ (*up == 1 << (8*(3-i))) /* little-endian */
+ )
+ )
+ {
+ printf("read failed (%x)\n", *up);
+ exit(2);
+ }
+ }
-: see if this is a sys/times.h system
-set sys/times.h i_systimes
-eval $inhdr
+ /* write test */
+ for (i = 0; i < 4; i++) {
+ up = (U32*)(buf + i);
+ *up = 0xBeef;
+ if (*up != 0xBeef) {
+ printf("write failed (%x)\n", *up);
+ exit(3);
+ }
+ }
-: see if times exists
-echo " "
-if set times val -f d_times; eval $csym; $val; then
- echo 'times() found.' >&4
- d_times="$define"
- inc=''
- case "$i_systimes" in
- "$define") inc='sys/times.h';;
+ exit(0);
+#else
+ printf("1\n");
+ exit(1);
+#endif
+ return 0;
+}
+EOCP
+set try
+if eval $compile_ok; then
+ echo "(Testing for character data alignment may dump core.)" >&4
+ $run ./try 2>&1 >/dev/null
+ case "$?" in
+ 0) cat >&4 <<EOM
+You can access character data pretty unalignedly.
+EOM
+ d_u32align="$undef"
+ ;;
+ *) cat >&4 <<EOM
+It seems that you must access character data in an aligned manner.
+EOM
+ d_u32align="$define"
+ ;;
esac
- rp="What is the type returned by times() on this system?"
- set clock_t clocktype long stdio.h sys/types.h $inc
- eval $typedef_ask
+ $rm -f core core.try.* try.core
else
- echo 'times() NOT found, hope that will do.' >&4
- d_times="$undef"
- clocktype='int'
+ rp='Can you access character data at unaligned addresses?'
+ dflt='n'
+ . ./myread
+ case "$ans" in
+ [yY]*) d_u32align="$undef" ;;
+ *) d_u32align="$define" ;;
+ esac
fi
-: see if truncate exists
-set truncate d_truncate
+: see if ualarm exists
+set ualarm d_ualarm
eval $inlibc
-: see if tzname[] exists
-echo " "
-if set tzname val -a d_tzname; eval $csym; $val; then
- val="$define"
- echo 'tzname[] found.' >&4
-else
- val="$undef"
- echo 'tzname[] NOT found.' >&4
-fi
-set d_tzname
-eval $setvar
-
: see if umask exists
set umask d_umask
eval $inlibc
+: see if unordered exists
+set unordered d_unordered
+eval $inlibc
+
+: see if usleep exists
+set usleep d_usleep
+eval $inlibc
+
+: see if prototype for usleep is available
+echo " "
+set d_usleepproto usleep $i_unistd unistd.h
+eval $hasproto
+
: see if ustat exists
set ustat d_ustat
eval $inlibc
"$define")
echo " "
echo "Checking whether closedir() returns a status..." >&4
- cat > closedir.c <<EOM
+ cat > try.c <<EOM
#$i_dirent I_DIRENT /**/
#$i_sysdir I_SYS_DIR /**/
#$i_sysndir I_SYS_NDIR /**/
#endif
int main() { return closedir(opendir(".")); }
EOM
- set closedir
+ set try
if eval $compile_ok; then
- if ./closedir > /dev/null 2>&1 ; then
+ if $run ./try > /dev/null 2>&1 ; then
echo "Yes, it does."
val="$undef"
else
esac
set d_void_closedir
eval $setvar
-$rm -f closedir*
+$rm -f try try.*
: see if there is a wait4
set wait4 d_wait4
eval $inlibc
set wctomb d_wctomb
eval $inlibc
+: see if writev exists
+set writev d_writev
+eval $inlibc
+
: preserve RCS keywords in files with variable substitution, grrr
Date='$Date'
Id='$Id'
RCSfile='$RCSfile'
Revision='$Revision'
-case "$crosscompile" in
-''|[nN]*) crosscompile="$undef" ;;
-esac
-
-case "$osname" in
-next|rhapsody|darwin) multiarch="$define" ;;
-esac
-case "$multiarch" in
-''|[nN]*) multiarch="$undef" ;;
-esac
-
: check for alignment requirements
echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
*$define*)
$cat <<EOM
You seem to be either cross-compiling or doing a multiarchitecture build,
EOCP
set try
if eval $compile_ok; then
- dflt=`./try`
+ dflt=`$run ./try`
else
dflt='8'
echo "(I can't seem to compile the test program...)"
: set the base revision
baserev=5.0
-: check for ordering of bytes in a long
-echo " "
-case "$crosscompile$multiarch" in
-*$define*)
- $cat <<EOM
-You seem to be either cross-compiling or doing a multiarchitecture build,
-skipping the byteorder check.
-
-EOM
- byteorder='0xffff'
- ;;
-*)
- case "$byteorder" in
- '')
- $cat <<'EOM'
-In the following, larger digits indicate more significance. A big-endian
-machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
-little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
-machines may have weird orders like 3412. A Cray will report 87654321,
-an Alpha will report 12345678. If the test program works the default is
-probably right.
-I'm now running the test program...
-EOM
- $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- int i;
- union {
- unsigned long l;
- char c[sizeof(long)];
- } u;
-
- if (sizeof(long) > 4)
- u.l = (0x08070605L << 32) | 0x04030201L;
- else
- u.l = 0x04030201L;
- for (i = 0; i < sizeof(long); i++)
- printf("%c", u.c[i]+'0');
- printf("\n");
- exit(0);
-}
-EOCP
- xxx_prompt=y
- set try
- if eval $compile && ./try > /dev/null; then
- dflt=`./try`
- case "$dflt" in
- [1-4][1-4][1-4][1-4]|12345678|87654321)
- echo "(The test program ran ok.)"
- echo "byteorder=$dflt"
- xxx_prompt=n
- ;;
- ????|????????) echo "(The test program ran ok.)" ;;
- *) echo "(The test program didn't run right for some reason.)" ;;
- esac
- else
- dflt='4321'
- cat <<'EOM'
-(I can't seem to compile the test program. Guessing big-endian...)
-EOM
- fi
- case "$xxx_prompt" in
- y)
- rp="What is the order of bytes in a long?"
- . ./myread
- byteorder="$ans"
- ;;
- *) byteorder=$dflt
- ;;
- esac
- ;;
- esac
- $rm -f try.c try
- ;;
-esac
-
-
: how do we catenate cpp tokens here?
echo " "
echo "Checking to see how your cpp does stuff like catenate tokens..." >&4
#include <sys/types.h>
#include <stdio.h>
#include <db.h>
-int main()
+int main(int argc, char *argv[])
{
#ifdef DB_VERSION_MAJOR /* DB version >= 2 */
int Major, Minor, Patch ;
unsigned long Version ;
(void)db_version(&Major, &Minor, &Patch) ;
- printf("You have Berkeley DB Version 2 or greater\n");
+ if (argc == 2) {
+ printf("%d %d %d %d %d %d\n",
+ DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+ Major, Minor, Patch);
+ exit(0);
+ }
+ printf("You have Berkeley DB Version 2 or greater.\n");
printf("db.h is from Berkeley DB Version %d.%d.%d\n",
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
/* check that db.h & libdb are compatible */
if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
- printf("db.h and libdb are incompatible\n") ;
+ printf("db.h and libdb are incompatible.\n") ;
exit(3);
}
- printf("db.h and libdb are compatible\n") ;
+ printf("db.h and libdb are compatible.\n") ;
Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
+ DB_VERSION_PATCH ;
/* needs to be >= 2.3.4 */
if (Version < 2003004) {
/* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
- printf("but Perl needs Berkeley DB 2.3.4 or greater\n") ;
+ printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
exit(2);
}
exit(0);
#else
#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
- printf("You have Berkeley DB Version 1\n");
+ if (argc == 2) {
+ printf("1 0 0\n");
+ exit(0);
+ }
+ printf("You have Berkeley DB Version 1.\n");
exit(0); /* DB version < 2: the coast is clear. */
#else
exit(1); /* <db.h> not Berkeley DB? */
}
EOCP
set try
- if eval $compile_ok && ./try; then
+ if eval $compile_ok && $run ./try; then
echo 'Looks OK.' >&4
+ set `$run ./try 1`
+ db_version_major=$1
+ db_version_minor=$2
+ db_version_patch=$3
else
echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
i_db=$undef
echo " "
echo "Determining whether or not we are on an EBCDIC system..." >&4
-$cat >tebcdic.c <<'EOM'
+$cat >try.c <<'EOM'
int main()
{
if ('M'==0xd4) return 0;
EOM
val=$undef
-set tebcdic
+set try
if eval $compile_ok; then
- if ./tebcdic; then
+ if $run ./try; then
echo "You seem to speak EBCDIC." >&4
val="$define"
else
- echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4
+ echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
fi
else
echo "I'm unable to compile the test program." >&4
echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
fi
-$rm -f tebcdic.c tebcdic
+$rm -f try try.*
set ebcdic
eval $setvar
# define STDIO_STREAM_ARRAY $stdio_stream_array
#endif
int main() {
- FILE* p = fopen("try.out", "w");
+ FILE* p;
+ unlink("try.out");
+ p = fopen("try.out", "w");
#ifdef TRY_FPUTC
fputc('x', p);
#else
}
EOCP
: first we have to find out how _not_ to flush
+$to try.c
if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
output=''
set try -DTRY_FPUTC
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test ! -s try.out -a "X$?" = X42; then
+ $run ./try 2>/dev/null
+ code="$?"
+ $from try.out
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPUTC
fi
fi
case "$output" in
'')
set try -DTRY_FPRINTF
- $rm -f try.out
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test ! -s try.out -a "X$?" = X42; then
+ $run ./try 2>/dev/null
+ code="$?"
+ $from try.out
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPRINTF
fi
fi
case "$fflushNULL" in
'') set try -DTRY_FFLUSH_NULL $output
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
+ $run ./try 2>/dev/null
code="$?"
+ $from try.out
if $test -s try.out -a "X$code" = X42; then
fflushNULL="`$cat try.out`"
else
set tryp
if eval $compile; then
$rm -f tryp.out
- $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+ $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
if cmp tryp.c tryp.out >/dev/null 2>&1; then
$cat >&4 <<EOM
fflush(NULL) seems to behave okay with input streams.
set tryp
if eval $compile; then
$rm -f tryp.out
- $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+ $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
if cmp tryp.c tryp.out >/dev/null 2>&1; then
$cat >&4 <<EOM
Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
$cat >&4 <<EOM
(Now testing the other method--but note that this also may fail.)
EOM
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
- if $test -s try.out -a "X$?" = X42; then
+ $run ./try 2>/dev/null
+ code=$?
+ $from try.out
+ if $test -s try.out -a "X$code" = X42; then
fflushall="`$cat try.out`"
fi
fi
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') gidsize=4
echo "(I can't execute the test program--guessing $gidsize.)" >&4
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') gidsign=1
echo "(I can't execute the test program--guessing unsigned.)" >&4
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
fi
fi
-if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
- $cat >try.c <<'EOCP'
+if $test X"$sPRId64" = X -a X"$quadtype" != X; then
+ $cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
int main() {
- long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
- printf("%lld\n", q);
+ $quadtype q = 12345678901;
+ printf("%Ld\n", q);
}
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
- sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
- sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
- echo "We will use the %lld style."
+ sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
+ sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
+ echo "We will use %Ld."
;;
esac
fi
fi
-if $test X"$sPRId64" = X -a X"$quadtype" != X; then
- $cat >try.c <<EOCP
+if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
+ $cat >try.c <<'EOCP'
#include <sys/types.h>
#include <stdio.h>
int main() {
- $quadtype q = 12345678901;
- printf("%Ld\n", q);
+ long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
+ printf("%lld\n", q);
}
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
- sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
- sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
- echo "We will use %Ld."
+ sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
+ sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
+ echo "We will use the %lld style."
;;
esac
fi
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
}
EOCP
set try
- if eval $compile && ./try 2>&1 >/dev/null; then
- case "`./try`" in
+ if eval $compile && $run ./try 2>&1 >/dev/null; then
+ case "`$run ./try`" in
"that's all right, then")
okay=yes
;;
$cc $ccflags -c foo.c >/dev/null 2>&1
$ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- ./foobar >/dev/null 2>&1; then
+ $run ./foobar >/dev/null 2>&1; then
echo "$ar appears to generate random libraries itself."
orderlib=false
ranlib=":"
elif $ar ts bar$_a >/dev/null 2>&1 &&
$cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- ./foobar >/dev/null 2>&1; then
+ $run ./foobar >/dev/null 2>&1; then
echo "a table of contents needs to be added with '$ar ts'."
orderlib=false
ranlib="$ar ts"
EOCP
set try
if eval $compile_ok; then
- selectminbits=`./try`
+ selectminbits=`$run ./try`
case "$selectminbits" in
'') cat >&4 <<EOM
Cannot figure out on how many bits at a time your select() operates.
xxx=`echo '#include <signal.h>' |
$cppstdin $cppminus $cppflags 2>/dev/null |
$grep '^[ ]*#.*include' |
- $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sort | $uniq`
+ $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq`
fi
: Check this list of files to be sure we have parsed the cpp output ok.
: This will also avoid potentially non-existent files, such
set signal
if eval $compile_ok; then
- ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
+ $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
else
echo "(I can't seem be able to compile the whole test program)" >&4
echo "(I'll try it in little pieces.)" >&4
set signal -DJUST_NSIG
if eval $compile_ok; then
- ./signal$_exe > signal.nsg
+ $run ./signal$_exe > signal.nsg
$cat signal.nsg
else
echo "I can't seem to figure out how many signals you have." >&4
set signal
if eval $compile; then
echo "SIG${xx} found."
- ./signal$_exe >> signal.ls1
+ $run ./signal$_exe >> signal.ls1
else
echo "SIG${xx} NOT found."
fi
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') sizesize=4
echo "(I can't execute the test program--guessing $sizesize.)" >&4
set ssize_t ssizetype int stdio.h sys/types.h
eval $typedef
dflt="$ssizetype"
-$cat > ssize.c <<EOM
+$cat > try.c <<EOM
#include <stdio.h>
#include <sys/types.h>
#define Size_t $sizetype
}
EOM
echo " "
-set ssize
-if eval $compile_ok && ./ssize > /dev/null; then
- ssizetype=`./ssize`
+set try
+if eval $compile_ok && $run ./try > /dev/null; then
+ ssizetype=`$run ./try`
echo "I'll be using $ssizetype for functions returning a byte count." >&4
else
$cat >&4 <<EOM
. ./myread
ssizetype="$ans"
fi
-$rm -f ssize ssize.*
+$rm -f try try.*
: see what type of char stdio uses.
echo " "
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') uidsize=4
echo "(I can't execute the test program--guessing $uidsize.)" >&4
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') uidsign=1
echo "(I can't execute the test program--guessing unsigned.)" >&4
;;
esac
-: see if dbm.h is available
-: see if dbmclose exists
-set dbmclose d_dbmclose
-eval $inlibc
-
-case "$d_dbmclose" in
-$define)
- set dbm.h i_dbm
- eval $inhdr
- case "$i_dbm" in
- $define)
- val="$undef"
- set i_rpcsvcdbm
- eval $setvar
- ;;
- *) set rpcsvc/dbm.h i_rpcsvcdbm
- eval $inhdr
- ;;
- esac
- ;;
-*) echo "We won't be including <dbm.h>"
- val="$undef"
- set i_dbm
- eval $setvar
- val="$undef"
- set i_rpcsvcdbm
- eval $setvar
- ;;
-esac
-
-: see if this is a sys/file.h system
-val=''
-set sys/file.h val
-eval $inhdr
-
-: do we need to include sys/file.h ?
-case "$val" in
-"$define")
- echo " "
- if $h_sysfile; then
- val="$define"
- echo "We'll be including <sys/file.h>." >&4
- else
- val="$undef"
- echo "We won't be including <sys/file.h>." >&4
- fi
- ;;
-*)
- h_sysfile=false
- ;;
-esac
-set i_sysfile
-eval $setvar
-
: see if fcntl.h is there
val=''
set fcntl.h val
set i_fcntl
eval $setvar
+: see if this is a fp.h system
+set fp.h i_fp
+eval $inhdr
+
+: see if this is a fp_class.h system
+set fp_class.h i_fp_class
+eval $inhdr
+
: see if this is a iconv.h system
set iconv.h i_iconv
eval $inhdr
EOSH
cat <<'EOSH' >> Cppsym.try
'length($1) > 0 {
- printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", %s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
- printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", _%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
- printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", __%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
- printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", __%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", (long)%s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", (long)_%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", (long)__%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
+ printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", (long)__%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
}' >> try.c
-echo '}' >> try.c
+echo 'return 0;}' >> try.c
EOSH
cat <<EOSH >> Cppsym.try
ccflags="$ccflags"
irix-) ccflags="\$ccflags -woff 1178" ;;
os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
esac
-$cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext
+$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
EOSH
chmod +x Cppsym.try
$eunicefix Cppsym.try
$test "$silent" || sleep 1
fi
fi
-$rm -f ccsym* Cppsym.*
: see if this is a termio system
val="$undef"
set sys/statvfs.h i_sysstatvfs
eval $inhdr
-: see if this is a sys/uio.h system
-set sys/uio.h i_sysuio
-eval $inhdr
-
: see if this is a sys/un.h system
set sys/un.h i_sysun
eval $inhdr
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
+ I18N/Langinfo|i18n_lan)
+ case "$i_langinfo$d_nl_langinfo" in
+ $define$define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
NDBM_File|ndbm_fil)
case "$i_ndbm" in
$define)
case "$osname-$use64bitint" in
- hpux-define)
+ cygwin-*|hpux-define)
case "$libs" in
*-lndbm*) avail_ext="$avail_ext $xxx" ;;
esac
case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*)
case "$osname-$use64bitint" in
- hpux-define)
+ cygwin-*|hpux-define)
case "$libs" in
*-ldbm*) avail_ext="$avail_ext $xxx" ;;
esac
esac
;;
Thread|thread)
- case "$usethreads" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
+ case "$usethreads" in
+ true|$define|y)
+ case "$useithreads" in
+ $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ esac
+ ;;
+ threads)
+ case "$usethreads" in
+ true|$define|y)
+ case "$useithreads" in
+ $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
+ esac
esac
;;
IPC/SysV|ipc/sysv)
_exe='$_exe'
_o='$_o'
afs='$afs'
+afsroot='$afsroot'
alignbytes='$alignbytes'
ansi2knr='$ansi2knr'
aphostname='$aphostname'
cpprun='$cpprun'
cppstdin='$cppstdin'
cppsymbols='$cppsymbols'
-crosscompile='$crosscompile'
cryptlib='$cryptlib'
csh='$csh'
d_Gconvert='$d_Gconvert'
d_chown='$d_chown'
d_chroot='$d_chroot'
d_chsize='$d_chsize'
+d_class='$d_class'
d_closedir='$d_closedir'
+d_cmsghdr_s='$d_cmsghdr_s'
d_const='$d_const'
d_crypt='$d_crypt'
d_csh='$d_csh'
d_cuserid='$d_cuserid'
d_dbl_dig='$d_dbl_dig'
+d_dbminitproto='$d_dbminitproto'
d_difftime='$d_difftime'
d_dirnamlen='$d_dirnamlen'
d_dlerror='$d_dlerror'
d_endsent='$d_endsent'
d_eofnblk='$d_eofnblk'
d_eunice='$d_eunice'
+d_fchdir='$d_fchdir'
d_fchmod='$d_fchmod'
d_fchown='$d_fchown'
d_fcntl='$d_fcntl'
d_fd_set='$d_fd_set'
d_fds_bits='$d_fds_bits'
d_fgetpos='$d_fgetpos'
+d_finite='$d_finite'
+d_finitel='$d_finitel'
d_flexfnam='$d_flexfnam'
d_flock='$d_flock'
+d_flockproto='$d_flockproto'
d_fork='$d_fork'
+d_fp_class='$d_fp_class'
d_fpathconf='$d_fpathconf'
+d_fpclass='$d_fpclass'
+d_fpclassify='$d_fpclassify'
+d_fpclassl='$d_fpclassl'
d_fpos64_t='$d_fpos64_t'
d_frexpl='$d_frexpl'
d_fs_data_s='$d_fs_data_s'
d_gethent='$d_gethent'
d_gethname='$d_gethname'
d_gethostprotos='$d_gethostprotos'
+d_getitimer='$d_getitimer'
d_getlogin='$d_getlogin'
d_getmnt='$d_getmnt'
d_getmntent='$d_getmntent'
d_inetaton='$d_inetaton'
d_int64_t='$d_int64_t'
d_isascii='$d_isascii'
+d_isfinite='$d_isfinite'
+d_isinf='$d_isinf'
d_isnan='$d_isnan'
d_isnanl='$d_isnanl'
d_killpg='$d_killpg'
d_mktime='$d_mktime'
d_mmap='$d_mmap'
d_modfl='$d_modfl'
+d_modfl_pow32_bug='$d_modfl_pow32_bug'
d_mprotect='$d_mprotect'
d_msg='$d_msg'
d_msg_ctrunc='$d_msg_ctrunc'
d_msg_proxy='$d_msg_proxy'
d_msgctl='$d_msgctl'
d_msgget='$d_msgget'
+d_msghdr_s='$d_msghdr_s'
d_msgrcv='$d_msgrcv'
d_msgsnd='$d_msgsnd'
d_msync='$d_msync'
d_munmap='$d_munmap'
d_mymalloc='$d_mymalloc'
d_nice='$d_nice'
+d_nl_langinfo='$d_nl_langinfo'
d_nv_preserves_uv='$d_nv_preserves_uv'
d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
d_off64_t='$d_off64_t'
d_pipe='$d_pipe'
d_poll='$d_poll'
d_portable='$d_portable'
+d_pthread_atfork='$d_pthread_atfork'
d_pthread_yield='$d_pthread_yield'
d_pwage='$d_pwage'
d_pwchange='$d_pwchange'
d_quad='$d_quad'
d_readdir='$d_readdir'
d_readlink='$d_readlink'
+d_readv='$d_readv'
+d_recvmsg='$d_recvmsg'
d_rename='$d_rename'
d_rewinddir='$d_rewinddir'
d_rmdir='$d_rmdir'
d_semctl_semun='$d_semctl_semun'
d_semget='$d_semget'
d_semop='$d_semop'
+d_sendmsg='$d_sendmsg'
d_setegid='$d_setegid'
d_seteuid='$d_seteuid'
d_setgrent='$d_setgrent'
d_setgrps='$d_setgrps'
d_sethent='$d_sethent'
+d_setitimer='$d_setitimer'
d_setlinebuf='$d_setlinebuf'
d_setlocale='$d_setlocale'
d_setnent='$d_setnent'
d_sigprocmask='$d_sigprocmask'
d_sigsetjmp='$d_sigsetjmp'
d_sockatmark='$d_sockatmark'
+d_sockatmarkproto='$d_sockatmarkproto'
d_socket='$d_socket'
d_socklen_t='$d_socklen_t'
d_sockpair='$d_sockpair'
d_socks5_init='$d_socks5_init'
d_sqrtl='$d_sqrtl'
+d_sresgproto='$d_sresgproto'
+d_sresuproto='$d_sresuproto'
d_statblks='$d_statblks'
d_statfs_f_flags='$d_statfs_f_flags'
d_statfs_s='$d_statfs_s'
d_strctcpy='$d_strctcpy'
d_strerrm='$d_strerrm'
d_strerror='$d_strerror'
+d_strftime='$d_strftime'
d_strtod='$d_strtod'
d_strtol='$d_strtol'
d_strtold='$d_strtold'
d_suidsafe='$d_suidsafe'
d_symlink='$d_symlink'
d_syscall='$d_syscall'
+d_syscallproto='$d_syscallproto'
d_sysconf='$d_sysconf'
d_sysernlst='$d_sysernlst'
d_syserrlst='$d_syserrlst'
d_times='$d_times'
d_truncate='$d_truncate'
d_tzname='$d_tzname'
+d_u32align='$d_u32align'
+d_ualarm='$d_ualarm'
d_umask='$d_umask'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
+d_unordered='$d_unordered'
+d_usleep='$d_usleep'
+d_usleepproto='$d_usleepproto'
d_ustat='$d_ustat'
d_vendorarch='$d_vendorarch'
d_vendorbin='$d_vendorbin'
d_waitpid='$d_waitpid'
d_wcstombs='$d_wcstombs'
d_wctomb='$d_wctomb'
+d_writev='$d_writev'
d_xenix='$d_xenix'
date='$date'
db_hashtype='$db_hashtype'
db_prefixtype='$db_prefixtype'
+db_version_major='$db_version_major'
+db_version_minor='$db_version_minor'
+db_version_patch='$db_version_patch'
defvoidused='$defvoidused'
direntrytype='$direntrytype'
dlext='$dlext'
exe_ext='$exe_ext'
expr='$expr'
extensions='$extensions'
+extras='$extras'
fflushNULL='$fflushNULL'
fflushall='$fflushall'
find='$find'
fpossize='$fpossize'
fpostype='$fpostype'
freetype='$freetype'
+from='$from'
full_ar='$full_ar'
full_csh='$full_csh'
full_sed='$full_sed'
i_dlfcn='$i_dlfcn'
i_fcntl='$i_fcntl'
i_float='$i_float'
+i_fp='$i_fp'
+i_fp_class='$i_fp_class'
i_gdbm='$i_gdbm'
i_grp='$i_grp'
i_iconv='$i_iconv'
i_ieeefp='$i_ieeefp'
i_inttypes='$i_inttypes'
+i_langinfo='$i_langinfo'
i_libutil='$i_libutil'
i_limits='$i_limits'
i_locale='$i_locale'
path_sep='$path_sep'
perl5='$perl5'
perl='$perl'
+perl_patchlevel='$perl_patchlevel'
perladmin='$perladmin'
perllibs='$perllibs'
perlpath='$perlpath'
revision='$revision'
rm='$rm'
rmail='$rmail'
+run='$run'
runnm='$runnm'
sPRIEUldbl='$sPRIEUldbl'
sPRIFUldbl='$sPRIFUldbl'
sysman='$sysman'
tail='$tail'
tar='$tar'
+targetarch='$targetarch'
tbl='$tbl'
tee='$tee'
test='$test'
timeincl='$timeincl'
timetype='$timetype'
+to='$to'
touch='$touch'
tr='$tr'
trnl='$trnl'
use5005threads='$use5005threads'
use64bitall='$use64bitall'
use64bitint='$use64bitint'
+usecrosscompile='$usecrosscompile'
usedl='$usedl'
useithreads='$useithreads'
uselargefiles='$uselargefiles'
useopcode='$useopcode'
useperlio='$useperlio'
useposix='$useposix'
+usereentrant='$usereentrant'
usesfio='$usesfio'
useshrplib='$useshrplib'
usesocks='$usesocks'
vendorprefix='$vendorprefix'
vendorprefixexp='$vendorprefixexp'
version='$version'
+version_patchlevel_string='$version_patchlevel_string'
versiononly='$versiononly'
vi='$vi'
voidflags='$voidflags'
: add special variables
$test -f $src/patchlevel.h && \
awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
-echo "CONFIGDOTSH=true" >>config.sh
+echo "PERL_PATCHLEVEL=$perl_patchlevel" >>config.sh
+echo "PERL_CONFIG_SH=true" >>config.sh
: propagate old symbols
if $test -f UU/config.sh; then
case "$alldone" in
exit)
$rm -rf UU
- echo "Done."
+ echo "Extraction done."
exit 0
;;
cont)
echo " "
exec 1>&4
+pwd=`pwd`
. ./UU/extract
+cd $pwd
if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
dflt=y
echo " "
echo "Now you must run a $make."
else
- echo "Done."
+ echo "Configure done."
fi
if $test -f Policy.sh; then