summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure4290
1 files changed, 2892 insertions, 1398 deletions
diff --git a/Configure b/Configure
index 38e554c1a2..10dd65db12 100755
--- a/Configure
+++ b/Configure
@@ -18,9 +18,9 @@
# archive site. Check with Archie if you don't know where that can be.)
#
-# $Id: Head.U,v 3.0.1.3 1993/12/15 08:15:07 ram Exp $
+# $Id: Head.U,v 3.0.1.5 1994/08/29 16:03:44 ram Exp $
#
-# Generated on Wed May 4 14:59:36 EDT 1994 [metaconfig 3.0 PL22]
+# Generated on Tue Oct 11 22:49:31 EDT 1994 [metaconfig 3.0 PL35]
cat >/tmp/c1$$ <<EOF
ARGGGHHHH!!!!!
@@ -46,17 +46,38 @@ true || exec sh $0 $argv:q
(exit $?0) || exec sh $0 $argv:q
rm -f /tmp/c1$$ /tmp/c2$$
-: Sanity checks
-PATH=".:$PATH:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin"
-PATH=$PATH:'/usr/5bin:/etc:/usr/gnu/bin:/usr/new:/usr/new/bin:/usr/nbin'
-PATH=$PATH:'/sys5.3/bin:/sys5.3/usr/bin:/bsd4.3/bin:/bsd4.3/usr/ucb'
-PATH=$PATH:'/bsd4.3/usr/bin:/usr/bsd:/bsd43/bin:/usr/ccs/bin'
-PATH=$PATH:'/etc:/usr/lib:/usr/ucblib:/lib:/usr/ccs/lib'
-PATH=$PATH:'/sbin:/usr/sbin:/usr/libexec'
+: compute my invocation name
+me=$0
+case "$0" in
+*/*)
+ me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null`
+ test "$me" || me=$0
+ ;;
+esac
+
+
+: Proper PATH setting
+paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+paths=$paths:'/usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin'
+paths=$paths:'/sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb'
+paths=$paths:'/bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin'
+paths=$paths:'/etc /usr/lib /usr/ucblib /lib /usr/ccs/lib'
+paths=$paths:'/sbin /usr/sbin /usr/libexec'
+
+for p in $paths
+do
+ case ":$PATH:" in
+ *:$p:*) ;;
+ *) test -d $p && PATH=$PATH:$p ;;
+ esac
+done
+
+PATH=.:$PATH
export PATH
+: Sanity checks
if test ! -t 0; then
- echo "Say 'sh Configure', not 'sh <Configure'"
+ echo "Say 'sh $me', not 'sh <$me'"
exit 1
fi
@@ -73,8 +94,8 @@ EOM
else
: Warn them if they use ksh on other systems
(PATH=.; alias -x) >/dev/null 2>&1 && \
- cat <<'EOM'
-(I see you are using the Korn shell. Some ksh's blow up on Configure,
+ cat <<EOM
+(I see you are using the Korn shell. Some ksh's blow up on $me,
especially on exotic machines. If yours does, try the Bourne shell instead.)
EOM
fi
@@ -83,7 +104,11 @@ fi
test -d UU || mkdir UU
cd UU && rm -f *
+dynamic_ext=''
extensions=''
+known_extensions=''
+static_ext=''
+useposix=''
d_eunice=''
d_xenix=''
eunicefix=''
@@ -152,6 +177,7 @@ uniq=''
uuname=''
vi=''
zcat=''
+libswanted=''
hint=''
myuname=''
osname=''
@@ -167,7 +193,12 @@ Revision=''
Source=''
State=''
afs=''
-memalignbytes=''
+alignbytes=''
+archlib=''
+archlibexp=''
+archname=''
+d_archlib=''
+installarchlib=''
bin=''
binexp=''
installbin=''
@@ -182,11 +213,14 @@ optimize=''
cf_by=''
cf_time=''
contains=''
+cpp_stuff=''
cpplast=''
cppminus=''
cpprun=''
cppstdin=''
d_access=''
+d_alarm=''
+d_attrib=''
d_bcmp=''
d_bcopy=''
d_bzero=''
@@ -194,48 +228,86 @@ d_casti32=''
castflags=''
d_castneg=''
d_charsprf=''
+d_chown=''
+d_chroot=''
d_chsize=''
+d_closedir=''
+d_void_closedir=''
d_const=''
cryptlib=''
d_crypt=''
d_csh=''
+d_cuserid=''
+d_dbl_dig=''
+d_difftime=''
+d_dlerror=''
+d_dlopen=''
+d_dlsymun=''
d_dosuid=''
+d_suidsafe=''
+d_drem=''
d_dup2=''
d_fchmod=''
d_fchown=''
d_fcntl=''
+d_fd_macros=''
+d_fd_set=''
+d_fds_bits=''
+d_fgetpos=''
d_flexfnam=''
d_flock=''
+d_fmod=''
+d_fork=''
+d_fsetpos=''
+d_Gconvert=''
d_getgrps=''
d_gethent=''
aphostname=''
d_gethname=''
d_phostname=''
d_uname=''
+d_getlogin=''
d_getpgrp2=''
d_getpgrp=''
+d_getppid=''
d_getprior=''
+d_group=''
d_htonl=''
d_isascii=''
d_killpg=''
d_link=''
+d_linuxstd=''
+d_locconv=''
+d_lockf=''
d_lstat=''
+d_mblen=''
+d_mbstowcs=''
+d_mbtowc=''
d_memcmp=''
d_memcpy=''
d_memmove=''
d_memset=''
d_mkdir=''
+d_mkfifo=''
+d_mktime=''
d_msg=''
d_msgctl=''
d_msgget=''
d_msgrcv=''
d_msgsnd=''
+d_nice=''
d_open3=''
+d_passwd=''
+d_fpathconf=''
+d_pathconf=''
+d_pause=''
+d_pipe=''
d_portable=''
d_readdir=''
d_rewinddir=''
d_seekdir=''
d_telldir=''
+d_readlink=''
d_rename=''
d_rmdir=''
d_safebcpy=''
@@ -247,6 +319,7 @@ d_semget=''
d_semop=''
d_setegid=''
d_seteuid=''
+d_setlinebuf=''
d_setlocale=''
d_setpgid=''
d_setpgrp2=''
@@ -262,7 +335,8 @@ d_setruid=''
d_setsid=''
d_shm=''
d_shmat=''
-d_voidshmat=''
+d_shmatprototype=''
+shmattype=''
d_shmctl=''
d_shmdt=''
d_shmget=''
@@ -275,25 +349,28 @@ d_statblks=''
d_stdstdio=''
d_index=''
d_strchr=''
+d_strcoll=''
d_strctcpy=''
d_strerrm=''
d_strerror=''
d_sysernlst=''
d_syserrlst=''
+d_strxfrm=''
d_symlink=''
d_syscall=''
+d_sysconf=''
d_system=''
+d_tcgetpgrp=''
+d_tcsetpgrp=''
d_time=''
timetype=''
clocktype=''
d_times=''
d_truncate=''
-d_usendir=''
-i_ndir=''
-ndirc=''
-ndirlib=''
-ndiro=''
+d_tzname=''
+d_umask=''
d_vfork=''
+usevfork=''
d_voidsig=''
signal_t=''
d_volatile=''
@@ -301,25 +378,33 @@ d_charvspr=''
d_vprintf=''
d_wait4=''
d_waitpid=''
+d_wcstombs=''
+d_wctomb=''
+dlext=''
cccdlflags=''
ccdlflags=''
-dldir=''
-dlobj=''
dlsrc=''
lddlflags=''
-shlibsuffix=''
usedl=''
+fpostype=''
gidtype=''
groupstype=''
h_fcntl=''
h_sysfile=''
+i_db=''
i_dbm=''
d_dirnamlen=''
+direntrytype=''
i_dirent=''
+i_dld=''
i_dlfcn=''
i_fcntl=''
+i_float=''
i_gdbm=''
i_grp=''
+i_limits=''
+i_malloc=''
+i_math=''
i_memory=''
i_ndbm=''
i_neterrno=''
@@ -332,19 +417,21 @@ d_pwcomment=''
d_pwexpire=''
d_pwquota=''
i_pwd=''
-i_sdbm=''
-i_stdarg=''
i_stddef=''
+i_stdlib=''
i_string=''
strings=''
i_sysdir=''
i_sysfile=''
d_voidtty=''
i_bsdioctl=''
+i_sysfilio=''
i_sysioctl=''
i_syssockio=''
i_sysndir=''
+i_sysparam=''
i_sysselct=''
+i_systimes=''
i_sgtty=''
i_termio=''
i_termios=''
@@ -354,13 +441,13 @@ i_time=''
timeincl=''
i_unistd=''
i_utime=''
+i_stdarg=''
i_varargs=''
i_varhdr=''
i_vfork=''
intsize=''
-lib=''
-libexp=''
libc=''
+glibpth=''
libpth=''
plibpth=''
xlibpth=''
@@ -382,6 +469,7 @@ medium=''
models=''
small=''
split=''
+modetype=''
mydomain=''
myhostname=''
phostname=''
@@ -394,19 +482,23 @@ orderlib=''
ranlib=''
package=''
spackage=''
+prefix=''
installprivlib=''
privlib=''
privlibexp=''
prototype=''
-ptrsize=''
randbits=''
installscript=''
scriptdir=''
scriptdirexp=''
+selecttype=''
sig_name=''
+sizetype=''
+so=''
sharpbang=''
shsharp=''
spitshell=''
+ssizetype=''
startsh=''
stdchar=''
sysman=''
@@ -429,7 +521,16 @@ cat >extract <<'EOS'
CONFIG=true
echo "Doing variable substitutions on .SH files..."
if test -f MANIFEST; then
- set x `awk '{print $1}' <MANIFEST | grep '\.SH'`
+ shlist=`awk '{print $1}' <MANIFEST | grep '\.SH'`
+ : Pick up possible extension manifests.
+ for dir in ext/* ; do
+ if test -f $dir/MANIFEST; then
+ xxx=`awk '{print $1}' < $dir/MANIFEST |
+ sed -n "/\.SH$/ s@^@$dir/@p"`
+ shlist="$shlist $xxx"
+ fi
+ done
+ set x $shlist
else
echo "(Looking for .SH files under the current directory.)"
set x `find . -name "*.SH" -print`
@@ -464,7 +565,7 @@ EOS
: produce awk script to parse command line options
cat >options.awk <<'EOF'
BEGIN {
- optstr = "deEf:hrsSV"; # getopt-style specification
+ optstr = "deEf:hrsSD:U:V"; # getopt-style specification
len = length(optstr);
for (i = 1; i <= len; i++) {
@@ -521,6 +622,7 @@ alldone=''
error=''
silent=''
extractsh=''
+optdef='optdef.sh'
: option parsing
while test $# -gt 0; do
@@ -533,7 +635,7 @@ while test $# -gt 0; do
if test -r "$1"; then
config_sh="$1"
else
- echo "Configure: cannot read config file $1." >&2
+ echo "$me: cannot read config file $1." >&2
error=true
fi
cd UU
@@ -543,10 +645,34 @@ while test $# -gt 0; do
-s) shift; silent=true;;
-E) shift; alldone=exit;;
-S) shift; extractsh=true;;
- -V) echo "Configure generated by metaconfig 3.0 PL22." >&2
+ -D)
+ shift
+ case "$1" in
+ *=)
+ echo "$me: use '-U symbol=', not '-D symbol='." >&2
+ echo "$me: ignoring -D $1" >&2
+ ;;
+ *=*) echo "$1" >> $optdef;;
+ *) echo "$1='define'" >> $optdef;;
+ esac
+ shift
+ ;;
+ -U)
+ shift
+ case "$1" in
+ *=) echo "$1" >> $optdef;;
+ *=*)
+ echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
+ echo "$me: ignoring -U $1" >&2
+ ;;
+ *) echo "$1='undef'" >> $optdef;;
+ esac
+ shift
+ ;;
+ -V) echo "$me generated by metaconfig 3.0 PL35." >&2
exit 0;;
--) break;;
- -*) echo "Configure: unknown option $1" >&2; shift; error=true;;
+ -*) echo "$me: unknown option $1" >&2; shift; error=true;;
*) break;;
esac
done
@@ -554,15 +680,22 @@ done
case "$error" in
true)
cat >&2 <<EOM
-Usage: Configure [-dehrESV] [-f config.sh]
+Usage: $me [-dehrESV] [-f config.sh] [-D symbol] [-D symbol=value]
+ [-U symbol] [-U symbol=]
-d : use defaults for all answers.
-e : go on without questioning past the production of config.sh.
-f : specify an alternate default configuration file.
-h : print this help message and exit (with an error status).
-r : reuse C symbols value if possible (skips costly nm extraction).
-s : silent mode, only echoes questions and essential information.
+ -D : define symbol to have some value:
+ -D symbol symbol gets the value 'define'
+ -D symbol=value symbol gets the value 'value'
-E : stop at the end of questions, after having produced config.sh.
-S : perform variable substitutions on all .SH files (can mix with -f)
+ -U : undefine symbol:
+ -U symbol symbol gets the value 'undef'
+ -U symbol= symbol gets completely empty
-V : print version number and exit (with a zero status).
EOM
exit 1
@@ -574,6 +707,11 @@ case "$silent" in
true) exec 1>/dev/null;;
esac
+: run the defines and the undefines, if any
+touch $optdef
+. ./$optdef
+rm -f $optdef
+
case "$extractsh" in
true)
case "$config_sh" in
@@ -618,48 +756,103 @@ if test -f /etc/unixtovms.exe; then
fi
: list of known cpp symbols
-attrlist="__alpha __bsdi__ BSD_NET2 DGUX M_I186 M_I286 M_I386"
-attrlist="$attrlist M_I8086 M_XENIX UTS __DGUX__"
-attrlist="$attrlist _AIX __STDC__ __m88k__ ansi bsd4_2 gcos gimpel"
-attrlist="$attrlist hp9000s300 hp9000s400 hp9000s500 hp9000s700"
-attrlist="$attrlist hp9000s800 hpux"
-attrlist="$attrlist i186 i386 i486 i8086 iAPX286 ibm interdata"
-attrlist="$attrlist m88k mc300 mc500 mc68000 mc68k mc700 mert"
-attrlist="$attrlist mips NeXT ns16000 ns32000 nsc32000 os"
-attrlist="$attrlist __osf__ pdp11 posix"
-attrlist="$attrlist pyr sinix sony sparc sun tower tower32 tower32_600"
-attrlist="$attrlist tower32_800 tss u3b2 u3b20 u3b200 u3b5 ultrix unix"
-attrlist="$attrlist __unix__ vax venix xenix z8000"
+al="AMIX BIT_MSF BSD BSD4_3 BSD_NET2 CRAY DGUX DOLPHIN DPX2"
+al="$al GO32 HP700 I386 I80960 I960 Lynx M68000 M68K MACH"
+al="$al MIPSEB MIPSEL MSDOS MTXINU MVS"
+al="$al M_COFF M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM"
+al="$al M_SYS3 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX"
+al="$al NeXT OCS88 OSF1 PARISC PC532 PORTAR POSIX"
+al="$al PWB R3000 SVR3 SVR4"
+al="$al SYSTYPE_BSD SYSTYPE_SVR4 SYSTYPE_SYSV"
+al="$al UTEK UTS UTek UnicomPBB UnicomPBD Utek VMS"
+al="$al _AIX _AIX32 _AM29000 _COFF _CRAY _EPI _IBMR2"
+al="$al _MIPSEB _MIPSEL _M_COFF _M_I86 _M_I86SM _M_SYS3"
+al="$al _M_SYS5 _M_SYSIII _M_SYSV _M_UNIX _M_XENIX _R3000"
+al="$al _SYSTYPE_BSD _SYSTYPE_BSD43 _SYSTYPE_SVR4"
+al="$al _SYSTYPE_SYSV _SYSV3 _UNICOS"
+al="$al __386BSD__ __BIG_ENDIAN __BIG_ENDIAN__ __BSD_4_4__"
+al="$al __DGUX__ __DPX2__ __H3050R __H3050RX"
+al="$al __LITTLE_ENDIAN __LITTLE_ENDIAN__ __MACH__"
+al="$al __MIPSEB __MIPSEB__ __MIPSEL __MIPSEL__"
+al="$al __Next__ __OSF1__ __PARAGON__ __PWB __STDC__"
+al="$al ____386BSD____ __alpha __alpha__ __amiga"
+al="$al __bsd4_2 __bsd4_2__ __bsdi__ __convex__"
+al="$al __host_mips__"
+al="$al __hp9000s200 __hp9000s300 __hp9000s400 __hp9000s500"
+al="$al __hp9000s500 __hp9000s700 __hp9000s800"
+al="$al __hppa __hpux __i286 __i286__ __i386 __i386__"
+al="$al __i486 __i486__ __i860 __i860__"
+al="$al __m68k __m68k__ __m88100__ __m88k __m88k__"
+al="$al __mc68000 __mc68000__ __mc68020 __mc68020__"
+al="$al __mc68030 __mc68030__ __mc68040 __mc68040__"
+al="$al __mc88100 __mc88100__ __mips __mips__"
+al="$al __motorola__ __osf__ __pa_risc __sparc__ __stdc__"
+al="$al __sun __sun__ __svr3__ __svr4__ __ultrix __ultrix__"
+al="$al __unix __unix__ __vax __vax__"
+al="$al _host_mips _mips _unix"
+al="$al a29k aegis alliant am29000 amiga ansi"
+al="$al bsd bsd43 bsd4_2 bsd4_3 bsd4_4 bull"
+al="$al convex cray ctix encore gcos gimpel"
+al="$al hcx host_mips hp200 hp300 hp700 hp800"
+al="$al hp9000 hp9000s300 hp9000s400 hp9000s500"
+al="$al hp9000s700 hp9000s800 hp9k8 hpux"
+al="$al i186 i286 i386 i486 i8086"
+al="$al i80960 i860 iAPX286 ibm interdata is68k"
+al="$al linux luna luna88k m68k m88100 m88k"
+al="$al mc300 mc500 mc68000 mc68010 mc68020 mc68030"
+al="$al mc68040 mc68060 mc68k mc68k32 mc700"
+al="$al mc88000 mc88100 merlin mert mips mvs n16"
+al="$al ncl_el ncl_mr"
+al="$al news1500 news1700 news1800 news1900 news3700"
+al="$al news700 news800 news900 ns16000 ns32000"
+al="$al ns32016 ns32332 ns32k nsc32000 os osf"
+al="$al parisc pc532 pdp11 plexus posix pyr"
+al="$al riscix riscos sequent sgi sinix sony sony_news"
+al="$al sonyrisc sparc sparclite spectrum stratos"
+al="$al sun sun3 sun386 svr4 sysV68 sysV88"
+al="$al tower tower32 tower32_200 tower32_600 tower32_700"
+al="$al tower32_800 tower32_850 tss u3b u3b2 u3b20 u3b200"
+al="$al u3b5 ultrix unix unixpc unos vax venix vms"
+al="$al xenix z8000"
i_whoami=''
-: List of extensions we want:
-extensions=''
-gccversion=''
-: no include file wanted by default
-inclwanted=''
-
-: File to use for dynamic loading
-usedl=''
-gidtype=''
-groupstype=''
: change the next line if compiling for Xenix/286 on Xenix/386
xlibpth='/usr/lib/386 /lib/386'
: general looking path for locating libraries
-libpth="/usr/lib/large /lib /usr/lib $xlibpth /lib/large"
-libpth="$libpth /usr/lib/small /lib/small"
-libpth="$libpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+glibpth="/lib/pa1.1 /usr/lib/large /lib /usr/lib $xlibpth"
+glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
+glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib /usr/shlib"
: Private path used by Configure to find libraries. Its value
-: is prepend to libpth. This variable takes care of special
+: is prepended to libpth. This variable takes care of special
: machines, like the mips. Usually, it should be empty.
plibpth=''
-libswanted=" net socket inet nsl nm sdbm gdbm ndbm dbm malloc dl dld sun m c_s posix cposix ndir dir ucb bsd BSD PW x "
-
: full support for void wanted by default
defvoidused=15
+: set useposix=false in your hint file to disable the POSIX extension.
+useposix=true
+gccversion=''
+: no include file wanted by default
+inclwanted=''
+
+groupstype=''
+: default library list
+libswanted=''
+: List of libraries we want.
+libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl'
+libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt"
+libswanted="$libswanted ucb bsd BSD PW x"
+: We want to search /usr/shlib before most other libraries.
+: This is only used by ext/util/extliblist
+glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
+glibpth="/usr/shlib $glibpth"
+: Do not use vfork unless overridden by a hint file.
+usevfork=false
+: We can look for titanos too.
+al="$al ardent titan"
: Some greps do not return status, grrr.
echo "grimblepritz" >grimble
@@ -861,7 +1054,7 @@ if $needman; then
cat <<EOH
This installation shell script will examine your system and ask you questions
-to determine how the perl package should be installed. If you get
+to determine how the perl5 package should be installed. If you get
stuck on a question, you may use a ! shell escape to start a subshell or
execute a command. Many of the questions will have default answers in square
brackets; typing carriage return will give you the default.
@@ -929,7 +1122,9 @@ if sh -c '#' >/dev/null 2>&1 ; then
spitshell=cat
echo " "
echo "Okay, let's see if #! works on this system..."
- echo "#!/bin/cat" >try
+ xcat=/bin/cat
+ test -r $xcat || xcat=/usr/bin/cat
+ echo "#!$xcat" >try
$eunicefix try
chmod +x try
./try > today
@@ -937,7 +1132,7 @@ if sh -c '#' >/dev/null 2>&1 ; then
echo "It does."
sharpbang='#!'
else
- echo "#! /bin/cat" > try
+ echo "#! $xcat" > try
$eunicefix try
chmod +x try
./try > today
@@ -952,10 +1147,12 @@ if sh -c '#' >/dev/null 2>&1 ; then
else
echo "Your sh doesn't grok # comments--I will strip them later on."
shsharp=false
+ cd ..
echo "exec grep -v '^[ ]*#'" >spitshell
chmod +x spitshell
$eunicefix spitshell
spitshell=`pwd`/spitshell
+ cd UU
echo "I presume that if # doesn't work, #! won't work either!"
sharpbang=': use '
fi
@@ -1005,8 +1202,11 @@ for dir in \$*; do
fi
;;
*)
- if test -f \$dir/\$thing; then
- echo \$dir/\$thing
+ for thisthing in \$dir/\$thing; do
+ : Just loop through to pick last element
+ done
+ if test -f \$thisthing; then
+ echo \$thisthing
exit 0
elif test -f \$dir/\$thing.exe; then
: on Eunice apparently
@@ -1027,10 +1227,11 @@ cat
cp
echo
expr
+find
grep
ln
+ls
mkdir
-mv
rm
sed
sort
@@ -1046,7 +1247,6 @@ cpp
csh
date
egrep
-find
line
nroff
perl
@@ -1134,16 +1334,26 @@ FOO
;;
esac
+: determine whether symbolic links are supported
+echo " "
+$touch blurfl
+if $ln -s blurfl sym > /dev/null 2>&1 ; then
+ echo "Symbolic links are supported." >&4
+ lns="$ln -s"
+else
+ echo "Symbolic links are NOT supported." >&4
+ lns="$ln"
+fi
+$rm -f blurfl sym
+
: Try to determine whether config.sh was made on this system
case "$config_sh" in
'')
myuname=`( ($uname -a) 2>/dev/null || hostname) 2>&1`
-myuname=`echo $myuname | $sed -e 's/^[^=]*=//' | \
+myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
tr '[A-Z]' '[a-z]' | tr '\012' ' '`
dflt=n
-if test "$fastread" = yes; then
- dflt=y
-elif test -f ../config.sh; then
+if test -f ../config.sh; then
oldmyuname=''
if $contains myuname= ../config.sh >/dev/null 2>&1; then
eval "old`grep myuname= ../config.sh`"
@@ -1185,19 +1395,20 @@ EOM
: Half the following guesses are probably wrong... If you have better
: tests or hints, please send them to lwall@netlabs.com
: The metaconfig authors would also appreciate a copy...
- $test -f /irix && osname=sgi
+ $test -f /irix && osname=irix
$test -f /xenix && osname=sco_xenix
$test -f /dynix && osname=dynix
$test -f /dnix && osname=dnix
+ $test -f /unicos && osname=unicos && osvers=`$uname -r`
$test -f /bin/mips && /bin/mips && osname=mips
- $test -d /NextApps && test -f /usr/adm/software_version && osname=next
+ $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
+ $test -d /usr/apollo/bin && osname=apollo
+ $test -f /etc/saf/_sactab && osname=svr4
$test -d /usr/include/minix && osname=minix
if $test -f $uname; then
set X $myuname
shift
- $test -f $5.sh && dflt="$dflt $5"
-
case "$5" in
fps*) osname=fps ;;
mips*)
@@ -1210,35 +1421,86 @@ EOM
news*) osname=news ;;
i386*) if $test -f /etc/kconfig; then
osname=isc
- if $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
- osvers=3.2.3
+ if test "$lns" = "ln -s"; then
+ osvers=4
+ elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
+ osvers=3
elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
- osvers=3.2.2
+ osvers=2
fi
fi
;;
esac
case "$1" in
- aix) osname=aix_rs ;;
+ aix) osname=aix
+ tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
+ case "$tmp" in
+ 'not found') osvers=3.2.0 ;;
+ '<3240'|'<>3240') osvers=3.2.0 ;;
+ '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
+ '=3250'|'>3250') osvers=3.2.5 ;;
+ *) osvers='' ;;
+ esac
+ ;;
+ dnix) osname=dnix
+ osvers="$3"
+ ;;
+ domainos) osname=apollo
+ osvers="$3"
+ ;;
+ dgux) osname=dgux
+ osvers="$3"
+ ;;
+ freebsd) osname=freebsd
+ osvers="$3" ;;
+ genix) osname=genix ;;
+ hp*) osname=hpux
+ case "$3" in
+ *.08.*) osvers=9 ;;
+ *.09.*) osvers=9 ;;
+ *.10.*) osvers=10 ;;
+ esac
+ ;;
+ irix) osname=irix
+ case "$3" in
+ 4*) osvers=4 ;;
+ 5*) osvers=5 ;;
+ esac
+ ;;
+ linux) osname=linux
+ case "$3" in
+ 1*) osvers=1 ;;
+ *) osvers="$3" ;;
+ esac
+ ;;
+ netbsd*) osname=netbsd
+ osvers="$3"
+ ;;
+ bsd386) osname=bsd386
+ osvers=`$uname -r`
+ ;;
+ next*) osname=next ;;
+ solaris) osname=solaris
+ case "$3" in
+ 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
+ esac
+ ;;
sunos) osname=sunos
case "$3" in
- [34]*) osvers=$3 ;;
5*) osname=solaris
osvers=`echo $3 | $sed 's/^5/2/g'` ;;
+ *) osvers="$3" ;;
esac
;;
- solaris) osname=solaris
+ titanos) osname=titanos
case "$3" in
- 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
+ 1*) osvers=1 ;;
+ 2*) osvers=2 ;;
+ 3*) osvers=3 ;;
+ 4*) osvers=4 ;;
esac
;;
- dnix) osname=dnix ;;
- dgux) osname=dgux ;;
- genix) osname=genix ;;
- hp*ux) osname=hpux ;;
- next) osname=next ;;
- irix) osname=sgi ;;
ultrix) osname=ultrix
case "$3" in
1*) osvers=1 ;;
@@ -1257,16 +1519,41 @@ EOM
;;
hp*) osname=hp_osf1 ;; # TR
mips) osname=mips_osf1 ;; # TR
- # TR = Technology Releases: (un^N)supported
+ # TR = Technology Releases: unsupported
esac
;;
- uts) osname=uts ;;
+ uts) osname=uts
+ osvers="$3"
+ ;;
$2) case "$osname" in
*isc*) ;;
+ *freebsd*) ;;
+ svr*)
+ : svr4.x or possibly later
+ case "svr$3" in
+ ${osname}*)
+ osname=svr$3
+ osvers=$4
+ ;;
+ esac
+ case "$osname" in
+ svr4.0)
+ : Check for ESIX
+ if test -f /stand/boot ; then
+ eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
+ if test -n $INITPROG -a -f $INITPROG; then
+ isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
+ if test -n $isesix; then
+ osname=esix4
+ fi
+ fi
+ fi
+ ;;
+ esac
+ ;;
*) if test -f /etc/systemid; then
- osname=sco
- : Does anyone know if these next gyrations are needed
- set `echo $3 | $sed 's/\./ /g'` $4
+ osname=sco
+ set `echo $3 | $sed 's/\./ /g'` $4
if $test -f sco_$1_$2_$3.sh; then
osvers=$1.$2.$3
elif $test -f sco_$1_$2.sh; then
@@ -1274,10 +1561,24 @@ EOM
elif $test -f sco_$1.sh; then
osvers=$1
fi
+ else
+ case "$osname" in
+ '') : Still unknown. Probably a generic Sys V.
+ osname="sysv"
+ osvers="$3"
+ ;;
+ esac
fi
;;
esac
;;
+ *) case "$osname" in
+ '') : Still unknown. Probably a generic BSD.
+ osname="$1"
+ osvers="$3"
+ ;;
+ esac
+ ;;
esac
else
if test -f /vmunix -a -f news_os.sh; then
@@ -1289,23 +1590,44 @@ EOM
fi
fi
- : Now look for a hint file osname_osvers
- file=`echo "${osname}_${osvers}" | sed -e 's@\.@_@g' -e 's@_$@@'`
- case "$file" in
- '') dflt=none ;;
- *) case "$osvers" in
- '') dflt=$file
- ;;
- *) if $test -f $file.sh ; then
- dflt=$file
- elif $test -f "${osname}.sh" ; then
- dflt="${osname}"
- else
- dflt=none
- fi
+ : Now look for a hint file osname_osvers, unless one has been
+ : specified already.
+ case "$hintfile" in
+ ''|' ')
+ file=`echo "${osname}_${osvers}" | sed -e 's@\.@_@g' -e 's@_$@@'`
+ : Also try without trailing minor version numbers.
+ xfile=`echo $file | sed -e 's@_[^_]*$@@'`
+ xxfile=`echo $xfile | sed -e 's@_[^_]*$@@'`
+ xxxfile=`echo $xxfile | sed -e 's@_[^_]*$@@'`
+ xxxxfile=`echo $xxxfile | sed -e 's@_[^_]*$@@'`
+ case "$file" in
+ '') dflt=none ;;
+ *) case "$osvers" in
+ '') dflt=$file
+ ;;
+ *) if $test -f $file.sh ; then
+ dflt=$file
+ elif $test -f $xfile.sh ; then
+ dflt=$xfile
+ elif $test -f $xxfile.sh ; then
+ dflt=$xxfile
+ elif $test -f $xxxfile.sh ; then
+ dflt=$xxxfile
+ elif $test -f $xxxxfile.sh ; then
+ dflt=$xxxxfile
+ elif $test -f "${osname}.sh" ; then
+ dflt="${osname}"
+ else
+ dflt=none
+ fi
+ ;;
+ esac
;;
esac
;;
+ *)
+ dflt=`echo $hintfile | sed 's/\.sh$//'`
+ ;;
esac
$cat <<EOM
@@ -1345,9 +1667,9 @@ EOM
hint=recommended
: Remember our hint file for later.
if $test -f "$file.sh" ; then
- hintfile="$file.sh"
+ hintfile="$file"
else
- hintfile=none
+ hintfile=''
fi
cd ..
@@ -1376,14 +1698,16 @@ for file in $loclist $trylist; do
done
cat << EOM
+
Configure uses the operating system name and version to set some defaults.
Say "none" to leave it blank.
+
EOM
case "$osname" in
- ''|' ')
+ ''|' ')
case "$hintfile" in
- none) dflt=none ;;
+ ''|' '|none) dflt=none ;;
*) dflt=`echo $hintfile | sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
esac
;;
@@ -1395,38 +1719,24 @@ case "$ans" in
none) osname='' ;;
*) osname="$ans" ;;
esac
-
-case "$osvers" in
- ''|' ')
- case "$hintfile" in
- none) dflt=none ;;
- *) dflt=`echo $hintfile | sed -e 's/\.sh$//' -e 's/^[^_]*//'`
- dflt=`echo $dflt | sed -e 's/^_//' -e 's/_/./g'` ;;
- esac
- ;;
- *) dflt="$osvers" ;;
-esac
-rp="Operating system version?"
-. ./myread
-case "$ans" in
- none) osvers='' ;;
- *) osvers="$ans" ;;
-esac
: who configured the system
cf_time=`$date 2>&1`
-cf_by=`( (logname) 2>/dev/null || whoami) 2>&1`
+(logname > .temp) >/dev/null 2>&1
+$test -s .temp || (whoami > .temp) >/dev/null 2>&1
+$test -s .temp || echo unknown > .temp
+cf_by=`$cat .temp`
+$rm -f .temp
: determine where manual pages are on this system
echo " "
case "$sysman" in
'')
- syspath='/usr/man/man1 /usr/man/man1 /usr/man/mann'
- syspath="$syspath /usr/man/manl /usr/man/local/man1"
+ 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="$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"
- sysman=`./loc . $syspath`
+ syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+ sysman=`./loc . /usr/man/man1 $syspath`
;;
esac
if $test -d "$sysman"; then
@@ -1698,45 +2008,34 @@ else
. ./myread
cc="$ans"
fi
-case "$cc" in
-gcc*) echo "Checking out which version of gcc"
+echo "Checking if you are using GNU cc ..." >&4
$cat >gccvers.c <<EOM
#include <stdio.h>
-int main()
-{
-char *v;
-v = "unknown";
-#ifdef __GNUC__
-# ifdef __VERSION__
- v = __VERSION__;
-# endif
-#endif
-switch((int) v[0])
- {
- case '1': printf("1\n"); break;
- case '2': printf("2\n"); break;
- case '3': printf("3\n"); break;
- default: break;
- }
+int main() {
#ifdef __GNUC__
-return 0;
+#ifdef __VERSION__
+printf("%s\n", __VERSION__);
#else
-return 1;
+printf("%s\n", "1");
+#endif
#endif
+return 0;
}
EOM
- if $cc -o gccvers gccvers.c >/dev/null 2>&1; then
- gccversion=`./gccvers`
- echo "You appear to have version $gccversion."
- else
- echo "Doesn't appear to be GNU cc."
- fi
- $rm -f gccvers*
- if $test "$gccversion" = '1'; then
- cpp=`./loc gcc-cpp $cpp $pth`
- fi
- ;;
+if $cc -o gccvers gccvers.c >/dev/null 2>&1; then
+ gccversion=`./gccvers`
+ case "$gccversion" in
+ '') echo "You are not using GNU cc." ;;
+ *) echo "You are using GNU cc $gccversion." ;;
+ esac
+else
+ echo "I can't compile the test program. I'll assume it's not GNU cc."
+fi
+$rm -f gccvers*
+case "$gccversion" in
+1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
esac
+
: decide how portable to be
case "$d_portable" in
"$define") dflt=y;;
@@ -1776,7 +2075,7 @@ case "\$1" in
~*)
if $test -f /bin/csh; then
/bin/csh -f -c "glob \$1"
- failed=$?
+ failed=\$?
echo ""
exit \$failed
else
@@ -1813,10 +2112,18 @@ already=''
skip=''
none_ok=''
exp_file=''
+nopath_ok=''
orig_rp="$rp"
orig_dflt="$dflt"
case "$fn" in
+*:*)
+ loc_file=`expr $fn : '.*:\(.*\)'`
+ fn=`expr $fn : '\(.*\):.*'`
+ ;;
+esac
+
+case "$fn" in
*~*) tilde=true;;
esac
case "$fn" in
@@ -1831,11 +2138,14 @@ esac
case "$fn" in
*e*) exp_file=true;;
esac
+case "$fn" in
+*p*) nopath_ok=true;;
+esac
case "$fn" in
*f*) type='File';;
*d*) type='Directory';;
-*l*) type='Locate'; fn=`expr $fn : '.*:\(.*\)'`;;
+*l*) type='Locate';;
esac
what="$type"
@@ -1932,12 +2242,21 @@ while test "$type"; do
;;
Locate)
if test -d "$value"; then
- echo "(Looking for $fn in directory $value.)"
- value="$value/$fn"
+ echo "(Looking for $loc_file in directory $value.)"
+ value="$value/$loc_file"
fi
if test -f "$value"; then
type=''
fi
+ case "$nopath_ok" in
+ true) case "$value" in
+ */*) ;;
+ *) echo "Assuming $value will be in people's path."
+ type=''
+ ;;
+ esac
+ ;;
+ esac
;;
esac
@@ -1976,10 +2295,7 @@ EOSC
: What should the include directory be ?
echo " "
$echo $n "Hmm... $c"
-case "$usrinc" in
-'') dflt='/usr/include';;
-*) dflt=$usrinc;;
-esac
+dflt='/usr/include'
incpath=''
mips_type=''
if $test -f /bin/mips && /bin/mips; then
@@ -2005,15 +2321,157 @@ else
$eunicefix mips
fi
echo " "
+case "$usrinc" in
+'') ;;
+*) dflt="$usrinc";;
+esac
fn=d/
rp='Where are the include files you want to use?'
. ./getfile
usrinc="$ans"
+: 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 ..
+echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
+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") ;;
+*) $rm -f $wrapper;;
+esac
+$rm -f testcpp.c testcpp.out
+
: determine optimize, if desired, or use for debug flag also
case "$optimize" in
-' ') dflt="none";;
-'') dflt="-g";;
+' ') dflt='none';;
+'') dflt='-O';;
*) dflt="$optimize";;
esac
$cat <<EOH
@@ -2034,17 +2492,16 @@ esac
dflt=''
case "$ccflags" in
-'') case "$cc" in
- *gcc*) if $test "$gccversion" = "1"; then
- dflt='-fpcc-struct-return'
- fi ;;
+'')
+ case "$gccversion" in
+ 1*) dflt='-fpcc-struct-return' ;;
esac
case "$optimize" in
*-g*) dflt="$dflt -DDEBUGGING";;
esac
- case "$cc" in
- *gcc*) if test -d /etc/conf/kconfig.d &&
- $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
+ case "$gccversion" in
+ 2*) if test -d /etc/conf/kconfig.d &&
+ $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
then
dflt="$dflt -posix"
fi
@@ -2104,10 +2561,11 @@ Your C compiler may want other flags. For this question you should include
-I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
but you should NOT include libraries or ld flags like -lwhatever. If you
want $package to honor its debug switch, you should include -DDEBUGGING here.
+Your C compiler might also need additional flags, such as -D_POSIX_SOURCE,
+-DHIDEMYMALLOC or -DCRIPPLED_CC.
+
To use no flags, specify the word "none".
-Your C compiler might also need additional flags, such as -DJMPCLOBBER,
--DHIDEMYMALLOC or -DCRIPPLED_CC.
EOH
set X $dflt
shift
@@ -2121,11 +2579,8 @@ esac
: the following weeds options from ccflags that are of no interest to cpp
cppflags="$ccflags"
-case "$cc" in
-*gcc*) case "$gccversion" in
- 1) cppflags="$cppflags -D__GNUC__" ;;
- esac
- ;;
+case "$gccversion" in
+1*) cppflags="$cppflags -D__GNUC__"
esac
case "$mips_type" in
'');;
@@ -2133,17 +2588,44 @@ case "$mips_type" in
esac
case "$cppflags" in
'');;
-*) set X $cppflags
+*)
+ echo " "
+ echo "Let me guess what the preprocessor flags are..." >&4
+ set X $cppflags
+ shift
cppflags=''
- for flag
+ $cat >cpp.c <<'EOM'
+#define BLURFL foo
+
+BLURFL xx LFRULB
+EOM
+ previous=''
+ for flag in $*
do
- case $flag in
- -D*|-I*|-traditional|-ansi|-nostdinc|-posix|-Xp) cppflags="$cppflags $flag";;
+ case "$flag" in
+ -*) ftry="$flag";;
+ *) ftry="$previous $flag";;
esac
+ if $cppstdin -DLFRULB=bar $ftry $cppminus <cpp.c \
+ >cpp1.out 2>/dev/null && \
+ $cpprun -DLFRULB=bar $ftry $cpplast <cpp.c \
+ >cpp2.out 2>/dev/null && \
+ $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
+ $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
+ then
+ cppflags="$cppflags $ftry"
+ previous=''
+ else
+ previous="$flag"
+ fi
done
+ set X $cppflags
+ shift
+ cppflags=${1+"$@"}
case "$cppflags" in
- *-*) echo "(C preprocessor flags: $cppflags)";;
+ *-*) echo "They appear to be: $cppflags";;
esac
+ $rm -f cpp.c cpp?.out
;;
esac
@@ -2152,8 +2634,14 @@ case "$ldflags" in
'') if venix; then
dflt='-i -z'
else
- dflt='none'
+ dflt=''
fi
+ case "$ccflags" in
+ *-posix*) dflt="$dflt -posix" ;;
+ esac
+ case "$dflt" in
+ '') dflt='none' ;;
+ esac
;;
*) dflt="$ldflags";;
esac
@@ -2166,41 +2654,72 @@ none) ldflags='';;
esac
rmlist="$rmlist pdp11"
-: Initialize h_fcntl
-h_fcntl=false
-
-: Initialize h_sysfile
-h_sysfile=false
-
: Set private lib path
case "$plibpth" in
'') if mips; then
plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
fi;;
esac
-libpth="$plibpth $libpth"
-: Now check and see which directories actually exist.
-xxx=''
-for yyy in $libpth
+case "$libpth" in
+' ') dlist='';;
+'') dlist="$plibpth $glibpth";;
+*) dlist="$libpth";;
+esac
+
+: Now check and see which directories actually exist, avoiding duplicates
+libpth=''
+for xxx in $dlist
do
- if $test -d $yyy; then
- xxx="$xxx $yyy"
+ if $test -d $xxx; then
+ case " $libpth " in
+ *" $xxx "*) ;;
+ *) libpth="$libpth $xxx";;
+ esac
fi
done
-libpth="$xxx"
-$cat <<EOM
-Some systems have incompatible or broken versions of libraries. Where
-should I look for libraries?
-EOM
+$cat <<'EOM'
-dflt="$libpth"
-echo " "
+Some systems have incompatible or broken versions of libraries. Among
+the directories listed in the question below, please remove any you
+know not to be holding relevant libraries, and add any that are needed.
+Say "none" for none.
+
+EOM
+case "$libpth" in
+'') dflt='none';;
+*)
+ set X $libpth
+ shift
+ dflt=${1+"$@"}
+ ;;
+esac
rp="Directories to use for library searches?"
. ./myread
case "$ans" in
none) libpth=' ';;
*) libpth="$ans";;
esac
+
+: compute shared library extension
+case "$so" in
+'')
+ if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
+ dflt='sl'
+ else
+ dflt='so'
+ fi
+ ;;
+*) dflt="$so";;
+esac
+$cat << EOM
+
+On some systems, shared libraries may be available. Answer 'none' if
+you want to suppress searching of shared libraries.
+EOM
+rp='What is the file extension used for shared libraries?'
+. ./myread
+so="$ans"
+
: Looking for optional libraries
echo " "
echo "Checking for optional libraries..." >&4
@@ -2212,50 +2731,39 @@ case "$libswanted" in
'') libswanted='c_s';;
esac
for thislib in $libswanted; do
- case "$thislib" in
- dbm) thatlib=ndbm;;
- *_s) thatlib=NONE;;
- *) thatlib=${thislib}_s;;
- esac
- xxx=`./loc lib$thislib.a X $libpth`
- yyy=`./loc lib$thatlib.a X $libpth`
- zzz=`./loc lib$thislib.so.[0-9]'*' X $libpth`
- if $test -f $xxx; then
+
+ if xxx=`./loc lib$thislib.$so.[0-9]'*' X $libpth`; $test -f "$xxx"; then
+ echo "Found -l$thislib (shared)."
+ case " $dflt " in
+ *"-l$thislib "*);;
+ *) dflt="$dflt -l$thislib";;
+ esac
+ elif xxx=`./loc lib$thislib.$so X $libpth` ; $test -f "$xxx"; then
+ echo "Found -l$thislib (shared)."
+ case " $dflt " in
+ *"-l$thislib "*);;
+ *) dflt="$dflt -l$thislib";;
+ esac
+ elif xxx=`./loc lib$thislib.a X $libpth`; $test -f "$xxx"; then
echo "Found -l$thislib."
- case "$dflt" in
- *"-l$thislib "*|*-l$thislib|*"-l$thatlib "*|*-l$thatlib) ;;
+ case " $dflt " in
+ *"-l$thislib "*);;
*) dflt="$dflt -l$thislib";;
esac
- elif $test -f $yyy; then
- echo "Found -l$thatlib."
- case "$dflt" in
- *"-l$thatlib "*|*-l$thatlib) ;;
- *) dflt="$dflt -l$thatlib";;
+ elif xxx=`./loc lib${thislib}_s.a X $libpth`; $test -f "$xxx"; then
+ echo "Found -l${thislib}_s."
+ case " $dflt " in
+ *"-l$thislib "*);;
+ *) dflt="$dflt -l${thislib}_s";;
esac
- elif $test -f $zzz; then
- echo "Found -$thislib."
- case "$dflt" in
- *"-l$thislib "*|*-l$thislib) ;;
+ elif xxx=`./loc Slib$thislib.a X $xlibpth`; $test -f "$xxx"; then
+ echo "Found -l$thislib."
+ case " $dflt " in
+ *"-l$thislib "*);;
*) dflt="$dflt -l$thislib";;
esac
else
- xxx=`./loc Slib$thislib.a X $xlibpth`
- yyy=`./loc Slib$thatlib.a X $xlibpth`
- if $test -f $xxx; then
- echo "Found -l$thislib."
- case "$dflt" in
- *"-l$thislib "*|*-l$thislib|*"-l$thatlib "*|*-l$thatlib) ;;
- *) dflt="$dflt -l$thislib";;
- esac
- elif $test -f $yyy; then
- echo "Found -l$thatlib."
- case "$dflt" in
- *"-l$thatlib "*|*-l$thatlib) ;;
- *) dflt="$dflt -l$thatlib";;
- esac
- else
- echo "No -l$thislib."
- fi
+ echo "No -l$thislib."
fi
done
set X $dflt
@@ -2353,29 +2861,30 @@ case "$libc" in
esac
;;
esac
-libpth="$plibpth $libpth"
libnames='';
case "$libs" in
'') ;;
*) for thislib in $libs; do
case "$thislib" in
+ -lc|-lc_s)
+ : Handle C library specially below.
+ ;;
-l*)
- thislib=`expr X$thislib : 'X-l\(.*\)'`
- try=`./loc lib$thislib.a blurfl/dyick $libpth`
- if test ! -f $try; then
- try=`./loc lib$thislib blurfl/dyick $libpth`
- if test ! -f $try; then
- try=`./loc lib$thislib.so.'*' blurfl/dyick $libpth`
- if test ! -f $try; then
- try=`./loc $thislib blurfl/dyick $libpth`
- if test ! -f $try; then
- try=`./loc Slib$thislib.a blurfl/dyick $xlibpth`
- if test ! -f $try; then
- try=''
- fi
- fi
- fi
- fi
+ thislib=`echo X$thislib | $sed -e 's/^X//' -e 's/^-l//'`
+ if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
+ :
+ elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
+ :
+ elif try=`./loc lib$thislib.a X $libpth`; $test -f "$try"; then
+ :
+ elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
+ :
+ elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
+ :
+ elif try=`./loc Slib$thislib.a X $xlibpth`; $test -f "$try"; then
+ :
+ else
+ try=''
fi
libnames="$libnames $try"
;;
@@ -2387,10 +2896,11 @@ esac
xxx=normal
case "$libc" in
unknown)
- set /usr/ccs/lib/libc.so
- $test -r $1 || set /usr/lib/libc.so
- $test -r $1 || set /usr/shlib/libc.so
- $test -r $1 || set /usr/lib/libc.so.[0-9]*
+ set /usr/ccs/lib/libc.$so
+ $test -r $1 || set /usr/lib/libc.$so
+ $test -r $1 || set /usr/shlib/libc.$so
+ $test -r $1 || set /usr/lib/libc.$so.[0-9]*
+ $test -r $1 || set /lib/libc.$so
$test -r $1 || set /lib/libsys_s.a
eval set \$$#
;;
@@ -2476,13 +2986,12 @@ echo " "
$sed 's/^/ /' libnames >&4
echo " "
$echo $n "This may take a while...$c" >&4
-
nm $nm_opt $* 2>/dev/null >libc.tmp
$echo $n ".$c"
$grep fprintf libc.tmp > libc.ptf
xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
-if com="$sed -n -e 's/^.* [ADTS] *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
+if com="$sed -n -e 's/^.* [ADTSI] *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
eval $xscan;\
$contains '^fprintf$' libc.list >/dev/null 2>&1; then
eval $xrun
@@ -2519,6 +3028,10 @@ elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
eval $xscan;\
$contains '^fprintf$' libc.list >/dev/null 2>&1; then
eval $xrun
+elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
+ eval $xscan;\
+ $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+ eval $xrun
else
nm -p $* 2>/dev/null >libc.tmp
com="$sed -n -e 's/^.* [ADTS] *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
@@ -2639,143 +3152,65 @@ yes)
esac;;
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 ..
-echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
-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
+: see if gconvert exists
+set gconvert d_gconvert
+eval $inlibc
-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 "$d_gconvert" in
+$define)
+ d_Gconvert="gconvert((x),(n),(t),(b))"
+ ;;
+*)
+ : Maybe we can emulate it with gcvt.
+ set gcvt d_gcvt
+ eval $inlibc
-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='';
+ case "$d_gcvt" in
+ $define)
+ : Test whether gcvt drops a trailing decimal point
+ cat >try.c <<'EOP'
+main() {
+char buf[64];
+gcvt(1.0, 8, buf);
+if (buf[0] != '1' || buf[1] != '\0')
+ return 1;
+gcvt(0.0, 8, buf);
+if (buf[0] != '0' || buf[1] != '\0')
+ return 1;
+gcvt(-1.0, 8, buf);
+if (buf[0] != '-' || buf[1] != '1' || buf[2] != '\0')
+ return 1;
+return 0;
+}
+EOP
+ if $cc $ccflags $ldflags -o try try.c $libs > /dev/null 2>&1; then
+ if ./try; then
+ echo "Good, your gcvt() drops a trailing decimal point."
+ d_Gconvert="gcvt((x),(n),(b))"
+ else
+ echo "But your gcvt() keeps a trailing decimal point".
+ d_Gconvert=''
+ fi
else
- echo "Nope, we'll have to live without it..."
+ echo "Hmm. I can't compile the gcvt test program."
+ d_Gconvert=''
fi
+ $rm -f try.c try
;;
esac
- case "$cpprun" in
- "$wrapper")
- cpprun=''
- cpplast=''
+ case "$d_Gconvert" in
+ '')
+ echo "I'll use sprintf instead." >&4
+ d_Gconvert='sprintf((b),"%.*g",(n),(x))'
;;
esac
- ;;
esac
-case "$cppstdin" in
-"$wrapper") ;;
-*) $rm -f $wrapper;;
-esac
-$rm -f testcpp.c testcpp.out
+: Initialize h_fcntl
+h_fcntl=false
+
+: Initialize h_sysfile
+h_sysfile=false
: determine filename position in cpp output
echo " "
@@ -2783,7 +3218,7 @@ echo "Computing filename position in cpp output for #include directives..." >&4
echo '#include <stdio.h>' > foo.c
$cat >fieldn <<EOF
$startsh
-$cppstdin $cppminus $cppflags <foo.c 2>/dev/null | \
+$cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
$grep '^[ ]*#.*stdio\.h' | \
while read cline; do
pos=1
@@ -2879,6 +3314,171 @@ EOCP
esac
$rm -f access*
+: see if alarm exists
+set alarm d_alarm
+eval $inlibc
+
+: is AFS running?
+echo " "
+if test -d /afs; then
+ echo "AFS may be running... I'll be extra cautious then..." >&4
+ afs=true
+else
+ echo "AFS does not seem to be running..." >&4
+ afs=false
+fi
+
+: determine root of directory hierarchy where package will be installed.
+case "$prefix" in
+'')
+ dflt=`./loc . /usr/local /usr/local /local /opt /usr`
+ ;;
+*)
+ dflt="$prefix"
+ ;;
+esac
+$cat <<EOM
+
+By default, $package will be installed in $dflt/bin, manual
+pages under $dflt/man, etc..., i.e. with $dflt as prefix for
+all installation directories. Typically set to /usr/local, but you
+may choose /usr if you wish to install $package among your system
+binaries. If you wish to have binaries under /bin but manual pages
+under /usr/local/man, that's ok: you will be prompted separately
+for each of the installation directories, the prefix being only used
+to set defaults.
+
+EOM
+fn=d~
+rp='Installation prefix to use?'
+. ./getfile
+prefix="$ans"
+
+: determine where private executables go
+case "$privlib" in
+'')
+ dflt=$prefix/lib/$package
+ ;;
+*) dflt="$privlib"
+ ;;
+esac
+$cat <<EOM
+
+There are some auxiliary files for $package that need to be put into a
+private library directory that is accessible by everyone.
+
+EOM
+fn=d~+
+rp='Pathname where private library files will reside?'
+. ./getfile
+privlib="$ans"
+privlibexp="$ansexp"
+if $afs; then
+ $cat <<EOM
+
+Since you are running AFS, I need to distinguish the directory in which
+private files reside from the directory in which they are installed (and from
+which they are presumably copied to the former directory by occult means).
+
+EOM
+ case "$installprivlib" in
+ '') dflt=`echo $privlibexp | sed 's#^/afs/#/afs/.#'`;;
+ *) dflt="$installprivlib";;
+ esac
+ fn=de~
+ rp='Where will private files be installed?'
+ . ./getfile
+ installprivlib="$ans"
+else
+ installprivlib="$privlibexp"
+fi
+
+: determine where public architecture dependent libraries go
+case "$archname" in
+'') tpath=`echo $PATH | sed -e 's/:/ /g'`
+ xxx=`./loc arch blurfl $tpath`
+ if test -f "$xxx"; then
+ tarchname=`arch`
+ archname="${tarchname}-${osname}"
+ else
+ archname="$osname"
+ fi
+ ;;
+esac
+case "$privlib" in
+'') dflt=`./loc . "." $prefix/lib /usr/local/lib /usr/lib /lib`;;
+*) dflt="$privlib/$archname";;
+esac
+fn=d~
+cat <<EOM
+
+$package contains architecture-dependent library files. If you are
+sharing libraries in a heterogeneous environment, you might store
+these files in a separate location. Otherwise, you can just include
+them with the rest of the public library files.
+
+EOM
+rp='Where do you want to put the public architecture-dependent libraries?'
+. ./getfile
+archlib="$ans"
+archlibexp="$ansexp"
+
+if $afs; then
+ $cat <<EOM
+
+Since you are running AFS, I need to distinguish the directory in which
+private files reside from the directory in which they are installed (and from
+which they are presumably copied to the former directory by occult means).
+
+EOM
+ case "$installarchlib" in
+ '') dflt=`echo $archlibexp | sed 's#^/afs/#/afs/.#'`;;
+ *) dflt="$installarchlib";;
+ esac
+ fn=de~
+ rp='Where will architecture-dependent library files be installed?'
+ . ./getfile
+ installarchlib="$ans"
+else
+ installarchlib="$archlibexp"
+fi
+if $test X"$archlib" = X"$privlib"; then
+ d_archlib="$undef"
+else
+ d_archlib="$define"
+fi
+
+
+: function used to set $1 to $val
+setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
+case "$val$was" in
+$define$undef) . whoa; eval "$var=\$td";;
+$undef$define) . whoa; eval "$var=\$tu";;
+*) eval "$var=$val";;
+esac'
+
+: Look for GNUC style attribute checking
+echo " "
+echo "Checking whether your compiler can handle __attribute__ ..." >&4
+$cat >attrib.c <<'EOCP'
+void croak (char* pat,...) __attribute__((format(printf,1,2),noreturn));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+ if $contains 'warning' attrib.out >/dev/null 2>&1; then
+ echo "Your C compiler doesn't fully support __attribute__. ."
+ val="$undef"
+ else
+ echo "Your C compiler supports __attribute__. ."
+ val="$define"
+ fi
+else
+ echo "Your C compiler doesn't seem to understand __attribute__. ."
+ val="$undef"
+fi
+set d_attrib
+eval $setvar
+$rm -f attrib*
+
: see if bcmp exists
set bcmp d_bcmp
eval $inlibc
@@ -2887,6 +3487,51 @@ eval $inlibc
set bcopy d_bcopy
eval $inlibc
+: see if setpgrp exists
+set setpgrp d_setpgrp
+eval $inlibc
+
+: see which flavor of setpgrp is in use
+case "$d_setpgrp" in
+"$define")
+ echo " "
+ $cat >set.c <<EOP
+main()
+{
+ if (getuid() == 0) {
+ printf("(I see you are running Configure as super-user...)\n");
+ setuid(1);
+ }
+ if (-1 == setpgrp(1, 1))
+ exit(1);
+ exit(0);
+}
+EOP
+ if $cc $ccflags -o set $ldflags set.c $libs >/dev/null 2>&1; then
+ ./set 2>/dev/null
+ case $? in
+ 0) echo "You have to use setpgrp() instead of setpgrp(pid, pgrp)." >&4
+ val="$undef";;
+ *) echo "You have to use setpgrp(pid, pgrp) instead of setpgrp()." >&4
+ val="$define";;
+ esac
+ else
+ if usg; then
+ xxx="USG one, i.e. you use setpgrp()."
+ val="$undef"
+ else
+ xxx="BSD one, i.e. you use setpgrp(pid, pgrp)."
+ val="$define"
+ fi
+ echo "Assuming your setpgrp is a $xxx" >&4
+ fi
+ ;;
+*) val="$undef";;
+esac
+set d_bsdpgrp
+eval $setvar
+$rm -f set set.c
+
: see if bzero exists
set bzero d_bzero
eval $inlibc
@@ -2919,39 +3564,30 @@ rp="What is the size of an integer (in bytes)?"
intsize="$ans"
$rm -f try.c try
-: function used to set $1 to $val
-setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
-case "$val$was" in
-$define$undef) . whoa; eval "$var=\$td";;
-$undef$define) . whoa; eval "$var=\$tu";;
-*) eval "$var=$val";;
-esac'
-
: check for ability to cast large floats to 32-bit ints.
echo " "
echo 'Checking whether your C compiler can cast large floats to int32.' >&4
if $test "$intsize" -eq 4; then
- xxx=int
+ xxx=int
else
- xxx=long
+ xxx=long
fi
-
$cat >try.c <<EOCP
#include <sys/types.h>
#include <signal.h>
blech() { exit(3); }
main()
{
- $xxx i32;
+ $xxx i32;
double f;
int result = 0;
signal(SIGFPE, blech);
f = (double) 0x7fffffff;
f = 10 * f;
- i32 = ( $xxx )f;
+ i32 = ($xxx) f;
- if (i32 != ( $xxx )f)
+ if (i32 != ($xxx) f)
result |= 1;
exit(result);
}
@@ -2960,6 +3596,7 @@ if $cc -o try $ccflags try.c >/dev/null 2>&1; then
./try
yyy=$?
else
+ echo "(I can't seem to compile the test program--assuming it can't)"
yyy=1
fi
case "$yyy" in
@@ -2973,6 +3610,7 @@ esac
set d_casti32
eval $setvar
$rm -f try try.*
+
: check for ability to cast negative floats to unsigned
echo " "
echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
@@ -3094,6 +3732,14 @@ val=$val2
set d_charvspr
eval $setvar
+: see if chown exists
+set chown d_chown
+eval $inlibc
+
+: see if chroot exists
+set chroot d_chroot
+eval $inlibc
+
: see if chsize exists
set chsize d_chsize
eval $inlibc
@@ -3160,6 +3806,79 @@ esac
set d_csh
eval $setvar
+: see if cuserid exists
+set cuserid d_cuserid
+eval $inlibc
+
+: define an alternate in-header-list? function
+inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
+cont=true; xxf="echo \"<\$1> found.\" >&4";
+case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
+*) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
+esac;
+case $# in 4) instead=instead;; *) instead="at last";; esac;
+while $test "$cont"; do
+ xxx=`./findhdr $1`
+ var=$2; eval "was=\$$2";
+ if $test "$xxx" && $test -r "$xxx";
+ then eval $xxf;
+ eval "case \"\$$var\" in $undef) . whoa; esac"; eval "$var=\$td";
+ cont="";
+ else eval $xxnf;
+ eval "case \"\$$var\" in $define) . whoa; esac"; eval "$var=\$tu"; fi;
+ set $yyy; shift; shift; yyy=$@;
+ case $# in 0) cont="";;
+ 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
+ xxnf="echo \"and I did not find <\$1> either.\" >&4";;
+ *) xxf="echo \"but I found <\$1\> instead.\" >&4";
+ xxnf="echo \"there is no <\$1>, ...\" >&4";;
+ esac;
+done;
+while $test "$yyy";
+do set $yyy; var=$2; eval "was=\$$2";
+ eval "case \"\$$var\" in $define) . whoa; esac"; eval "$var=\$tu";
+ set $yyy; shift; shift; yyy=$@;
+done'
+
+: see if this is a limits.h system
+set limits.h i_limits
+eval $inhdr
+
+: see if this is a float.h system
+set float.h i_float
+eval $inhdr
+
+: See if number of significant digits in a double precision number is known
+echo " "
+$cat >dbl_dig.c <<EOM
+#$i_limits I_LIMITS
+#$i_float I_FLOAT
+#ifdef I_LIMITS
+#include <limits.h>
+#endif
+#ifdef I_FLOAT
+#include <float.h>
+#endif
+#ifdef DBL_DIG
+printf("Contains DBL_DIG");
+#endif
+EOM
+$cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null
+if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then
+ echo "DBL_DIG found." >&4
+ val="$define"
+else
+ echo "DBL_DIG NOT found." >&4
+ val="$undef"
+fi
+$rm -f dbl_dig.?
+set d_dbl_dig
+eval $setvar
+
+: see if difftime exists
+set difftime d_difftime
+eval $inlibc
+
: see if this is a dirent system
echo " "
if xinc=`./findhdr dirent.h`; $test "$xinc"; then
@@ -3178,6 +3897,42 @@ fi
set i_dirent
eval $setvar
+: Look for type of directory structure.
+echo " "
+$cppstdin $cppflags $cppminus < "$xinc" > try.c
+
+case "$direntrytype" in
+''|' ')
+ case "$i_dirent" in
+ $define) guess1='struct dirent' ;;
+ *) guess1='struct direct' ;;
+ esac
+ ;;
+*) guess1="$direntrytype"
+ ;;
+esac
+
+case "$guess1" in
+'struct dirent') guess2='struct direct' ;;
+*) guess2='struct dirent' ;;
+esac
+
+if $contains "$guess1" try.c >/dev/null 2>&1; then
+ direntrytype="$guess1"
+ echo "Your directory entries are $direntrytype." >&4
+elif $contains "$guess2" try.c >/dev/null 2>&1; then
+ direntrytype="$guess2"
+ echo "Your directory entries seem to be $direntrytype." >&4
+else
+ echo "I don't recognize your system's directory entries." >&4
+ rp="What type is used for directory entries on this system?"
+ dflt="$guess1"
+ . ./myread
+ direntrytype="$ans"
+fi
+$rm -f try.c
+
+
: see if the directory entry stores field length
echo " "
if $contains 'd_namlen' $xinc >/dev/null 2>&1; then
@@ -3190,27 +3945,381 @@ fi
set d_dirnamlen
eval $setvar
-: now see if they want to do setuid emulation
-case "$d_dosuid" in
-'') dflt=n;;
-"$undef") dflt=n;;
-*) dflt=y;;
+: see if dlerror exists
+set dlerror d_dlerror
+eval $inlibc
+
+: see if dld is available
+set dld.h i_dld
+eval $inhdr
+
+: see if dlopen exists
+set dlopen d_dlopen
+eval $inlibc
+
+: determine which dynamic loading, if any, to compile in
+echo " "
+dldir="ext/DynaLoader"
+case "$usedl" in
+$define|y|true)
+ dflt='y'
+ usedl="$define"
+ ;;
+$undef|n|false)
+ dflt='n'
+ usedl="$undef"
+ ;;
+*)
+ dflt='n'
+ case "$d_dlopen" in
+ define) dflt='y' ;;
+ esac
+ case "$i_dld" in
+ define) dflt='y' ;;
+ esac
+ : Does a dl_xxx.xs file exist for this operating system
+ $test -f ../$dldir/dl_${osname}.xs && dflt='y'
+ ;;
+esac
+rp="Do you wish to use dynamic loading?"
+. ./myread
+usedl="$ans"
+case "$ans" in
+y*) usedl="$define"
+ case "$dlsrc" in
+ '')
+ if $test -f ../$dldir/dl_${osname}.xs ; then
+ dflt="$dldir/dl_${osname}.xs"
+ elif $test "$d_dlopen" = "$define" ; then
+ dflt="$dldir/dl_dlopen.xs"
+ elif $test "$i_dld" = "$define" ; then
+ dflt="$dldir/dl_dld.xs"
+ else
+ dflt=''
+ fi
+ ;;
+ *) dflt="$dldir/$dlsrc"
+ ;;
+ esac
+ echo "The following dynamic loading files are available:"
+ : Can not go over to $dldir because getfile has path hard-coded in.
+ cd ..; ls -C $dldir/dl*.xs; cd UU
+ rp="Source file to use for dynamic loading"
+ fn="fne~"
+ . ./getfile
+ usedl="$define"
+ : emulate basename
+ dlsrc=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@'`
+ $cat << EOM
+
+Some systems may require passing special flags to $cc -c to
+compile modules that will be used to create a shared library.
+To use no flags, say "none".
+
+EOM
+ case "$cccdlflags" in
+ ''|' ') case "$osname" in
+ hpux) dflt='+z' ;;
+ next) dflt='none' ;;
+ sunos)
+ case "$cc" in
+ *gcc*) dflt='-fpic' ;;
+ *) dflt='-pic' ;;
+ esac
+ ;;
+ solaris)
+ case "$cc" in
+ *gcc*) dflt='-fpic' ;;
+ *) dflt='-K pic' ;;
+ esac
+ ;;
+ *) dflt='none' ;;
+ esac
+ ;;
+ *) dflt="$cccdlflags" ;;
+ esac
+ rp="Any special flags to pass to $cc -c to compile shared library modules?"
+ . ./myread
+ case "$ans" in
+ none) cccdlflags='' ;;
+ *) cccdlflags="$ans" ;;
+ esac
+
+ cat << 'EOM'
+
+Some systems may require passing special flags to ld to create a shared
+library. If your ld flags include -L/local/path options to locate libraries
+outside your loader's normal search path, you may need to specify those
+-L options here as well.
+To use no flags, say "none".
+
+EOM
+ case "$lddlflags" in
+ ''|' ') case "$osname" in
+ hpux) dflt='-b' ;;
+ next) dflt='none' ;;
+ solaris) dflt='-G' ;;
+ sunos) dflt='none' ;;
+ *) dflt='none' ;;
+ esac
+ ;;
+ *) dflt="$lddlflags" ;;
+ esac
+ rp="Any special flags to pass to ld to create a shared library?"
+ . ./myread
+ case "$ans" in
+ none) lddlflags='' ;;
+ *) lddlflags="$ans" ;;
+ esac
+
+ cat <<EOM
+
+Some systems may require passing special flags to $cc to indicate that
+the resulting executable will use dynamic linking. To use no flags,
+say "none".
+
+EOM
+ case "$ccdlflags" in
+ ''|' ')
+ case "$osname" in
+ hpux) dflt='none' ;;
+ next) dflt='none' ;;
+ sunos) dflt='none' ;;
+ *) dflt='none' ;;
+ esac
+ ;;
+ *) dflt="$ccdlflags"
+ ;;
+ esac
+ rp="Any special flags to pass to $cc to use dynamic loading?"
+ . ./myread
+ case "$ans" in
+ none) ccdlflags='' ;;
+ *) ccdlflags="$ans" ;;
+ esac
+ ;;
+*) usedl="$undef"
+ dlsrc='dl_none.xs'
+ lddlflags=''
+ ccdlflags=''
+ ;;
+esac
+
+: see if dlfcn is available
+set dlfcn.h i_dlfcn
+eval $inhdr
+
+case "$usedl" in
+$define|y|true)
+ $cat << EOM
+
+On a few systems, the dynamically loaded modules that perl generates and uses
+will need a different extension then shared libs. The default will probably
+be appropriate.
+
+EOM
+ case "$dlext" in
+ '') dflt="$so" ;;
+ *) dflt="$dlext" ;;
+ esac
+ rp='What is the extension of dynamically loaded modules'
+ . ./myread
+ dlext="$ans"
+ ;;
+*)
+ dlext="none"
+ ;;
+esac
+
+: Check if dlsym need a leading underscore
+echo " "
+val="$undef"
+
+case "$dlsrc" in
+dl_dlopen.xs)
+ echo "Checking whether your dlsym() needs a leading underscore ..." >&4
+ $cat >dyna.c <<'EOM'
+fred () { }
+EOM
+
+$cat >fred.c<<EOM
+
+#include <stdio.h>
+#$i_dlfcn I_DLFCN
+#ifdef I_DLFCN
+#include <dlfcn.h> /* the dynamic linker include file for Sunos/Solaris */
+#else
+#include <sys/types.h>
+#include <nlist.h>
+#include <link.h>
+#endif
+
+extern int fred() ;
+
+main()
+{
+ void * handle ;
+ void * symbol ;
+#ifndef RTLD_LAZY
+ int mode = 1 ;
+#else
+ int mode = RTLD_LAZY ;
+#endif
+ handle = dlopen("./dyna.$dlext", mode) ;
+ if (handle == NULL) {
+ printf ("1\n") ;
+ exit(0);
+ }
+ symbol = dlsym(handle, "fred") ;
+ if (symbol == NULL) {
+ /* try putting a leading underscore */
+ symbol = dlsym(handle, "_fred") ;
+ if (symbol == NULL) {
+ printf ("2\n") ;
+ exit(0);
+ }
+ printf ("3\n") ;
+ }
+ else
+ printf ("4\n") ;
+ exit(0);
+}
+EOM
+ if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
+ ld $lddlflags -o dyna.$dlext dyna.o > /dev/null 2>&1 &&
+ $cc $ccflags $ldflags $cccdlflags $ccdlflags fred.c -o fred $libs > /dev/null 2>&1; then
+ xxx=`./fred`
+ case $xxx in
+ 1) echo "Test program failed using dlopen." >&4
+ echo "Perhaps you should not use dynamic loading." >&4;;
+ 2) echo "Test program failed using dlsym." >&4
+ echo "Perhaps you should not use dynamic loading." >&4;;
+ 3) echo "dlsym needs a leading underscore" >&4
+ val="$define" ;;
+ 4) echo "dlsym doesn't need a leading underscore." >&4;;
+ esac
+ else
+ echo "I can't compile and run the test program." >&4
+ fi
+ ;;
esac
+
+$rm -f fred fred.? dyna.$dlext dyna.?
+
+set d_dlsymun
+eval $setvar
+
+: see if setuid scripts can be secure
cat <<EOM
-
-Some sites have disabled setuid #! scripts because of a bug in the kernel
-that prevents them from being secure. If you are on such a system, the
-setuid/setgid bits on scripts are currently useless. It is possible for
-$package to detect those bits and emulate setuid/setgid in a secure fashion
-until a better solution is devised for the kernel problem.
+
+Some kernels have a bug that prevents setuid #! scripts from being
+secure. Some sites have disabled setuid #! scripts because of this.
+
+First let's decide if your kernel supports secure setuid #! scripts.
+(If setuid #! scripts would be secure but have been disabled anyway,
+don't say that they are secure if asked.)
EOM
-rp="Do you want to do setuid/setgid emulation?"
-. ./myread
-case "$ans" in
-y*) d_dosuid="$define";;
-*) d_dosuid="$undef";;
+
+val="$undef"
+if $test -d /dev/fd; then
+ echo "#!$ls" >reflect
+ chmod +x,u+s reflect
+ ./reflect >flect 2>&1
+ if $contains "/dev/fd" flect >/dev/null; then
+ echo "Congratulations, your kernel has secure setuid scripts!" >&4
+ val="$define"
+ else
+ $cat <<EOM
+If you are not sure if they are secure, I can check but I'll need a
+username and password different from the one you are using right now.
+If you don't have such a username or don't want me to test, simply
+enter 'none'.
+
+EOM
+ rp='Other username to test security of setuid scripts with?'
+ dflt='none'
+ . ./myread
+ case "$ans" in
+ n|none)
+ case "$d_suidsafe" in
+ '') echo "I'll assume setuid scripts are *not* secure." >&4
+ dflt=n;;
+ "$undef")
+ echo "Well, the $hint value is *not* secure." >&4
+ dflt=n;;
+ *) echo "Well, the $hint value *is* secure." >&4
+ dflt=y;;
+ esac
+ ;;
+ *) $rm -f reflect flect
+ echo "#!$ls" >reflect
+ chmod +x,u+s reflect
+ echo >flect
+ chmod a+w flect
+ echo '"su" will (probably) prompt you for '"$ans's password."
+ su $ans -c './reflect >flect'
+ if $contains "/dev/fd" flect >/dev/null; then
+ echo "Okay, it looks like setuid scripts are secure." >&4
+ dflt=y
+ else
+ echo "I don't think setuid scripts are secure." >&4
+ dflt=n
+ fi
+ ;;
+ esac
+ rp='Does your kernel have *secure* setuid scripts?'
+ . ./myread
+ case "$ans" in
+ [yY]*) val="$define";;
+ *) val="$undef";;
+ esac
+ fi
+else
+ echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
+ val="$undef"
+fi
+set d_suidsafe
+eval $setvar
+
+$rm -f reflect flect
+
+: now see if they want to do setuid emulation
+cat <<EOM
+
+Some systems have disabled setuid scripts, especially systems where
+setuid scripts cannot be secure. On systems where setuid scripts have
+been disabled, the setuid/setgid bits on scripts are currently
+useless. It is possible for $package to detect those bits and emulate
+setuid/setgid in a secure fashion. This emulation will only work if
+setuid scripts have been disabled in your kernel.
+
+EOM
+val="$undef"
+case "$d_suidsafe" in
+"$define")
+ val="$undef"
+ echo "No need to emulate SUID scripts since they are secure here." >& 4
+ ;;
+*)
+ case "$d_dosuid" in
+ "$define") dflt=y ;;
+ *) dflt=n ;;
+ esac
+ rp="Do you want to do setuid/setgid emulation?"
+ . ./myread
+ case "$ans" in
+ [yY]*) val="$define";;
+ *) val="$undef";;
+ esac
+ ;;
esac
+set d_dosuid
+eval $setvar
+
+: see if drem exists
+set drem d_drem
+eval $inlibc
: see if dup2 exists
set dup2 d_dup2
@@ -3228,6 +4337,10 @@ eval $inlibc
set fcntl d_fcntl
eval $inlibc
+: see if fgetpos exists
+set fgetpos d_fgetpos
+eval $inlibc
+
: see if we can have long filenames
echo " "
rmlist="$rmlist /tmp/cf$$"
@@ -3275,10 +4388,34 @@ $rm -rf /tmp/cf$$ 123456789abcde*
set flock d_flock
eval $inlibc
+: see if fmod exists
+set fmod d_fmod
+eval $inlibc
+
+: see if fork exists
+set fork d_fork
+eval $inlibc
+
+: see if pathconf exists
+set pathconf d_pathconf
+eval $inlibc
+
+: see if fpathconf exists
+set fpathconf d_fpathconf
+eval $inlibc
+
+: see if fsetpos exists
+set fsetpos d_fsetpos
+eval $inlibc
+
: see if gethostent exists
set gethostent d_gethent
eval $inlibc
+: see if getlogin exists
+set getlogin d_getlogin
+eval $inlibc
+
: see if getpgrp exists
set getpgrp d_getpgrp
eval $inlibc
@@ -3287,97 +4424,135 @@ eval $inlibc
set getpgrp2 d_getpgrp2
eval $inlibc
+: see if getppid exists
+set getppid d_getppid
+eval $inlibc
+
: see if getpriority exists
set getpriority d_getprior
eval $inlibc
-: define an alternate in-header-list? function
-inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
-cont=true; xxf="echo \"<\$1> found.\" >&4";
-case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
-*) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
-esac;
-case $# in 4) instead=instead;; *) instead="at last";; esac;
-while $test "$cont"; do
- xxx=`./findhdr $1`
- var=$2; eval "was=\$$2";
- if $test "$xxx" && $test -r "$xxx";
- then eval $xxf;
- eval "case \"\$$var\" in $undef) . whoa; esac"; eval "$var=\$td";
- cont="";
- else eval $xxnf;
- eval "case \"\$$var\" in $define) . whoa; esac"; eval "$var=\$tu"; fi;
- set $yyy; shift; shift; yyy=$@;
- case $# in 0) cont="";;
- 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
- xxnf="echo \"and I did not find <\$1> either.\" >&4";;
- *) xxf="echo \"but I found <\$1\> instead.\" >&4";
- xxnf="echo \"there is no <\$1>, ...\" >&4";;
- esac;
-done;
-while $test "$yyy";
-do set $yyy; var=$2; eval "was=\$$2";
- eval "case \"\$$var\" in $define) . whoa; esac"; eval "$var=\$tu";
- set $yyy; shift; shift; yyy=$@;
-done'
+: see if group exists
+set group d_group
+eval $inlibc
: see if this is a netinet/in.h or sys/in.h system
set netinet/in.h i_niin sys/in.h i_sysin
eval $inhdr
: see if htonl --and friends-- exists
-set htonl d_htonl
+val=''
+set htonl val
eval $inlibc
+
: Maybe they are macros.
-case "$d_htonl" in
-'define') ;;
-*) cat > try.c <<EOM
+case "$val" in
+$undef)
+ $cat >htonl.c <<EOM
#include <stdio.h>
#include <sys/types.h>
#$i_niin I_NETINET_IN
#$i_sysin I_SYS_IN
#ifdef I_NETINET_IN
-# include <netinet/in.h>
+#include <netinet/in.h>
#endif
#ifdef I_SYS_IN
-# include <sys/in.h>
+#include <sys/in.h>
+#endif
+#ifdef htonl
+printf("Defined as a macro.");
#endif
-int main()
-{
- int x;
- printf("x = ", htonl(7));
-}
EOM
- if $cc $ccflags -c try.c >/dev/null 2>&1; then
- d_htonl="$define"
- echo "But it seems to be defined as a macro."
- fi
- $rm -f try.* try
- ;;
+ $cppstdin $cppflags $cppminus < htonl.c >htonl.E 2>/dev/null
+ if $contains 'Defined as a macro' htonl.E >/dev/null 2>&1; then
+ val="$define"
+ echo "But it seems to be defined as a macro." >&4
+ fi
+ $rm -f htonl.?
+ ;;
esac
+set d_htonl
+eval $setvar
+
+: see which of string.h or strings.h is needed
+echo " "
+strings=`./findhdr string.h`
+if $test "$strings" && $test -r "$strings"; then
+ echo "Using <string.h> instead of <strings.h>." >&4
+ val="$define"
+else
+ val="$undef"
+ strings=`./findhdr strings.h`
+ if $test "$strings" && $test -r "$strings"; then
+ echo "Using <strings.h> instead of <string.h>." >&4
+ else
+ echo "No string header found -- You'll surely have problems." >&4
+ fi
+fi
+set i_string
+eval $setvar
+case "$i_string" in
+"$undef") strings=`./findhdr strings.h`;;
+*) strings=`./findhdr string.h`;;
+esac
+
+: index or strchr
+echo " "
+if set index val -f; eval $csym; $val; then
+ if set strchr val -f d_strchr; eval $csym; $val; then
+ if $contains strchr "$strings" >/dev/null 2>&1 ; then
+ val="$define"
+ vali="$undef"
+ echo "strchr() found." >&4
+ else
+ val="$undef"
+ vali="$define"
+ echo "index() found." >&4
+ fi
+ else
+ val="$undef"
+ vali="$define"
+ echo "index() found." >&4
+ fi
+else
+ if set strchr val -f d_strchr; eval $csym; $val; then
+ val="$define"
+ vali="$undef"
+ echo "strchr() found." >&4
+ else
+ echo "No index() or strchr() found!" >&4
+ val="$undef"
+ vali="$undef"
+ fi
+fi
+set d_strchr; eval $setvar
+val="$vali"
+set d_index; eval $setvar
+
: Look for isascii
echo " "
$cat >isascii.c <<'EOCP'
#include <stdio.h>
#include <ctype.h>
main() {
- int c = 'A';
+ int c = 'A';
if (isascii(c))
- exit(0);
+ exit(0);
else
- exit(1);
+ exit(1);
}
EOCP
-if $cc $cppflags -o isascii isascii.c >/dev/null 2>&1 ; then
- echo "isascii() found."
- val="$define"
+if $cc $ccflags $ldflags -o isascii isascii.c $libs >/dev/null 2>&1 ; then
+ echo "isascii() found." >&4
+ val="$define"
else
- echo "isascii() NOT found."
- val="$undef"
+ echo "isascii() NOT found." >&4
+ val="$undef"
fi
set d_isascii
eval $setvar
$rm -f isascii*
+
: see if killpg exists
set killpg d_killpg
eval $inlibc
@@ -3386,10 +4561,71 @@ eval $inlibc
set link d_link
eval $inlibc
+: see if stdio is really std
+echo " "
+xxx=`./findhdr stdio.h`
+if $contains 'char.*_ptr;' "$xxx" >/dev/null 2>&1 ; then
+ if $contains '_cnt;' "$xxx" >/dev/null 2>&1 ; then
+ echo "Your stdio is pretty std." >&4
+ val="$define"
+ else
+ echo "Your stdio isn't very std." >&4
+ val="$undef"
+ fi
+else
+ echo "Your stdio isn't very std." >&4
+ val="$undef"
+fi
+set d_stdstdio
+eval $setvar
+
+: see if stdio is like that in linux
+case "$d_stdstdio" in
+"$undef")
+ echo " "
+ xxx=`./findhdr stdio.h`
+ $cppstdin $cppflags $cppminus < "$xxx" > stdio.E
+ if $contains 'char.*_IO_read_base' stdio.E >/dev/null 2>&1 && \
+ $contains '_IO_read_ptr' stdio.E >/dev/null 2>&1 && \
+ $contains '_IO_read_end' stdio.E >/dev/null 2>&1 ; then
+ echo "Your stdio looks like linux." >&4
+ val="$define"
+ else
+ echo "You don't have linux stdio, either." >&4
+ val="$undef"
+ fi
+ $rm -f stdio.E
+ ;;
+*) val="$undef" ;;
+esac
+
+set d_linuxstd
+eval $setvar
+
+: see if localeconv exists
+set localeconv d_locconv
+eval $inlibc
+
+: see if lockf exists
+set lockf d_lockf
+eval $inlibc
+
: see if lstat exists
set lstat d_lstat
eval $inlibc
+: see if mblen exists
+set mblen d_mblen
+eval $inlibc
+
+: see if mbstowcs exists
+set mbstowcs d_mbstowcs
+eval $inlibc
+
+: see if mbtowc exists
+set mbtowc d_mbtowc
+eval $inlibc
+
: see if memcmp exists
set memcmp d_memcmp
eval $inlibc
@@ -3410,6 +4646,14 @@ eval $inlibc
set mkdir d_mkdir
eval $inlibc
+: see if mkfifo exists
+set mkfifo d_mkfifo
+eval $inlibc
+
+: see if mktime exists
+set mktime d_mktime
+eval $inlibc
+
: see if msgctl exists
set msgctl d_msgctl
eval $inlibc
@@ -3443,43 +4687,56 @@ fi
set d_msg
eval $setvar
+: see if this is a malloc.h system
+set malloc.h i_malloc
+eval $inhdr
+
: determine which malloc to compile in
-: Old versions had dflt='y' only for bsd or v7.
echo " "
case "$usemymalloc" in
-'')
- if bsd || v7; then
- dflt='y'
- else
- dflt='y'
- fi
- ;;
-*) dflt="$usemymalloc"
- ;;
+''|y*|true) dflt='y' ;;
+n*|false) dflt='n' ;;
+*) dflt="$usemymalloc" ;;
esac
rp="Do you wish to attempt to use the malloc that comes with $package?"
. ./myread
usemymalloc="$ans"
case "$ans" in
-y*) mallocsrc='malloc.c'
- mallocobj='malloc.o'
- d_mymalloc="$define"
- ;;
-*) mallocsrc=''
- mallocobj=''
- d_mymalloc="$undef"
- ;;
+y*|true)
+ usemymalloc='y'
+ mallocsrc='malloc.c'
+ mallocobj='malloc.o'
+ d_mymalloc="$define"
+ case "$libs" in
+ *-lmalloc*)
+ : Remove malloc from list of libraries to use
+ echo "Removing unneeded -lmalloc from library list" >&4
+ set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
+ shift
+ libs="$*"
+ echo "libs = $libs" >&4
+ ;;
+ esac
+ ;;
+*)
+ usemymalloc='n'
+ mallocsrc=''
+ mallocobj=''
+ d_mymalloc="$undef"
+ ;;
esac
: compute the type returned by malloc
echo " "
case "$malloctype" in
'')
- if $test `./findhdr malloc.h`; then
- echo "#include <malloc.h>" > malloc.c
- fi
+ $cat >malloc.c <<END
+#$i_malloc I_MALLOC
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef I_MALLOC
#include <malloc.h>
- $cat >>malloc.c <<'END'
+#endif
void *malloc();
END
if $cc $ccflags -c malloc.c >/dev/null 2>&1; then
@@ -3492,57 +4749,8 @@ END
esac
echo "Your system wants malloc to return '$malloctype', it would seem." >&4
-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 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 -f /usr/lib/libnet.a; then
- ( (nm $nm_opt /usr/lib/libnet.a | eval $nm_extract) || \
- ar t /usr/lib/libnet.a) 2>/dev/null >> libc.list
- if $contains socket libc.list >/dev/null 2>&1; then
- echo "...but the Wollongong group seems to have hacked it in." >&4
- socketlib="-lnet"
- sockethdr="-I/usr/netinclude"
- d_socket="$define"
- if $contains setsockopt libc.list >/dev/null 2>&1; then
- d_oldsock="$undef"
- else
- echo "...using the old 4.1c interface, rather than 4.2" >&4
- d_oldsock="$define"
- fi
- else
- echo "or even in libnet.a, which is peculiar." >&4
- d_socket="$undef"
- d_oldsock="$undef"
- fi
- else
- echo "or anywhere else I see." >&4
- d_socket="$undef"
- d_oldsock="$undef"
- fi
- fi
-fi
-
-: see if socketpair exists
-set socketpair d_sockpair
+: see if nice exists
+set nice d_nice
eval $inlibc
: Locate the flags for 'open()'
@@ -3595,6 +4803,18 @@ set d_open3
eval $setvar
$rm -f open3*
+: see if passwd exists
+set passwd d_passwd
+eval $inlibc
+
+: see if pause exists
+set pause d_pause
+eval $inlibc
+
+: see if pipe exists
+set pipe d_pipe
+eval $inlibc
+
: see if this is a pwd system
echo " "
xxx=`./findhdr pwd.h`
@@ -3654,6 +4874,10 @@ eval $inlibc
set rewinddir d_rewinddir
eval $inlibc
+: see if readlink exists
+set readlink d_readlink
+eval $inlibc
+
: see if rename exists
set rename d_rename
eval $inlibc
@@ -3676,6 +4900,7 @@ char *b;
int len;
int off;
int align;
+
bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
for (align = 7; align >= 0; align--) {
@@ -3693,7 +4918,7 @@ for (align = 7; align >= 0; align--) {
exit(0);
}
EOCP
- if $cc foo.c -o safebcpy $ccflags $libs >/dev/null 2>&1 ; then
+ if $cc foo.c -o safebcpy $ccflags $ldflags $libs >/dev/null 2>&1 ; then
if ./safebcpy 2>/dev/null; then
echo "Yes, it can."
val="$define"
@@ -3741,7 +4966,7 @@ for (align = 7; align >= 0; align--) {
exit(0);
}
EOCP
- if $cc foo.c -o safemcpy $ccflags $libs >/dev/null 2>&1 ; then
+ if $cc foo.c -o safemcpy $ccflags $ldflags $libs >/dev/null 2>&1 ; then
if ./safemcpy 2>/dev/null; then
echo "Yes, it can."
val="$define"
@@ -3798,17 +5023,18 @@ eval $inlibc
set seteuid d_seteuid
eval $inlibc
+: see if setlinebuf exists
+set setlinebuf d_setlinebuf
+eval $inlibc
+
: see if setlocale exists
set setlocale d_setlocale
eval $inlibc
+
: see if setpgid exists
set setpgid d_setpgid
eval $inlibc
-: see if setpgrp exists
-set setpgrp d_setpgrp
-eval $inlibc
-
: see if setpgrp2 exists
set setpgrp2 d_setpgrp2
eval $inlibc
@@ -3853,18 +5079,34 @@ eval $inlibc
set shmat d_shmat
eval $inlibc
: see what shmat returns
-d_voidshmat="$undef"
case "$d_shmat" in
-define)
- $cppstdin $cppflags $cppminus < $usrinc/sys/shm.h >voidshmat.txt 2>/dev/null
- if $contains "void.*shmat" voidshmat.txt >/dev/null 2>&1; then
- echo "and shmat returns (void*)"
- d_voidshmat="$define"
- else
- echo "and shmat returns (char*)"
- fi
- ;;
+"$define")
+ $cat >shmat.c <<'END'
+#include <sys/shm.h>
+void *shmat();
+END
+ if $cc $ccflags -c shmat.c >/dev/null 2>&1; then
+ shmattype='void *'
+ else
+ shmattype='char *'
+ fi
+ echo "and it returns ($shmattype)." >&4
+ : see if a prototype for shmat is available
+ $cppstdin $cppflags $cppminus < $usrinc/sys/shm.h > shmat.c 2>/dev/null
+ if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
+ val="$define"
+ else
+ val="$undef"
+ fi
+ $rm -f shmat.[co]
+ ;;
+*)
+ val="$undef"
+ ;;
esac
+set d_shmatprototype
+eval $setvar
+
: see if shmdt exists
set shmdt d_shmdt
eval $inlibc
@@ -3886,6 +5128,59 @@ fi
set d_shm
eval $setvar
+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 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 -f /usr/lib/libnet.a; then
+ ( (nm $nm_opt /usr/lib/libnet.a | eval $nm_extract) || \
+ ar t /usr/lib/libnet.a) 2>/dev/null >> libc.list
+ if $contains socket libc.list >/dev/null 2>&1; then
+ echo "...but the Wollongong group seems to have hacked it in." >&4
+ socketlib="-lnet"
+ sockethdr="-I/usr/netinclude"
+ d_socket="$define"
+ if $contains setsockopt libc.list >/dev/null 2>&1; then
+ d_oldsock="$undef"
+ else
+ echo "...using the old 4.1c interface, rather than 4.2" >&4
+ d_oldsock="$define"
+ fi
+ else
+ echo "or even in libnet.a, which is peculiar." >&4
+ d_socket="$undef"
+ d_oldsock="$undef"
+ fi
+ else
+ echo "or anywhere else I see." >&4
+ d_socket="$undef"
+ d_oldsock="$undef"
+ fi
+ fi
+fi
+
+: see if socketpair exists
+set socketpair d_sockpair
+eval $inlibc
+
: see if stat knows about block sizes
echo " "
xxx=`./findhdr sys/stat.h`
@@ -3904,78 +5199,9 @@ fi
set d_statblks
eval $setvar
-: see if stdio is really std
-echo " "
-xxx=`./findhdr stdio.h`
-if $contains 'char.*_ptr;' "$xxx" >/dev/null 2>&1 ; then
- if $contains '_cnt;' "$xxx" >/dev/null 2>&1 ; then
- echo "Your stdio is pretty std." >&4
- val="$define"
- else
- echo "Your stdio isn't very std." >&4
- val="$undef"
- fi
-else
- echo "Your stdio isn't very std." >&4
- val="$undef"
-fi
-set d_stdstdio
-eval $setvar
-
-: see which of string.h or strings.h is needed
-echo " "
-strings=`./findhdr string.h`
-if $test "$strings" && $test -r "$strings"; then
- echo "Using <string.h> instead of <strings.h>." >&4
- val="$define"
-else
- val="$undef"
- strings=`./findhdr strings.h`
- if $test "$strings" && $test -r "$strings"; then
- echo "Using <strings.h> instead of <string.h>." >&4
- else
- echo "No string header found -- You'll surely have problems." >&4
- fi
-fi
-set i_string
-eval $setvar
-case "$i_string" in
-"$undef") strings=`./findhdr strings.h`;;
-*) strings=`./findhdr string.h`;;
-esac
-
-: index or strchr
-echo " "
-if set index val -f; eval $csym; $val; then
- if set strchr val -f d_strchr; eval $csym; $val; then
- if $contains strchr "$strings" >/dev/null 2>&1 ; then
- val="$define"
- vali="$undef"
- echo "strchr() found." >&4
- else
- val="$undef"
- vali="$define"
- echo "index() found." >&4
- fi
- else
- val="$undef"
- vali="$define"
- echo "index() found." >&4
- fi
-else
- if set strchr val -f d_strchr; eval $csym; $val; then
- val="$define"
- vali="$undef"
- echo "strchr() found." >&4
- else
- echo "No index() or strchr() found!" >&4
- val="$undef"
- vali="$undef"
- fi
-fi
-set d_strchr; eval $setvar
-val="$vali"
-set d_index; eval $setvar
+: see if strcoll exists
+set strcoll d_strcoll
+eval $inlibc
: check for structure copying
echo " "
@@ -4006,7 +5232,7 @@ echo " "
if set strerror val -f d_strerror; eval $csym; $val; then
echo 'strerror() found.' >&4
d_strerror="$define"
- d_strerrm="$undef"
+ d_strerrm='strerror(e)'
if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
echo "(You also have sys_errlist[], so we could roll our own strerror.)"
d_syserrlst="$define"
@@ -4018,7 +5244,7 @@ elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \
$contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
echo 'strerror() found in string header.' >&4
d_strerror="$define"
- d_strerrm="$undef"
+ d_strerrm='strerror(e)'
if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
d_syserrlst="$define"
@@ -4030,14 +5256,18 @@ elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then
echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
d_strerror="$undef"
d_syserrlst="$define"
- d_strerrm="$define"
+ d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
else
echo 'strerror() and sys_errlist[] NOT found.' >&4
d_strerror="$undef"
d_syserrlst="$undef"
- d_strerrm="$undef"
+ d_strerrm='"unknown"'
fi
+: see if strxfrm exists
+set strxfrm d_strxfrm
+eval $inlibc
+
: see if symlink exists
set symlink d_symlink
eval $inlibc
@@ -4046,34 +5276,66 @@ eval $inlibc
set syscall d_syscall
eval $inlibc
+: see if sysconf exists
+set sysconf d_sysconf
+eval $inlibc
+
: see if system exists
set system d_system
eval $inlibc
+: see if tcgetpgrp exists
+set tcgetpgrp d_tcgetpgrp
+eval $inlibc
+
+: see if tcsetpgrp exists
+set tcsetpgrp d_tcsetpgrp
+eval $inlibc
+
+: 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 "val=\$$var";
+case "$val" in
+"")
+ $rm -f temp.c;
+ for inc in $inclist; do
+ echo "#include <$inc>" >>temp.c;
+ done;
+ $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=$val";;
+esac'
+
+: 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"
- case "$clocktype" in
- '')
- if $contains 'clock_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- dflt='clock_t';
- elif $contains 'clock_t;' `./findhdr sys/times.h` >/dev/null 2>&1; then
- dflt='clock_t';
- else
- dflt='long';
- fi
- ;;
- *) dflt="$clocktype"
- ;;
+ inc=''
+ case "$i_systimes" in
+ "$define") inc='sys/times.h';;
esac
+ set clock_t clocktype long stdio.h sys/types.h $inc
+ eval $typedef
+ dflt="$clocktype"
echo " "
rp="What type is returned by times() on this sytem?"
. ./myread
clocktype="$ans"
else
- echo 'times() not found, hope that will do.' >&4
+ echo 'times() NOT found, hope that will do.' >&4
d_times="$undef"
clocktype='int'
fi
@@ -4082,6 +5344,22 @@ fi
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
+
+: see if umask exists
+set umask d_umask
+eval $inlibc
+
: see if we have to deal with yellow pages, now NIS.
if $test -d /usr/etc/yp || $test -d /etc/yp; then
if $test -f /usr/etc/nibindd; then
@@ -4185,8 +5463,8 @@ myhostname=$1
: translate upper to lower if necessary
case "$myhostname" in
*[A-Z]*)
- myhostname=`echo $myhostname | tr '[A-Z]' '[a-z]'`
echo "(Normalizing case in your host name)"
+ myhostname=`echo $myhostname | tr '[A-Z]' '[a-z]'`
;;
esac
@@ -4213,7 +5491,7 @@ done
case "$phostname" in
'') ;;
*)
- case `$phostname` in
+ case `$phostname | tr '[A-Z]' '[a-z]'` in
$myhostname$mydomain|$myhostname) ;;
*)
case "$phostname" in
@@ -4266,24 +5544,104 @@ case "$d_phostname" in
'') d_phostname="$undef";;
esac
+: backward compatibility for d_hvfork
+if test X$d_hvfork != X; then
+ d_vfork="$d_hvfork"
+ d_hvfork=''
+fi
: see if there is a vfork
-set vfork d_vfork
+val=''
+set vfork val
eval $inlibc
-: But do we want to use it. vfork is reportedly unreliable in
-: perl in Solaris 2.x, and probably elsewhere.
+
+: Ok, but do we want to use it. vfork is reportedly unreliable in
+: perl on Solaris 2.x, and probably elsewhere.
+case "$val" in
+$define)
+ echo " "
+ case "$usevfork" in
+ false) dflt='n';;
+ *) dflt='y';;
+ esac
+ rp="Some systems have problems with vfork(). Do you want to use it?"
+ . ./myread
+ case "$ans" in
+ y|Y) ;;
+ *)
+ echo "Ok, we won't use vfork()."
+ val="$undef"
+ ;;
+ esac
+ ;;
+esac
+set d_vfork
+eval $setvar
case "$d_vfork" in
-define)
- dflt='n'
- rp="Some systems have problems with vork. Do you want to use it?"
- . ./myread
- case "$ans" in
- y|Y) ;;
- *) echo "Ok, we won't use vfork."
- d_vfork="$undef"
- ;;
- esac
- ;;
+$define) usevfork='true';;
+*) usevfork='false';;
esac
+
+: see if this is an sysdir system
+set sys/dir.h i_sysdir
+eval $inhdr
+
+: see if this is an sysndir system
+set sys/ndir.h i_sysndir
+eval $inhdr
+
+: see if closedir exists
+set closedir d_closedir
+eval $inlibc
+
+case "$d_closedir" in
+"$define")
+ echo " "
+ echo "Checking whether closedir() returns a status..." >&4
+ cat > closedir.c <<EOM
+#$i_dirent I_DIRENT /**/
+#$i_sysdir I_SYS_DIR /**/
+#$i_sysndir I_SYS_NDIR /**/
+
+#if defined(I_DIRENT)
+#include <dirent.h>
+#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
+#include <sys/dir.h>
+#endif
+#else
+#ifdef I_SYS_NDIR
+#include <sys/ndir.h>
+#else
+#ifdef I_SYS_DIR
+#ifdef hp9000s500
+#include <ndir.h> /* may be wrong in the future */
+#else
+#include <sys/dir.h>
+#endif
+#endif
+#endif
+#endif
+int main() { return closedir(opendir(".")); }
+EOM
+ if $cc $ccflags $ldflags -o closedir closedir.c $libs > /dev/null 2>&1; then
+ if ./closedir > /dev/null 2>&1 ; then
+ echo "Yes, it does."
+ val="$undef"
+ else
+ echo "No, it doesn't."
+ val="$define"
+ fi
+ else
+ echo "(I can't seem to compile the test program--assuming it doesn't)"
+ val="$define"
+ fi
+ ;;
+*)
+ val="$undef";
+ ;;
+esac
+set d_void_closedir
+eval $setvar
+$rm -f closedir*
: see if signal is declared as pointer to function returning int or void
echo " "
xxx=`./findhdr signal.h`
@@ -4291,31 +5649,35 @@ $test "$xxx" && $cppstdin $cppminus $cppflags < $xxx >$$.tmp 2>/dev/null
if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
echo "You have int (*signal())() instead of void." >&4
val="$undef"
- signal_t="int"
elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
echo "You have void (*signal())() instead of int." >&4
val="$define"
- signal_t="void"
elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then
echo "You have int (*signal())() instead of void." >&4
val="$undef"
- signal_t="int"
else
case "$d_voidsig" in
'')
echo "I can't determine whether signal handler returns void or int..." >&4
dflt=void
- rp="What type does your signal handler returns?"
+ rp="What type does your signal handler return?"
. ./myread
case "$ans" in
- void) val="$define"; signal_t="void";;
- *) val="$undef"; signal_t="int";;
+ v*) val="$define";;
+ *) val="$undef";;
esac;;
- *) echo "As you already told me, signal handler returns $signal_t." >&4;;
+ "$define")
+ echo "As you already told me, signal handler returns void." >&4;;
+ *)
+ echo "As you already told me, signal handler returns int." >&4;;
esac
fi
set d_voidsig
eval $setvar
+case "$d_voidsig" in
+"$define") signal_t="void";;
+*) signal_t="int";;
+esac
$rm -f $$.tmp
: check for volatile keyword
@@ -4357,6 +5719,14 @@ eval $inlibc
set waitpid d_waitpid
eval $inlibc
+: see if wcstombs exists
+set wcstombs d_wcstombs
+eval $inlibc
+
+: see if wctomb exists
+set wctomb d_wctomb
+eval $inlibc
+
: preserve RCS keywords in files with variable substitution, grrr
Date='$Date'
Id='$Id'
@@ -4364,21 +5734,40 @@ Log='$Log'
RCSfile='$RCSfile'
Revision='$Revision'
-: is AFS running?
+: check for alignment requirements
echo " "
-if test -d /afs; then
- echo "AFS may be running... I'll be extra cautious then..." >&4
- afs=true
-else
- echo "AFS does not seem to be running..." >&4
- afs=false
-fi
+case "$alignbytes" in
+'') echo "Checking alignment constraints..." >&4
+ $cat >try.c <<'EOCP'
+struct foobar {
+ char foo;
+ double bar;
+} try;
+main()
+{
+ printf("%d\n", (char *)&try.bar - (char *)&try.foo);
+}
+EOCP
+ if $cc $ccflags try.c -o try >/dev/null 2>&1; then
+ dflt=`./try`
+ else
+ dflt='8'
+ echo"(I can't seem to compile the test program...)"
+ fi
+ ;;
+*) dflt="$alignbytes"
+ ;;
+esac
+rp="Doubles must be aligned on a how-many-byte boundary?"
+. ./myread
+alignbytes="$ans"
+$rm -f try.c try
: determine where public executables go
echo " "
case "$bin" in
'')
- dflt=`./loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
+ dflt="$prefix/bin"
;;
*)
dflt="$bin"
@@ -4463,160 +5852,126 @@ rp="What is the order of bytes in a long?"
byteorder="$ans"
$rm -f try.c try
-: see if dlfcn is available
-set dlfcn.h i_dlfcn
-eval $inhdr
-: determine which dynamic loading, if any, to compile in
+: how do we catenate cpp tokens here?
echo " "
-case "$usedl" in
-'') case "$i_dlfcn" in
- define) dflt='y' ;;
- *) dflt='n' ;;
- esac
- : Does a dl.c file exist for this operating system
- $test -f ../ext/dl/dl_${osname}.c && dflt='y'
- ;;
-define|y|true) dflt='y'
- usedl="$define"
- ;;
-*) dflt='n'
- ;;
-esac
-rp="Do you wish to attempt to use dynamic loading?"
-. ./myread
-usedl="$ans"
-case "$ans" in
-y*) usedl="$define"
- if $test -f ../ext/dl/dl_${osname}.c ; then
- dflt="ext/dl/dl_${osname}.c"
- else
- dflt='ext/dl/dl.c'
- fi
- echo "The following dynamic loading files are available:"
- cd ..; ls -C ext/dl/dl*.c; cd UU
- rp="Source file to use for dynamic loading"
- fn="fne~"
- . ./getfile
- : emulate basename and dirname
- xxx=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@' -e 's@\.c$@@'`
- dlobj=$xxx.o
- dlsrc=$xxx.c
- dldir=`echo $ans | $sed 's@\(.*\)/[^/]*$@\1@'`
- case "$dldir" in
- '') dldir="." ;;
- *) ;;
- esac
- if $test -f ../$dldir/$dlsrc; then
- usedl="$define"
- else
- echo "File $dlsrc does not exist -- ignored"
- usedl="$undef"
- fi
-
- cat << EOM
-
-Some systems may require passing special flags to $cc -c to
-compile modules that will be used to create a shared library.
-To use no flags, say "none".
+echo "Checking to see how your cpp does stuff like catenate tokens..." >&4
+$cat >cpp_stuff.c <<'EOCP'
+#define RCAT(a,b)a/**/b
+#define ACAT(a,b)a ## b
+RCAT(Rei,ser)
+ACAT(Cir,cus)
+EOCP
+$cppstdin $cppflags $cppminus < cpp_stuff.c >cpp_stuff.out 2>&1
+if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then
+ echo "Oh! Smells like ANSI's been here."
+ echo "We can catify or stringify, separately or together!"
+ cpp_stuff=42
+elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then
+ echo "Ah, yes! The good old days!"
+ echo "However, in the good old days we don't know how to stringify and"
+ echo "catify at the same time."
+ cpp_stuff=1
+else
+ $cat >&4 <<EOM
+Hmm, I don't seem to be able to catenate tokens with your cpp. You're going
+to have to edit the values of CAT[2-5] in config.h...
EOM
- case "$cccdlflags" in
- ''|' ') case "$osname" in
- hpux) dflt='+z' ;;
- next) dflt='none' ;;
- sunos) dflt='none' ;;
- *) dflt='none' ;;
- esac
- ;;
- *) dflt="$cccdlflags" ;;
- esac
- rp="Any special flags to pass to $cc -c to compile shared library modules?"
- . ./myread
- case "$ans" in
- none) cccdlflags='' ;;
- *) cccdlflags="$ans" ;;
- esac
-
- cat << 'EOM'
+ cpp_stuff="/* Help! How do we handle cpp_stuff? */*/"
+fi
-Some systems may require passing special flags to ld to
-create a shared library. To use no flags, say "none".
-EOM
- case "$lddlflags" in
- ''|' ') case "$osname" in
- hpux) dflt='-b' ;;
- next) dflt='none' ;;
- sunos) dflt='none' ;;
- *) dflt='none' ;;
- esac
- ;;
- *) dflt="$lddlflags" ;;
- esac
- rp="Any special flags to pass to ld to create a shared library?"
- . ./myread
- case "$ans" in
- none) lddlflags='' ;;
- *) lddlflags="$ans" ;;
- esac
+: check for void type
+echo " "
+$cat >&4 <<EOM
+Checking to see how well your C compiler groks the void type...
- cat <<EOM
+ Support flag bits are:
+ 1: basic void declarations.
+ 2: arrays of pointers to functions returning void.
+ 4: operations between pointers to and addresses of void functions.
+ 8: generic void pointers.
-Some systems may require passing special flags to $cc to indicate that
-dynamic linking will be used. To use no flags, say "none".
EOM
- case "$ccdlflags" in
- ''|' ')
- case "$osname" in
- hpux) dflt='none' ;;
- next) dflt='none' ;;
- sunos) dflt='none' ;;
- *) dflt='none' ;;
- esac
- ;;
- *) dflt="$ccdlflags"
- ;;
- esac
- rp="Any special flags to pass to $cc to use dynamic loading?"
- . ./myread
- case "$ans" in
- none) ccdlflags='' ;;
- *) ccdlflags="$ans" ;;
- esac
- cat <<EOM
-
-Some systems may require using a special suffix for shared libraries.
-To create the shared library for POSIX, for example, you may need to
-actually build the file POSIX.so.
+case "$voidflags" in
+'')
+ $cat >try.c <<'EOCP'
+#if TRY & 1
+void main() {
+#else
+main() {
+#endif
+ extern void moo(); /* function returning void */
+ void (*goo)(); /* ptr to func returning void */
+#if TRY & 8
+ void *hue; /* generic ptr */
+#endif
+#if TRY & 2
+ void (*foo[10])();
+#endif
-EOM
- case "$shlibsuffix" in
- '')
- case "$osname" in
- hpux) dflt='.sl' ;;
- next) dflt='.so' ;;
- sunos) dflt='.so' ;;
- *) dflt='.so' ;;
- esac
- ;;
- *) dflt="$shlibsuffix"
- ;;
- esac
- rp="What is the suffix used for shared libraries?"
- . ./myread
- case "$ans" in
- none) shlibsuffix='' ;;
- *) shlibsuffix="$ans" ;;
- esac
- ;;
-*) usedl="$undef"
- : These are currently not used.
- dlsrc=''
- dlobj=''
- dldir=''
- lddlflags=''
- ccdlflags=''
- shlibsuffix='.o'
- ;;
+#if TRY & 4
+ if(goo == moo) {
+ exit(0);
+ }
+#endif
+ exit(0);
+}
+EOCP
+ if $cc -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
+ voidflags=$defvoidused
+ echo "It appears to support void to the level $package wants ($defvoidused)."
+ if $contains warning .out >/dev/null 2>&1; then
+ echo "However, you might get some warnings that look like this:"
+ $cat .out
+ fi
+ else
+echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
+ if $cc -c -DTRY=1 try.c >/dev/null 2>&1 ; then
+ echo "It supports 1..."
+ if $cc -c -DTRY=3 try.c >/dev/null 2>&1 ; then
+ echo "It also supports 2..."
+ if $cc -c -DTRY=7 try.c >/dev/null 2>&1 ; then
+ voidflags=7
+ echo "And it supports 4 but not 8 definitely."
+ else
+ echo "It doesn't support 4..."
+ if $cc -c -DTRY=11 try.c >/dev/null 2>&1 ; then
+ voidflags=11
+ echo "But it supports 8."
+ else
+ voidflags=3
+ echo "Neither does it support 8."
+ fi
+ fi
+ else
+ echo "It does not support 2..."
+ if $cc -c -DTRY=13 try.c >/dev/null 2>&1 ; then
+ voidflags=13
+ echo "But it supports 4 and 8."
+ else
+ if $cc -c -DTRY=5 try.c >/dev/null 2>&1 ; then
+ voidflags=5
+ echo "And it supports 4 but has not heard about 8."
+ else
+ echo "However it supports 8 but not 4."
+ fi
+ fi
+ fi
+ else
+ echo "There is no support at all for void."
+ voidflags=0
+ fi
+ fi
esac
+dflt="$voidflags";
+rp="Your void support flags add up to what?"
+. ./myread
+voidflags="$ans"
+$rm -f try.* .out
+
+: see if this is a db.h system
+set db.h i_db
+eval $inhdr
+
: see if we have the old dbm
set dbm.h i_dbm
eval $inhdr
@@ -4629,185 +5984,192 @@ eval $inhdr
set gdbm.h i_gdbm
eval $inhdr
-: see if sdbm.h is wanted
echo " "
-echo "$package includes an implementation of sdbm in ext/dbm/sdbm."
-case "$i_sdbm" in
- ''|' ') val="$define" ;;
- *) val="$i_sdbm" ;;
-esac
-set i_sdbm
-eval $setvar
-case "$extensions" in
-' '|'') echo "Looking for extensions..."
- case "$find" in
- *find*)
- cd ..
- extensions=`$find ext -type f -name \*.xs -print`
- set X $extensions
- shift
- extensions="$*"
- cd UU
- ;;
- *) extensions='ext/dbm/NDBM_File.xs ext/dbm/ODBM_File.xs ext/dbm/GDBM_File.xs ext/dbm/SDBM_File.xs ext/posix/POSIX.xs'
- ;;
- esac
- ;;
-none) extensions='' ;;
-*) ;;
-esac
+echo "Looking for extensions..." >&4
+cd ../ext
+known_extensions=''
+for xxx in * ; do
+ if $test -f $xxx/$xxx.xs; then
+ known_extensions="$known_extensions $xxx"
+ fi
+done
+set X $known_extensions
+shift
+known_extensions="$*"
+cd ../UU
+
: Now see which are supported on this system.
-dflt=""
-for xxx in $extensions ; do
+avail_ext=''
+for xxx in $known_extensions ; do
case "$xxx" in
- *ODBM*) case "$i_dbm" in
- define) dflt="$dflt $xxx" ;;
- *) ;;
+ DB_File) case "$i_db" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ GDBM_File) case "$i_gdbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ NDBM_File) case "$i_ndbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- *NDBM*) case "$i_ndbm" in
- define) dflt="$dflt $xxx" ;;
- *) ;;
+ ODBM_File) case "$i_dbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- *GDBM*) case "$i_gdbm" in
- define) dflt="$dflt $xxx" ;;
- *) ;;
+ POSIX) case "$useposix" in
+ true|define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
- *SDBM*) case "$i_sdbm" in
- define) dflt="$dflt $xxx" ;;
- *) ;;
+ Socket) case "$d_socket" in
+ $define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- *) dflt="$dflt $xxx"
+ *) avail_ext="$avail_ext $xxx"
;;
esac
done
-rp="What extensions do you wish to include?"
+set X $avail_ext
+shift
+avail_ext="$*"
+
+case $usedl in
+$define)
+ $cat <<EOM
+A number of extensions are supplied with $package. You may choose to
+compile these extensions for dynamic loading (the default), compile
+them into the $package executable (static loading), or not include
+them at all. Answer "none" to include no extensions.
+
+EOM
+ case "$dynamic_ext" in
+ ''|' ') dflt="$avail_ext" ;;
+ *) dflt="$dynamic_ext" ;;
+ esac
+ case "$dflt" in
+ '') dflt=none;;
+ esac
+ rp="What extensions do you wish to load dynamically?"
+ . ./myread
+ case "$ans" in
+ none) dynamic_ext='' ;;
+ *) dynamic_ext="$ans" ;;
+ esac
+
+ case "$static_ext" in
+ ''|' ')
+ : Exclude those already listed in dynamic linking
+ dflt=''
+ for xxx in $avail_ext; do
+ case " $dynamic_ext " in
+ *" $xxx "*) ;;
+ *) dflt="$dflt $xxx" ;;
+ esac
+ done
+ set X $dflt
+ shift
+ dflt="$*"
+ ;;
+ *) dflt="$static_ext"
+ ;;
+ esac
+
+ case "$dflt" in
+ '') dflt=none;;
+ esac
+ rp="What extensions do you wish to load statically?"
+ . ./myread
+ case "$ans" in
+ none) static_ext='' ;;
+ *) static_ext="$ans" ;;
+ esac
+ ;;
+*)
+ $cat <<EOM
+A number of extensions are supplied with $package. Answer "none"
+to include no extensions.
+
+EOM
+ case "$static_ext" in
+ ''|' ') dflt="$avail_ext" ;;
+ *) dflt="$static_ext" ;;
+ esac
+
+ case "$dflt" in
+ '') dflt=none;;
+ esac
+ rp="What extensions do you wish to include?"
+ . ./myread
+ case "$ans" in
+ none) static_ext='' ;;
+ *) static_ext="$ans" ;;
+ esac
+ ;;
+esac
+
+set X $dynamic_ext $static_ext
+shift
+extensions="$*"
+
+: see what type file positions are declared as in the library
+set fpos_t fpostype long stdio.h sys/types.h
+eval $typedef
+echo " "
+dflt="$fpostype"
+rp="What is the type for file position used by fsetpos()?"
. ./myread
-extensions="$ans"
+fpostype="$ans"
: see what type gids are declared as in the kernel
+set gid_t gidtype xxx stdio.h sys/types.h
+eval $typedef
case "$gidtype" in
-'')
- if $contains 'gid_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- dflt='gid_t';
- else
- xxx=`./findhdr sys/user.h`
- set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
- case $1 in
- unsigned) dflt="$1 $2" ;;
- *) dflt="$1" ;;
- esac
- fi
+xxx)
+ xxx=`./findhdr sys/user.h`
+ set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
+ case $1 in
+ unsigned) dflt="$1 $2" ;;
+ *) dflt="$1" ;;
+ esac
;;
-*) dflt="$gidtype";;
+*) dflt="$gidtype";;
esac
echo " "
rp="What is the type for group ids returned by getgid()?"
. ./myread
-val="$ans"
-set gidtype
-eval $setvar
+gidtype="$ans"
+
: see if getgroups exists
set getgroups d_getgrps
eval $inlibc
+: Find type of 2nd arg to getgroups
+echo " "
case "$d_getgrps" in
'define')
- case "$groupstype" in
+ case "$groupstype" in
'') dflt="$gidtype" ;;
*) dflt="$groupstype" ;;
- esac
- echo " "
- $cat <<EOM
+ esac
+ $cat <<EOM
What is the type of the second argument to getgroups()? Usually this
is the same as group ids, $gidtype, but not always.
-EOM
- rp="What type is the second arguement to getgroups()?"
- . ./myread
- val="$ans"
- ;;
-*) val="$gidtype";;
-esac
-set groupstype
-eval $setvar
-: determine where private executables go
-case "$privlib" in
-'')
- dflt=/usr/lib/$package
- $test -d /usr/local/lib && dflt=/usr/local/lib/$package
- $test -d /local/lib && dflt=/local/lib/$package
- ;;
-*) dflt="$privlib"
- ;;
-esac
-$cat <<EOM
-
-There are some auxiliary files for $package that need to be put into a
-private library directory that is accessible by everyone.
-
-EOM
-fn=d~+
-rp='Pathname where private library files will reside?'
-. ./getfile
-privlib="$ans"
-privlibexp="$ansexp"
-if $afs; then
- $cat <<EOM
-
-Since you are running AFS, I need to distinguish the directory in which
-private files reside from the directory in which they are installed (and from
-which they are presumably copied to the former directory by occult means).
EOM
- case "$installprivlib" in
- '') dflt=`echo $privlibexp | sed 's#^/afs/#/afs/.#'`;;
- *) dflt="$installprivlib";;
- esac
- fn=de~
- rp='Where will private files be installed?'
- . ./getfile
- installprivlib="$ans"
-else
- installprivlib="$privlibexp"
-fi
-
-: determine where public libraries go
-case "$lib" in
-'') dflt=`./loc . "." /usr/local/lib /usr/lib /lib`;;
-*) dflt="$lib";;
+ rp='What type is the second argument to getgroups()?'
+ . ./myread
+ groupstype="$ans"
+ ;;
+*) groupstype="$gidtype";;
esac
-echo " "
-fn=d~
-rp='Where do you want to put the public libraries?'
-. ./getfile
-lib="$ans"
-libexp="$ansexp"
-: determine whether symbolic links are supported
-$touch blurfl
-if $ln -s blurfl sym > /dev/null 2>&1 ; then
- lns="$ln -s"
-else
- lns="$ln"
-fi
-rm -f blurfl sym
: see what type lseek is declared as in the kernel
-case "$lseektype" in
-'')
- if $contains 'off_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- dflt='off_t';
- else
- dflt='long';
- fi
- ;;
-*) dflt="$lseektype"
- ;;
-esac
+set off_t lseektype long stdio.h sys/types.h
+eval $typedef
echo " "
+dflt="$lseektype"
rp="What type is lseek's offset on this system declared as?"
. ./myread
lseektype="$ans"
@@ -4827,11 +6189,12 @@ esac
echo "If you don't want the manual sources installed, answer 'none'."
case "$mansrc" in
'')
- lookpath='/usr/local/man/man1 /usr/local/man/man1 /usr/man/manl'
+ lookpath="$prefix/man/man1 $prefix/man/u_man/man1 $prefix/man/l_man/man1"
+ lookpath="$lookpath /usr/local/man/man1 /usr/local/man/man1 /usr/man/manl"
lookpath="$lookpath /usr/man/local/man1 /usr/man/l_man/man1"
lookpath="$lookpath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
lookpath="$lookpath /usr/man/man.L"
- mansrc=`./loc . $lookpath`
+ mansrc=`./loc . $prefix/man/man1 $lookpath`
if $test -d "$mansrc"; then
dflt="$mansrc"
else
@@ -4880,34 +6243,14 @@ case "$mansrc" in
*) manext=1;;
esac
-: check for alignment requirements
+: see what type is used for mode_t
+set mode_t modetype int stdio.h sys/types.h
+eval $typedef
+dflt="$modetype"
echo " "
-case "$memalignbytes" in
-'') echo "Checking alignment constraints..." >&4
- $cat >try.c <<'EOCP'
-struct foobar {
- char foo;
- double bar;
-} try;
-main()
-{
- printf("%d\n", (char *)&try.bar - (char *)&try.foo);
-}
-EOCP
- if $cc $ccflags try.c -o try >/dev/null 2>&1; then
- dflt=`./try`
- else
- dflt='8'
- echo"(I can't seem to compile the test program...)"
- fi
- ;;
-*) dflt="$memalignbytes"
- ;;
-esac
-rp="Doubles must be aligned on a how-many-byte boundary?"
+rp="What type is used for file modes?"
. ./myread
-memalignbytes="$ans"
-$rm -f try.c try
+modetype="$ans"
: Cruising for prototypes
echo " "
@@ -4916,7 +6259,7 @@ $cat >prototype.c <<'EOCP'
main(int argc, char *argv[]) {
exit(0);}
EOCP
-if $cc -c prototype.c >prototype.out 2>&1 ; then
+if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
echo "Your C compiler appears to support function prototypes."
val="$define"
else
@@ -4927,34 +6270,6 @@ set prototype
eval $setvar
$rm -f prototype*
-: check for length of pointer
-echo " "
-case "$ptrsize" in
-'')
- echo "Checking to see how big your pointers are..." >&4
- $cat >try.c <<'EOCP'
-#include <stdio.h>
-main()
-{
- printf("%d\n", sizeof(char *));
-}
-EOCP
- if $cc $ccflags try.c -o try >/dev/null 2>&1 ; then
- dflt=`./try`
- else
- dflt='4'
- echo "(I can't seem to compile the test program. Guessing...)"
- fi
- ;;
-*)
- dflt="$ptrsize"
- ;;
-esac
-rp="What is the size of a pointer (in bytes)?"
-. ./myread
-ptrsize="$ans"
-$rm -f try.c try
-
: check for size of random number generator
echo " "
case "$randbits" in
@@ -4996,30 +6311,33 @@ $rm -f try.c try
: see if ar generates random libraries by itself
echo " "
echo "Checking how to generate random libraries on your machine..." >&4
-$cat >a.c <<EOP
-f() { exit(0); }
+echo 'int bar1() { return bar2(); }' > bar1.c
+echo 'int bar2() { return 2; }' > bar2.c
+$cat > foo.c <<'EOP'
+main() { printf("%d\n", bar1()); exit(0); }
EOP
-cc -c a.c >/dev/null 2>&1
-ar rc ran.a a.o >/dev/null 2>&1
-$cat >b.c <<EOP
-main() { f(); }
-EOP
-cp ran.a lib.a
-if ar ts ran.a >/dev/null 2>&1; then
- if $cc -o b b.c lib.a >/dev/null 2>&1; then
- echo "ar appears to generate random libraries itself."
- orderlib=false
- ranlib=":"
- else
+$cc $ccflags -c bar1.c >/dev/null 2>&1
+$cc $ccflags -c bar2.c >/dev/null 2>&1
+$cc $ccflags -c foo.c >/dev/null 2>&1
+ar rc bar.a bar2.o bar1.o >/dev/null 2>&1
+if $cc $ccflags $ldflags -o foobar foo.o bar.a $libs > /dev/null 2>&1 &&
+ ./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 $ccflags $ldflags -o foobar foo.o bar.a $libs > /dev/null 2>&1 &&
+ ./foobar >/dev/null 2>&1; then
echo "a table of contents needs to be added with 'ar ts'."
orderlib=false
ranlib="ar ts"
- fi
else
if $test -f /usr/bin/ranlib; then
ranlib=/usr/bin/ranlib
elif $test -f /bin/ranlib; then
ranlib=/bin/ranlib
+ elif $test -f /usr/local/bin/ranlib; then
+ ranlib=/usr/local/bin/ranlib
fi
if $test -n "$ranlib"; then
@@ -5032,9 +6350,9 @@ else
ranlib=":"
fi
fi
-$rm -f a.* b.c b.o b ran.a lib.a
+$rm -f foo* bar*
-: determine where public executables go
+: determine where public executable scripts go
case "$scriptdir" in
'')
dflt="$bin"
@@ -5042,6 +6360,7 @@ case "$scriptdir" in
$test -d /usr/share/scripts && dflt=/usr/share/scripts
$test -d /usr/share/bin && dflt=/usr/share/bin
$test -d /usr/local/script && dflt=/usr/local/script
+ $test -d $prefix/script && dflt=$prefix/script
;;
*) dflt="$scriptdir"
;;
@@ -5079,6 +6398,236 @@ else
installscript="$scriptdirexp"
fi
+: see if sys/select.h has to be included
+set sys/select.h i_sysselct
+eval $inhdr
+
+: see if we should include time.h, sys/time.h, or both
+echo " "
+echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
+$echo $n "I'm now running the test program...$c"
+$cat >try.c <<'EOCP'
+#include <sys/types.h>
+#ifdef I_TIME
+#include <time.h>
+#endif
+#ifdef I_SYSTIME
+#ifdef SYSTIMEKERNEL
+#define KERNEL
+#endif
+#include <sys/time.h>
+#endif
+#ifdef I_SYSSELECT
+#include <sys/select.h>
+#endif
+main()
+{
+ struct tm foo;
+#ifdef S_TIMEVAL
+ struct timeval bar;
+#endif
+#ifdef S_TIMEZONE
+ struct timezone tzp;
+#endif
+ if (foo.tm_sec == foo.tm_sec)
+ exit(0);
+#ifdef S_TIMEVAL
+ if (bar.tv_sec == bar.tv_sec)
+ exit(0);
+#endif
+ exit(1);
+}
+EOCP
+flags=''
+s_timezone=''
+sysselect=''
+for s_timeval in '-DS_TIMEVAL' ''; do
+for i_systimek in '' '-DSYSTIMEKERNEL'; do
+for i_time in '' '-DI_TIME'; do
+for i_systime in '-DI_SYSTIME' ''; do
+ case "$flags" in
+ '') $echo $n ".$c"
+ if $cc $ccflags \
+ $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone \
+ try.c -o try >/dev/null 2>&1 ; then
+ set X $i_time $i_systime $i_systimek $sysselect $s_timeval
+ shift
+ flags="$*"
+ echo " "
+ $echo $n "Succeeded with $flags$c"
+ fi
+ ;;
+ esac
+done
+done
+done
+done
+timeincl=''
+echo " "
+case "$flags" in
+*SYSTIMEKERNEL*) i_systimek="$define"
+ timeincl=`./findhdr sys/time.h`
+ echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
+*) i_systimek="$undef";;
+esac
+case "$flags" in
+*I_TIME*) i_time="$define"
+ timeincl=`./findhdr time.h`" $timeincl"
+ echo "We'll include <time.h>." >&4;;
+*) i_time="$undef";;
+esac
+case "$flags" in
+*I_SYSTIME*) i_systime="$define"
+ timeincl=`./findhdr sys/time.h`" $timeincl"
+ echo "We'll include <sys/time.h>." >&4;;
+*) i_systime="$undef";;
+esac
+$rm -f try.c try
+
+: check for fd_set items
+$cat <<EOM
+
+Checking to see how well your C compiler handles fd_set and friends ...
+EOM
+$cat >fd_set.c <<EOCP
+#$i_systime I_SYS_TIME
+#$i_sysselct I_SYS_SELECT
+#$d_socket HAS_SOCKET
+#include <sys/types.h>
+#ifdef HAS_SOCKET
+#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
+#endif
+#ifdef I_SYS_TIME
+#include <sys/time.h>
+#else
+#ifdef I_SYS_SELECT
+#include <sys/select.h>
+#endif
+#endif
+main() {
+ fd_set fds;
+
+#ifdef TRYBITS
+ if(fds.fds_bits);
+#endif
+
+#if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
+ exit(0);
+#else
+ exit(1);
+#endif
+}
+EOCP
+if $cc $ccflags -DTRYBITS fd_set.c -o fd_set >fd_set.out 2>&1 ; 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
+ echo "and you have the normal fd_set macros (just as I'd expect)." >&4
+ d_fd_macros="$define"
+ else
+ $cat >&4 <<'EOM'
+but not the normal fd_set macros! Gaaack! I'll have to cover for you.
+EOM
+ d_fd_macros="$undef"
+ fi
+else
+ $cat <<'EOM'
+Hmm, your compiler has some difficulty with fd_set. Checking further...
+EOM
+ if $cc $ccflags fd_set.c -o fd_set >fd_set.out 2>&1 ; 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
+ echo "and you have the normal fd_set macros." >&4
+ d_fd_macros="$define"
+ else
+ $cat <<'EOM'
+but not the normal fd_set macros! Gross! More work for me...
+EOM
+ d_fd_macros="$undef"
+ fi
+ else
+ echo "Well, you got zip. That's OK, I can roll my own fd_set stuff." >&4
+ d_fd_set="$undef"
+ d_fds_bits="$undef"
+ d_fd_macros="$undef"
+ fi
+fi
+$rm -f fd_set*
+
+
+: check for type of arguments to select. This will only really
+: work if the system supports prototypes and provides one for
+: select.
+case "$d_select" in
+$define)
+ : Make initial guess
+ case "$selecttype" in
+ ''|' ')
+ case "$d_fd_set" in
+ $define) xxx='fd_set *' ;;
+ *) xxx='int *' ;;
+ esac
+ ;;
+ *) xxx="$selecttype"
+ ;;
+ esac
+ : backup guess
+ case "$xxx" in
+ 'fd_set *') yyy='int *' ;;
+ 'int *') yyy='fd_set *' ;;
+ esac
+
+ $cat <<EOM
+
+Checking to see what type of arguments are expected by select().
+EOM
+ $cat >try.c <<EOCP
+#$i_systime I_SYS_TIME
+#$i_sysselct I_SYS_SELECT
+#$d_socket HAS_SOCKET
+#include <sys/types.h>
+#ifdef HAS_SOCKET
+#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
+#endif
+#ifdef I_SYS_TIME
+#include <sys/time.h>
+#else
+#ifdef I_SYS_SELECT
+#include <sys/select.h>
+#endif
+#endif
+main()
+{
+ int width;
+ Select_fd_set_t readfds;
+ Select_fd_set_t writefds;
+ Select_fd_set_t exceptfds;
+ struct timeval timeout;
+ select(width, readfds, writefds, exceptfds, &timeout);
+ exit(0);
+}
+EOCP
+ if $cc $ccflags -c -DSelect_fd_set_t="$xxx" try.c >/dev/null 2>&1 ; then
+ selecttype="$xxx"
+ echo "Your system uses $xxx for the arguments to select." >&4
+ elif $cc $ccflags -c -DSelect_fd_set_t="$yyy" try.c >/dev/null 2>&1 ; then
+ selecttype="$yyy"
+ echo "Your system uses $yyy for the arguments to select." >&4
+ else
+ rp='What is the type for the 2nd, 3rd, and 4th arguments to select?'
+ dflt="$xxx"
+ . ./myread
+ selecttype="$ans"
+ fi
+ $rm -f try.[co]
+ ;;
+*) selecttype = 'int *'
+ ;;
+esac
+
: generate list of signal names
echo " "
case "$sig_name" in
@@ -5122,18 +6671,68 @@ END {
;;
esac
echo "The following signals are available:"
-echo $sig_name |
- $awk 'BEGIN { linelen = 0 }
- { for (i = 1; i < NF; i++)
- {
- name = "SIG" $i " "
- linelen = linelen + length(name)
- if (linelen > 70)
- {
- printf "\n"
- linelen = length(name)
+echo " "
+echo $sig_name | $awk \
+'BEGIN { linelen = 0 }
+{
+ for (i = 1; i < NF; i++) {
+ name = "SIG" $i " "
+ linelen = linelen + length(name)
+ if (linelen > 70) {
+ printf "\n"
+ linelen = length(name)
}
- printf "%s", name } }'
+ printf "%s", name
+ }
+}'
+echo " "
+
+: see what type is used for size_t
+set size_t sizetype 'unsigned int' stdio.h sys/types.h
+eval $typedef
+dflt="$sizetype"
+echo " "
+rp="What type is used for the length parameter for string functions?"
+. ./myread
+sizetype="$ans"
+
+: see what type is used for signed size_t
+set ssize_t ssizetype int stdio.h sys/types.h
+eval $typedef
+dflt="$ssizetype"
+$cat > ssize.c <<EOM
+#include <stdio.h>
+#include <sys/types.h>
+#define Size_t $sizetype
+#define SSize_t $dflt
+main()
+{
+ if (sizeof(Size_t) == sizeof(SSize_t))
+ printf("$dflt\n");
+ else if (sizeof(Size_t) == sizeof(int))
+ printf("int\n");
+ else
+ printf("long\n");
+}
+EOM
+echo " "
+if $cc $ccflags $ldflags -o ssize ssize.c $libs > /dev/null 2>&1 ; then
+ ssizetype=`./ssize`
+ echo "I'll be using $ssizetype for functions returning a byte count." >&4
+else
+ echo "(I can't compile the test program--please enlighten me!)"
+ $cat <<EOM
+
+I need a type that is the same size as $sizetype, but is guaranteed to
+be signed. Common values are int and long.
+
+EOM
+ rp="What signed type is the same size as $sizetype?"
+ . ./myread
+ ssizetype="$ans"
+fi
+$rm -f ssize ssize.[co]
+
: see what type of char stdio uses.
echo " "
if $contains 'unsigned.*char.*_ptr;' `./findhdr stdio.h` >/dev/null 2>&1 ; then
@@ -5146,142 +6745,44 @@ fi
: see if time exists
echo " "
-if set time val -f d_time; eval $csym; $val; then
+if set time tval -f d_time; eval $csym; $tval; then
echo 'time() found.' >&4
- val="$define"
- case "$timetype" in
- '')
- if $contains 'time_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- dflt='time_t';
- else
- dflt='long';
- fi
- ;;
- *) dflt="$timetype"
- ;;
- esac
+ tval="$define"
+ set time_t timetype long stdio.h sys/types.h
+ eval $typedef
+ dflt="$timetype"
echo " "
rp="What type is returned by time() on this sytem?"
. ./myread
timetype="$ans"
else
echo 'time() not found, hope that will do.' >&4
- val="$undef"
+ tval="$undef"
timetype='int';
fi
+val=$tval
set d_time
eval $setvar
: see what type uids are declared as in the kernel
+set uid_t uidtype xxx stdio.h sys/types.h
+eval $typedef
case "$uidtype" in
-'')
- if $contains 'uid_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- dflt='uid_t';
- else
- xxx=`./findhdr sys/user.h`
- set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
- case $1 in
- unsigned) dflt="$1 $2" ;;
- *) dflt="$1" ;;
- esac
- fi
+xxx)
+ xxx=`./findhdr sys/user.h`
+ set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
+ case $1 in
+ unsigned) dflt="$1 $2" ;;
+ *) dflt="$1" ;;
+ esac
;;
-*) dflt="$uidtype";;
+*) dflt="$uidtype";;
esac
echo " "
-rp="What type are user ids on this system declared as?"
+rp="What is the type for user ids returned by getuid()?"
. ./myread
uidtype="$ans"
-: check for void type
-echo " "
-$cat >&4 <<EOM
-Checking to see how well your C compiler groks the void type...
-
- Support flag bits are:
- 1: basic void declarations.
- 2: arrays of pointers to functions returning void.
- 4: operations between pointers to and addresses of void functions.
- 8: generic void pointers.
-
-EOM
-case "$voidflags" in
-'')
- $cat >try.c <<'EOCP'
-#if TRY & 1
-void main() {
-#else
-main() {
-#endif
- extern void moo(); /* function returning void */
- void (*goo)(); /* ptr to func returning void */
-#if TRY & 8
- void *hue; /* generic ptr */
-#endif
-#if TRY & 2
- void (*foo[10])();
-#endif
-
-#if TRY & 4
- if(goo == moo) {
- exit(0);
- }
-#endif
- exit(0);
-}
-EOCP
- if $cc -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
- voidflags=$defvoidused
- echo "It appears to support void to the level $package wants ($defvoidused)."
- if $contains warning .out >/dev/null 2>&1; then
- echo "However, you might get some warnings that look like this:"
- $cat .out
- fi
- else
-echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
- if $cc -c -DTRY=1 try.c >/dev/null 2>&1 ; then
- echo "It supports 1..."
- if $cc -c -DTRY=3 try.c >/dev/null 2>&1 ; then
- echo "It also supports 2..."
- if $cc -c -DTRY=7 try.c >/dev/null 2>&1 ; then
- voidflags=7
- echo "And it supports 4 but not 8 definitely."
- else
- echo "It doesn't support 4..."
- if $cc -c -DTRY=11 try.c >/dev/null 2>&1 ; then
- voidflags=11
- echo "But it supports 8."
- else
- voidflags=3
- echo "Neither does it support 8."
- fi
- fi
- else
- echo "It does not support 2..."
- if $cc -c -DTRY=13 try.c >/dev/null 2>&1 ; then
- voidflags=13
- echo "But it supports 4 and 8."
- else
- if $cc -c -DTRY=5 try.c >/dev/null 2>&1 ; then
- voidflags=5
- echo "And it supports 4 but has not heard about 8."
- else
- echo "However it supports 8 but not 4."
- fi
- fi
- fi
- else
- echo "There is no support at all for void."
- voidflags=0
- fi
- fi
-esac
-dflt="$voidflags";
-rp="Your void support flags add up to what?"
-. ./myread
-voidflags="$ans"
-$rm -f try.* .out
-
: determine compiler compiler
case "$yacc" in
'')
@@ -5290,18 +6791,15 @@ case "$yacc" in
dflt="$yacc";;
esac
echo " "
-rp="yacc"
+comp='yacc'
if $test -f "$byacc"; then
dflt="$byacc"
- rp="byacc or $rp"
+ comp="byacc or $comp"
fi
if $test -f "$bison"; then
- rp="$rp or bison -y"
+ comp="$comp or bison -y"
fi
-$cat <<EOM
-$package no longer requires a compiler compiler, so the following is optional.
-EOM
-rp="Which compiler compiler ($rp) shall I use?"
+rp="Which compiler compiler ($comp) shall I use?"
. ./myread
yacc="$ans"
case "$yacc" in
@@ -5373,94 +6871,66 @@ eval $setvar
set grp.h i_grp
eval $inhdr
+: see if this is a math.h system
+set math.h i_math
+eval $inhdr
+
: see if memory.h is available.
-set memory.h i_memory
+val=''
+set memory.h val
eval $inhdr
+
: See if it conflicts with string.h
-case "$i_memory" in
-define)
- case "$strings" in
- '') ;;
- *) $cppstdin $cppflags $cppminus < $strings > mem.h
- if $contains 'memcpy' mem.h >/dev/null 2>&1; then
- echo "We won't be including <memory.h>"
- i_memory="$undef"
- fi
- rm -f mem.h
- ;;
- esac
+case "$val" in
+$define)
+ case "$strings" in
+ '') ;;
+ *)
+ $cppstdin $cppflags $cppminus < $strings > mem.h
+ if $contains 'memcpy' mem.h >/dev/null 2>&1; then
+ echo " "
+ echo "We won't be including <memory.h>."
+ val="$undef"
+ fi
+ $rm -f mem.h
+ ;;
+ esac
esac
-: see if there are directory access routines out there
-echo " "
-if $test `./findhdr ndir.h` && \
- ( $test -r /usr/lib/libndir.a || $test -r /usr/local/lib/libndir.a ); then
- echo "Ndir library found." >&4
- if $test -r /usr/lib/libndir.a; then
- ndirlib='-lndir'
- else
- ndirlib="/usr/local/lib/libndir.a"
- fi
- i_ndir="$define"
- d_usendir="$undef"
- ndirc=''
- ndiro=''
-else
- ndirlib=''
- i_ndir="$undef"
- if set readdir val -f; eval $csym; $val; then
- echo "No ndir library found, but you have readdir() so we'll use that." >&4
- d_usendir="$undef"
- ndirc=''
- ndiro=''
- else
- echo "No ndir library found--using ./ndir.c." >&4
- d_usendir="$define"
- ndirc='ndir.c'
- ndiro='ndir.o'
- fi
-fi
+set i_memory
+eval $setvar
: see if net/errno.h is available
-set net/errno.h i_neterrno
+val=''
+set net/errno.h val
eval $inhdr
+
: Unfortunately, it causes problems on some systems. Arrgh.
-case '$i_neterrno' in
-'define') echo "<net/errno.h> found."
- cat > try.c <<'EOM'
+case "$val" in
+$define)
+ cat > try.c <<'EOM'
#include <stdio.h>
#include <errno.h>
#include <net/errno.h>
int func()
{
-int x;
-x = ENOTSOCK;
-return x;
+ return ENOTSOCK;
}
EOM
- if $cc $ccflags -c try.c >/dev/null 2>&1; then
- i_neterrno="$define"
- else
- echo "But it causes problems, so we won't include it"
- i_neterrno="$undef"
- fi
- $rm -f try.* try
- ;;
+ if $cc $ccflags -c try.c >/dev/null 2>&1; then
+ echo "We'll be including <net/errno.h>." >&4
+ else
+ echo "We won't be including <net/errno.h>." >&4
+ val="$undef"
+ fi
+ $rm -f try.* try
+ ;;
esac
-: see if stdarg is available
-set stdarg.h i_stdarg
-eval $inhdr
-
-: see if stddef is available
-set stddef.h i_stddef
-eval $inhdr
-
-: see if this is an sysdir system
-set sys/dir.h i_sysdir
-eval $inhdr
+set i_neterrno
+eval $setvar
: get C preprocessor symbols handy
echo " "
-echo $attrlist | $tr ' ' '\012' >Cppsym.know
+echo $al | $tr ' ' '\012' >Cppsym.know
$cat <<EOSS >Cppsym
$startsh
case "\$1" in
@@ -5507,7 +6977,7 @@ EOSS
chmod +x Cppsym
$eunicefix Cppsym
echo "Your C preprocessor defines the following symbols:"
-Cppsym -l $attrlist >Cppsym.true
+Cppsym -l $al >Cppsym.true
$cat Cppsym.true
: see if this is a termio system
@@ -5565,130 +7035,23 @@ set i_termio; eval $setvar
val=$val2; set i_sgtty; eval $setvar
val=$val3; set i_termios; eval $setvar
-: see if ioctl defs are in sgtty/termio or sys/ioctl
+: see if stdarg is available
echo " "
-if $test `./findhdr sys/ioctl.h`; then
- val="$define"
- echo "<sys/ioctl.h> found." >&4
+if $test `./findhdr stdarg.h`; then
+ echo "<stdarg.h> found." >&4
+ valstd="$define"
else
- val="$undef"
- $test $i_termio = "$define" && xxx="termio.h"
- $test $i_termios = "$define" && xxx="termios.h"
- $test $i_sgtty = "$define" && xxx="sgtty.h"
-echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
+ echo "<stdarg.h> NOT found." >&4
+ valstd="$undef"
fi
-set i_sysioctl
-eval $setvar
-: see if this is an sysndir system
-set sys/ndir.h i_sysndir
-eval $inhdr
-
-: see if sys/select.h has to be included
-set sys/select.h i_sysselct
-eval $inhdr
-
-: see if we should include time.h, sys/time.h, or both
-echo " "
-echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
-$echo $n "I'm now running the test program...$c"
-$cat >try.c <<'EOCP'
-#include <sys/types.h>
-#ifdef I_TIME
-#include <time.h>
-#endif
-#ifdef I_SYSTIME
-#ifdef SYSTIMEKERNEL
-#define KERNEL
-#endif
-#include <sys/time.h>
-#endif
-#ifdef I_SYSSELECT
-#include <sys/select.h>
-#endif
-main()
-{
- struct tm foo;
-#ifdef S_TIMEVAL
- struct timeval bar;
-#endif
-#ifdef S_TIMEZONE
- struct timezone tzp;
-#endif
- if (foo.tm_sec == foo.tm_sec)
- exit(0);
-#ifdef S_TIMEVAL
- if (bar.tv_sec == bar.tv_sec)
- exit(0);
-#endif
- exit(1);
-}
-EOCP
-flags=''
-s_timezone=''
-sysselect=''
-for s_timeval in '-DS_TIMEVAL' ''; do
-for i_systimek in '' '-DSYSTIMEKERNEL'; do
-for i_time in '' '-DI_TIME'; do
-for i_systime in '-DI_SYSTIME' ''; do
- case "$flags" in
- '') $echo $n ".$c"
- if $cc $ccflags \
- $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone \
- try.c -o try >/dev/null 2>&1 ; then
- set X $i_time $i_systime $i_systimek $sysselect $s_timeval
- shift
- flags="$*"
- echo " "
- $echo $n "Succeeded with $flags$c"
- fi
- ;;
- esac
-done
-done
-done
-done
-timeincl=''
-echo " "
-case "$flags" in
-*SYSTIMEKERNEL*) i_systimek="$define"
- timeincl=`./findhdr sys/time.h`
- echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
-*) i_systimek="$undef";;
-esac
-case "$flags" in
-*I_TIME*) i_time="$define"
- timeincl=`./findhdr time.h`" $timeincl"
- echo "We'll include <time.h>." >&4;;
-*) i_time="$undef";;
-esac
-case "$flags" in
-*I_SYSTIME*) i_systime="$define"
- timeincl=`./findhdr sys/time.h`" $timeincl"
- echo "We'll include <sys/time.h>." >&4;;
-*) i_systime="$undef";;
-esac
-$rm -f try.c try
-
-: see if this is a unistd.h system
-set unistd.h i_unistd
-eval $inhdr
-
-: see if this is an utime system
-set utime.h i_utime
-eval $inhdr
-
-: see if this is a varargs system
+: see if varags is available
echo " "
if $test `./findhdr varargs.h`; then
- val="$define"
echo "<varargs.h> found." >&4
else
- val="$undef"
echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
fi
-set i_varargs
-eval $setvar
: set up the varargs testing programs
$cat > varargs.c <<EOP
@@ -5732,37 +7095,95 @@ chmod +x varargs
: now check which varargs header should be included
echo " "
i_varhdr=''
-case "$i_stdarg" in
+case "$valstd" in
"$define")
if `./varargs I_STDARG`; then
- i_varhdr='stdarg.h'
- i_varargs="$undef"
+ val='stdarg.h'
elif `./varargs I_VARARGS`; then
- i_varhdr='varargs.h'
- i_stdarg="$undef"
+ val='varargs.h'
fi
;;
*)
if `./varargs I_VARARGS`; then
- i_varhdr='varargs.h'
+ val='varargs.h'
fi
;;
esac
-case "$i_varhdr" in
+case "$val" in
'')
echo "I could not find the definition for va_dcl... You have problems..." >&4
+ val="$undef"; set i_stdarg; eval $setvar
+ val="$undef"; set i_varargs; eval $setvar
;;
-*) echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
+*)
+ set i_varhdr
+ eval $setvar
+ case "$i_varhdr" in
+ stdarg.h)
+ val="$define"; set i_stdarg; eval $setvar
+ val="$undef"; set i_varargs; eval $setvar
+ ;;
+ varargs.h)
+ val="$undef"; set i_stdarg; eval $setvar
+ val="$define"; set i_varargs; eval $setvar
+ ;;
+ esac
+ echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
esac
$rm -f varargs*
+: see if stddef is available
+set stddef.h i_stddef
+eval $inhdr
+
+: see if stdlib is available
+set stdlib.h i_stdlib
+eval $inhdr
+
+: see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl
+set sys/filio.h i_sysfilio
+eval $inhdr
+echo " "
+if $test `./findhdr sys/ioctl.h`; then
+ val="$define"
+ echo '<sys/ioctl.h> found.' >&4
+else
+ val="$undef"
+ if $test $i_sysfilio = "$define"; then
+ echo '<sys/ioctl.h> NOT found.' >&4
+ else
+ $test $i_sgtty = "$define" && xxx="sgtty.h"
+ $test $i_termio = "$define" && xxx="termio.h"
+ $test $i_termios = "$define" && xxx="termios.h"
+echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
+ fi
+fi
+set i_sysioctl
+eval $setvar
+
+: see if this is a sys/param system
+set sys/param.h i_sysparam
+eval $inhdr
+
+: see if this is a unistd.h system
+set unistd.h i_unistd
+eval $inhdr
+
+: see if this is an utime system
+set utime.h i_utime
+eval $inhdr
+
: see if this is a vfork system
case "$d_vfork" in
-define) set vfork.h i_vfork
+"$define")
+ set vfork.h i_vfork
eval $inhdr
;;
-*) i_vfork="$undef";;
+*)
+ i_vfork="$undef"
+ ;;
esac
+
: end of configuration questions
echo " "
echo "End of configuration questions."
@@ -5803,7 +7224,11 @@ $startsh
# Configured by: $cf_by
# Target system: $myuname
+dynamic_ext='$dynamic_ext'
extensions='$extensions'
+known_extensions='$known_extensions'
+static_ext='$static_ext'
+useposix='$useposix'
d_eunice='$d_eunice'
d_xenix='$d_xenix'
eunicefix='$eunicefix'
@@ -5872,6 +7297,7 @@ uniq='$uniq'
uuname='$uuname'
vi='$vi'
zcat='$zcat'
+libswanted='$libswanted'
hint='$hint'
myuname='$myuname'
osname='$osname'
@@ -5887,7 +7313,12 @@ Revision='$Revision'
Source='$Source'
State='$State'
afs='$afs'
-memalignbytes='$memalignbytes'
+alignbytes='$alignbytes'
+archlib='$archlib'
+archlibexp='$archlibexp'
+archname='$archname'
+d_archlib='$d_archlib'
+installarchlib='$installarchlib'
bin='$bin'
binexp='$binexp'
installbin='$installbin'
@@ -5902,11 +7333,14 @@ optimize='$optimize'
cf_by='$cf_by'
cf_time='$cf_time'
contains='$contains'
+cpp_stuff='$cpp_stuff'
cpplast='$cpplast'
cppminus='$cppminus'
cpprun='$cpprun'
cppstdin='$cppstdin'
d_access='$d_access'
+d_alarm='$d_alarm'
+d_attrib='$d_attrib'
d_bcmp='$d_bcmp'
d_bcopy='$d_bcopy'
d_bzero='$d_bzero'
@@ -5914,48 +7348,86 @@ d_casti32='$d_casti32'
castflags='$castflags'
d_castneg='$d_castneg'
d_charsprf='$d_charsprf'
+d_chown='$d_chown'
+d_chroot='$d_chroot'
d_chsize='$d_chsize'
+d_closedir='$d_closedir'
+d_void_closedir='$d_void_closedir'
d_const='$d_const'
cryptlib='$cryptlib'
d_crypt='$d_crypt'
d_csh='$d_csh'
+d_cuserid='$d_cuserid'
+d_dbl_dig='$d_dbl_dig'
+d_difftime='$d_difftime'
+d_dlerror='$d_dlerror'
+d_dlopen='$d_dlopen'
+d_dlsymun='$d_dlsymun'
d_dosuid='$d_dosuid'
+d_suidsafe='$d_suidsafe'
+d_drem='$d_drem'
d_dup2='$d_dup2'
d_fchmod='$d_fchmod'
d_fchown='$d_fchown'
d_fcntl='$d_fcntl'
+d_fd_macros='$d_fd_macros'
+d_fd_set='$d_fd_set'
+d_fds_bits='$d_fds_bits'
+d_fgetpos='$d_fgetpos'
d_flexfnam='$d_flexfnam'
d_flock='$d_flock'
+d_fmod='$d_fmod'
+d_fork='$d_fork'
+d_fsetpos='$d_fsetpos'
+d_Gconvert='$d_Gconvert'
d_getgrps='$d_getgrps'
d_gethent='$d_gethent'
aphostname='$aphostname'
d_gethname='$d_gethname'
d_phostname='$d_phostname'
d_uname='$d_uname'
+d_getlogin='$d_getlogin'
d_getpgrp2='$d_getpgrp2'
d_getpgrp='$d_getpgrp'
+d_getppid='$d_getppid'
d_getprior='$d_getprior'
+d_group='$d_group'
d_htonl='$d_htonl'
d_isascii='$d_isascii'
d_killpg='$d_killpg'
d_link='$d_link'
+d_linuxstd='$d_linuxstd'
+d_locconv='$d_locconv'
+d_lockf='$d_lockf'
d_lstat='$d_lstat'
+d_mblen='$d_mblen'
+d_mbstowcs='$d_mbstowcs'
+d_mbtowc='$d_mbtowc'
d_memcmp='$d_memcmp'
d_memcpy='$d_memcpy'
d_memmove='$d_memmove'
d_memset='$d_memset'
d_mkdir='$d_mkdir'
+d_mkfifo='$d_mkfifo'
+d_mktime='$d_mktime'
d_msg='$d_msg'
d_msgctl='$d_msgctl'
d_msgget='$d_msgget'
d_msgrcv='$d_msgrcv'
d_msgsnd='$d_msgsnd'
+d_nice='$d_nice'
d_open3='$d_open3'
+d_passwd='$d_passwd'
+d_fpathconf='$d_fpathconf'
+d_pathconf='$d_pathconf'
+d_pause='$d_pause'
+d_pipe='$d_pipe'
d_portable='$d_portable'
d_readdir='$d_readdir'
d_rewinddir='$d_rewinddir'
d_seekdir='$d_seekdir'
d_telldir='$d_telldir'
+d_readlink='$d_readlink'
d_rename='$d_rename'
d_rmdir='$d_rmdir'
d_safebcpy='$d_safebcpy'
@@ -5967,6 +7439,7 @@ d_semget='$d_semget'
d_semop='$d_semop'
d_setegid='$d_setegid'
d_seteuid='$d_seteuid'
+d_setlinebuf='$d_setlinebuf'
d_setlocale='$d_setlocale'
d_setpgid='$d_setpgid'
d_setpgrp2='$d_setpgrp2'
@@ -5982,7 +7455,8 @@ d_setruid='$d_setruid'
d_setsid='$d_setsid'
d_shm='$d_shm'
d_shmat='$d_shmat'
-d_voidshmat='$d_voidshmat'
+d_shmatprototype='$d_shmatprototype'
+shmattype='$shmattype'
d_shmctl='$d_shmctl'
d_shmdt='$d_shmdt'
d_shmget='$d_shmget'
@@ -5995,25 +7469,28 @@ d_statblks='$d_statblks'
d_stdstdio='$d_stdstdio'
d_index='$d_index'
d_strchr='$d_strchr'
+d_strcoll='$d_strcoll'
d_strctcpy='$d_strctcpy'
d_strerrm='$d_strerrm'
d_strerror='$d_strerror'
d_sysernlst='$d_sysernlst'
d_syserrlst='$d_syserrlst'
+d_strxfrm='$d_strxfrm'
d_symlink='$d_symlink'
d_syscall='$d_syscall'
+d_sysconf='$d_sysconf'
d_system='$d_system'
+d_tcgetpgrp='$d_tcgetpgrp'
+d_tcsetpgrp='$d_tcsetpgrp'
d_time='$d_time'
timetype='$timetype'
clocktype='$clocktype'
d_times='$d_times'
d_truncate='$d_truncate'
-d_usendir='$d_usendir'
-i_ndir='$i_ndir'
-ndirc='$ndirc'
-ndirlib='$ndirlib'
-ndiro='$ndiro'
+d_tzname='$d_tzname'
+d_umask='$d_umask'
d_vfork='$d_vfork'
+usevfork='$usevfork'
d_voidsig='$d_voidsig'
signal_t='$signal_t'
d_volatile='$d_volatile'
@@ -6021,25 +7498,33 @@ d_charvspr='$d_charvspr'
d_vprintf='$d_vprintf'
d_wait4='$d_wait4'
d_waitpid='$d_waitpid'
+d_wcstombs='$d_wcstombs'
+d_wctomb='$d_wctomb'
+dlext='$dlext'
cccdlflags='$cccdlflags'
ccdlflags='$ccdlflags'
-dldir='$dldir'
-dlobj='$dlobj'
dlsrc='$dlsrc'
lddlflags='$lddlflags'
-shlibsuffix='$shlibsuffix'
usedl='$usedl'
+fpostype='$fpostype'
gidtype='$gidtype'
groupstype='$groupstype'
h_fcntl='$h_fcntl'
h_sysfile='$h_sysfile'
+i_db='$i_db'
i_dbm='$i_dbm'
d_dirnamlen='$d_dirnamlen'
+direntrytype='$direntrytype'
i_dirent='$i_dirent'
+i_dld='$i_dld'
i_dlfcn='$i_dlfcn'
i_fcntl='$i_fcntl'
+i_float='$i_float'
i_gdbm='$i_gdbm'
i_grp='$i_grp'
+i_limits='$i_limits'
+i_malloc='$i_malloc'
+i_math='$i_math'
i_memory='$i_memory'
i_ndbm='$i_ndbm'
i_neterrno='$i_neterrno'
@@ -6052,19 +7537,21 @@ d_pwcomment='$d_pwcomment'
d_pwexpire='$d_pwexpire'
d_pwquota='$d_pwquota'
i_pwd='$i_pwd'
-i_sdbm='$i_sdbm'
-i_stdarg='$i_stdarg'
i_stddef='$i_stddef'
+i_stdlib='$i_stdlib'
i_string='$i_string'
strings='$strings'
i_sysdir='$i_sysdir'
i_sysfile='$i_sysfile'
d_voidtty='$d_voidtty'
i_bsdioctl='$i_bsdioctl'
+i_sysfilio='$i_sysfilio'
i_sysioctl='$i_sysioctl'
i_syssockio='$i_syssockio'
i_sysndir='$i_sysndir'
+i_sysparam='$i_sysparam'
i_sysselct='$i_sysselct'
+i_systimes='$i_systimes'
i_sgtty='$i_sgtty'
i_termio='$i_termio'
i_termios='$i_termios'
@@ -6074,13 +7561,13 @@ i_time='$i_time'
timeincl='$timeincl'
i_unistd='$i_unistd'
i_utime='$i_utime'
+i_stdarg='$i_stdarg'
i_varargs='$i_varargs'
i_varhdr='$i_varhdr'
i_vfork='$i_vfork'
intsize='$intsize'
-lib='$lib'
-libexp='$libexp'
libc='$libc'
+glibpth='$glibpth'
libpth='$libpth'
plibpth='$plibpth'
xlibpth='$xlibpth'
@@ -6102,6 +7589,7 @@ medium='$medium'
models='$models'
small='$small'
split='$split'
+modetype='$modetype'
mydomain='$mydomain'
myhostname='$myhostname'
phostname='$phostname'
@@ -6114,19 +7602,23 @@ orderlib='$orderlib'
ranlib='$ranlib'
package='$package'
spackage='$spackage'
+prefix='$prefix'
installprivlib='$installprivlib'
privlib='$privlib'
privlibexp='$privlibexp'
prototype='$prototype'
-ptrsize='$ptrsize'
randbits='$randbits'
installscript='$installscript'
scriptdir='$scriptdir'
scriptdirexp='$scriptdirexp'
+selecttype='$selecttype'
sig_name='$sig_name'
+sizetype='$sizetype'
+so='$so'
sharpbang='$sharpbang'
shsharp='$shsharp'
spitshell='$spitshell'
+ssizetype='$ssizetype'
startsh='$startsh'
stdchar='$stdchar'
sysman='$sysman'
@@ -6238,4 +7730,6 @@ fi
$rm -f kit*isdone ark*isdone
$rm -rf UU
+
: End of Configure
+