3 # If these # comments don't work, trim them. Don't worry about any other
4 # shell scripts, Configure will trim # comments from them for you.
6 # (If you are trying to port this package to a machine without sh,
7 # I would suggest you have a look at the prototypical config_h.SH file
8 # and edit it to reflect your system. Some packages may include samples
9 # of config.h for certain machines, so you might look for one of those.)
11 # Yes, you may rip this off to use in other distribution packages. This
12 # script belongs to the public domain and cannot be copyrighted.
14 # (Note: this Configure script was generated automatically. Rather than
15 # working with this copy of Configure, you may wish to get metaconfig.
16 # The dist-3.0 package (which contains metaconfig) was posted in
17 # comp.sources.misc and is available on CPAN under authors/id/RAM so
18 # you may fetch it yourself from your nearest archive site.)
21 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
23 # Generated on Fri Nov 23 21:08:41 EET 2001 [metaconfig 3.0 PL70]
24 # (with additional metaconfig patches by perlbug@perl.org)
29 SCO csh still thinks true is false. Write to SCO today and tell them that next
30 year Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-)
32 (Actually, Configure ought to just patch csh in place. Hmm. Hmmmmm. All
33 we'd have to do is go in and swap the && and || tokens, wherever they are.)
35 [End of diatribe. We now return you to your regularly scheduled programming...]
39 OOPS! You naughty creature! You didn't run Configure with sh!
40 I will attempt to remedy the situation by running sh for you...
44 true || exec sh $0 $argv:q
46 (exit $?0) || cat c2$$
47 (exit $?0) || exec sh $0 $argv:q
50 : compute my invocation name
54 me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null`
59 : Proper separator for the PATH environment variable
61 : On OS/2 this directory should exist if this is not floppy only system :-]
62 if test -d c:/. ; then
63 if test -n "$OS2_SHELL"; then
65 PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
66 OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
67 elif test -n "$DJGPP"; then
68 case "X${MACHTYPE:-nonesuchmach}" in
76 paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
77 paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
78 paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
79 paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
80 paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
81 paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
82 paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
83 paths="$paths /sbin /usr/sbin /usr/libexec"
89 *) test -d $p && PATH=$PATH$p_$p ;;
96 : shall we be using ksh?
102 if (PATH=.; alias -x) >/dev/null 2>&1; then
105 if test -f /hp-ux -a -f /bin/ksh; then
106 needksh='to avoid sh bug in "here document" expansion'
108 if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then
109 if test X`/usr/bin/uname -v` = X4; then
110 avoidksh="to avoid AIX 4's /bin/sh"
114 if test -f /osf_boot -a -f /usr/sbin/setld; then
115 if test X`/usr/bin/uname -s` = XOSF1; then
116 avoidksh="to avoid Digital UNIX' ksh"
118 unset BIN_SH # if this is 'xpg4' sh will start up ksh
121 case "$inksh/$needksh" in
128 case "$inksh/$avoidksh" in
134 case "$inksh/$needksh-$avoidksh-" in
137 (I see you are using the Korn shell. Some ksh's blow up on $me,
138 mainly on older exotic systems. If yours does, try the Bourne shell instead.)
145 echo "(Feeding myself to $newsh $reason.)"
147 Configure|*/Configure) exec $newsh $0 "$@";;
148 *) exec $newsh Configure "$@";;
153 : if needed set CDPATH to a harmless value that is not chatty
154 : avoid bash 2.02 problems with empty CDPATH.
158 *bash*) CDPATH='.' ;;
163 : Configure runs within the UU subdirectory
164 test -d UU || mkdir UU
493 d_old_pthread_create_joinable=''
494 old_pthread_create_joinable=''
582 d_stdio_ptr_lval_nochange_cnt=''
583 d_stdio_ptr_lval_sets_cnt=''
768 inc_version_list_init=''
787 ignore_versioned_solibs=''
846 d_perl_otherlibdirs=''
860 version_patchlevel_string=''
865 d_nv_preserves_uv_bits=''
964 d_stdio_stream_array=''
965 stdio_stream_array=''
975 ccflags_uselargefiles=''
976 ldflags_uselargefiles=''
977 libswanted_uselargefiles=''
1023 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
1026 : We must find out about Eunice early
1028 if test -f /etc/unixtovms; then
1029 eunicefix=/etc/unixtovms
1031 if test -f /etc/unixtovms.exe; then
1032 eunicefix=/etc/unixtovms.exe
1039 : set useposix=false in your hint file to disable the POSIX extension.
1041 : set useopcode=false in your hint file to disable the Opcode extension.
1043 : Trailing extension. Override this in a hint file, if needed.
1045 : Extra object files, if any, needed on this platform.
1048 : Possible local include directories to search.
1049 : Set locincpth to "" in a hint file to defeat local include searches.
1050 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
1051 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
1053 : no include file wanted by default
1058 : change the next line if compiling for Xenix/286 on Xenix/386
1059 xlibpth='/usr/lib/386 /lib/386'
1060 : Possible local library directories to search.
1061 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
1062 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
1064 : general looking path for locating libraries
1065 glibpth="/lib /usr/lib $xlibpth"
1066 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
1067 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
1068 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
1070 : Private path used by Configure to find libraries. Its value
1071 : is prepended to libpth. This variable takes care of special
1072 : machines, like the mips. Usually, it should be empty.
1075 : default library list
1077 : some systems want to use only the non-versioned libso:s
1078 ignore_versioned_solibs=''
1080 ccflags_uselargefiles=''
1081 ldflags_uselargefiles=''
1082 libswanted_uselargefiles=''
1083 : set usemultiplicity on the Configure command line to enable multiplicity.
1084 : set usesocks on the Configure command line to enable socks.
1085 : set usethreads on the Configure command line to enable threads.
1086 usereentrant='undef'
1087 : full support for void wanted by default
1090 : List of libraries we want.
1091 : If anyone needs -lnet, put it in a hint file.
1092 libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
1093 libswanted="$libswanted dld ld sun m c cposix posix"
1094 libswanted="$libswanted ndir dir crypt sec"
1095 libswanted="$libswanted ucb bsd BSD PW x util"
1096 : We probably want to search /usr/shlib before most other libraries.
1097 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
1098 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
1099 glibpth="/usr/shlib $glibpth"
1100 : Do not use vfork unless overridden by a hint file.
1103 : Find the basic shell for Bourne shell scripts
1107 *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
1110 if test -f "$xxx"; then
1113 : Build up a list and do a single loop so we can 'break' out.
1114 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1115 for xxx in sh bash ksh pdksh ash; do
1117 try="$try ${p}/${xxx}"
1121 if test -f "$xxx"; then
1124 elif test -f "$xxx.exe"; then
1135 $me: Fatal Error: I can't find a Bourne Shell anywhere.
1137 Usually it's in /bin/sh. How did you even get this far?
1138 Please contact me (Perl Maintainers) at perlbug@perl.org and
1139 we'll try to straighten this all out.
1145 : see if sh knows # comments
1146 if `$sh -c '#' >/dev/null 2>&1`; then
1150 test -f $xcat || xcat=/usr/bin/cat
1151 echo "#!$xcat" >sharp
1155 if test -s today; then
1158 echo "#! $xcat" > sharp
1162 if test -s today; then
1170 echo "Your $sh doesn't grok # comments--I will strip them later on."
1173 echo "exec grep -v '^[ ]*#'" >spitshell
1175 $eunicefix spitshell
1176 spitshell=`pwd`/spitshell
1178 echo "I presume that if # doesn't work, #! won't work either!"
1183 : figure out how to guarantee sh startup
1185 '') startsh=${sharpbang}${sh} ;;
1197 : echo "Yup, it does."
1199 echo "Hmm... '$startsh' does not guarantee sh startup..."
1200 echo "You may have to fix up the shell scripts to make sure $sh runs them."
1205 : Save command line options in file UU/cmdline.opt for later use in
1206 : generating config.sh.
1207 cat > cmdline.opt <<EOSH
1208 # Configure command line arguments.
1217 cat >>cmdline.opt <<EOSH
1218 config_arg$argn='$arg'
1220 # Extreme backslashitis: replace each ' by '"'"'
1221 cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
1224 arg_exp=`cat cmdl.opt`
1225 args_exp="$args_exp$args_sep'$arg_exp'"
1226 argn=`expr $argn + 1`
1229 # args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@"
1230 # used by ./hints/os2.sh
1233 : produce awk script to parse command line options
1234 cat >options.awk <<'EOF'
1236 optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
1238 len = length(optstr);
1239 for (i = 1; i <= len; i++) {
1240 c = substr(optstr, i, 1);
1241 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1252 if (substr(str, 1, 1) != "-") {
1253 printf("'%s'\n", str);
1257 for (i = 2; i <= len; i++) {
1258 c = substr(str, i, 1);
1260 printf("-%s\n", substr(str, i));
1266 printf("'%s'\n", substr(str, i + 1));
1279 : process the command line options
1280 set X `for arg in "$@"; do echo "X$arg"; done |
1281 sed -e s/X// | awk -f options.awk`
1286 : set up default values
1296 rm -f optdef.sh posthint.sh
1297 cat >optdef.sh <<EOS
1303 while test $# -gt 0; do
1305 -d) shift; fastread=yes;;
1306 -e) shift; alldone=cont;;
1310 if test -r "$1"; then
1313 echo "$me: cannot read config file $1." >&2
1318 -h) shift; error=true;;
1319 -r) shift; reuseval=true;;
1320 -s) shift; silent=true; realsilent=true;;
1321 -E) shift; alldone=exit;;
1322 -K) shift; knowitall=true;;
1323 -O) shift; override=true;;
1324 -S) shift; silent=true; extractsh=true;;
1329 echo "$me: use '-U symbol=', not '-D symbol='." >&2
1330 echo "$me: ignoring -D $1" >&2
1333 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1334 *) echo "$1='define'" >> optdef.sh;;
1341 *=) echo "$1" >> optdef.sh;;
1343 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1344 echo "$me: ignoring -U $1" >&2
1346 *) echo "$1='undef'" >> optdef.sh;;
1357 *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1361 zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
1362 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1368 *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1369 yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1370 zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1371 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1372 *) xxx=`echo $yyy|sed 's!:.*!!'`
1373 yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1379 echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
1381 echo "$yyy=''" >> posthint.sh ;;
1386 echo "$yyy='$zzz'" >> posthint.sh ;;
1388 echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
1390 echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
1395 echo "$yyy=$zzz" >> posthint.sh ;;
1396 *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1400 -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1403 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1411 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1412 [-U symbol] [-U symbol=] [-A command:symbol...]
1413 -d : use defaults for all answers.
1414 -e : go on without questioning past the production of config.sh.
1415 -f : specify an alternate default configuration file.
1416 -h : print this help message and exit (with an error status).
1417 -r : reuse C symbols value if possible (skips costly nm extraction).
1418 -s : silent mode, only echoes questions and essential information.
1419 -D : define symbol to have some value:
1420 -D symbol symbol gets the value 'define'
1421 -D symbol=value symbol gets the value 'value'
1422 -E : stop at the end of questions, after having produced config.sh.
1423 -K : do not use unless you know what you are doing.
1424 -O : let -D and -U override definitions from loaded configuration file.
1425 -S : perform variable substitutions on all .SH files (can mix with -f)
1426 -U : undefine symbol:
1427 -U symbol symbol gets the value 'undef'
1428 -U symbol= symbol gets completely empty
1429 -A : manipulate symbol after the platform specific hints have been applied:
1430 -A symbol=value append " "value to symbol
1431 -A append:symbol=value append value to symbol
1432 -A define:symbol=value define symbol to have value
1433 -A clear:symbol define symbol to be ''
1434 -A define:symbol define symbol to be 'define'
1435 -A eval:symbol=value define symbol to be eval of value
1436 -A prepend:symbol=value prepend value to symbol
1437 -A undef:symbol define symbol to be 'undef'
1438 -A undef:symbol= define symbol to be ''
1439 -V : print version number and exit (with a zero status).
1446 case "$fastread$alldone" in
1449 case "$extractsh" in
1452 if test ! -t 0; then
1453 echo "Say 'sh Configure', not 'sh <Configure'"
1463 true) exec 1>/dev/null;;
1466 : run the defines and the undefines, if any, but leave the file out there...
1469 : create the posthint manipulation script and leave the file out there...
1474 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1475 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1476 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1477 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1478 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1481 : Some greps do not return status, grrr.
1482 echo "grimblepritz" >grimble
1483 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1485 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1491 : the following should work in any shell
1495 echo "AGH! Grep doesn't return a status. Attempting remedial action."
1496 cat >contains <<'EOSS'
1497 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1502 : Find the path to the source tree
1505 */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1509 *) src=`cd ../$src && pwd` ;;
1522 if test -f $rsrc/Configure && \
1523 $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1525 : found it, so we are ok.
1528 for src in . .. ../.. ../../.. ../../../..; do
1529 if test -f ../$src/Configure && \
1530 $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1541 Sorry, I can't seem to locate the source dir for $package. Please start
1542 Configure with an explicit path -- i.e. /some/path/Configure.
1550 echo "Sources for $package found in \"$src\"." >&4
1554 : script used to extract .SH files with variable substitutions
1555 cat >extract <<'EOS'
1557 echo "Doing variable substitutions on .SH files..."
1558 if test -f MANIFEST; then
1559 set x `awk '{print $1}' < MANIFEST | grep '\.SH$'`
1561 echo "(Looking for .SH files under the source directory.)"
1562 set x `(cd $src; find . -name "*.SH" -print)`
1566 0) set x `(cd $src; echo *.SH)`; shift;;
1568 if test ! -f $src/$1; then
1574 while test $name; do
1575 if test ! -d "$name"; then
1576 create="$name $create";
1577 name=`echo $name | sed -e "s|^[^/]*$||"`;
1578 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1583 for file in $create; do
1592 dir=`expr X$file : 'X\(.*\)/'`
1593 file=`expr X$file : 'X.*/\(.*\)'`
1594 (cd $dir && . ./$file)
1604 dir=`expr X$file : 'X\(.*\)/'`
1605 file=`expr X$file : 'X.*/\(.*\)'`
1606 (set x $dir; shift; eval $mkdir_p)
1616 if test -f $src/config_h.SH; then
1617 if test ! -f config.h; then
1618 : oops, they left it out of MANIFEST, probably, so do it anyway.
1624 : extract files and exit if asked to do so
1625 case "$extractsh" in
1627 case "$realsilent" in
1631 case "$config_sh" in
1632 '') config_sh='config.sh';;
1635 echo "Fetching answers from $config_sh..."
1638 test "$override" && . ./optdef.sh
1642 echo "Extraction done."
1647 : Eunice requires " " instead of "", can you believe it
1650 echo "Beginning of configuration questions for $package."
1652 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1654 : first determine how to suppress newline on echo command
1656 echo "Checking echo to see how to suppress newlines..."
1657 (echo "hi there\c" ; echo " ") >.echotmp
1658 if $contains c .echotmp >/dev/null 2>&1 ; then
1669 echo $n "The star should be here-->$c"
1673 : Now test for existence of everything in MANIFEST
1675 if test -f $rsrc/MANIFEST; then
1676 echo "First let's make sure your kit is complete. Checking..." >&4
1677 awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1680 for filelist in x??; do
1681 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1683 if test -s missing; then
1687 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1689 You have the option of continuing the configuration process, despite the
1690 distinct possibility that your kit is damaged, by typing 'y'es. If you
1691 do, don't blame me if something goes wrong. I advise you to type 'n'o
1692 and contact the author (perlbug@perl.org).
1695 echo $n "Continue? [n] $c" >&4
1699 echo "Continuing..." >&4
1703 echo "ABORTING..." >&4
1708 echo "Looks good..."
1711 echo "There is no MANIFEST file. I hope your kit is complete !"
1716 : Find the appropriate value for a newline for tr
1717 if test -n "$DJGPP"; then
1720 if test X"$trnl" = X; then
1721 case "`echo foo|tr '\n' x 2>/dev/null`" in
1725 if test X"$trnl" = X; then
1726 case "`echo foo|tr '\012' x 2>/dev/null`" in
1727 foox) trnl='\012' ;;
1730 if test X"$trnl" = X; then
1733 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1739 : compute the number of columns on the terminal for proper question formatting
1744 : set up the echo used in my read
1745 myecho="case \"\$xxxm\" in
1746 '') echo $n \"\$rp $c\" >&4;;
1748 '') echo $n \"[\$xxxm] $c\";;
1750 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1752 echo $n \"[\$xxxm] $c\" >&4
1754 echo $n \"\$rp [\$xxxm] $c\" >&4
1760 : now set up to do reads with possible shell escape and default assignment
1766 case "\$fastread" in
1767 yes) case "\$dflt" in
1770 case "\$silent-\$rp" in
1775 *) case "\$silent" in
1776 true) case "\$rp" in
1781 while expr "X\$ans" : "X!" >/dev/null; do
1785 aok=''; eval "ans=\\"\$answ\\"" && aok=y
1793 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1802 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1807 echo "(OK, I'll run with -d after this question.)" >&4
1810 echo "*** Sorry, \$1 not supported yet." >&4
1820 echo "*** Substitution done -- please confirm."
1822 ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1827 echo "*** Error -- try again."
1834 case "\$ans\$xxxm\$nostick" in
1846 : create .config dir to save info across Configure sessions
1847 test -d ../.config || mkdir ../.config
1848 cat >../.config/README <<EOF
1849 This directory created by Configure to save information that should
1850 persist across sessions for $package.
1852 You may safely delete it if you wish.
1855 xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
1857 $define|true|[yY]*) ;;
1858 *) case "$xversion" in
1861 *** WHOA THERE!!! ***
1863 This is an UNSTABLE DEVELOPMENT release.
1864 The version of this $package distribution is $xversion, that is, odd,
1865 (as opposed to even) and that signifies a development release.
1866 If you want a maintenance release, you want an even-numbered version.
1868 Do ***NOT*** install this into production use.
1869 Data corruption and crashes are possible.
1871 It is most seriously suggested that you do not continue any further
1872 unless you want to help in developing and debugging Perl.
1874 If you *still* want to build perl, you can answer 'y' now,
1875 or pass -Dusedevel to Configure.
1878 rp='Do you really want to continue?'
1882 [yY]) echo >&4 "Okay, continuing."
1883 usedevel="$define" ;;
1884 *) echo >&4 "Okay, bye."
1894 case "$versiononly" in
1895 '') versiononly="$define" ;;
1897 case "$installusrbinperl" in
1898 '') installusrbinperl="$undef" ;;
1903 : general instructions
1906 user=`(logname) 2>/dev/null`
1908 '') user=`whoami 2>&1`;;
1910 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1913 rp='Would you like to see the instructions?'
1924 This installation shell script will examine your system and ask you questions
1925 to determine how the perl5 package should be installed. If you get
1926 stuck on a question, you may use a ! shell escape to start a subshell or
1927 execute a command. Many of the questions will have default answers in square
1928 brackets; typing carriage return will give you the default.
1930 On some of the questions which ask for file or directory names you are allowed
1931 to use the ~name construct to specify the login directory belonging to "name",
1932 even if you don't have a shell which knows about that. Questions where this is
1933 allowed will be marked "(~name ok)".
1937 dflt='Type carriage return to continue'
1941 The prompter used in this script allows you to use shell variables and
1942 backticks in your answers. You may use $1, $2, etc... to refer to the words
1943 in the default answer, as if the default line was a set of arguments given to a
1944 script shell. This means you may also use $* to repeat the whole default line,
1945 so you do not have to re-type everything to add something to the default.
1947 Everytime there is a substitution, you will have to confirm. If there is an
1948 error (e.g. an unmatched backtick), the default answer will remain unchanged
1949 and you will be prompted again.
1951 If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1952 the questions and use the computed defaults (or the previous answers if there
1953 was already a config.sh file). Type 'Configure -h' for a list of options.
1954 You may also start interactively and then answer '& -d' at any prompt to turn
1955 on the non-interactive behaviour for the remainder of the execution.
1961 Much effort has been expended to ensure that this shell script will run on any
1962 Unix system. If despite that it blows up on yours, your best bet is to edit
1963 Configure and run it again. If you can't run Configure for some reason,
1964 you'll have to generate a config.sh file by hand. Whatever problems you
1965 have, let me (perlbug@perl.org) know how I blew it.
1967 This installation script affects things in two ways:
1969 1) it may do direct variable substitutions on some of the files included
1971 2) it builds a config.h file for inclusion in C programs. You may edit
1972 any of these files as the need arises after running this script.
1974 If you make a mistake on a question, there is no easy way to back up to it
1975 currently. The easiest thing to do is to edit config.sh and rerun all the SH
1976 files. Configure will offer to let you do this before it runs the SH files.
1979 dflt='Type carriage return to continue'
1981 case "$firsttime" in
1982 true) echo $user >>../.config/instruct;;
1986 : find out where common programs are
1988 echo "Locating common programs..." >&4
2001 if test -d \$dir/\$thing; then
2007 for thisthing in \$dir/\$thing; do
2008 : just loop through to pick last item
2010 if test -f \$thisthing; then
2013 elif test -f \$dir/\$thing.exe; then
2014 if test -n "$DJGPP"; then
2015 echo \$dir/\$thing.exe
2017 : on Eunice apparently
2069 pth=`echo $PATH | sed -e "s/$p_/ /g"`
2070 pth="$pth /lib /usr/lib"
2071 for file in $loclist; do
2075 if test -f "$xxx"; then
2078 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
2079 xxx=`./loc $file $file $pth`
2082 '') xxx=`./loc $file $file $pth`;;
2083 *) xxx=`./loc $xxx $xxx $pth`;;
2089 echo $file is in $xxx.
2092 echo $file is in $xxx.
2095 echo "I don't know where '$file' is, and my life depends on it." >&4
2096 echo "Go find a public domain implementation or fix your PATH setting!" >&4
2102 echo "Don't worry if any of the following aren't found..."
2104 for file in $trylist; do
2108 if test -f "$xxx"; then
2111 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
2112 xxx=`./loc $file $file $pth`
2115 '') xxx=`./loc $file $file $pth`;;
2116 *) xxx=`./loc $xxx $xxx $pth`;;
2122 echo $file is in $xxx.
2125 echo $file is in $xxx.
2128 echo "I don't see $file out there, $say."
2135 echo "Substituting grep for egrep."
2141 echo "Substituting cp for ln."
2147 echo "Hopefully test is built into your sh."
2150 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
2151 echo "Using the test built into your sh."
2159 echo "Hopefully echo is built into your sh."
2164 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
2165 $echo $n "hi there$c" >foo1
2166 echo $n "hi there$c" >foo2
2167 if cmp foo1 foo2 >/dev/null 2>&1; then
2168 echo "They are compatible. In fact, they may be identical."
2175 They are not compatible! You are probably running ksh on a non-USG system.
2176 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
2177 have echo built in and we may have to run some Bourne shell scripts. That
2178 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
2181 $echo $n "The star should be here-->$c"
2191 cat <<'EOSC' >>checkcc
2196 int main(int argc, char *argv[]) {
2200 if $cc -o try $ccflags $ldflags try.c; then
2203 echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
2209 case "`$cc -v -c try.c 2>&1`" in
2212 if $test X"$trygcc" = Xyes; then
2213 if gcc -o try -c try.c; then
2215 echo "You seem to have a working gcc, though." >&4
2216 rp="Would you like to use it?"
2218 if $test -f myread; then
2221 if $test -f UU/myread; then
2224 echo "Cannot find myread, sorry. Aborting." >&2
2229 [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;;
2233 if $test X"$despair" = Xyes; then
2235 You need to find a working C compiler.
2236 Either (purchase and) install the C compiler supplied by your OS vendor,
2237 or for a free C compiler try http://gcc.gnu.org/
2238 I cannot continue any further, aborting.
2248 : determine whether symbolic links are supported
2251 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2252 echo "Symbolic links are supported." >&4
2255 echo "Symbolic links are NOT supported." >&4
2260 : determine whether symbolic links are supported
2264 echo "Checking how to test for symbolic links..." >&4
2266 if $test "X$issymlink" = X; then
2268 '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
2269 *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
2271 if test $? = 0; then
2274 echo "Your builtin 'test -h' may be broken." >&4
2277 *) pth=`echo $PATH | sed -e "s/$p_/ /g"`
2280 if test -f "$p/$test"; then
2289 echo "Trying external '$test -h'." >&4
2290 issymlink="$test -h"
2291 if $test ! -h sym >/dev/null 2>&1; then
2292 echo "External '$test -h' is broken, too." >& 4
2300 if $test "X$issymlink" = X; then
2301 if $test -L sym 2>/dev/null; then
2302 issymlink="$test -L"
2303 echo "The builtin '$test -L' worked." >&4
2306 if $test "X$issymlink" != X; then
2307 echo "You can test for symbolic links with '$issymlink'." >&4
2309 echo "I do not know how you can test for symbolic links." >&4
2313 *) echo "No symbolic links, so not testing for their testing..." >&4
2319 case "$mksymlinks" in
2322 ''|'.') echo "Cannot create symlinks in the original directory." >&4
2325 *) case "$lns:$issymlink" in
2326 *"ln -s:"*"test -"?)
2327 echo "Creating the symbolic links..." >&4
2328 echo "(First creating the subdirectories...)" >&4
2330 awk '{print $1}' $src/MANIFEST | grep / | sed 's:/[^/]*$::' | sort -u | while true; do
2332 test -z "$directory" && break
2336 if test ! -d t/base; then
2337 echo "Failed to create the subdirectories. Aborting." >&4
2340 echo "(Then creating the symlinks...)" >&4
2341 awk '{print $1}' $src/MANIFEST | while true; do
2343 test -z "$filename" && break
2344 if test -f $filename; then
2345 if $issymlink $filename; then
2349 if test -f $filename; then
2350 echo "$filename already exists, not symlinking."
2352 ln -s $src/$filename $filename
2356 if test ! -f t/base/lex.t; then
2357 echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
2362 *) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4
2371 case "$usecrosscompile" in
2373 $echo "Cross-compiling..."
2376 *-*-gcc) # A cross-compiling gcc, probably.
2377 targetarch=`$echo $cc|$sed 's/-gcc$//'`
2379 # leave out ld, choosing it is more complex
2381 ranlib=$targetarch-ranlib
2382 $echo 'extern int foo;' > try.c
2383 set X `$cc -v -E try.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
2385 if $test $# -gt 0; then
2387 incpth="`$echo $incpth|$sed 's/^ //'`"
2388 echo "Guessing incpth '$incpth'." >&4
2390 j="`$echo $i|$sed 's,/include$,/lib,'`"
2391 if $test -d $j; then
2395 libpth="`$echo $libpth|$sed 's/^ //'`"
2396 echo "Guessing libpth '$libpth'." >&4
2401 case "$targetarch" in
2402 '') echo "Targetarch not defined." >&4; croak=y ;;
2403 *) echo "Using targetarch $targetarch." >&4 ;;
2406 '') echo "Incpth not defined." >&4; croak=y ;;
2407 *) echo "Using incpth '$incpth'." >&4 ;;
2410 '') echo "Libpth not defined." >&4; croak=y ;;
2411 *) echo "Using libpth '$libpth'." >&4 ;;
2414 '') for i in $incpth; do
2415 if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
2417 echo "Guessing usrinc $usrinc." >&4
2422 '') echo "Usrinc not defined." >&4; croak=y ;;
2425 *) echo "Using usrinc $usrinc." >&4 ;;
2427 case "$targethost" in
2428 '') echo "Targethost not defined." >&4; croak=y ;;
2429 *) echo "Using targethost $targethost." >&4
2434 y) echo "Cannot continue, aborting." >&4; exit 1 ;;
2437 /*) run=$src/Cross/run
2438 targetmkdir=$src/Cross/mkdir
2440 from=$src/Cross/from
2442 *) pwd=`$test -f ../Configure & cd ..; pwd`
2444 targetmkdir=$pwd/Cross/mkdir
2446 from=$pwd/Cross/from
2449 case "$targetrun" in
2450 '') targetrun=ssh ;;
2455 case "$targetfrom" in
2456 '') targetfrom=scp ;;
2460 from=$from-$targetfrom
2461 case "$targetdir" in
2463 echo "Guessing targetdir $targetdir." >&4
2466 case "$targetuser" in
2468 echo "Guessing targetuser $targetuser." >&4
2471 case "$targetfrom" in
2475 case "$targetrun" in
2487 '') cwd=$targetdir ;;
2491 if $test ! -f \$exe.xok; then
2495 $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
2498 *) echo "Unknown targetrun '$targetrun'" >&4
2502 case "$targetmkdir" in
2504 cat >$targetmkdir <<EOF
2506 $targetrun -l $targetuser $targethost "mkdir -p \$@"
2508 $chmod a+rx $targetmkdir
2510 *) echo "Unknown targetmkdir '$targetmkdir'" >&4
2522 $targetmkdir \`dirname \$f\`
2523 $targetto $q \$f $targetuser@$targethost:\$f || exit 1
2526 $targetmkdir $targetdir/\`dirname \$f\`
2527 $targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1
2540 $mkdir -p $targetdir/\`dirname \$f\`
2541 $cp \$f $targetdir/\$f || exit 1
2544 $targetmkdir $targetdir/\`dirname \$f\`
2545 $cp \$f $targetdir/\$f || exit 1
2552 *) echo "Unknown targetto '$targetto'" >&4
2556 case "$targetfrom" in
2563 $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
2568 cp) cat >$from <<EOF
2573 cp $targetdir/\$f . || exit 1
2578 *) echo "Unknown targetfrom '$targetfrom'" >&4
2582 if $test ! -f $run; then
2583 echo "Target 'run' script '$run' not found." >&4
2587 if $test ! -f $to; then
2588 echo "Target 'to' script '$to' not found." >&4
2592 if $test ! -f $from; then
2593 echo "Target 'from' script '$from' not found." >&4
2597 if $test ! -f $run -o ! -f $to -o ! -f $from; then
2601 Using '$run' for remote execution,
2602 and '$from' and '$to'
2603 for remote file transfer.
2609 usecrosscompile='undef'
2614 : see whether [:lower:] and [:upper:] are supported character classes
2616 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2618 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2622 *) # There is a discontinuity in EBCDIC between 'I' and 'J'
2623 # (0xc9 and 0xd1), therefore that is a nice testing point.
2624 if test "X$up" = X -o "X$low" = X; then
2625 case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
2631 if test "X$up" = X -o "X$low" = X; then
2632 case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
2638 if test "X$up" = X -o "X$low" = X; then
2639 case "`echo IJ | od -x 2>/dev/null`" in
2641 echo "Hey, this might be EBCDIC." >&4
2642 if test "X$up" = X -o "X$low" = X; then
2643 case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
2644 ij) up='[A-IJ-RS-Z]'
2649 if test "X$up" = X -o "X$low" = X; then
2650 case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2660 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2662 echo "Using $up and $low to convert case." >&4
2665 echo "I don't know how to translate letters from upper to lower case." >&4
2666 echo "Your tr is not acting any way I know of." >&4
2670 : set up the translation script tr, must be called with ./tr of course
2674 '[A-Z][a-z]') exec $tr '$up' '$low';;
2675 '[a-z][A-Z]') exec $tr '$low' '$up';;
2682 : Try to determine whether config.sh was made on this system
2683 case "$config_sh" in
2685 myuname=`$uname -a 2>/dev/null`
2686 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2687 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2688 # because the A-Z/a-z are not consecutive.
2689 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2690 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2691 newmyuname="$myuname"
2693 case "$knowitall" in
2695 if test -f ../config.sh; then
2696 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2697 eval "`grep myuname= ../config.sh`"
2699 if test "X$myuname" = "X$newmyuname"; then
2707 : Get old answers from old config file if Configure was run on the
2708 : same system, otherwise use the hints.
2711 if test -f config.sh; then
2713 rp="I see a config.sh file. Shall I use it to set the defaults?"
2716 n*|N*) echo "OK, I'll ignore it."
2717 mv config.sh config.sh.old
2718 myuname="$newmyuname"
2720 *) echo "Fetching default answers from your old config.sh file..." >&4
2728 : Older versions did not always set $sh. Catch re-use of such
2738 if test ! -f config.sh; then
2741 First time through, eh? I have some defaults handy for some systems
2742 that need some extra help getting the Configure answers right:
2745 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
2747 : Half the following guesses are probably wrong... If you have better
2748 : tests or hints, please send them to perlbug@perl.org
2749 : The metaconfig authors would also appreciate a copy...
2750 $test -f /irix && osname=irix
2751 $test -f /xenix && osname=sco_xenix
2752 $test -f /dynix && osname=dynix
2753 $test -f /dnix && osname=dnix
2754 $test -f /lynx.os && osname=lynxos
2755 $test -f /unicos && osname=unicos && osvers=`$uname -r`
2756 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2757 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2758 $test -f /bin/mips && /bin/mips && osname=mips
2759 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2760 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2761 $test -d /usr/apollo/bin && osname=apollo
2762 $test -f /etc/saf/_sactab && osname=svr4
2763 $test -d /usr/include/minix && osname=minix
2764 if $test -d /MachTen -o -d /MachTen_Folder; then
2766 if $test -x /sbin/version; then
2767 osvers=`/sbin/version | $awk '{print $2}' |
2768 $sed -e 's/[A-Za-z]$//'`
2769 elif $test -x /usr/etc/version; then
2770 osvers=`/usr/etc/version | $awk '{print $2}' |
2771 $sed -e 's/[A-Za-z]$//'`
2777 $test -f /sys/posix.dll &&
2778 $test -f /usr/bin/what &&
2779 set X `/usr/bin/what /sys/posix.dll` &&
2780 $test "$3" = UWIN &&
2784 if $test -f $uname; then
2792 umips) osname=umips ;;
2795 [23]100) osname=mips ;;
2796 next*) osname=next ;;
2798 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2799 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2802 elif $test -f /etc/kconfig; then
2804 if test "$lns" = "$ln -s"; then
2806 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2808 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2815 if test -n "$DJGPP"; then
2824 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2826 'not found') osvers="$4"."$3" ;;
2827 '<3240'|'<>3240') osvers=3.2.0 ;;
2828 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2829 '=3250'|'>3250') osvers=3.2.5 ;;
2833 bsd386) osname=bsd386
2836 cygwin*) osname=cygwin
2839 *dc.osx) osname=dcosx
2845 domainos) osname=apollo
2851 dynixptx*) osname=dynixptx
2852 osvers=`echo "$4"|sed 's/^v//'`
2854 freebsd) osname=freebsd
2856 genix) osname=genix ;;
2858 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2874 netbsd*) osname=netbsd
2877 news-os) osvers="$3"
2879 4*) osname=newsos4 ;;
2883 next*) osname=next ;;
2884 nonstop-ux) osname=nonstopux ;;
2885 POSIX-BC | posix-bc ) osname=posix-bc
2888 powerux | power_ux | powermax_os | powermaxos | \
2889 powerunix | power_unix) osname=powerux
2895 solaris) osname=solaris
2897 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2904 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2908 titanos) osname=titanos
2917 ultrix) osname=ultrix
2920 osf1|mls+) case "$5" in
2923 osvers=`sizer -v | awk '{print $3}' | tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
2926 *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
2929 hp*) osname=hp_osf1 ;;
2930 mips) osname=mips_osf1 ;;
2933 unixware) osname=svr5
2939 $2) case "$osname" in
2943 : svr4.x or possibly later
2953 if test -f /stand/boot ; then
2954 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2955 if test -n "$INITPROG" -a -f "$INITPROG"; then
2956 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2957 if test -n "$isesix"; then
2965 *) if test -f /etc/systemid; then
2967 set `echo $3 | $sed 's/\./ /g'` $4
2968 if $test -f $src/hints/sco_$1_$2_$3.sh; then
2970 elif $test -f $src/hints/sco_$1_$2.sh; then
2972 elif $test -f $src/hints/sco_$1.sh; then
2977 '') : Still unknown. Probably a generic Sys V.
2986 *) case "$osname" in
2987 '') : Still unknown. Probably a generic BSD.
2995 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2996 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2997 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
3000 $rm -f UU/kernel.what
3001 elif test -d c:/.; then
3008 case "$targetarch" in
3011 osname=`echo $targetarch|sed 's,^[^-]*-,,'`
3016 : Now look for a hint file osname_osvers, unless one has been
3017 : specified already.
3020 file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
3021 : Also try without trailing minor version numbers.
3022 xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
3023 xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
3024 xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
3025 xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
3028 *) case "$osvers" in
3031 *) if $test -f $src/hints/$file.sh ; then
3033 elif $test -f $src/hints/$xfile.sh ; then
3035 elif $test -f $src/hints/$xxfile.sh ; then
3037 elif $test -f $src/hints/$xxxfile.sh ; then
3039 elif $test -f $src/hints/$xxxxfile.sh ; then
3041 elif $test -f "$src/hints/${osname}.sh" ; then
3050 if $test -f Policy.sh ; then
3053 none) dflt="Policy" ;;
3054 *) dflt="Policy $dflt" ;;
3059 dflt=`echo $hintfile | $sed 's/\.sh$//'`
3063 if $test -f Policy.sh ; then
3066 There's also a Policy hint file available, which should make the
3067 site-specific (policy) questions easier to answer.
3074 You may give one or more space-separated answers, or "none" if appropriate.
3075 A well-behaved OS will have no hints, so answering "none" or just "Policy"
3076 is a good thing. DO NOT give a wrong version or a wrong OS.
3080 rp="Which of these apply, if any?"
3083 for file in $tans; do
3084 if $test X$file = XPolicy -a -f Policy.sh; then
3086 $cat Policy.sh >> UU/config.sh
3087 elif $test -f $src/hints/$file.sh; then
3088 . $src/hints/$file.sh
3089 $cat $src/hints/$file.sh >> UU/config.sh
3090 elif $test X"$tans" = X -o X"$tans" = Xnone ; then
3093 : Give one chance to correct a possible typo.
3094 echo "$file.sh does not exist"
3096 rp="hint to use instead?"
3098 for file in $ans; do
3099 if $test -f "$src/hints/$file.sh"; then
3100 . $src/hints/$file.sh
3101 $cat $src/hints/$file.sh >> UU/config.sh
3102 elif $test X$ans = X -o X$ans = Xnone ; then
3105 echo "$file.sh does not exist -- ignored."
3112 : Remember our hint file for later.
3113 if $test -f "$src/hints/$file.sh" ; then
3123 echo "Fetching default answers from $config_sh..." >&4
3127 cp $config_sh config.sh 2>/dev/null
3137 test "$override" && . ./optdef.sh
3139 : Restore computed paths
3140 for file in $loclist $trylist; do
3141 eval $file="\$_$file"
3146 Configure uses the operating system name and version to set some defaults.
3147 The default value is probably right if the name rings a bell. Otherwise,
3148 since spelling matters for me, either accept the default or answer "none"
3155 ''|' '|none) dflt=none ;;
3156 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
3159 *) dflt="$osname" ;;
3161 rp="Operating system name?"
3165 *) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
3171 ''|' '|none) dflt=none ;;
3172 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
3173 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
3175 ''|' ') dflt=none ;;
3180 *) dflt="$osvers" ;;
3182 rp="Operating system version?"
3192 : who configured the system
3193 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
3194 cf_by=`(logname) 2>/dev/null`
3197 cf_by=`(whoami) 2>/dev/null`
3199 "") cf_by=unknown ;;
3203 : set up the script used to warn in case of inconsistency
3210 echo "*** WHOA THERE!!! ***" >&4
3211 echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
3212 rp=" Keep the $hint value?"
3215 y) td=$was; tu=$was;;
3219 : function used to set $1 to $val
3220 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
3222 $define$undef) . ./whoa; eval "$var=\$td";;
3223 $undef$define) . ./whoa; eval "$var=\$tu";;
3224 *) eval "$var=$val";;
3227 case "$usethreads" in
3228 $define|true|[yY]*) dflt='y';;
3233 Perl can be built to take advantage of threads on some systems.
3234 To do so, Configure can be run with -Dusethreads.
3236 Note that threading is a highly experimental feature, and
3237 some known race conditions still remain. If you choose to try
3238 it, be very sure to not actually deploy it for production
3239 purposes. README.threads has more details, and is required
3240 reading if you enable threads.
3242 If this doesn't make any sense to you, just accept the default '$dflt'.
3244 rp='Build a threading Perl?'
3247 y|Y) val="$define" ;;
3253 case "$usethreads" in
3257 As of 5.5.640, Perl has two different internal threading implementations,
3258 the 5.005 version (5005threads) and an interpreter-based version
3259 (ithreads) that has one interpreter per thread. Both are very
3260 experimental. This arrangement exists to help developers work out
3261 which one is better.
3263 If you're a casual user, you probably don't want interpreter-threads
3264 at this time. There doesn't yet exist a way to create threads from
3265 within Perl in this model, i.e., "use Thread;" will NOT work.
3267 : Default to ithreads unless overridden on command line or with
3270 case "$use5005threads" in
3271 $define|true|[yY]*) dflt='n';;
3273 case "$useithreads" in
3274 $undef|false|[nN]*) dflt='n';;
3276 rp='Use interpreter-based ithreads?'
3279 y|Y) val="$define" ;;
3284 : Now set use5005threads to the opposite value.
3285 case "$useithreads" in
3286 $define) val="$undef" ;;
3293 useithreads="$undef"
3294 use5005threads="$undef"
3298 case "$useithreads$use5005threads" in
3302 You cannot have both the ithreads and the 5.005 threads enabled
3303 at the same time. Disabling the 5.005 threads since they are
3304 much less stable than the ithreads.
3307 use5005threads="$undef"
3311 case "$d_oldpthreads" in
3312 '') : Configure tests would be welcome here. For now, assume undef.
3314 *) val="$d_oldpthreads" ;;
3320 case "$usethreads" in
3321 "$define"|true|[yY]*)
3322 : Look for a hint-file generated 'call-back-unit'. If the
3323 : user has specified that a threading perl is to be built,
3324 : we may need to set or change some other defaults.
3325 if $test -f usethreads.cbu; then
3326 echo "Your platform has some specific hints for threaded builds, using them..."
3330 (Your platform doesn't have any specific hints for threaded builds.
3331 Assuming POSIX threads, then.)
3339 Perl can be built so that multiple Perl interpreters can coexist
3340 within the same Perl executable.
3343 case "$useithreads" in
3346 This multiple interpreter support is required for interpreter-based threads.
3350 *) case "$usemultiplicity" in
3351 $define|true|[yY]*) dflt='y';;
3355 echo "If this doesn't make any sense to you, just accept the default '$dflt'."
3356 rp='Build Perl for multiplicity?'
3359 y|Y) val="$define" ;;
3368 case "$usemorebits" in
3369 "$define"|true|[yY]*)
3370 use64bitint="$define"
3371 uselongdouble="$define"
3372 usemorebits="$define"
3374 *) usemorebits="$undef"
3378 : make some quick guesses about what we are up against
3380 $echo $n "Hmm... $c"
3390 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
3391 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
3393 echo "Looks kind of like an OSF/1 system, but we'll see..."
3395 elif test `echo abc | $tr a-z A-Z` = Abc ; then
3396 xxx=`./loc addbib blurfl $pth`
3397 if $test -f $xxx; then
3398 echo "Looks kind of like a USG system with BSD features, but we'll see..."
3402 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
3403 echo "Looks kind of like an extended USG system, but we'll see..."
3405 echo "Looks kind of like a USG system, but we'll see..."
3409 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
3410 echo "Looks kind of like a BSD system, but we'll see..."
3414 echo "Looks kind of like a Version 7 system, but we'll see..."
3417 case "$eunicefix" in
3420 There is, however, a strange, musty smell in the air that reminds me of
3421 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
3425 : it so happens the Eunice I know will not run shell scripts in Unix format
3429 echo "Congratulations. You aren't running Eunice."
3433 : Detect OS2. The p_ variable is set above in the Head.U unit.
3434 : Note that this also -- wrongly -- detects e.g. dos-djgpp, which also uses
3435 : semicolon as a patch separator
3440 I have the feeling something is not exactly right, however...don't tell me...
3441 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
3442 (Or you may be running DOS with DJGPP.)
3447 if test -f /xenix; then
3448 echo "Actually, this looks more like a XENIX system..."
3453 echo "It's not Xenix..."
3458 if test -f /venix; then
3459 echo "Actually, this looks more like a VENIX system..."
3466 echo "Nor is it Venix..."
3469 chmod +x bsd usg v7 osf1 eunice xenix venix os2
3470 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
3477 rp="Use which C compiler?"
3480 : Look for a hint-file generated 'call-back-unit'. Now that the
3481 : user has specified the compiler, we may need to set or change some
3483 if $test -f cc.cbu; then
3489 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3495 printf("%s\n", __VERSION__);
3497 printf("%s\n", "1");
3503 if $cc -o try $ccflags $ldflags try.c; then
3504 gccversion=`$run ./try`
3505 case "$gccversion" in
3506 '') echo "You are not using GNU cc." ;;
3507 *) echo "You are using GNU cc $gccversion."
3513 echo "*** WHOA THERE!!! ***" >&4
3514 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3515 case "$knowitall" in
3517 echo " You'd better start hunting for one and let me know about it." >&4
3523 case "$gccversion" in
3524 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3526 case "$gccversion" in
3527 '') gccosandvers='' ;;
3528 *) gccshortvers=`echo "$gccversion"|sed 's/ .*//'`
3529 gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"`
3531 case "$gccosandvers" in
3532 $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr
3533 $osname$osvers) ;; # looking good
3534 $osname*) cat <<EOM >&4
3536 *** WHOA THERE!!! ***
3538 Your gcc has not been compiled for the exact release of
3539 your operating system ($gccosandvers versus $osname$osvers).
3541 In general it is a good idea to keep gcc synchronized with
3542 the operating system because otherwise serious problems
3543 may ensue when trying to compile software, like Perl.
3545 I'm trying to be optimistic here, though, and will continue.
3546 If later during the configuration and build icky compilation
3547 problems appear (headerfile conflicts being the most common
3548 manifestation), I suggest reinstalling the gcc to match
3549 your operating system release.
3553 *) gccosandvers='' ;; # failed to parse, better be silent
3562 : decide how portable to be. Allow command line overrides.
3563 case "$d_portable" in
3565 *) d_portable="$define" ;;
3568 : set up shell script to do ~ expansion
3574 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3577 if $test -f /bin/csh; then
3578 /bin/csh -f -c "glob \$1"
3583 name=\`$expr x\$1 : '..\([^/]*\)'\`
3584 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3585 if $test ! -d "\$dir"; then
3587 echo "\$me: can't locate home directory for: \$name" >&2
3592 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3608 : now set up to get a file name
3612 cat <<'EOSC' >>getfile
3628 expr $fn : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
3629 fn=`echo $fn | sed 's/(.*)//'`
3635 loc_file=`expr $fn : '.*:\(.*\)'`
3636 fn=`expr $fn : '\(.*\):.*'`
3644 */*) fullpath=true;;
3653 *e*) exp_file=true;;
3656 *p*) nopath_ok=true;;
3661 *d*) type='Directory';;
3662 *l*) type='Locate';;
3667 Locate) what='File';;
3672 case "$d_portable" in
3680 while test "$type"; do
3685 true) rp="$rp (~name ok)";;
3688 if test -f UU/getfile.ok && \
3689 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3708 value=`UU/filexp $ans`
3711 if test "$ans" != "$value"; then
3712 echo "(That expands to $value on this system.)"
3726 /*) value="$ansexp" ;;
3727 [a-zA-Z]:/*) value="$ansexp" ;;
3732 echo "I shall only accept a full path name, as in /bin/ls." >&4
3733 echo "Use a ! shell escape if you wish to check pathnames." >&4
3736 echo "Please give a full path name, starting with slash." >&4
3739 echo "Note that using ~name is ok provided it expands well." >&4
3752 for fp in $gfpth; do
3753 if test "X$fp" = X.; then
3758 if test -f "$pf"; then
3760 elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3762 echo "($value is not a plain file, but that's ok.)"
3765 if test X"$type" = X; then
3772 for fp in $gfpth; do
3773 if test "X$fp" = X.; then
3778 direxp="$fp/$ansexp"
3780 if test -d "$direxp"; then
3788 if test -d "$ansexp"; then
3789 echo "(Looking for $loc_file in directory $value.)"
3790 value="$value/$loc_file"
3791 ansexp="$ansexp/$loc_file"
3793 if test -f "$ansexp"; then
3796 case "$nopath_ok" in
3797 true) case "$value" in
3799 *) echo "Assuming $value will be in people's path."
3815 if test "$fastread" = yes; then
3820 rp="$what $value doesn't exist. Use that name anyway?"
3839 test "X$gfpthkeep" != Xy && gfpth=""
3842 : What should the include directory be ?
3844 $echo $n "Hmm... $c"
3848 if $test -f /bin/mips && /bin/mips; then
3849 echo "Looks like a MIPS system..."
3850 $cat >usr.c <<'EOCP'
3851 #ifdef SYSTYPE_BSD43
3855 if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3856 dflt='/bsd43/usr/include'
3860 mips_type='System V'
3862 $rm -f usr.c usr.out
3863 echo "and you're compiling with the $mips_type compiler and libraries."
3867 echo "Doesn't look like a MIPS system."
3877 case "$xxx_prompt" in
3880 rp='Where are the include files you want to use?'
3888 : see how we invoke the C preprocessor
3890 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3891 cat <<'EOT' >testcpp.c
3897 if test ! -f cppstdin; then
3898 if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3899 # AIX cc -E doesn't show the absolute headerfile
3900 # locations but we'll cheat by using the -M flag.
3901 echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
3903 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3906 echo "Keeping your $hint cppstdin wrapper."
3909 wrapper=`pwd`/cppstdin
3913 if $test "X$cppstdin" != "X" && \
3914 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3915 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3917 echo "You used to use $cppstdin $cppminus so we'll use that again."
3919 '') echo "But let's see if we can live without a wrapper..." ;;
3921 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3922 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3924 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3927 echo "(However, $cpprun $cpplast does not work, let's see...)"
3935 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3942 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3943 $cc -E <testcpp.c >testcpp.out 2>&1; \
3944 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3945 echo "Yup, it does."
3948 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3949 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3950 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3951 echo "Yup, it does."
3954 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3955 $cc -P <testcpp.c >testcpp.out 2>&1; \
3956 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3957 echo "Yipee, that works!"
3960 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3961 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3962 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3963 echo "At long last!"
3966 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3967 $cpp <testcpp.c >testcpp.out 2>&1; \
3968 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3972 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3973 $cpp - <testcpp.c >testcpp.out 2>&1; \
3974 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3975 echo "Hooray, it works! I was beginning to wonder."
3978 elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3979 $wrapper <testcpp.c >testcpp.out 2>&1; \
3980 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3986 rp="No dice. I can't find a C preprocessor. Name one:"
3990 $x_cpp <testcpp.c >testcpp.out 2>&1
3991 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3992 echo "OK, that will do." >&4
3994 echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
4009 echo "Perhaps can we force $cc -E using a wrapper..."
4010 if $wrapper <testcpp.c >testcpp.out 2>&1; \
4011 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
4017 echo "Nope, we'll have to live without it..."
4031 "$wrapper"|'cppstdin') ;;
4032 *) $rm -f $wrapper;;
4034 $rm -f testcpp.c testcpp.out
4036 : Set private lib path
4039 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
4044 '') dlist="$loclibpth $plibpth $glibpth";;
4045 *) dlist="$libpth";;
4048 : Now check and see which directories actually exist, avoiding duplicates
4052 if $test -d $xxx; then
4055 *) libpth="$libpth $xxx";;
4061 Some systems have incompatible or broken versions of libraries. Among
4062 the directories listed in the question below, please remove any you
4063 know not to be holding relevant libraries, and add any that are needed.
4064 Say "none" for none.
4075 rp="Directories to use for library searches?"
4082 : compute shared library extension
4085 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
4095 On some systems, shared libraries may be available. Answer 'none' if
4096 you want to suppress searching of shared libraries for the remainder
4097 of this configuration.
4100 rp='What is the file extension used for shared libraries?'
4104 : Define several unixisms.
4105 : Hints files or command line option can be used to override them.
4106 : The convoluted testing is in case hints files set either the old
4109 '') case "$exe_ext" in
4111 *) _exe="$exe_ext" ;;
4116 '') case "$lib_ext" in
4123 '') case "$obj_ext" in
4130 '') case "$path_sep" in
4141 : Which makefile gets called first. This is used by make depend.
4142 case "$firstmakefile" in
4143 '') firstmakefile='makefile';;
4147 $define|true|[yY]*) dflt='y';;
4152 Perl can be built to use the SOCKS proxy protocol library. To do so,
4153 Configure must be run with -Dusesocks. If you use SOCKS you also need
4154 to use the PerlIO abstraction layer, this will be implicitly selected.
4156 If this doesn't make any sense to you, just accept the default '$dflt'.
4158 rp='Build Perl for SOCKS?'
4161 y|Y) val="$define" ;;
4168 $define|true|[yY]*) useperlio="$define";;
4171 : Looking for optional libraries
4173 echo "Checking for optional libraries..." >&4
4178 case "$libswanted" in
4179 '') libswanted='c_s';;
4182 "$define") libswanted="$libswanted socks5 socks5_sh" ;;
4188 for thisdir in $libpth $xlibpth; do
4189 test -d $thisdir && libspath="$libspath $thisdir"
4191 for thislib in $libswanted; do
4192 for thisdir in $libspath; do
4194 if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
4195 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
4196 $test -f "$xxx" && eval $libscheck
4197 $test -f "$xxx" && libstyle=shared
4199 if test ! -f "$xxx"; then
4200 xxx=$thisdir/lib$thislib.$so
4201 $test -f "$xxx" && eval $libscheck
4202 $test -f "$xxx" && libstyle=shared
4204 if test ! -f "$xxx"; then
4205 xxx=$thisdir/lib$thislib$_a
4206 $test -f "$xxx" && eval $libscheck
4207 $test -f "$xxx" && libstyle=static
4209 if test ! -f "$xxx"; then
4210 xxx=$thisdir/$thislib$_a
4211 $test -f "$xxx" && eval $libscheck
4212 $test -f "$xxx" && libstyle=static
4214 if test ! -f "$xxx"; then
4215 xxx=$thisdir/lib${thislib}_s$_a
4216 $test -f "$xxx" && eval $libscheck
4217 $test -f "$xxx" && libstyle=static
4218 $test -f "$xxx" && thislib=${thislib}_s
4220 if test ! -f "$xxx"; then
4221 xxx=$thisdir/Slib$thislib$_a
4222 $test -f "$xxx" && eval $libscheck
4223 $test -f "$xxx" && libstyle=static
4225 if $test -f "$xxx"; then
4227 shared) echo "Found -l$thislib (shared)." ;;
4228 static) echo "Found -l$thislib." ;;
4229 *) echo "Found -l$thislib ($libstyle)." ;;
4233 *) dflt="$dflt -l$thislib"
4234 libsfound="$libsfound $xxx"
4236 libsfiles="$libsfiles $yyy"
4237 yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
4238 case " $libsdirs " in
4240 *) libsdirs="$libsdirs $yyy" ;;
4247 if $test ! -f "$xxx"; then
4248 echo "No -l$thislib."
4259 ' '|'') dflt='none';;
4264 In order to compile $package on your machine, a number of libraries
4265 are usually needed. Include any other special libraries here as well.
4266 Say "none" for none. The default list is almost always right.
4270 rp="What libraries to use?"
4277 : determine optimization, if desired, or use for debug flag also
4279 ' '|$undef) dflt='none';;
4281 *) dflt="$optimize";;
4285 By default, $package compiles with the -O flag to use the optimizer.
4286 Alternately, you might want to use the symbolic debugger, which uses
4287 the -g flag (on traditional Unix systems). Either flag can be
4288 specified here. To use neither flag, specify the word "none".
4291 rp="What optimizer/debugger flag should be used?"
4295 'none') optimize=" ";;
4299 : We will not override a previous value, but we might want to
4300 : augment a hint file
4302 default|recommended)
4303 case "$gccversion" in
4304 1*) dflt='-fpcc-struct-return' ;;
4307 *-g*) dflt="$dflt -DDEBUGGING";;
4309 case "$gccversion" in
4310 2*) if test -d /etc/conf/kconfig.d &&
4311 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
4317 case "$gccversion" in
4321 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
4322 echo 'int main(void) { return 0; }' > gcctest.c
4323 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
4324 echo "Yes, it does." 2>&1
4327 echo "Leaving current flags $ccflags alone." 2>&1
4329 *) dflt="$dflt -fno-strict-aliasing" ;;
4332 echo "Nope, it doesn't, but that's ok." 2>&1
4339 case "$mips_type" in
4340 *BSD*|'') inclwanted="$locincpth $usrinc";;
4341 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
4343 for thisincl in $inclwanted; do
4344 if $test -d $thisincl; then
4345 if $test x$thisincl != x$usrinc; then
4347 *" -I$thisincl "*);;
4348 *) dflt="$dflt -I$thisincl ";;
4354 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
4356 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
4364 *) dflt="$dflt -D$2";;
4368 set signal.h LANGUAGE_C; eval $inctest
4372 ccflags="$ccflags -DSOCKS"
4377 default|recommended) dflt="$ccflags $dflt" ;;
4378 *) dflt="$ccflags";;
4387 Your C compiler may want other flags. For this question you should include
4388 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
4389 but you should NOT include libraries or ld flags like -lwhatever. If you
4390 want $package to honor its debug switch, you should include -DDEBUGGING here.
4391 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
4393 To use no flags, specify the word "none".
4399 rp="Any additional cc flags?"
4406 : the following weeds options from ccflags that are of no interest to cpp
4408 '') cppflags="$ccflags" ;;
4409 *) cppflags="$cppflags $ccflags" ;;
4411 case "$gccversion" in
4412 1*) cppflags="$cppflags -D__GNUC__"
4414 case "$mips_type" in
4416 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
4422 echo "Let me guess what the preprocessor flags are..." >&4
4436 *) ftry="$previous $flag";;
4438 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
4439 >cpp1.out 2>/dev/null && \
4440 $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
4441 >cpp2.out 2>/dev/null && \
4442 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
4443 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
4445 cppflags="$cppflags $ftry"
4455 *-*) echo "They appear to be: $cppflags";;
4457 $rm -f cpp.c cpp?.out
4461 : flags used in final linking phase
4463 '') if ./venix; then
4469 *-posix*) dflt="$dflt -posix" ;;
4472 *) dflt="$ldflags";;
4475 : Try to guess additional flags to pick up local libraries.
4476 for thislibdir in $libpth; do
4477 case " $loclibpth " in
4480 *"-L$thislibdir "*) ;;
4481 *) dflt="$dflt -L$thislibdir" ;;
4493 Your C linker may need flags. For this question you should
4494 include -L/whatever and any other flags used by the C linker, but you
4495 should NOT include libraries like -lwhatever.
4497 Make sure you include the appropriate -L/path flags if your C linker
4498 does not normally search all of the directories you specified above,
4501 To use no flags, specify the word "none".
4505 rp="Any additional ld flags (NOT including libraries)?"
4511 rmlist="$rmlist pdp11"
4515 echo "Checking your choice of C compiler and flags for coherency..." >&4
4516 $cat > try.c <<'EOF'
4518 int main() { printf("Ok\n"); exit(0); }
4520 set X $cc -o try $optimize $ccflags $ldflags try.c $libs
4522 $cat >try.msg <<'EOM'
4523 I've tried to compile and run the following simple program:
4526 $cat try.c >> try.msg
4528 $cat >> try.msg <<EOM
4535 and I got the following output:
4539 if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
4540 if $sh -c "$run ./try" >>try.msg 2>&1; then
4544 *) echo 'The program compiled OK, but produced no output.' >> try.msg
4547 cat >> try.msg <<'EOQS'
4548 If $libs contains -lsfio, and sfio is mis-configured, then it
4549 sometimes (apparently) runs and exits with a 0 status, but with no
4550 output! It may have to do with sfio's use of _exit vs. exit.
4553 rp="You have a big problem. Shall I abort Configure"
4560 echo "The program compiled OK, but exited with status $?." >>try.msg
4561 rp="You have a problem. Shall I abort Configure"
4565 echo "I can't compile the test program." >>try.msg
4566 rp="You have a BIG problem. Shall I abort Configure"
4572 case "$knowitall" in
4574 echo "(The supplied flags or libraries might be incorrect.)"
4582 *) echo "Ok. Stopping Configure." >&4
4587 n) echo "OK, that should do.";;
4589 $rm -f try try.* core
4591 : define a shorthand compile call
4595 $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
4596 : define a shorthand compile call for compilations that should be ok.
4600 $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
4602 : check for lengths of integral types
4606 echo "Checking to see how big your integers are..." >&4
4607 $cat >try.c <<'EOCP'
4611 printf("intsize=%d;\n", (int)sizeof(int));
4612 printf("longsize=%d;\n", (int)sizeof(long));
4613 printf("shortsize=%d;\n", (int)sizeof(short));
4618 if eval $compile_ok && $run ./try > /dev/null; then
4620 echo "Your integers are $intsize bytes long."
4621 echo "Your long integers are $longsize bytes long."
4622 echo "Your short integers are $shortsize bytes long."
4626 Help! I can't compile and run the intsize test program: please enlighten me!
4627 (This is probably a misconfiguration in your system or libraries, and
4628 you really ought to fix it. Still, I'll try anyway.)
4632 rp="What is the size of an integer (in bytes)?"
4636 rp="What is the size of a long integer (in bytes)?"
4640 rp="What is the size of a short integer (in bytes)?"
4648 : check for void type
4650 echo "Checking to see how well your C compiler groks the void type..." >&4
4651 case "$voidflags" in
4653 $cat >try.c <<'EOCP'
4659 extern void moo(); /* function returning void */
4660 void (*goo)(); /* ptr to func returning void */
4662 void *hue; /* generic ptr */
4675 int main() { sub(); }
4677 if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
4678 voidflags=$defvoidused
4679 echo "Good. It appears to support void to the level $package wants.">&4
4680 if $contains warning .out >/dev/null 2>&1; then
4681 echo "However, you might get some warnings that look like this:"
4685 echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
4686 if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
4687 echo "It supports 1..."
4688 if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
4689 echo "It also supports 2..."
4690 if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
4692 echo "And it supports 4 but not 8 definitely."
4694 echo "It doesn't support 4..."
4695 if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
4697 echo "But it supports 8."
4700 echo "Neither does it support 8."
4704 echo "It does not support 2..."
4705 if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
4707 echo "But it supports 4 and 8."
4709 if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
4711 echo "And it supports 4 but has not heard about 8."
4713 echo "However it supports 8 but not 4."
4718 echo "There is no support at all for void."
4723 case "$voidflags" in
4726 Support flag bits are:
4727 1: basic void declarations.
4728 2: arrays of pointers to functions returning void.
4729 4: operations between pointers to and addresses of void functions.
4730 8: generic void pointers.
4733 rp="Your void support flags add up to what?"
4740 : check for length of pointer
4744 echo "Checking to see how big your pointers are..." >&4
4745 if test "$voidflags" -gt 7; then
4746 echo '#define VOID_PTR char *' > try.c
4748 echo '#define VOID_PTR void *' > try.c
4750 $cat >>try.c <<'EOCP'
4754 printf("%d\n", (int)sizeof(VOID_PTR));
4759 if eval $compile_ok; then
4760 ptrsize=`$run ./try`
4761 echo "Your pointers are $ptrsize bytes long."
4764 echo "(I can't seem to compile the test program. Guessing...)" >&4
4765 rp="What is the size of a pointer (in bytes)?"
4773 : check for long long
4775 echo "Checking to see if you have long long..." >&4
4776 echo 'int main() { long long x = 7; return 0; }' > try.c
4778 if eval $compile; then
4780 echo "You have long long."
4783 echo "You do not have long long."
4789 : check for length of long long
4790 case "${d_longlong}${longlongsize}" in
4793 echo "Checking to see how big your long longs are..." >&4
4794 $cat >try.c <<'EOCP'
4798 printf("%d\n", (int)sizeof(long long));
4803 if eval $compile_ok; then
4804 longlongsize=`$run ./try`
4805 echo "Your long longs are $longlongsize bytes long."
4809 echo "(I can't seem to compile the test program. Guessing...)"
4810 rp="What is the size of a long long (in bytes)?"
4814 if $test "X$longsize" = "X$longlongsize"; then
4815 echo "(That isn't any different from an ordinary long.)"
4821 : determine filename position in cpp output
4823 echo "Computing filename position in cpp output for #include directives..." >&4
4824 echo '#include <stdio.h>' > foo.c
4827 $cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
4828 $grep '^[ ]*#.*stdio\.h' | \
4829 while read cline; do
4832 while $test \$# -gt 0; do
4833 if $test -r \`echo \$1 | $tr -d '"'\`; then
4838 pos=\`expr \$pos + 1\`
4850 *) pos="${fieldn}th";;
4852 echo "Your cpp writes the filename in the $pos field of the line."
4854 : locate header file
4859 for usrincdir in $usrinc
4861 if test -f \$usrincdir/\$wanted; then
4862 echo "\$usrincdir/\$wanted"
4866 awkprg='{ print \$$fieldn }'
4867 echo "#include <\$wanted>" > foo\$\$.c
4868 $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
4869 $grep "^[ ]*#.*\$wanted" | \
4870 while read cline; do
4871 name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
4873 *[/\\\\]\$wanted) echo "\$name"; exit 1;;
4874 *[\\\\/]\$wanted) echo "\$name"; exit 1;;
4879 # status = 0: grep returned 0 lines, case statement not executed
4880 # status = 1: headerfile found
4881 # status = 2: while loop executed, no headerfile found
4885 if test \$status -eq 1; then
4892 : define an alternate in-header-list? function
4893 inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
4894 cont=true; xxf="echo \"<\$1> found.\" >&4";
4895 case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
4896 *) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
4898 case $# in 4) instead=instead;; *) instead="at last";; esac;
4899 while $test "$cont"; do
4901 var=$2; eval "was=\$$2";
4902 if $test "$xxx" && $test -r "$xxx";
4904 eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
4907 eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
4908 set $yyy; shift; shift; yyy=$@;
4909 case $# in 0) cont="";;
4910 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
4911 xxnf="echo \"and I did not find <\$1> either.\" >&4";;
4912 *) xxf="echo \"but I found <\$1\> instead.\" >&4";
4913 xxnf="echo \"there is no <\$1>, ...\" >&4";;
4917 do set $yyy; var=$2; eval "was=\$$2";
4918 eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu";
4919 set $yyy; shift; shift; yyy=$@;
4922 : see if inttypes.h is available
4923 : we want a real compile instead of Inhdr because some systems
4924 : have an inttypes.h which includes non-existent headers
4927 #include <inttypes.h>
4929 static int32_t foo32 = 0x12345678;
4933 if eval $compile; then
4934 echo "<inttypes.h> found." >&4
4937 echo "<inttypes.h> NOT found." >&4
4946 echo "Checking to see if you have int64_t..." >&4
4948 #include <sys/types.h>
4949 #$i_inttypes I_INTTYPES
4951 #include <inttypes.h>
4953 int main() { int64_t x = 7; }
4956 if eval $compile; then
4958 echo "You have int64_t."
4961 echo "You do not have int64_t."
4969 echo "Checking which 64-bit integer type we could use..." >&4
4975 val='"unsigned int"'
4980 *) case "$longsize" in
4984 val='"unsigned long"'
4989 *) case "$d_longlong:$longlongsize" in
4994 val='"unsigned long long"'
4999 *) case "$d_int64_t" in
5018 '') echo "Alas, no 64-bit integer types in sight." >&4
5021 *) echo "We could use '$quadtype' for 64-bit integers." >&4
5027 case "$uselonglong" in
5028 "$define"|true|[yY]*)
5031 *** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
5033 use64bitint="$define"
5036 case "$use64bits" in
5037 "$define"|true|[yY]*)
5040 *** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
5042 use64bitint="$define"
5045 case "$use64bitints" in
5046 "$define"|true|[yY]*)
5049 *** There is no Configure -Duse64bitints, using -Duse64bitint instead.
5051 use64bitint="$define"
5054 case "$use64bitsint" in
5055 "$define"|true|[yY]*)
5058 *** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
5060 use64bitint="$define"
5063 case "$uselonglongs" in
5064 "$define"|true|[yY]*)
5067 *** There is no Configure -Duselonglongs, using -Duse64bitint instead.
5069 use64bitint="$define"
5072 case "$use64bitsall" in
5073 "$define"|true|[yY]*)
5076 *** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
5078 use64bitall="$define"
5083 *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
5085 case "$use64bitall" in
5086 "$define"|true|[yY]*) use64bitint="$define" ;;
5092 You have natively 64-bit long integers.
5096 *) case "$use64bitint" in
5097 "$define"|true|[yY]*) dflt='y';;
5106 Perl can be built to take advantage of 64-bit integer types
5107 on some systems. To do so, Configure can be run with -Duse64bitint.
5108 Choosing this option will most probably introduce binary incompatibilities.
5110 If this doesn't make any sense to you, just accept the default '$dflt'.
5111 (The default has been chosen based on your configuration.)
5113 rp='Try to use 64-bit integers, if available?'
5116 [yY]*) val="$define" ;;
5124 case "$use64bitall" in
5125 "$define"|true|[yY]*) dflt='y' ;;
5126 *) case "$longsize" in
5134 You may also choose to try maximal 64-bitness. It means using as much
5135 64-bitness as possible on the platform. This in turn means even more
5136 binary incompatibilities. On the other hand, your platform may not
5137 have any more 64-bitness available than what you already have chosen.
5139 If this doesn't make any sense to you, just accept the default '$dflt'.
5140 (The default has been chosen based on your configuration.)
5142 rp='Try to use maximal 64-bit support, if available?'
5145 [yY]*) val="$define" ;;
5150 case "$use64bitall" in
5152 case "$use64bitint" in
5156 Since you have chosen a maximally 64-bit build, I'm also turning on
5157 the use of 64-bit integers.
5159 use64bitint="$define" ;;
5164 case "$use64bitall" in
5165 "$define"|true|[yY]*)
5169 *** You have chosen a maximally 64-bit build, but your pointers
5170 *** are only 4 bytes wide, disabling maximal 64-bitness.
5173 use64bitall="$undef"
5174 case "$use64bitint" in
5175 "$define"|true|[yY]*) ;;
5178 *** Downgrading from maximal 64-bitness to using 64-bit integers.
5181 use64bitint="$define"
5189 case "$use64bitint" in
5190 "$define"|true|[yY]*)
5191 : Look for a hint-file generated 'call-back-unit'. If the
5192 : user has specified that a 64-bit perl is to be built,
5193 : we may need to set or change some other defaults.
5194 if $test -f use64bitint.cbu; then
5195 echo "Your platform has some specific hints for 64-bit integers, using them..."
5199 4) case "$archname64" in
5200 '') archname64=64int ;;
5207 case "$use64bitall" in
5208 "$define"|true|[yY]*)
5209 : Look for a hint-file generated 'call-back-unit'. If the
5210 : user has specified that a maximally 64-bit perl is to be built,
5211 : we may need to set or change some other defaults.
5212 if $test -f use64bitall.cbu; then
5213 echo "Your platform has some specific hints for 64-bit builds, using them..."
5217 4) case "$archname64" in
5218 ''|64int) archname64=64all ;;
5226 echo "Checking for GNU C Library..." >&4
5239 if eval $compile_ok && $run ./try; then
5241 echo "You are using the GNU C Library"
5244 echo "You are not using the GNU C Library"
5250 : see if nm is to be used to determine whether a symbol is defined or not
5254 case "$d_gnulibc" in
5257 echo "nm probably won't work on the GNU C Library." >&4
5263 if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then
5265 echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4
5266 echo "'nm' won't be sufficient on this sytem." >&4
5272 '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null`
5273 if $test $dflt -gt 20; then
5283 true|$define) dflt=y;;
5290 I can use $nm to extract the symbols from your C libraries. This
5291 is a time consuming task which may generate huge output on the disk (up
5292 to 3 megabytes) but that should make the symbols extraction faster. The
5293 alternative is to skip the 'nm' extraction part and to compile a small
5294 test program instead to determine whether each symbol is present. If
5295 you have a fast C compiler and/or if your 'nm' output cannot be parsed,
5296 this may be the best solution.
5298 You probably shouldn't let me use 'nm' if you are using the GNU C Library.
5301 rp="Shall I use $nm to extract C symbols from the libraries?"
5304 [Nn]*) usenm=false;;
5313 : nm options which may be necessary
5315 '') if $test -f /mach_boot; then
5317 elif $test -d /usr/ccs/lib; then
5318 nm_opt='-p' # Solaris (and SunOS?)
5319 elif $test -f /dgux; then
5321 elif $test -f /lib64/rld; then
5322 nm_opt='-p' # 64-bit Irix
5328 : nm options which may be necessary for shared libraries but illegal
5329 : for archive libraries. Thank you, Linux.
5330 case "$nm_so_opt" in
5331 '') case "$myuname" in
5333 if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
5334 nm_so_opt='--dynamic'
5343 : get list of predefined functions in a handy place
5348 *-lc_s*) libc=`./loc libc_s$_a $libc $libpth`
5354 *) for thislib in $libs; do
5357 : Handle C library specially below.
5360 thislib=`echo $thislib | $sed -e 's/^-l//'`
5361 if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
5363 elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
5365 elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then
5367 elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then
5369 elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
5371 elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
5373 elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then
5378 libnames="$libnames $try"
5380 *) libnames="$libnames $thislib" ;;
5389 for xxx in $libpth; do
5390 $test -r $1 || set $xxx/libc.$so
5391 : The messy sed command sorts on library version numbers.
5393 set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \
5394 tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e '
5396 s/[0-9][0-9]*/0000&/g
5397 s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g
5400 $sort | $sed -e 's/^.* //'`
5403 $test -r $1 || set /usr/ccs/lib/libc.$so
5404 $test -r $1 || set /lib/libsys_s$_a
5410 if $test -r "$1"; then
5411 echo "Your (shared) C library seems to be in $1."
5413 elif $test -r /lib/libc && $test -r /lib/clib; then
5414 echo "Your C library seems to be in both /lib/clib and /lib/libc."
5416 libc='/lib/clib /lib/libc'
5417 if $test -r /lib/syslib; then
5418 echo "(Your math library is in /lib/syslib.)"
5419 libc="$libc /lib/syslib"
5421 elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
5422 echo "Your C library seems to be in $libc, as you said before."
5423 elif $test -r $incpath/usr/lib/libc$_a; then
5424 libc=$incpath/usr/lib/libc$_a;
5425 echo "Your C library seems to be in $libc. That's fine."
5426 elif $test -r /lib/libc$_a; then
5428 echo "Your C library seems to be in $libc. You're normal."
5430 if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then
5432 elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
5433 libnames="$libnames "`./loc clib blurfl/dyick $libpth`
5434 elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
5436 elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
5438 elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
5441 tans=`./loc Llibc$_a blurfl/dyick $xlibpth`
5443 if $test -r "$tans"; then
5444 echo "Your C library seems to be in $tans, of all places."
5450 if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
5454 If the guess above is wrong (which it might be if you're using a strange
5455 compiler, or your machine supports multiple models), you can override it here.
5460 echo $libpth | $tr ' ' $trnl | $sort | $uniq > libpath
5462 I can't seem to find your C library. I've looked in the following places:
5465 $sed 's/^/ /' libpath
5468 None of these seems to contain your C library. I need to get its name...
5473 rp='Where is your C library?'
5478 echo $libc $libnames | $tr ' ' $trnl | $sort | $uniq > libnames
5479 set X `cat libnames`
5482 case $# in 1) xxx=file; esac
5483 echo "Extracting names from the following $xxx for later perusal:" >&4
5485 $sed 's/^/ /' libnames >&4
5487 $echo $n "This may take a while...$c" >&4
5491 *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
5492 *) $nm $nm_opt $file 2>/dev/null;;
5497 $grep fprintf libc.tmp > libc.ptf
5498 xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
5499 xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
5501 if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\
5503 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5505 elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
5507 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5509 elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
5511 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5513 elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
5515 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5517 elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
5519 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5521 elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
5523 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5525 elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
5526 -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\
5528 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5530 elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
5532 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5534 elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
5536 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5538 elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\
5540 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5542 elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
5544 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5546 elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
5548 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5550 elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
5552 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5554 elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\
5556 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5559 $nm -p $* 2>/dev/null >libc.tmp
5560 $grep fprintf libc.tmp > libc.ptf
5561 if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
5562 eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
5568 echo "$nm didn't seem to work right. Trying $ar instead..." >&4
5570 if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then
5571 for thisname in $libnames $libc; do
5572 $ar t $thisname >>libc.tmp
5574 $sed -e "s/\\$_o\$//" < libc.tmp > libc.list
5576 elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then
5577 # Repeat libc to extract forwarders to DLL entries too
5578 for thisname in $libnames $libc; do
5579 $ar tv $thisname >>libc.tmp
5580 # Revision 50 of EMX has bug in $ar.
5581 # it will not extract forwarders to DLL entries
5582 # Use emximp which will extract exactly them.
5583 emximp -o tmp.imp $thisname \
5585 $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
5586 < tmp.imp >>libc.tmp
5589 $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list
5592 echo "$ar didn't seem to work right." >&4
5593 echo "Maybe this is a Cray...trying bld instead..." >&4
5594 if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list
5596 for thisname in $libnames; do
5598 $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
5599 $ar t $thisname >>libc.tmp
5603 echo "That didn't work either. Giving up." >&4
5610 if $test -f /lib/syscalls.exp; then
5612 echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
5613 $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list
5617 $rm -f libnames libpath
5619 : is a C symbol defined?
5622 -v) tf=libc.tmp; tc=""; tdc="";;
5623 -a) tf=libc.tmp; tc="[0]"; tdc="[]";;
5624 *) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";;
5627 case "$reuseval-$4" in
5629 true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
5635 if $contains $tlook $tf >/dev/null 2>&1;
5640 echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c;
5641 if $cc -o t $optimize $ccflags $ldflags t.c $libs >/dev/null 2>&1;
5649 $define) tval=true;;
5655 : define an is-in-libc? function
5656 inlibc='echo " "; td=$define; tu=$undef;
5657 sym=$1; var=$2; eval "was=\$$2";
5659 case "$reuseval$was" in
5669 echo "$sym() found." >&4;
5670 case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";;
5672 echo "$sym() NOT found." >&4;
5673 case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";;
5677 $define) echo "$sym() found." >&4;;
5678 *) echo "$sym() NOT found." >&4;;
5682 : see if sqrtl exists
5687 *-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
5690 case "$uselongdouble" in
5691 $define|true|[yY]*) dflt='y';;
5696 Perl can be built to take advantage of long doubles which
5697 (if available) may give more accuracy and range for floating point numbers.
5699 If this doesn't make any sense to you, just accept the default '$dflt'.
5701 rp='Try to use long doubles if available?'
5704 y|Y) val="$define" ;;
5710 case "$uselongdouble" in
5711 true|[yY]*) uselongdouble="$define" ;;
5714 case "$uselongdouble" in
5716 : Look for a hint-file generated 'call-back-unit'. If the
5717 : user has specified that long doubles should be used,
5718 : we may need to set or change some other defaults.
5719 if $test -f uselongdouble.cbu; then
5720 echo "Your platform has some specific hints for long doubles, using them..."
5721 . ./uselongdouble.cbu
5724 (Your platform doesn't have any specific hints for long doubles.)
5730 case "$uselongdouble:$d_sqrtl" in
5734 *** You requested the use of long doubles but you do not seem to have
5735 *** the mathematic functions for long doubles. I'm disabling the use
5736 *** of long doubles.
5739 uselongdouble=$undef
5743 : check for length of double
5745 case "$doublesize" in
5747 echo "Checking to see how big your double precision numbers are..." >&4
5748 $cat >try.c <<'EOCP'
5752 printf("%d\n", (int)sizeof(double));
5757 if eval $compile_ok; then
5758 doublesize=`$run ./try`
5759 echo "Your double is $doublesize bytes long."
5762 echo "(I can't seem to compile the test program. Guessing...)"
5763 rp="What is the size of a double precision number (in bytes)?"
5771 : check for long doubles
5773 echo "Checking to see if you have long double..." >&4
5774 echo 'int main() { long double x = 7.0; }' > try.c
5776 if eval $compile; then
5778 echo "You have long double."
5781 echo "You do not have long double."
5787 : check for length of long double
5788 case "${d_longdbl}${longdblsize}" in
5791 echo "Checking to see how big your long doubles are..." >&4
5792 $cat >try.c <<'EOCP'
5796 printf("%d\n", sizeof(long double));
5801 if eval $compile; then
5802 longdblsize=`$run ./try`
5803 echo "Your long doubles are $longdblsize bytes long."
5807 echo "(I can't seem to compile the test program. Guessing...)" >&4
5808 rp="What is the size of a long double (in bytes)?"
5812 if $test "X$doublesize" = "X$longdblsize"; then
5813 echo "(That isn't any different from an ordinary double.)"
5819 case "$useperlio" in
5820 $define|true|[yY]*|'') dflt='y';;
5825 Previous version of $package used the standard IO mechanisms as
5826 defined in <stdio.h>. Versions 5.003_02 and later of $package allow
5827 alternate IO mechanisms via the PerlIO abstraction layer, but the
5828 stdio mechanism is still available if needed. The abstraction layer
5829 can use AT&T's sfio (if you already have sfio installed) or regular stdio.
5830 Using PerlIO with sfio may cause problems with some extension modules.
5832 If this doesn't make any sense to you, just accept the default '$dflt'.
5834 rp='Use the PerlIO abstraction layer?'
5841 echo "Ok, doing things the stdio way."
5850 case "$useperlio" in
5851 $define|true|[yY]*) ;;
5854 You are using the SOCKS proxy protocol library which means that you
5855 should also use the PerlIO layer. You may be headed for trouble.
5864 : determine the architecture name
5866 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
5867 tarch=`arch`"-$osname"
5868 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
5869 if uname -m > tmparch 2>&1 ; then
5870 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
5871 -e 's/$/'"-$osname/" tmparch`
5879 case "$myarchname" in
5882 echo "(Your architecture name used to be $myarchname.)"
5886 case "$targetarch" in
5888 *) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
5893 *) dflt="$archname";;
5895 rp='What is your architecture name'
5898 case "$usethreads" in
5900 echo "Threads selected." >&4
5902 *-thread*) echo "...and architecture name already has -thread." >&4
5904 *) archname="$archname-thread"
5905 echo "...setting architecture name to $archname." >&4
5910 case "$usemultiplicity" in
5912 echo "Multiplicity selected." >&4
5914 *-multi*) echo "...and architecture name already has -multi." >&4
5916 *) archname="$archname-multi"
5917 echo "...setting architecture name to $archname." >&4
5922 case "$use64bitint$use64bitall" in
5924 case "$archname64" in
5926 echo "This architecture is naturally 64-bit, not changing architecture name." >&4
5929 case "$use64bitint" in
5930 "$define") echo "64 bit integers selected." >&4 ;;
5932 case "$use64bitall" in
5933 "$define") echo "Maximal 64 bitness selected." >&4 ;;
5936 *-$archname64*) echo "...and architecture name already has $archname64." >&4
5938 *) archname="$archname-$archname64"
5939 echo "...setting architecture name to $archname." >&4
5945 case "$uselongdouble" in
5947 echo "Long doubles selected." >&4
5948 case "$longdblsize" in
5950 echo "...but long doubles are equal to doubles, not changing architecture name." >&4
5954 *-ld*) echo "...and architecture name already has -ld." >&4
5956 *) archname="$archname-ld"
5957 echo "...setting architecture name to $archname." >&4
5964 case "$useperlio" in
5966 echo "Perlio selected." >&4
5969 echo "Perlio not selected, using stdio." >&4
5971 *-stdio*) echo "...and architecture name already has -stdio." >&4
5973 *) archname="$archname-stdio"
5974 echo "...setting architecture name to $archname." >&4
5980 : determine root of directory hierarchy where package will be installed.
5983 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
5991 By default, $package will be installed in $dflt/bin, manual pages
5992 under $dflt/man, etc..., i.e. with $dflt as prefix for all
5993 installation directories. Typically this is something like /usr/local.
5994 If you wish to have binaries under /usr/bin but other parts of the
5995 installation under /usr/local, that's ok: you will be prompted
5996 separately for each of the installation directories, the prefix being
5997 only used to set the defaults.
6001 rp='Installation prefix to use?'
6009 *) oldprefix="$prefix";;
6018 *) afsroot=$afsroot ;;
6024 $define|true) afs=true ;;
6025 $undef|false) afs=false ;;
6026 *) if test -d $afsroot; then
6034 echo "AFS may be running... I'll be extra cautious then..." >&4
6036 echo "AFS does not seem to be running..." >&4
6039 : determine installation prefix for where package is to be installed.
6043 Since you are running AFS, I need to distinguish the directory in which
6044 files will reside from the directory in which they are installed (and from
6045 which they are presumably copied to the former directory by occult means).
6048 case "$installprefix" in
6049 '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
6050 *) dflt="$installprefix";;
6055 In some special cases, particularly when building $package for distribution,
6056 it is convenient to distinguish between the directory in which files should
6057 be installed from the directory ($prefix) in which they
6058 will eventually reside. For most users, these two directories are the same.
6061 case "$installprefix" in
6063 *) dflt=$installprefix;;
6067 rp='What installation prefix should I use for installing files?'
6069 installprefix="$ans"
6070 installprefixexp="$ansexp"
6072 : set the prefixit variable, to compute a suitable default value
6073 prefixit='case "$3" in
6075 case "$oldprefix" in
6076 "") eval "$1=\"\$$2\"";;
6083 ""|" ") eval "$1=\"\$$2\"";;
6089 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
6091 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
6092 /*-$oldprefix/*|\~*-$oldprefix/*)
6093 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
6094 *) eval "$1=\"\$$2\"";;
6098 : get the patchlevel
6100 echo "Getting the current patchlevel..." >&4
6101 if $test -r $rsrc/patchlevel.h;then
6102 revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
6103 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
6104 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
6105 api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
6106 api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
6107 api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
6108 perl_patchlevel=`grep ',"DEVEL[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'`
6117 $echo "(You do not have patchlevel.h. Eek.)"
6119 if $test -r $rsrc/.patch ; then
6120 if $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then
6121 perl_patchlevel=`cat $rsrc/.patch`
6124 : Define a handy string here to avoid duplication in myconfig.SH and configpm.
6125 version_patchlevel_string="version $patchlevel subversion $subversion"
6126 case "$perl_patchlevel" in
6128 *) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;;
6131 $echo "(You have $package $version_patchlevel_string.)"
6135 : XXX Should be a Configure test for double-dots in filenames.
6136 version=`echo $revision $patchlevel $subversion | \
6137 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
6138 api_versionstring=`echo $api_revision $api_version $api_subversion | \
6139 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
6142 version=`echo $revision $patchlevel $subversion | \
6143 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
6144 api_versionstring=`echo $api_revision $api_version $api_subversion | \
6145 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
6148 : Special case the 5.005_xx maintenance series, which used 5.005
6149 : without any subversion label as a subdirectory in $sitelib
6150 if test "${api_revision}${api_version}${api_subversion}" = "550"; then
6151 api_versionstring='5.005'
6154 : determine installation style
6155 : For now, try to deduce it from prefix unless it is already set.
6156 : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
6157 case "$installstyle" in
6158 '') case "$prefix" in
6159 *perl*) dflt='lib';;
6160 *) dflt='lib/perl5' ;;
6163 *) dflt="$installstyle" ;;
6165 : Probably not worth prompting for this since we prompt for all
6166 : the directories individually, and the prompt would be too long and
6170 : determine where private library files go
6171 : Usual default is /usr/local/lib/perl5/$version.
6172 : Also allow things like /opt/perl/lib/$version, since
6173 : /opt/perl/lib/perl5... would be redundant.
6174 : The default "style" setting is made in installstyle.U
6175 case "$installstyle" in
6176 *lib/perl5*) set dflt privlib lib/$package/$version ;;
6177 *) set dflt privlib lib/$version ;;
6182 There are some auxiliary files for $package that need to be put into a
6183 private library directory that is accessible by everyone.
6187 rp='Pathname where the private library files will reside?'
6190 privlibexp="$ansexp"
6191 : Change installation prefix, if necessary.
6192 if $test X"$prefix" != X"$installprefix"; then
6193 installprivlib=`echo $privlibexp | sed "s#^$prefix#$installprefix#"`
6195 installprivlib="$privlibexp"
6198 : set the prefixup variable, to restore leading tilda escape
6199 prefixup='case "$prefixexp" in
6201 *) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";;
6204 : determine where public architecture dependent libraries go
6207 : privlib default is /usr/local/lib/$package/$version
6208 : archlib default is /usr/local/lib/$package/$version/$archname
6209 : privlib may have an optional trailing /share.
6210 tdflt=`echo $privlib | $sed 's,/share$,,'`
6211 tdflt=$tdflt/$archname
6220 $spackage contains architecture-dependent library files. If you are
6221 sharing libraries in a heterogeneous environment, you might store
6222 these files in a separate location. Otherwise, you can just include
6223 them with the rest of the public library files.
6227 rp='Where do you want to put the public architecture-dependent libraries?'
6230 archlibexp="$ansexp"
6231 if $test X"$archlib" = X"$privlib"; then
6236 : Change installation prefix, if necessary.
6237 if $test X"$prefix" != X"$installprefix"; then
6238 installarchlib=`echo $archlibexp | sed "s#^$prefix#$installprefix#"`
6240 installarchlib="$archlibexp"
6244 : Binary compatibility with 5.005 is not possible for builds
6245 : with advanced features
6246 case "$usethreads$usemultiplicity" in
6248 bincompat5005="$undef"
6249 d_bincompat5005="$undef"
6253 This version of Perl can be compiled for binary compatibility with 5.005.
6254 If you decide to do so, you will be able to continue using most of the
6255 extensions that were compiled for Perl 5.005.
6258 case "$bincompat5005$d_bincompat5005" in
6259 *"$undef"*) dflt=n ;;
6262 rp='Binary compatibility with Perl 5.005?'
6265 y*) val="$define" ;;
6270 case "$d_bincompat5005" in
6272 bincompat5005="$define"
6274 *) bincompat5005="$undef"
6275 d_bincompat5005="$undef"
6282 : see if setuid scripts can be secure
6285 Some kernels have a bug that prevents setuid #! scripts from being
6286 secure. Some sites have disabled setuid #! scripts because of this.
6288 First let's decide if your kernel supports secure setuid #! scripts.
6289 (If setuid #! scripts would be secure but have been disabled anyway,
6290 don't say that they are secure if asked.)
6295 if $test -d /dev/fd; then
6296 echo "#!$ls" >reflect
6297 chmod +x,u+s reflect
6298 ./reflect >flect 2>&1
6299 if $contains "/dev/fd" flect >/dev/null; then
6300 echo "Congratulations, your kernel has secure setuid scripts!" >&4
6304 If you are not sure if they are secure, I can check but I'll need a
6305 username and password different from the one you are using right now.
6306 If you don't have such a username or don't want me to test, simply
6310 rp='Other username to test security of setuid scripts with?'
6315 case "$d_suidsafe" in
6316 '') echo "I'll assume setuid scripts are *not* secure." >&4
6319 echo "Well, the $hint value is *not* secure." >&4
6321 *) echo "Well, the $hint value *is* secure." >&4
6326 $rm -f reflect flect
6327 echo "#!$ls" >reflect
6328 chmod +x,u+s reflect
6331 echo '"su" will (probably) prompt you for '"$ans's password."
6332 su $ans -c './reflect >flect'
6333 if $contains "/dev/fd" flect >/dev/null; then
6334 echo "Okay, it looks like setuid scripts are secure." >&4
6337 echo "I don't think setuid scripts are secure." >&4
6342 rp='Does your kernel have *secure* setuid scripts?'
6345 [yY]*) val="$define";;
6350 echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
6351 echo "(That's for file descriptors, not floppy disks.)"
6357 $rm -f reflect flect
6359 : now see if they want to do setuid emulation
6362 case "$d_suidsafe" in
6365 echo "No need to emulate SUID scripts since they are secure here." >& 4
6369 Some systems have disabled setuid scripts, especially systems where
6370 setuid scripts cannot be secure. On systems where setuid scripts have
6371 been disabled, the setuid/setgid bits on scripts are currently
6372 useless. It is possible for $package to detect those bits and emulate
6373 setuid/setgid in a secure fashion. This emulation will only work if
6374 setuid scripts have been disabled in your kernel.
6378 "$define") dflt=y ;;
6381 rp="Do you want to do setuid/setgid emulation?"
6384 [yY]*) val="$define";;
6392 : see if this is a malloc.h system
6393 set malloc.h i_malloc
6396 : see if stdlib is available
6397 set stdlib.h i_stdlib
6400 : determine which malloc to compile in
6402 case "$usemymalloc" in
6403 [yY]*|true|$define) dflt='y' ;;
6404 [nN]*|false|$undef) dflt='n' ;;
6405 *) case "$ptrsize" in
6411 rp="Do you wish to attempt to use the malloc that comes with $package?"
6417 mallocsrc='malloc.c'
6418 mallocobj="malloc$_o"
6419 d_mymalloc="$define"
6422 : Remove malloc from list of libraries to use
6423 echo "Removing unneeded -lmalloc from library list" >&4
6424 set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
6427 echo "libs = $libs" >&4
6439 : compute the return types of malloc and free
6441 $cat >malloc.c <<END
6445 #include <sys/types.h>
6459 case "$malloctype" in
6461 if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then
6468 echo "Your system wants malloc to return '$malloctype', it would seem." >&4
6472 if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then
6479 echo "Your system uses $freetype free(), it would seem." >&4
6483 After $package is installed, you may wish to install various
6484 add-on modules and utilities. Typically, these add-ons will
6485 be installed under $prefix with the rest
6486 of this package. However, you may wish to install such add-ons
6487 elsewhere under a different prefix.
6489 If you do not wish to put everything under a single prefix, that's
6490 ok. You will be prompted for the individual locations; this siteprefix
6491 is only used to suggest the defaults.
6493 The default should be fine for most people.
6497 rp='Installation prefix to use for add-on modules and utilities?'
6498 : XXX Here might be another good place for an installstyle setting.
6499 case "$siteprefix" in
6501 *) dflt=$siteprefix ;;
6504 : XXX Prefixit unit does not yet support siteprefix and vendorprefix
6506 case "$siteprefix" in
6510 *) oldsiteprefix="$prefix";;
6515 siteprefixexp="$ansexp"
6517 : determine where site specific libraries go.
6518 : Usual default is /usr/local/lib/perl5/site_perl/$version
6519 : The default "style" setting is made in installstyle.U
6520 : XXX No longer works with Prefixit stuff.
6521 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
6523 '') case "$installstyle" in
6524 *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
6525 *) dflt=$siteprefix/lib/site_$prog/$version ;;
6533 The installation process will create a directory for
6534 site-specific extensions and modules. Most users find it convenient
6535 to place all site-specific files in this directory rather than in the
6536 main distribution directory.
6540 rp='Pathname for the site-specific library files?'
6543 sitelibexp="$ansexp"
6544 sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
6545 : Change installation prefix, if necessary.
6546 if $test X"$prefix" != X"$installprefix"; then
6547 installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
6549 installsitelib="$sitelibexp"
6552 : determine where site specific architecture-dependent libraries go.
6553 : sitelib default is /usr/local/lib/perl5/site_perl/$version
6554 : sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
6555 : sitelib may have an optional trailing /share.
6557 '') dflt=`echo $sitelib | $sed 's,/share$,,'`
6558 dflt="$dflt/$archname"
6563 set sitearch sitearch none
6567 The installation process will also create a directory for
6568 architecture-dependent site-specific extensions and modules.
6572 rp='Pathname for the site-specific architecture-dependent library files?'
6575 sitearchexp="$ansexp"
6576 : Change installation prefix, if necessary.
6577 if $test X"$prefix" != X"$installprefix"; then
6578 installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
6580 installsitearch="$sitearchexp"
6585 The installation process will also create a directory for
6586 vendor-supplied add-ons. Vendors who supply perl with their system
6587 may find it convenient to place all vendor-supplied files in this
6588 directory rather than in the main distribution directory. This will
6589 ease upgrades between binary-compatible maintenance versions of perl.
6591 Of course you may also use these directories in whatever way you see
6592 fit. For example, you might use them to access modules shared over a
6593 company-wide network.
6595 The default answer should be fine for most people.
6596 This causes further questions about vendor add-ons to be skipped
6597 and no vendor-specific directories will be configured for perl.
6600 rp='Do you want to configure vendor-specific add-on directories?'
6601 case "$usevendorprefix" in
6602 define|true|[yY]*) dflt=y ;;
6603 *) : User may have set vendorprefix directly on Configure command line.
6604 case "$vendorprefix" in
6613 rp='Installation prefix to use for vendor-supplied add-ons?'
6614 case "$vendorprefix" in
6616 *) dflt=$vendorprefix ;;
6619 : XXX Prefixit unit does not yet support siteprefix and vendorprefix
6621 case "$vendorprefix" in
6625 *) oldvendorprefix="$prefix";;
6629 usevendorprefix="$define"
6631 vendorprefixexp="$ansexp"
6633 *) usevendorprefix="$undef"
6639 case "$vendorprefix" in
6640 '') d_vendorlib="$undef"
6644 *) d_vendorlib="$define"
6645 : determine where vendor-supplied modules go.
6646 : Usual default is /usr/local/lib/perl5/vendor_perl/$version
6647 case "$vendorlib" in
6649 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
6650 case "$installstyle" in
6651 *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
6652 *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
6655 *) dflt="$vendorlib"
6659 rp='Pathname for the vendor-supplied library files?'
6662 vendorlibexp="$ansexp"
6665 vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"`
6666 : Change installation prefix, if necessary.
6667 if $test X"$prefix" != X"$installprefix"; then
6668 installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
6670 installvendorlib="$vendorlibexp"
6673 case "$vendorprefix" in
6674 '') d_vendorarch="$undef"
6678 *) d_vendorarch="$define"
6679 : determine where vendor-supplied architecture-dependent libraries go.
6680 : vendorlib default is /usr/local/lib/perl5/vendor_perl/$version
6681 : vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname
6682 : vendorlib may have an optional trailing /share.
6683 case "$vendorarch" in
6684 '') dflt=`echo $vendorlib | $sed 's,/share$,,'`
6685 dflt="$dflt/$archname"
6687 *) dflt="$vendorarch" ;;
6690 rp='Pathname for vendor-supplied architecture-dependent files?'
6693 vendorarchexp="$ansexp"
6696 : Change installation prefix, if necessary.
6697 if $test X"$prefix" != X"$installprefix"; then
6698 installvendorarch=`echo $vendorarchexp | sed "s#^$prefix#$installprefix#"`
6700 installvendorarch="$vendorarchexp"
6703 : Final catch-all directories to search
6706 Lastly, you can have perl look in other directories for extensions and
6707 modules in addition to those already specified.
6708 These directories will be searched after
6712 test X"$vendorlib" != "X" && echo ' ' $vendorlib
6713 test X"$vendorarch" != "X" && echo ' ' $vendorarch
6715 case "$otherlibdirs" in
6716 ''|' ') dflt='none' ;;
6717 *) dflt="$otherlibdirs" ;;
6720 Enter a colon-separated set of extra paths to include in perl's @INC
6721 search path, or enter 'none' for no extra paths.
6725 rp='Colon-separated list of additional directories for perl to search?'
6728 ' '|''|none) otherlibdirs=' ' ;;
6729 *) otherlibdirs="$ans" ;;
6731 case "$otherlibdirs" in
6735 set d_perl_otherlibdirs
6738 : Cruising for prototypes
6740 echo "Checking out function prototypes..." >&4
6741 $cat >prototype.c <<'EOCP'
6742 int main(int argc, char *argv[]) {
6745 if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
6746 echo "Your C compiler appears to support function prototypes."
6749 echo "Your C compiler doesn't seem to understand function prototypes."
6756 case "$prototype" in
6758 *) ansi2knr='ansi2knr'
6763 This version of $package can only be compiled by a compiler that
6764 understands function prototypes. Unfortunately, your C compiler
6766 doesn't seem to understand them. Sorry about that.
6768 If GNU cc is available for your system, perhaps you could try that instead.
6770 Eventually, we hope to support building Perl with pre-ANSI compilers.
6771 If you would like to help in that effort, please contact <perlbug@perl.org>.
6773 Aborting Configure now.
6779 : determine where public executables go
6784 rp='Pathname where the public executables will reside?'
6786 if $test "X$ansexp" != "X$binexp"; then
6791 : Change installation prefix, if necessary.
6792 : XXX Bug? -- ignores Configure -Dinstallprefix setting.
6793 if $test X"$prefix" != X"$installprefix"; then
6794 installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"`
6796 installbin="$binexp"
6805 Perl can be built with extra modules or bundles of modules which
6806 will be fetched from the CPAN and installed alongside Perl.
6808 Notice that you will need access to the CPAN; either via the Internet,
6809 or a local copy, for example a CD-ROM or a local CPAN mirror. (You will
6810 be asked later to configure the CPAN.pm module which will in turn do
6811 the installation of the rest of the extra modules or bundles.)
6813 Notice also that if the modules require any external software such as
6814 libraries and headers (the libz library and the zlib.h header for the
6815 Compress::Zlib module, for example) you MUST have any such software
6816 already installed, this configuration process will NOT install such
6819 If this doesn't make any sense to you, just accept the default '$dflt'.
6821 rp='Install any extra modules (y or n)?'
6827 Please list any extra modules or bundles to be installed from CPAN,
6828 with spaces between the names. The names can be in any format the
6829 'install' command of CPAN.pm will understand. (Answer 'none',
6830 without the quotes, to install no extra modules or bundles.)
6840 $rm -f ../extras.lst
6842 *) echo "(Saving the list of extras for later...)"
6843 echo "$extras" > ../extras.lst
6851 : Find perl5.005 or later.
6852 echo "Looking for a previously installed perl5.005 or later... "
6854 '') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do
6855 : Check if this perl is recent and can load a simple module
6856 if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
6859 elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
6869 '') echo "None found. That's ok.";;
6870 *) echo "Using $perl5." ;;
6873 : Determine list of previous versions to include in @INC
6874 $cat > getverlist <<EOPL
6877 \$api_versionstring = "$api_versionstring";
6878 \$version = "$version";
6879 \$stem = "$sitelib_stem";
6880 \$archname = "$archname";
6882 $cat >> getverlist <<'EOPL'
6883 # Can't have leading @ because metaconfig interprets it as a command!
6884 ;@inc_version_list=();
6885 # XXX Redo to do opendir/readdir?
6888 ;@candidates = glob("5.*");
6894 # XXX ToDo: These comparisons must be reworked when two-digit
6895 # subversions come along, so that 5.7.10 compares as greater than
6896 # 5.7.3! By that time, hope that 5.6.x is sufficiently
6897 # widespread that we can use the built-in version vectors rather
6898 # than reinventing them here. For 5.6.0, however, we must
6899 # assume this script will likely be run by 5.005_0x. --AD 1/2000.
6900 foreach $d (@candidates) {
6901 if ($d lt $version) {
6902 if ($d ge $api_versionstring) {
6903 unshift(@inc_version_list, grep { -d } "$d/$archname", $d);
6905 elsif ($d ge "5.005") {
6906 unshift(@inc_version_list, grep { -d } $d);
6910 # Skip newer version. I.e. don't look in
6911 # 5.7.0 if we're installing 5.6.1.
6915 if (@inc_version_list) {
6916 print join(' ', @inc_version_list);
6919 # Blank space to preserve value for next Configure run.
6924 case "$inc_version_list" in
6925 '') if test -x "$perl5$exe_ext"; then
6926 dflt=`$perl5 getverlist`
6931 $undef) dflt='none' ;;
6932 *) eval dflt=\"$inc_version_list\" ;;
6935 ''|' ') dflt=none ;;
6938 5.005) case "$bincompat5005" in
6939 $define|true|[yY]*) ;;
6946 In order to ease the process of upgrading, this version of perl
6947 can be configured to use modules built and installed with earlier
6948 versions of perl that were installed under $prefix. Specify here
6949 the list of earlier versions that this version of perl should check.
6950 If Configure detected no earlier versions of perl installed under
6951 $prefix, then the list will be empty. Answer 'none' to tell perl
6952 to not search earlier versions.
6954 The default should almost always be sensible, so if you're not sure,
6955 just accept the default.
6958 rp='List of earlier versions to include in @INC?'
6961 [Nn]one|''|' ') inc_version_list=' ' ;;
6962 *) inc_version_list="$ans" ;;
6964 case "$inc_version_list" in
6966 inc_version_list_init='0';;
6967 *) inc_version_list_init=`echo $inc_version_list |
6968 $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'`
6973 : determine whether to install perl also as /usr/bin/perl
6976 if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
6978 Many scripts expect perl to be installed as /usr/bin/perl.
6979 I can install the perl you are about to compile also as /usr/bin/perl
6980 (in addition to $installbin/perl).
6982 case "$installusrbinperl" in
6983 "$undef"|[nN]*) dflt='n';;
6986 rp="Do you want to install perl as /usr/bin/perl?"
6989 [yY]*) val="$define";;
6995 set installusrbinperl
6998 : see if dld is available
7002 : see if dlopen exists
7009 : determine which dynamic loading, if any, to compile in
7011 dldir="ext/DynaLoader"
7024 $define) dflt='y' ;;
7027 $define) dflt='y' ;;
7029 : Does a dl_xxx.xs file exist for this operating system
7030 $test -f $rsrc/$dldir/dl_${osname}.xs && dflt='y'
7033 rp="Do you wish to use dynamic loading?"
7040 if $test -f $rsrc/$dldir/dl_${osname}.xs ; then
7041 dflt="$dldir/dl_${osname}.xs"
7042 elif $test "$d_dlopen" = "$define" ; then
7043 dflt="$dldir/dl_dlopen.xs"
7044 elif $test "$i_dld" = "$define" ; then
7045 dflt="$dldir/dl_dld.xs"
7050 *) dflt="$dldir/$dlsrc"
7053 echo "The following dynamic loading files are available:"
7054 : Can not go over to $dldir because getfile has path hard-coded in.
7055 tdir=`pwd`; cd $rsrc; $ls -C $dldir/dl*.xs; cd $tdir
7056 rp="Source file to use for dynamic loading"
7062 dlsrc=`echo $ans | $sed -e 's%.*/\([^/]*\)$%\1%'`
7066 Some systems may require passing special flags to $cc -c to
7067 compile modules that will be used to create a shared library.
7068 To use no flags, say "none".
7071 case "$cccdlflags" in
7072 '') case "$gccversion" in
7073 '') case "$osname" in
7075 next) dflt='none' ;;
7076 irix*) dflt='-KPIC' ;;
7077 svr4*|esix*|solaris|nonstopux) dflt='-KPIC' ;;
7078 sunos) dflt='-pic' ;;
7082 *) case "$osname" in
7083 darwin) dflt='none' ;;
7084 svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
7089 *) dflt="$cccdlflags" ;;
7091 rp="Any special flags to pass to $cc -c to compile shared library modules?"
7094 none) cccdlflags=' ' ;;
7095 *) cccdlflags="$ans" ;;
7100 Some systems use ld to create libraries that can be dynamically loaded,
7101 while other systems (such as those using ELF) use $cc.
7105 '') $cat >try.c <<'EOM'
7106 /* Test for whether ELF binaries are produced */
7111 int i = open("a.out",O_RDONLY);
7114 if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
7115 exit(0); /* succeed (yes, it's ELF) */
7120 if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then
7122 You appear to have ELF support. I'll use $cc to build dynamic libraries.
7126 echo "I'll use ld to build dynamic libraries."
7135 rp="What command should be used to create dynamic libraries?"
7141 Some systems may require passing special flags to $ld to create a
7142 library that can be dynamically loaded. If your ld flags include
7143 -L/other/path options to locate libraries outside your loader's normal
7144 search path, you may need to specify those -L options here as well. To
7145 use no flags, say "none".
7148 case "$lddlflags" in
7149 '') case "$osname" in
7150 beos) dflt='-nostart' ;;
7152 case "$gccversion" in
7153 '') dflt="$dflt +vnocompatwarnings" ;;
7156 linux|irix*) dflt='-shared' ;;
7157 next) dflt='none' ;;
7158 solaris) dflt='-G' ;;
7159 sunos) dflt='-assert nodefinitions' ;;
7160 svr4*|esix*|nonstopux) dflt="-G $ldflags" ;;
7164 *) dflt="$lddlflags" ;;
7167 : Try to guess additional flags to pick up local libraries.
7168 : Be careful not to append to a plain 'none'
7172 for thisflag in $ldflags; do
7177 *) dflt="$dflt $thisflag" ;;
7184 ''|' ') dflt='none' ;;
7187 rp="Any special flags to pass to $ld to create a dynamically loaded library?"
7190 none) lddlflags=' ' ;;
7191 *) lddlflags="$ans" ;;
7196 Some systems may require passing special flags to $cc to indicate that
7197 the resulting executable will use dynamic linking. To use no flags,
7201 case "$ccdlflags" in
7202 '') case "$osname" in
7203 hpux) dflt='-Wl,-E' ;;
7204 linux) dflt='-rdynamic' ;;
7205 next) dflt='none' ;;
7206 sunos) dflt='none' ;;
7210 *) dflt="$ccdlflags" ;;
7212 rp="Any special flags to pass to $cc to use dynamic linking?"
7215 none) ccdlflags=' ' ;;
7216 *) ccdlflags="$ans" ;;
7230 # No dynamic loading being used, so don't bother even to prompt.
7233 *) case "$useshrplib" in
7234 '') case "$osname" in
7235 svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|cygwin*)
7237 also='Building a shared libperl is required for dynamic loading to work on your system.'
7242 also='Building a shared libperl is needed for MAB support.'
7260 The perl executable is normally obtained by linking perlmain.c with
7261 libperl${_a}, any static extensions (usually just DynaLoader), and
7262 any other libraries needed on this system (such as -lm, etc.). Since
7263 your system supports dynamic loading, it is probably possible to build
7264 a shared libperl.$so. If you will have more than one executable linked
7265 to libperl.$so, this will significantly reduce the size of each
7266 executable, but it may have a noticeable affect on performance. The
7267 default is probably sensible for your system.
7271 rp="Build a shared libperl.$so (y/n)"
7275 useshrplib='true' ;;
7276 *) useshrplib='false' ;;
7281 case "$useshrplib" in
7285 # Figure out a good name for libperl.so. Since it gets stored in
7286 # a version-specific architecture-dependent library, the version
7287 # number isn't really that important, except for making cc/ld happy.
7289 # A name such as libperl.so.3.1
7290 majmin="libperl.$so.$patchlevel.$subversion"
7291 # A name such as libperl.so.301
7292 majonly=`echo $patchlevel $subversion |
7293 $awk '{printf "%d%02d", $1, $2}'`
7294 majonly=libperl.$so.$majonly
7295 # I'd prefer to keep the os-specific stuff here to a minimum, and
7296 # rely on figuring it out from the naming of libc.
7297 case "${osname}${osvers}" in
7300 # XXX How handle the --version stuff for MAB?
7302 linux*) # ld won't link with a bare -lperl otherwise.
7305 cygwin*) # include version
7306 dflt=`echo libperl$version | sed -e 's/\./_/g'`$lib_ext
7308 *) # Try to guess based on whether libc has major.minor.
7310 *libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;;
7311 *libc.$so.[0-9]*) dflt=$majonly ;;
7312 *) dflt=libperl.$so ;;
7322 I need to select a good name for the shared libperl. If your system uses
7323 library names with major and minor numbers, then you might want something
7324 like $majmin. Alternatively, if your system uses a single version
7325 number for shared libraries, then you might want to use $majonly.
7326 Or, your system might be quite happy with a simple libperl.$so.
7328 Since the shared libperl will get installed into a version-specific
7329 architecture-dependent directory, the version number of the shared perl
7330 library probably isn't important, so the default should be o.k.
7333 rp='What name do you want to give to the shared libperl?'
7336 echo "Ok, I'll use $libperl"
7339 libperl="libperl${_a}"
7343 # Detect old use of shrpdir via undocumented Configure -Dshrpdir
7347 WARNING: Use of the shrpdir variable for the installation location of
7348 the shared $libperl is not supported. It was never documented and
7349 will not work in this version. Let me (perlbug@perl.org)
7350 know of any problems this may cause.
7356 But your current setting of $shrpdir is
7357 the default anyway, so it's harmless.
7362 Further, your current attempted setting of $shrpdir
7363 conflicts with the value of $archlibexp/CORE
7364 that installperl will use.
7371 # How will the perl executable find the installed shared $libperl?
7372 # Add $xxx to ccdlflags.
7373 # If we can't figure out a command-line option, use $shrpenv to
7374 # set env LD_RUN_PATH. The main perl makefile uses this.
7375 shrpdir=$archlibexp/CORE
7378 if "$useshrplib"; then
7381 # We'll set it in Makefile.SH...
7387 xxx="-Wl,-R$shrpdir"
7389 linux|irix*|dec_osf)
7390 xxx="-Wl,-rpath,$shrpdir"
7393 # next doesn't like the default...
7396 # beos doesn't like the default, either.
7399 # hpux doesn't like the default, either.
7400 tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
7403 tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
7409 # Only add $xxx if it isn't already in ccdlflags.
7410 case " $ccdlflags " in
7412 *) ccdlflags="$ccdlflags $xxx"
7415 Adding $xxx to the flags
7416 passed to $ld so that the perl executable will find the
7417 installed shared $libperl.
7425 # Fix ccdlflags in AIX for building external extensions.
7426 # (For building Perl itself bare -bE:perl.exp is needed,
7427 # Makefile.SH takes care of this.)
7429 aix) ccdlflags="$ccdlflags -bE:$installarchlib/CORE/perl.exp" ;;
7431 # Respect a hint or command-line value.
7433 '') shrpenv="$tmp_shrpenv" ;;
7435 case "$ldlibpthname" in
7436 '') ldlibpthname=LD_LIBRARY_PATH ;;
7437 none) ldlibpthname='' ;;
7440 : determine where manual pages are on this system
7444 syspath='/usr/share/man/man1 /usr/man/man1'
7445 syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
7446 syspath="$syspath /usr/man/u_man/man1"
7447 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
7448 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
7449 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
7450 sysman=`./loc . /usr/man/man1 $syspath`
7453 if $test -d "$sysman"; then
7454 echo "System manual is in $sysman." >&4
7456 echo "Could not find manual pages in source form." >&4
7459 : determine where manual pages go
7460 set man1dir man1dir none
7464 $spackage has manual pages available in source form.
7468 echo "However, you don't have nroff, so they're probably useless to you."
7470 '') man1dir="none";;
7473 echo "If you don't want the manual sources installed, answer 'none'."
7478 lookpath="$prefixexp/share/man/man1"
7479 lookpath="$lookpath $prefixexp/man/man1 $prefixexp/man/l_man/man1"
7480 lookpath="$lookpath $prefixexp/man/p_man/man1"
7481 lookpath="$lookpath $prefixexp/man/u_man/man1"
7482 lookpath="$lookpath $prefixexp/man/man.1"
7484 */?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;;
7485 *) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;;
7495 rp="Where do the main $spackage manual pages (source) go?"
7497 if $test "X$man1direxp" != "X$ansexp"; then
7501 man1direxp="$ansexp"
7507 : Change installation prefix, if necessary.
7508 if $test X"$prefix" != X"$installprefix"; then
7509 installman1dir=`echo $man1direxp | $sed "s#^$prefix#$installprefix#"`
7511 installman1dir="$man1direxp"
7514 : What suffix to use on installed man pages
7521 rp="What suffix should be used for the main $spackage man pages?"
7523 '') case "$man1dir" in
7537 *) dflt="$man1ext";;
7544 : see if we can have long filenames
7546 first=123456789abcdef
7548 if (echo hi >$first) 2>/dev/null; then
7549 if $test -f 123456789abcde; then
7550 echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4
7553 echo 'You can have filenames longer than 14 characters.'>&4
7558 You can't have filenames longer than 14 chars.
7559 You can't even think about them!
7565 $rm -rf 123456789abcde*
7567 : determine where library module manual pages go
7568 set man3dir man3dir none
7572 $spackage has manual pages for many of the library modules.
7578 However, you don't have nroff, so they're probably useless to you.
7581 '') man3dir="none";;
7585 case "$d_flexfnam" in
7588 However, your system can't handle the long file names like File::Basename.3.
7591 '') man3dir="none";;
7595 echo "If you don't want the manual sources installed, answer 'none'."
7596 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
7598 '') dflt=`echo "$man1dir" | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
7599 if $test -d "$privlib/man/man3"; then
7602 WARNING: Previous versions of perl installed man3 pages into
7603 $privlib/man/man3. This version will suggest a
7604 new default of $dflt.
7608 rp='Do you wish to preserve the old behavior?(y/n)'
7611 y*) dflt="$privlib/man/man3" ;;
7616 *) dflt="$man3dir" ;;
7623 rp="Where do the $package library man pages (source) go?"
7626 man3direxp="$ansexp"
7632 : Change installation prefix, if necessary.
7633 if $test X"$prefix" != X"$installprefix"; then
7634 installman3dir=`echo $man3direxp | $sed "s#^$prefix#$installprefix#"`
7636 installman3dir="$man3direxp"
7639 : What suffix to use on installed man pages
7645 rp="What suffix should be used for the $package library man pages?"
7647 '') case "$man3dir" in
7661 *) dflt="$man3ext";;
7668 : see if we have to deal with yellow pages, now NIS.
7669 if $test -d /usr/etc/yp || $test -d /etc/yp; then
7670 if $test -f /usr/etc/nibindd; then
7672 echo "I'm fairly confident you're on a NeXT."
7674 rp='Do you get the hosts file via NetInfo?'
7683 y*) hostcat='nidump hosts .';;
7684 *) case "$hostcat" in
7685 nidump*) hostcat='';;
7695 '') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then
7703 rp='Are you getting the hosts file via yellow pages?'
7706 y*) hostcat='ypcat hosts';;
7707 *) hostcat='cat /etc/hosts';;
7713 '') test -f /etc/hosts && hostcat='cat /etc/hosts';;
7716 '') test -f /etc/group && groupcat='cat /etc/group';;
7719 '') test -f /etc/passwd && passcat='cat /etc/passwd';;
7722 : now get the host name
7724 echo "Figuring out host name..." >&4
7725 case "$myhostname" in
7727 echo 'Maybe "hostname" will work...'
7728 if tans=`sh -c hostname 2>&1` ; then
7736 if $test "$cont"; then
7738 echo 'Oh, dear. Maybe "/etc/systemid" is the key...'
7739 if tans=`cat /etc/systemid 2>&1` ; then
7741 phostname='cat /etc/systemid'
7742 echo "Whadyaknow. Xenix always was a bit strange..."
7745 elif $test -r /etc/systemid; then
7746 echo "(What is a non-Xenix system doing with /etc/systemid?)"
7749 if $test "$cont"; then
7750 echo 'No, maybe "uuname -l" will work...'
7751 if tans=`sh -c 'uuname -l' 2>&1` ; then
7753 phostname='uuname -l'
7755 echo 'Strange. Maybe "uname -n" will work...'
7756 if tans=`sh -c 'uname -n' 2>&1` ; then
7758 phostname='uname -n'
7760 echo 'Oh well, maybe I can mine it out of whoami.h...'
7761 if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then
7762 myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'`
7763 phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h"
7765 case "$myhostname" in
7766 '') echo "Does this machine have an identity crisis or something?"
7769 echo "Well, you said $myhostname before..."
7770 phostname='echo $myhostname';;
7776 : you do not want to know about this
7781 if $test "$myhostname" ; then
7783 rp='Your host name appears to be "'$myhostname'".'" Right?"
7791 : bad guess or no guess
7792 while $test "X$myhostname" = X ; do
7794 rp="Please type the (one word) name of your host:"
7799 : translate upper to lower if necessary
7800 case "$myhostname" in
7802 echo "(Normalizing case in your host name)"
7803 myhostname=`echo $myhostname | ./tr '[A-Z]' '[a-z]'`
7807 case "$myhostname" in
7809 dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"`
7810 myhostname=`expr "X$myhostname" : "X\([^.]*\)\."`
7811 echo "(Trimming domain name from host name--host name is now $myhostname)"
7813 *) case "$mydomain" in
7816 test "X$hostcat" = "Xypcat hosts" &&
7817 ypmatch "$myhostname" hosts 2>/dev/null |\
7818 $sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \
7821 test "X$hostcat" != "X" &&
7822 $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
7823 /[ ]$myhostname[ . ]/p" > hosts
7826 if $test -f hosts; then
7827 $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ }
7828 END { print sum }" hosts` = x1 || tmp_re="[ ]"
7829 dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
7830 hosts | $sort | $uniq | \
7831 $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
7832 case `$echo X$dflt` in
7833 X*\ *) echo "(Several hosts in the database matched hostname)"
7836 X.) echo "(You do not have fully-qualified names in the hosts database)"
7840 echo "(I cannot locate a hosts database anywhere)"
7845 tans=`./loc resolv.conf X /etc /usr/etc`
7846 if $test -f "$tans"; then
7847 echo "(Attempting domain name extraction from $tans)"
7848 dflt=.`$sed -n -e 's/ / /g' \
7849 -e 's/^search *\([^ ]*\).*/\1/p' $tans \
7850 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
7852 .) dflt=.`$sed -n -e 's/ / /g' \
7853 -e 's/^domain *\([^ ]*\).*/\1/p' $tans \
7854 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
7861 .) echo "(No help from resolv.conf either -- attempting clever guess)"
7862 dflt=.`sh -c domainname 2>/dev/null`
7865 .nis.*|.yp.*|.main.*) dflt=`echo $dflt | $sed -e 's/^\.[^.]*//'`;;
7869 case "$dflt$osname" in
7870 .os390) echo "(Attempting domain name extraction from //'SYS1.TCPPARMS(TCPDATA)')"
7871 dflt=.`awk '/^DOMAINORIGIN/ {print $2}' "//'SYS1.TCPPARMS(TCPDATA)'" 2>/dev/null`
7875 .) echo "(Lost all hope -- silly guess then)"
7881 *) dflt="$mydomain";;
7885 rp="What is your domain name?"
7895 : translate upper to lower if necessary
7898 echo "(Normalizing case in your domain name)"
7899 mydomain=`echo $mydomain | ./tr '[A-Z]' '[a-z]'`
7903 : a little sanity check here
7904 case "$phostname" in
7907 case `$phostname | ./tr '[A-Z]' '[a-z]'` in
7908 $myhostname$mydomain|$myhostname) ;;
7910 case "$phostname" in
7912 echo "(That doesn't agree with your whoami.h file, by the way.)"
7915 echo "(That doesn't agree with your $phostname command, by the way.)"
7925 I need to get your e-mail address in Internet format if possible, i.e.
7926 something like user@host.domain. Please answer accurately since I have
7927 no easy means to double check it. The default value provided below
7928 is most probably close to reality but may not be valid from outside
7929 your organization...
7933 while test "$cont"; do
7935 '') dflt="$cf_by@$myhostname$mydomain";;
7936 *) dflt="$cf_email";;
7938 rp='What is your e-mail address?'
7944 rp='Address does not look like an Internet one. Use it anyway?'
7960 If you or somebody else will be maintaining perl at your site, please
7961 fill in the correct e-mail address here so that they may be contacted
7962 if necessary. Currently, the "perlbug" program included with perl
7963 will send mail to this address in addition to perlbug@perl.org. You may
7964 enter "none" for no administrator.
7967 case "$perladmin" in
7968 '') dflt="$cf_email";;
7969 *) dflt="$perladmin";;
7971 rp='Perl administrator e-mail address'
7975 : determine whether to only install version-specific parts.
7978 Do you want to install only the version-specific parts of the perl
7979 distribution? Usually you do *not* want to do this.
7981 case "$versiononly" in
7982 "$define"|[Yy]*|true) dflt='y' ;;
7985 rp="Do you want to install only the version-specific parts of perl?"
7988 [yY]*) val="$define";;
7994 : figure out how to guarantee perl startup
7995 case "$startperl" in
7997 case "$sharpbang" in
8001 I can use the #! construct to start perl on your system. This will
8002 make startup of perl scripts faster, but may cause problems if you
8003 want to share those scripts and perl is not in a standard place
8004 ($binexp/perl) on all your platforms. The alternative is to force
8005 a shell by starting the script with a single ':' character.
8008 case "$versiononly" in
8009 "$define") dflt="$binexp/perl$version";;
8010 *) dflt="$binexp/perl";;
8012 rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
8015 none) startperl=": # use perl";;
8016 *) startperl="#!$ans"
8017 if $test 30 -lt `echo "$ans" | wc -c`; then
8020 WARNING: Some systems limit the #! command to 32 characters.
8021 If you experience difficulty running Perl scripts with #!, try
8022 installing Perl in a directory with a shorter pathname.
8028 *) startperl=": # use perl"
8033 echo "I'll use $startperl to start perl scripts."
8035 : figure best path for perl in scripts
8038 perlpath="$binexp/perl"
8039 case "$startperl" in
8044 I will use the "eval 'exec'" idiom to start Perl on your system.
8045 I can use the full path of your Perl binary for this purpose, but
8046 doing so may cause problems if you want to share those scripts and
8047 Perl is not always in a standard place ($binexp/perl).
8051 rp="What path shall I use in \"eval 'exec'\"?"
8058 case "$startperl" in
8060 *) echo "I'll use $perlpath in \"eval 'exec'\"" ;;
8063 : determine where public executable scripts go
8064 set scriptdir scriptdir
8066 case "$scriptdir" in
8069 : guess some guesses
8070 $test -d /usr/share/scripts && dflt=/usr/share/scripts
8071 $test -d /usr/share/bin && dflt=/usr/share/bin
8072 $test -d /usr/local/script && dflt=/usr/local/script
8073 $test -d /usr/local/scripts && dflt=/usr/local/scripts
8074 $test -d $prefixexp/script && dflt=$prefixexp/script
8078 *) dflt="$scriptdir"
8083 Some installations have a separate directory just for executable scripts so
8084 that they can mount it across multiple architectures but keep the scripts in
8085 one spot. You might, for example, have a subdirectory of /usr/share for this.
8086 Or you might just lump your scripts in with all your other executables.
8090 rp='Where do you keep publicly executable scripts?'
8092 if $test "X$ansexp" != "X$scriptdirexp"; then
8096 scriptdirexp="$ansexp"
8097 : Change installation prefix, if necessary.
8098 if $test X"$prefix" != X"$installprefix"; then
8099 installscript=`echo $scriptdirexp | sed "s#^$prefix#$installprefix#"`
8101 installscript="$scriptdirexp"
8104 : determine where add-on public executables go
8106 '') dflt=$siteprefix/bin ;;
8110 rp='Pathname where the add-on public executables should be installed?'
8113 sitebinexp="$ansexp"
8114 : Change installation prefix, if necessary.
8115 if $test X"$prefix" != X"$installprefix"; then
8116 installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
8118 installsitebin="$sitebinexp"
8121 : define an is-a-typedef? function
8122 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
8124 "") inclist="sys/types.h";;
8126 eval "varval=\$$var";
8130 for inc in $inclist; do
8131 echo "#include <$inc>" >>temp.c;
8133 echo "#ifdef $type" >> temp.c;
8134 echo "printf(\"We have $type\");" >> temp.c;
8135 echo "#endif" >> temp.c;
8136 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
8137 if $contains $type temp.E >/dev/null 2>&1; then
8143 *) eval "$var=\$varval";;
8146 : define an is-a-typedef? function that prompts if the type is not available.
8147 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
8149 "") inclist="sys/types.h";;
8151 eval "varval=\$$var";
8155 for inc in $inclist; do
8156 echo "#include <$inc>" >>temp.c;
8158 echo "#ifdef $type" >> temp.c;
8159 echo "printf(\"We have $type\");" >> temp.c;
8160 echo "#endif" >> temp.c;
8161 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
8163 echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
8164 if $contains $type temp.E >/dev/null 2>&1; then
8165 echo "$type found." >&4;
8168 echo "$type NOT found." >&4;
8174 *) eval "$var=\$varval";;
8177 : see what type lseek is declared as in the kernel
8178 rp="What is the type used for lseek's offset on this system?"
8179 set off_t lseektype long stdio.h sys/types.h
8183 echo "Checking to see how big your file offsets are..." >&4
8185 #include <sys/types.h>
8189 printf("%d\n", (int)sizeof($lseektype));
8194 if eval $compile_ok; then
8195 lseeksize=`$run ./try`
8196 echo "Your file offsets are $lseeksize bytes long."
8200 echo "(I can't seem to compile the test program. Guessing...)"
8201 rp="What is the size of your file offsets (in bytes)?"
8207 : see what type file positions are declared as in the library
8208 rp="What is the type for file position used by fsetpos()?"
8209 set fpos_t fpostype long stdio.h sys/types.h
8214 *_t) zzz="$fpostype" ;;
8217 echo "Checking the size of $zzz..." >&4
8219 #include <sys/types.h>
8222 printf("%d\n", (int)sizeof($fpostype));
8227 if eval $compile_ok; then
8231 echo "(I can't execute the test program--guessing $fpossize.)" >&4
8234 echo "Your $zzz is $fpossize bytes long."
8240 echo "(I can't compile the test program. Guessing...)" >&4
8241 rp="What is the size of your file positions (in bytes)?"
8248 # Backward compatibility (uselfs is deprecated).
8250 "$define"|true|[yY]*)
8253 *** Configure -Duselfs is deprecated, using -Duselargefiles instead.
8255 uselargefiles="$define"
8259 case "$lseeksize:$fpossize" in
8262 You can have files larger than 2 gigabytes.
8265 *) case "$uselargefiles" in
8266 "$undef"|false|[nN]*) dflt='n' ;;
8271 Perl can be built to understand large files (files larger than 2 gigabytes)
8272 on some systems. To do so, Configure can be run with -Duselargefiles.
8274 If this doesn't make any sense to you, just accept the default '$dflt'.
8276 rp='Try to understand large files, if available?'
8279 y|Y) val="$define" ;;
8286 case "$uselargefiles" in
8288 : Look for a hint-file generated 'call-back-unit'. If the
8289 : user has specified that a large files perl is to be built,
8290 : we may need to set or change some other defaults.
8291 if $test -f uselargefiles.cbu; then
8292 echo "Your platform has some specific hints for large file builds, using them..."
8293 . ./uselargefiles.cbu
8295 echo "Rechecking to see how big your file offsets are..." >&4
8297 #include <sys/types.h>
8301 printf("%d\n", (int)sizeof($lseektype));
8306 if eval $compile_ok; then
8307 lseeksize=`$run ./try`
8308 $echo "Your file offsets are now $lseeksize bytes long."
8312 echo "(I can't seem to compile the test program. Guessing...)"
8313 rp="What is the size of your file offsets (in bytes)?"
8318 *_t) zzz="$fpostype" ;;
8321 $echo $n "Rechecking the size of $zzz...$c" >&4
8323 #include <sys/types.h>
8326 printf("%d\n", (int)sizeof($fpostype));
8331 if eval $compile_ok; then
8336 echo "(I can't execute the test program--guessing $fpossize.)" >&4
8339 echo " $fpossize bytes." >&4
8345 echo "(I can't compile the test program. Guessing...)" >&4
8346 rp="What is the size of your file positions (in bytes)?"
8355 case "$vendorprefix" in
8356 '') d_vendorbin="$undef"
8360 *) d_vendorbin="$define"
8361 : determine where vendor-supplied executables go.
8362 case "$vendorbin" in
8363 '') dflt=$vendorprefix/bin ;;
8364 *) dflt="$vendorbin" ;;
8367 rp='Pathname for the vendor-supplied executables directory?'
8370 vendorbinexp="$ansexp"
8373 : Change installation prefix, if necessary.
8374 if $test X"$prefix" != X"$installprefix"; then
8375 installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
8377 installvendorbin="$vendorbinexp"
8380 : see if qgcvt exists
8386 if $test X"$d_longdbl" = X"$define"; then
8388 echo "Checking how to print long doubles..." >&4
8390 if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then
8391 $cat >try.c <<'EOCP'
8392 #include <sys/types.h>
8396 printf("%.3f\n", d);
8400 if eval $compile; then
8404 sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
8405 sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
8406 echo "We will use %f."
8412 if $test X"$sPRIfldbl" = X; then
8413 $cat >try.c <<'EOCP'
8414 #include <sys/types.h>
8417 long double d = 123.456;
8418 printf("%.3Lf\n", d);
8422 if eval $compile; then
8426 sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
8427 sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
8428 echo "We will use %Lf."
8434 if $test X"$sPRIfldbl" = X; then
8435 $cat >try.c <<'EOCP'
8436 #include <sys/types.h>
8439 long double d = 123.456;
8440 printf("%.3llf\n", d);
8444 if eval $compile; then
8448 sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
8449 sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
8450 echo "We will use %llf."
8456 if $test X"$sPRIfldbl" = X; then
8457 $cat >try.c <<'EOCP'
8458 #include <sys/types.h>
8461 long double d = 123.456;
8462 printf("%.3lf\n", d);
8466 if eval $compile; then
8470 sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
8471 sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
8472 echo "We will use %lf."
8478 if $test X"$sPRIfldbl" = X; then
8479 echo "Cannot figure out how to print long doubles." >&4
8481 sSCNfldbl=$sPRIfldbl # expect consistency
8488 case "$sPRIfldbl" in
8489 '') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
8490 d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
8491 d_SCNfldbl="$undef";
8493 *) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
8494 d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
8495 d_SCNfldbl="$define";
8499 : Check how to convert floats to strings.
8501 echo "Checking for an efficient way to convert floats to strings."
8503 case "$uselongdouble" in
8504 "$define") echo "#define USE_LONG_DOUBLE" >>try.c ;;
8506 case "$d_longdbl" in
8507 "$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;;
8509 case "$d_PRIgldbl" in
8510 "$define") echo "#define HAS_PRIgldbl" >>try.c ;;
8514 #define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
8515 char *myname = "gconvert";
8518 #define Gconvert(x,n,t,b) gcvt((x),(n),(b))
8519 char *myname = "gcvt";
8522 #define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
8523 char *myname = "qgcvt";
8524 #define DOUBLETYPE long double
8527 #if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && defined(HAS_PRIgldbl)
8528 #define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x))
8530 #define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
8532 char *myname = "sprintf";
8536 #if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
8537 #define DOUBLETYPE long double
8539 #define DOUBLETYPE double
8545 #define I_STDLIB $i_stdlib
8551 checkit(expect, got)
8555 if (strcmp(expect, got)) {
8556 printf("%s oddity: Expected %s, got %s\n",
8557 myname, expect, got);
8567 /* This must be 1st test on (which?) platform */
8568 /* Alan Burlison <AlanBurlsin@unn.unisys.com> */
8569 Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
8570 checkit("0.1", buf);
8572 Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
8575 Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
8576 checkit("1.1", buf);
8578 Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
8579 checkit("1.01", buf);
8581 Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
8582 checkit("1.001", buf);
8584 Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
8585 checkit("1.0001", buf);
8587 Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
8588 checkit("1.00001", buf);
8590 Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
8591 checkit("1.000001", buf);
8593 Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
8596 Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
8599 /* Some Linux gcvt's give 1.e+5 here. */
8600 Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
8601 checkit("100000", buf);
8603 /* Some Linux gcvt's give -1.e+5 here. */
8604 Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
8605 checkit("-100000", buf);
8607 Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
8608 checkit("123.456", buf);
8610 /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
8611 Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
8612 if (strlen(buf) > 5)
8613 checkit("1e+030", buf); /* for Microsoft */
8615 checkit("1e+30", buf);
8620 case "$d_Gconvert" in
8621 gconvert*) xxx_list='gconvert gcvt sprintf' ;;
8622 gcvt*) xxx_list='gcvt gconvert sprintf' ;;
8623 sprintf*) xxx_list='sprintf gconvert gcvt' ;;
8624 *) xxx_list='gconvert gcvt sprintf' ;;
8627 case "$d_longdbl$uselongdouble$d_PRIgldbl" in
8628 "$define$define$define")
8629 # for long doubles prefer first qgcvt, then sprintf
8630 xxx_list="`echo $xxx_list|sed s/sprintf//`"
8631 xxx_list="sprintf $xxx_list"
8633 "$define") xxx_list="qgcvt $xxx_list" ;;
8638 for xxx_convert in $xxx_list; do
8639 echo "Trying $xxx_convert..."
8641 set try -DTRY_$xxx_convert
8642 if eval $compile; then
8643 echo "$xxx_convert() found." >&4
8645 echo "I'll use $xxx_convert to convert floats into a string." >&4
8648 echo "...But $xxx_convert didn't work as I expected."
8651 echo "$xxx_convert NOT found." >&4
8655 case "$xxx_convert" in
8656 gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
8657 gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
8658 qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
8659 *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
8660 "$define$define$define")
8661 d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;;
8662 *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
8667 : see if _fwalk exists
8671 : Initialize h_fcntl
8674 : Initialize h_sysfile
8677 : access call always available on UNIX
8681 : locate the flags for 'access()'
8685 $cat >access.c <<'EOCP'
8686 #include <sys/types.h>
8691 #include <sys/file.h>
8700 : check sys/file.h first, no particular reason here
8701 if $test `./findhdr sys/file.h` && \
8702 $cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then
8704 echo "<sys/file.h> defines the *_OK access constants." >&4
8705 elif $test `./findhdr fcntl.h` && \
8706 $cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then
8708 echo "<fcntl.h> defines the *_OK access constants." >&4
8709 elif $test `./findhdr unistd.h` && \
8710 $cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then
8711 echo "<unistd.h> defines the *_OK access constants." >&4
8713 echo "I can't find the four *_OK access constants--I'll use mine." >&4
8719 : see if accessx exists
8720 set accessx d_accessx
8723 : see if alarm exists
8727 : see if atolf exists
8731 : see if atoll exists
8735 : Look for GNU-cc style attribute checking
8737 echo "Checking whether your compiler can handle __attribute__ ..." >&4
8738 $cat >attrib.c <<'EOCP'
8740 void croak (char* pat,...) __attribute__((format(printf,1,2),noreturn));
8742 if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
8743 if $contains 'warning' attrib.out >/dev/null 2>&1; then
8744 echo "Your C compiler doesn't fully support __attribute__."
8747 echo "Your C compiler supports __attribute__."
8751 echo "Your C compiler doesn't seem to understand __attribute__ at all."
8758 : see if bcmp exists
8762 : see if bcopy exists
8766 : see if this is a unistd.h system
8767 set unistd.h i_unistd
8770 : see if getpgrp exists
8771 set getpgrp d_getpgrp
8774 case "$d_getpgrp" in
8777 echo "Checking to see which flavor of getpgrp is in use..."
8780 #include <sys/types.h>
8782 # include <unistd.h>
8786 if (getuid() == 0) {
8787 printf("(I see you are running Configure as super-user...)\n");
8791 if (getpgrp(1) == 0)
8800 if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8801 echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
8803 elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8804 echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
8807 echo "I can't seem to compile and run the test program."
8809 xxx="a USG one, i.e. you use getpgrp()."
8811 # SVR4 systems can appear rather BSD-ish.
8814 xxx="a BSD one, i.e. you use getpgrp(pid)."
8818 xxx="probably a USG one, i.e. you use getpgrp()."
8823 echo "Assuming your getpgrp is $xxx" >&4
8832 : see if setpgrp exists
8833 set setpgrp d_setpgrp
8836 case "$d_setpgrp" in
8839 echo "Checking to see which flavor of setpgrp is in use..."
8842 #include <sys/types.h>
8844 # include <unistd.h>
8848 if (getuid() == 0) {
8849 printf("(I see you are running Configure as super-user...)\n");
8853 if (-1 == setpgrp(1, 1))
8856 if (setpgrp() != -1)
8862 if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8863 echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
8865 elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8866 echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
8869 echo "(I can't seem to compile and run the test program.)"
8871 xxx="a USG one, i.e. you use setpgrp()."
8873 # SVR4 systems can appear rather BSD-ish.
8876 xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)."
8880 xxx="probably a USG one, i.e. you use setpgrp()."
8885 echo "Assuming your setpgrp is $xxx" >&4
8893 : see if bzero exists
8897 : see if signal is declared as pointer to function returning int or void
8899 xxx=`./findhdr signal.h`
8900 $test "$xxx" && $cppstdin $cppminus $cppflags < $xxx >$$.tmp 2>/dev/null
8901 if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
8902 echo "You have int (*signal())() instead of void." >&4
8904 elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
8905 echo "You have void (*signal())()." >&4
8907 elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then
8908 echo "You have int (*signal())() instead of void." >&4
8910 elif $contains 'void.*\*.*sig' $$.tmp >/dev/null 2>&1 ; then
8911 echo "You have void (*signal())()." >&4
8914 case "$d_voidsig" in
8916 echo "I can't determine whether signal handler returns void or int..." >&4
8918 rp="What type does your signal handler return?"
8925 echo "As you already told me, signal handler returns void." >&4
8928 *) echo "As you already told me, signal handler returns int." >&4
8935 case "$d_voidsig" in
8936 "$define") signal_t="void";;
8941 : check for ability to cast large floats to 32-bit ints.
8943 echo 'Checking whether your C compiler can cast large floats to int32.' >&4
8944 if $test "$intsize" -ge 4; then
8951 #include <sys/types.h>
8953 $signal_t blech(s) int s; { exit(3); }
8960 signal(SIGFPE, blech);
8962 /* Don't let compiler optimize the test away. Store the number
8963 in a writable string for gcc to pass to sscanf under HP/UX.
8965 sprintf(str, "2147483647");
8966 sscanf(str, "%lf", &f); /* f = (double) 0x7fffffff; */
8970 /* x86 processors will probably give 0x8000 0000, which is a
8971 sign change. We don't want that. We want to mimic SPARC
8972 behavior here, which is to preserve the sign and give
8975 if (i32 != ($xxx) f)
8981 if eval $compile_ok; then
8985 echo "(I can't seem to compile the test program--assuming it can't)"
8993 echo "Nope, it can't."
9000 : check for ability to cast negative floats to unsigned
9002 echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
9005 #include <sys/types.h>
9007 $signal_t blech(s) int s; { exit(7); }
9008 $signal_t blech_in_list(s) int s; { exit(4); }
9009 unsigned long dummy_long(p) unsigned long p; { return p; }
9010 unsigned int dummy_int(p) unsigned int p; { return p; }
9011 unsigned short dummy_short(p) unsigned short p; { return p; }
9015 unsigned long along;
9017 unsigned short ashort;
9021 /* Frustrate gcc-2.7.2's optimizer which failed this test with
9022 a direct f = -123. assignment. gcc-2.8.0 reportedly
9023 optimized the whole file away
9025 /* Store the number in a writable string for gcc to pass to
9028 sprintf(str, "-123");
9029 sscanf(str, "%lf", &f); /* f = -123.; */
9031 signal(SIGFPE, blech);
9032 along = (unsigned long)f;
9033 aint = (unsigned int)f;
9034 ashort = (unsigned short)f;
9035 if (along != (unsigned long)-123)
9037 if (aint != (unsigned int)-123)
9039 if (ashort != (unsigned short)-123)
9041 sprintf(str, "1073741824.");
9042 sscanf(str, "%lf", &f); /* f = (double)0x40000000; */
9045 along = (unsigned long)f;
9046 if (along != 0x80000000)
9050 along = (unsigned long)f;
9051 if (along != 0x7fffffff)
9055 along = (unsigned long)f;
9056 if (along != 0x80000001)
9060 signal(SIGFPE, blech_in_list);
9061 sprintf(str, "123.");
9062 sscanf(str, "%lf", &f); /* f = 123.; */
9063 along = dummy_long((unsigned long)f);
9064 aint = dummy_int((unsigned int)f);
9065 ashort = dummy_short((unsigned short)f);
9066 if (along != (unsigned long)123)
9068 if (aint != (unsigned int)123)
9070 if (ashort != (unsigned short)123)
9077 if eval $compile_ok; then
9081 echo "(I can't seem to compile the test program--assuming it can't)"
9084 case "$castflags" in
9089 echo "Nope, it can't."
9096 : see if vprintf exists
9098 if set vprintf val -f d_vprintf; eval $csym; $val; then
9099 echo 'vprintf() found.' >&4
9102 #include <varargs.h>
9104 int main() { xxx("foo"); }
9113 exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
9117 if eval $compile && $run ./try; then
9118 echo "Your vsprintf() returns (int)." >&4
9121 echo "Your vsprintf() returns (char*)." >&4
9125 echo 'vprintf() NOT found.' >&4
9136 : see if chown exists
9140 : see if chroot exists
9144 : see if chsize exists
9148 : see if class exists
9152 hasstruct='varname=$1; struct=$2; shift; shift;
9153 while $test $# -ge 2; do
9155 $define) echo "#include <$2>";;
9159 echo "int main () { struct $struct foo; }" >> try.c;
9161 if eval $compile; then
9170 : see if sys/types.h has to be included
9171 set sys/types.h i_systypes
9174 hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
9175 while $test $# -ge 2; do
9177 $define) echo "#include <$2>";;
9181 echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
9183 if eval $compile; then
9194 : see whether socket exists
9196 $echo $n "Hmm... $c" >&4
9197 if set socket val -f d_socket; eval $csym; $val; then
9198 echo "Looks like you have Berkeley networking support." >&4
9200 if set setsockopt val -f; eval $csym; $val; then
9203 echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
9207 if $contains socklib libc.list >/dev/null 2>&1; then
9208 echo "Looks like you have Berkeley networking support." >&4
9210 : we will have to assume that it supports the 4.2 BSD interface
9213 echo "You don't have Berkeley networking in libc$_a..." >&4
9214 if test "X$d_socket" = "X$define"; then
9215 echo "...but you seem to believe that you have sockets." >&4
9217 for net in net socket
9219 if test -f /usr/lib/lib$net$_a; then
9220 ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
9221 $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
9222 if $contains socket libc.list >/dev/null 2>&1; then
9227 echo "...but the Wollongong group seems to have hacked it in." >&4
9228 sockethdr="-I/usr/netinclude"
9231 echo "Found Berkeley sockets interface in lib$net." >& 4
9232 if $contains setsockopt libc.list >/dev/null 2>&1; then
9235 echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
9242 if test "X$d_socket" != "X$define"; then
9243 echo "or anywhere else I see." >&4
9251 : see if socketpair exists
9252 set socketpair d_sockpair
9257 echo "Checking the availability of certain socket constants..." >& 4
9258 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
9259 enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
9261 #include <sys/types.h>
9262 #include <sys/socket.h>
9268 set try; if eval $compile; then
9271 set d_${enum}; eval $setvar
9275 : see if this is a sys/uio.h system
9276 set sys/uio.h i_sysuio
9281 echo "Checking to see if your system supports struct cmsghdr..." >&4
9282 set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
9284 case "$d_cmsghdr_s" in
9285 "$define") echo "Yes, it does." ;;
9286 *) echo "No, it doesn't." ;;
9290 : check for const keyword
9292 echo 'Checking to see if your C compiler knows about "const"...' >&4
9293 $cat >const.c <<'EOCP'
9294 typedef struct spug { int drokk; } spug;
9301 if $cc -c $ccflags const.c >/dev/null 2>&1 ; then
9303 echo "Yup, it does."
9306 echo "Nope, it doesn't."
9311 : see if crypt exists
9313 if set crypt val -f d_crypt; eval $csym; $val; then
9314 echo 'crypt() found.' >&4
9318 cryptlib=`./loc Slibcrypt$_a "" $xlibpth`
9319 if $test -z "$cryptlib"; then
9320 cryptlib=`./loc Mlibcrypt$_a "" $xlibpth`
9324 if $test -z "$cryptlib"; then
9325 cryptlib=`./loc Llibcrypt$_a "" $xlibpth`
9329 if $test -z "$cryptlib"; then
9330 cryptlib=`./loc libcrypt$_a "" $libpth`
9334 if $test -z "$cryptlib"; then
9335 echo 'crypt() NOT found.' >&4
9344 : get csh whereabouts
9346 'csh') val="$undef" ;;
9351 : Respect a hint or command line value for full_csh.
9353 '') full_csh=$csh ;;
9356 : see if cuserid exists
9357 set cuserid d_cuserid
9360 : see if this is a limits.h system
9361 set limits.h i_limits
9364 : see if this is a float.h system
9368 : See if number of significant digits in a double precision number is known
9370 $cat >dbl_dig.c <<EOM
9380 printf("Contains DBL_DIG");
9383 $cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null
9384 if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then
9385 echo "DBL_DIG found." >&4
9388 echo "DBL_DIG NOT found." >&4
9395 hasproto='varname=$1; func=$2; shift; shift;
9396 while $test $# -ge 2; do
9398 $define) echo "#include <$2>";;
9402 $cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
9403 if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
9404 echo "$func() prototype found.";
9407 echo "$func() prototype NOT found.";
9412 $rm -f try.c tryout.c'
9414 : see if dbm.h is available
9415 : see if dbmclose exists
9416 set dbmclose d_dbmclose
9419 case "$d_dbmclose" in
9429 *) set rpcsvc/dbm.h i_rpcsvcdbm
9434 *) echo "We won't be including <dbm.h>"
9444 : see if prototype for dbminit is available
9446 set d_dbminitproto dbminit $i_dbm dbm.h
9449 : see if difftime exists
9450 set difftime d_difftime
9453 : see if this is a dirent system
9455 if xinc=`./findhdr dirent.h`; $test "$xinc"; then
9457 echo "<dirent.h> found." >&4
9460 if xinc=`./findhdr sys/dir.h`; $test "$xinc"; then
9461 echo "<sys/dir.h> found." >&4
9464 xinc=`./findhdr sys/ndir.h`
9466 echo "<dirent.h> NOT found." >&4
9471 : Look for type of directory structure.
9473 $cppstdin $cppflags $cppminus < "$xinc" > try.c
9475 case "$direntrytype" in
9478 $define) guess1='struct dirent' ;;
9479 *) guess1='struct direct' ;;
9482 *) guess1="$direntrytype"
9487 'struct dirent') guess2='struct direct' ;;
9488 *) guess2='struct dirent' ;;
9491 if $contains "$guess1" try.c >/dev/null 2>&1; then
9492 direntrytype="$guess1"
9493 echo "Your directory entries are $direntrytype." >&4
9494 elif $contains "$guess2" try.c >/dev/null 2>&1; then
9495 direntrytype="$guess2"
9496 echo "Your directory entries seem to be $direntrytype." >&4
9498 echo "I don't recognize your system's directory entries." >&4
9499 rp="What type is used for directory entries on this system?"
9507 : see if the directory entry stores field length
9509 $cppstdin $cppflags $cppminus < "$xinc" > try.c
9510 if $contains 'd_namlen' try.c >/dev/null 2>&1; then
9511 echo "Good, your directory entry keeps length information in d_namlen." >&4
9514 echo "Your directory entry does not know about the d_namlen field." >&4
9521 : see if this is an sysdir system
9522 set sys/dir.h i_sysdir
9525 : see if this is an sysndir system
9526 set sys/ndir.h i_sysndir
9533 #$i_dirent I_DIRENT /**/
9534 #$i_sysdir I_SYS_DIR /**/
9535 #$i_sysndir I_SYS_NDIR /**/
9536 #$i_systypes I_SYS_TYPES /**/
9537 #if defined(I_SYS_TYPES)
9538 #include <sys/types.h>
9540 #if defined(I_DIRENT)
9542 #if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
9543 #include <sys/dir.h>
9547 #include <sys/ndir.h>
9551 #include <ndir.h> /* may be wrong in the future */
9553 #include <sys/dir.h>
9559 DIR *dirp = opendir(".");
9560 if (dirfd(dirp) >= 0)
9567 if eval $compile; then
9571 $define) echo "dirfd() found." >&4 ;;
9572 *) echo "dirfd() NOT found." >&4 ;;
9578 : see if dlerror exists
9581 set dlerror d_dlerror
9585 : see if dlfcn is available
9593 On a few systems, the dynamically loaded modules that perl generates and uses
9594 will need a different extension than shared libs. The default will probably
9602 rp='What is the extension of dynamically loaded modules'
9611 : Check if dlsym need a leading underscore
9617 echo "Checking whether your dlsym() needs a leading underscore ..." >&4
9618 $cat >dyna.c <<'EOM'
9627 #include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */
9629 #include <sys/types.h>
9643 int mode = RTLD_LAZY ;
9645 handle = dlopen("./dyna.$dlext", mode) ;
9646 if (handle == NULL) {
9651 symbol = dlsym(handle, "fred") ;
9652 if (symbol == NULL) {
9653 /* try putting a leading underscore */
9654 symbol = dlsym(handle, "_fred") ;
9655 if (symbol == NULL) {
9668 : Call the object file tmp-dyna.o in case dlext=o.
9669 if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
9670 mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
9671 $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
9672 $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
9675 1) echo "Test program failed using dlopen." >&4
9676 echo "Perhaps you should not use dynamic loading." >&4;;
9677 2) echo "Test program failed using dlsym." >&4
9678 echo "Perhaps you should not use dynamic loading." >&4;;
9679 3) echo "dlsym needs a leading underscore" >&4
9681 4) echo "dlsym doesn't need a leading underscore." >&4;;
9684 echo "I can't compile and run the test program." >&4
9685 echo "I'm guessing that dlsym doesn't need a leading underscore." >&4
9690 $rm -f fred fred.? dyna.$dlext dyna.? tmp-dyna.?
9695 : see if prototype for drand48 is available
9697 set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h
9700 : see if dup2 exists
9704 : see if eaccess exists
9705 set eaccess d_eaccess
9708 : see if endgrent exists
9709 set endgrent d_endgrent
9712 : see if endhostent exists
9713 set endhostent d_endhent
9716 : see if endnetent exists
9717 set endnetent d_endnent
9720 : see if endprotoent exists
9721 set endprotoent d_endpent
9724 : see if endpwent exists
9725 set endpwent d_endpwent
9728 : see if endservent exists
9729 set endservent d_endsent
9732 : Locate the flags for 'open()'
9734 $cat >try.c <<'EOCP'
9735 #include <sys/types.h>
9740 #include <sys/file.h>
9751 : check sys/file.h first to get FREAD on Sun
9752 if $test `./findhdr sys/file.h` && \
9753 set try -DI_SYS_FILE && eval $compile; then
9755 echo "<sys/file.h> defines the O_* constants..." >&4
9757 echo "and you have the 3 argument form of open()." >&4
9760 echo "but not the 3 argument form of open(). Oh, well." >&4
9763 elif $test `./findhdr fcntl.h` && \
9764 set try -DI_FCNTL && eval $compile; then
9766 echo "<fcntl.h> defines the O_* constants..." >&4
9768 echo "and you have the 3 argument form of open()." >&4
9771 echo "but not the 3 argument form of open(). Oh, well." >&4
9776 echo "I can't find the O_* constant definitions! You got problems." >&4
9782 : see which of string.h or strings.h is needed
9784 strings=`./findhdr string.h`
9785 if $test "$strings" && $test -r "$strings"; then
9786 echo "Using <string.h> instead of <strings.h>." >&4
9790 strings=`./findhdr strings.h`
9791 if $test "$strings" && $test -r "$strings"; then
9792 echo "Using <strings.h> instead of <string.h>." >&4
9794 echo "No string header found -- You'll surely have problems." >&4
9800 "$undef") strings=`./findhdr strings.h`;;
9801 *) strings=`./findhdr string.h`;;
9804 : check for non-blocking I/O stuff
9805 case "$h_sysfile" in
9806 true) echo "#include <sys/file.h>" > head.c;;
9809 true) echo "#include <fcntl.h>" > head.c;;
9810 *) echo "#include <sys/fcntl.h>" > head.c;;
9815 echo "Figuring out the flag used by open() for non-blocking I/O..." >&4
9816 case "$o_nonblock" in
9819 $cat >>try.c <<'EOCP'
9824 printf("O_NONBLOCK\n");
9828 printf("O_NDELAY\n");
9832 printf("FNDELAY\n");
9839 if eval $compile_ok; then
9840 o_nonblock=`$run ./try`
9841 case "$o_nonblock" in
9842 '') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
9843 *) echo "Seems like we can use $o_nonblock.";;
9846 echo "(I can't compile the test program; pray O_NONBLOCK is right!)"
9849 *) echo "Using $hint value $o_nonblock.";;
9851 $rm -f try try.* .out core
9854 echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4
9860 #include <sys/types.h>
9864 #define MY_O_NONBLOCK $o_nonblock
9865 #ifndef errno /* XXX need better Configure test */
9876 #include <strings.h>
9878 $signal_t blech(x) int x; { exit(3); }
9880 $cat >> try.c <<'EOCP'
9888 pipe(pd); /* Down: child -> parent */
9889 pipe(pu); /* Up: parent -> child */
9892 close(pd[1]); /* Parent reads from pd[0] */
9893 close(pu[0]); /* Parent writes (blocking) to pu[1] */
9895 if (-1 == fcntl(pd[0], F_SETFL, MY_O_NONBLOCK))
9900 signal(SIGALRM, blech);
9902 if ((ret = read(pd[0], buf, 1)) > 0) /* Nothing to read! */
9904 sprintf(string, "%d\n", ret);
9905 write(2, string, strlen(string));
9908 if (errno == EAGAIN) {
9914 if (errno == EWOULDBLOCK)
9915 printf("EWOULDBLOCK\n");
9918 write(pu[1], buf, 1); /* Unblocks child, tell it to close our pipe */
9919 sleep(2); /* Give it time to close our pipe */
9921 ret = read(pd[0], buf, 1); /* Should read EOF */
9923 sprintf(string, "%d\n", ret);
9924 write(3, string, strlen(string));
9928 close(pd[0]); /* We write to pd[1] */
9929 close(pu[1]); /* We read from pu[0] */
9930 read(pu[0], buf, 1); /* Wait for parent to signal us we may continue */
9931 close(pd[1]); /* Pipe pd is now fully closed! */
9932 exit(0); /* Bye bye, thank you for playing! */
9936 if eval $compile_ok; then
9937 echo "$startsh" >mtry
9938 echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
9940 ./mtry >/dev/null 2>&1
9942 0) eagain=`$cat try.out`;;
9943 1) echo "Could not perform non-blocking setting!";;
9944 2) echo "I did a successful read() for something that was not there!";;
9945 3) echo "Hmm... non-blocking I/O does not seem to be working!";;
9946 4) echo "Could not find F_SETFL!";;
9947 *) echo "Something terribly wrong happened during testing.";;
9949 rd_nodata=`$cat try.ret`
9950 echo "A read() system call with no data present returns $rd_nodata."
9951 case "$rd_nodata" in
9954 echo "(That's peculiar, fixing that to be -1.)"
9960 echo "Forcing errno EAGAIN on read() with no data available."
9964 echo "Your read() sets errno to $eagain when no data is available."
9967 status=`$cat try.err`
9969 0) echo "And it correctly returns 0 to signal EOF.";;
9970 -1) echo "But it also returns -1 to signal EOF, so be careful!";;
9971 *) echo "However, your read() returns '$status' on EOF??";;
9974 if test "$status" = "$rd_nodata"; then
9975 echo "WARNING: you can't distinguish between EOF and no data!"
9979 echo "I can't compile the test program--assuming errno EAGAIN will do."
9986 echo "Using $hint value $eagain."
9987 echo "Your read() returns $rd_nodata when no data is present."
9988 case "$d_eofnblk" in
9989 "$define") echo "And you can see EOF because read() returns 0.";;
9990 "$undef") echo "But you can't see EOF status from read() returned value.";;
9992 echo "(Assuming you can't see EOF status from read anyway.)"
9998 $rm -f try try.* .out core head.c mtry
10000 : see if fchdir exists
10001 set fchdir d_fchdir
10004 : see if fchmod exists
10005 set fchmod d_fchmod
10008 : see if fchown exists
10009 set fchown d_fchown
10012 : see if this is an fcntl system
10017 : See if fcntl-based locking works.
10019 #include <stdlib.h>
10020 #include <unistd.h>
10022 #include <signal.h>
10023 $signal_t blech(x) int x; { exit(3); }
10025 #if defined(F_SETLK) && defined(F_SETLKW)
10026 struct flock flock;
10028 fd = open("try.c", O_RDONLY);
10029 flock.l_type = F_RDLCK;
10030 flock.l_whence = SEEK_SET;
10031 flock.l_start = flock.l_len = 0;
10032 signal(SIGALRM, blech);
10034 retval = fcntl(fd, F_SETLK, &flock);
10036 (retval < 0 ? exit(2) : exit(0));
10042 echo "Checking if fcntl-based file locking works... "
10046 if eval $compile_ok; then
10047 if $run ./try; then
10048 echo "Yes, it seems to work."
10051 echo "Nope, it didn't work."
10056 *** I had to forcibly timeout from fcntl(..., F_SETLK, ...).
10057 *** This is (almost) impossible.
10058 *** If your NFS lock daemons are not feeling well, something like
10059 *** this may happen, please investigate. Cannot continue, aborting.
10067 echo "I'm unable to compile the test program, so I'll assume not."
10072 echo "Nope, since you don't even have fcntl()."
10075 set d_fcntl_can_lock
10080 : see if sys/select.h has to be included
10081 set sys/select.h i_sysselct
10084 : see if we should include time.h, sys/time.h, or both
10086 if test "X$timeincl" = X; then
10087 echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
10088 $echo $n "I'm now running the test program...$c"
10089 $cat >try.c <<'EOCP'
10090 #include <sys/types.h>
10095 #ifdef SYSTIMEKERNEL
10098 #include <sys/time.h>
10101 #include <sys/select.h>
10107 struct timeval bar;
10110 struct timezone tzp;
10112 if (foo.tm_sec == foo.tm_sec)
10115 if (bar.tv_sec == bar.tv_sec)
10122 for s_timezone in '-DS_TIMEZONE' ''; do
10124 for s_timeval in '-DS_TIMEVAL' ''; do
10125 for i_systimek in '' '-DSYSTIMEKERNEL'; do
10126 for i_time in '' '-DI_TIME'; do
10127 for i_systime in '-DI_SYSTIME' ''; do
10130 set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
10131 if eval $compile; then
10132 set X $i_time $i_systime $i_systimek $sysselect $s_timeval
10136 $echo $n "Succeeded with $flags$c"
10148 *SYSTIMEKERNEL*) i_systimek="$define"
10149 timeincl=`./findhdr sys/time.h`
10150 echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
10151 *) i_systimek="$undef";;
10154 *I_TIME*) i_time="$define"
10155 timeincl=`./findhdr time.h`" $timeincl"
10156 echo "We'll include <time.h>." >&4;;
10157 *) i_time="$undef";;
10160 *I_SYSTIME*) i_systime="$define"
10161 timeincl=`./findhdr sys/time.h`" $timeincl"
10162 echo "We'll include <sys/time.h>." >&4;;
10163 *) i_systime="$undef";;
10168 : check for fd_set items
10171 Checking to see how well your C compiler handles fd_set and friends ...
10174 #$i_systime I_SYS_TIME
10175 #$i_sysselct I_SYS_SELECT
10176 #$d_socket HAS_SOCKET
10177 #include <sys/types.h>
10179 #include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
10182 #include <sys/time.h>
10184 #ifdef I_SYS_SELECT
10185 #include <sys/select.h>
10194 #if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
10202 if eval $compile; then
10203 d_fds_bits="$define"
10205 echo "Well, your system knows about the normal fd_set typedef..." >&4
10206 if $run ./try; then
10207 echo "and you have the normal fd_set macros (just as I'd expect)." >&4
10208 d_fd_macros="$define"
10211 but not the normal fd_set macros! Gaaack! I'll have to cover for you.
10213 d_fd_macros="$undef"
10217 Hmm, your compiler has some difficulty with fd_set. Checking further...
10220 if eval $compile; then
10221 d_fds_bits="$undef"
10223 echo "Well, your system has some sort of fd_set available..." >&4
10224 if $run ./try; then
10225 echo "and you have the normal fd_set macros." >&4
10226 d_fd_macros="$define"
10229 but not the normal fd_set macros! Gross! More work for me...
10231 d_fd_macros="$undef"
10234 echo "Well, you got zip. That's OK, I can roll my own fd_set stuff." >&4
10236 d_fds_bits="$undef"
10237 d_fd_macros="$undef"
10242 : see if fgetpos exists
10243 set fgetpos d_fgetpos
10246 : see if finite exists
10247 set finite d_finite
10250 : see if finitel exists
10251 set finitel d_finitel
10254 : see if flock exists
10258 : see if this is a sys/file.h system
10263 : do we need to include sys/file.h ?
10267 if $h_sysfile; then
10269 echo "We'll be including <sys/file.h>." >&4
10272 echo "We won't be including <sys/file.h>." >&4
10282 : see if prototype for flock is available
10284 set d_flockproto flock $i_sysfile sys/file.h
10287 : see if fork exists
10291 : see if fp_class exists
10292 set fp_class d_fp_class
10295 : see if pathconf exists
10296 set pathconf d_pathconf
10299 : see if fpathconf exists
10300 set fpathconf d_fpathconf
10303 : see if fpclass exists
10304 set fpclass d_fpclass
10307 : see if fpclassify exists
10308 set fpclassify d_fpclassify
10311 : see if fpclassl exists
10312 set fpclassl d_fpclassl
10316 : check for fpos64_t
10318 echo "Checking to see if you have fpos64_t..." >&4
10321 int main() { fpos64_t x = 7; }
10324 if eval $compile; then
10326 echo "You have fpos64_t."
10329 echo "You do not have fpos64_t."
10330 case "$fpossize" in
10331 8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
10338 : see if frexpl exists
10339 set frexpl d_frexpl
10342 : see if this is a sys/param system
10343 set sys/param.h i_sysparam
10346 : see if this is a sys/mount.h system
10347 set sys/mount.h i_sysmount
10352 echo "Checking to see if your system supports struct fs_data..." >&4
10353 set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
10355 case "$d_fs_data_s" in
10356 "$define") echo "Yes, it does." ;;
10357 *) echo "No, it doesn't." ;;
10360 : see if fseeko exists
10361 set fseeko d_fseeko
10363 case "$longsize" in
10364 8) echo "(Your long is 64 bits, so you could use fseek.)" ;;
10367 : see if fsetpos exists
10368 set fsetpos d_fsetpos
10372 : see if fstatfs exists
10373 set fstatfs d_fstatfs
10377 : see if statvfs exists
10378 set statvfs d_statvfs
10381 : see if fstatvfs exists
10382 set fstatvfs d_fstatvfs
10386 : see if fsync exists
10390 : see if ftello exists
10391 set ftello d_ftello
10393 case "$longsize" in
10394 8) echo "(Your long is 64 bits, so you could use ftell.)" ;;
10397 : see if getcwd exists
10398 set getcwd d_getcwd
10401 : see if getespwnam exists
10402 set getespwnam d_getespwnam
10406 : see if getfsstat exists
10407 set getfsstat d_getfsstat
10410 : see if getgrent exists
10411 set getgrent d_getgrent
10414 : see if gethostbyaddr exists
10415 set gethostbyaddr d_gethbyaddr
10418 : see if gethostbyname exists
10419 set gethostbyname d_gethbyname
10422 : see if gethostent exists
10423 set gethostent d_gethent
10426 : see how we will look up host name
10429 if set gethostname val -f d_gethname; eval $csym; $val; then
10430 echo 'gethostname() found.' >&4
10431 d_gethname="$define"
10434 if set uname val -f d_uname; eval $csym; $val; then
10437 uname() was found, but you're running xenix, and older versions of xenix
10438 have a broken uname(). If you don't really know whether your xenix is old
10439 enough to have a broken system call, use the default answer.
10444 "$define") dflt=n;;
10446 rp='Is your uname() broken?'
10449 n*) d_uname="$define"; call=uname;;
10452 echo 'uname() found.' >&4
10459 case "$d_gethname" in
10460 '') d_gethname="$undef";;
10463 '') d_uname="$undef";;
10465 case "$d_uname$d_gethname" in
10470 Every now and then someone has a $call() that lies about the hostname
10471 but can't be fixed for political or economic reasons. If you wish, I can
10472 pretend $call() isn't there and maybe compute hostname at run-time
10473 thanks to the '$phostname' command.
10476 rp="Shall I ignore $call() from now on?"
10479 y*) d_uname="$undef" d_gethname="$undef"; $echo $n "Okay...$c";;
10482 case "$phostname" in
10483 '') aphostname='';;
10484 *) case "$aphostname" in
10486 *) set X $phostname
10490 file=`./loc $file $file $pth`
10491 aphostname=`echo $file $*`
10496 case "$d_uname$d_gethname" in
10499 case "$phostname" in
10501 echo "There will be no way for $package to get your hostname." >&4;;
10503 echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
10507 case "$d_phostname" in
10508 '') d_phostname="$undef";;
10511 : see if this is a netdb.h system
10512 set netdb.h i_netdb
10515 : see if prototypes for various gethostxxx netdb.h functions are available
10517 set d_gethostprotos gethostent $i_netdb netdb.h
10520 : see if getitimer exists
10521 set getitimer d_getitimer
10524 : see if getlogin exists
10525 set getlogin d_getlogin
10528 : see if getmnt exists
10529 set getmnt d_getmnt
10532 : see if getmntent exists
10533 set getmntent d_getmntent
10536 : see if getnetbyaddr exists
10537 set getnetbyaddr d_getnbyaddr
10540 : see if getnetbyname exists
10541 set getnetbyname d_getnbyname
10544 : see if getnetent exists
10545 set getnetent d_getnent
10548 : see if prototypes for various getnetxxx netdb.h functions are available
10550 set d_getnetprotos getnetent $i_netdb netdb.h
10553 : see if getpagesize exists
10554 set getpagesize d_getpagsz
10558 : see if getprotobyname exists
10559 set getprotobyname d_getpbyname
10562 : see if getprotobynumber exists
10563 set getprotobynumber d_getpbynumber
10566 : see if getprotoent exists
10567 set getprotoent d_getpent
10570 : see if getpgid exists
10571 set getpgid d_getpgid
10574 : see if getpgrp2 exists
10575 set getpgrp2 d_getpgrp2
10578 : see if getppid exists
10579 set getppid d_getppid
10582 : see if getpriority exists
10583 set getpriority d_getprior
10586 : see if prototypes for various getprotoxxx netdb.h functions are available
10588 set d_getprotoprotos getprotoent $i_netdb netdb.h
10591 : see if getprpwnam exists
10592 set getprpwnam d_getprpwnam
10595 : see if getpwent exists
10596 set getpwent d_getpwent
10600 : see if getservbyname exists
10601 set getservbyname d_getsbyname
10604 : see if getservbyport exists
10605 set getservbyport d_getsbyport
10608 : see if getservent exists
10609 set getservent d_getsent
10612 : see if prototypes for various getservxxx netdb.h functions are available
10614 set d_getservprotos getservent $i_netdb netdb.h
10617 : see if getspnam exists
10618 set getspnam d_getspnam
10621 : see if gettimeofday or ftime exists
10622 set gettimeofday d_gettimeod
10624 case "$d_gettimeod" in
10630 val="$undef"; set d_ftime; eval $setvar
10633 case "$d_gettimeod$d_ftime" in
10636 echo 'No ftime() nor gettimeofday() -- timing may be less accurate.' >&4
10640 : see if this is an grp system
10646 xxx=`./findhdr grp.h`
10647 $cppstdin $cppflags $cppminus < $xxx >$$.h
10649 if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then
10661 set d_grpasswd; eval $setvar
10665 : see if hasmntopt exists
10666 set hasmntopt d_hasmntopt
10669 : see if this is a netinet/in.h or sys/in.h system
10670 set netinet/in.h i_niin sys/in.h i_sysin
10673 : see if arpa/inet.h has to be included
10674 set arpa/inet.h i_arpainet
10677 : see if htonl --and friends-- exists
10682 : Maybe they are macros.
10685 $cat >htonl.c <<EOM
10687 #include <sys/types.h>
10688 #$i_niin I_NETINET_IN
10690 #$i_arpainet I_ARPA_INET
10691 #ifdef I_NETINET_IN
10692 #include <netinet/in.h>
10695 #include <sys/in.h>
10698 #include <arpa/inet.h>
10701 printf("Defined as a macro.");
10704 $cppstdin $cppflags $cppminus < htonl.c >htonl.E 2>/dev/null
10705 if $contains 'Defined as a macro' htonl.E >/dev/null 2>&1; then
10707 echo "But it seems to be defined as a macro." >&4
10717 if set index val -f; eval $csym; $val; then
10718 if set strchr val -f d_strchr; eval $csym; $val; then
10719 if $contains strchr "$strings" >/dev/null 2>&1 ; then
10722 echo "strchr() found." >&4
10726 echo "index() found." >&4
10731 echo "index() found." >&4
10734 if set strchr val -f d_strchr; eval $csym; $val; then
10737 echo "strchr() found." >&4
10739 echo "No index() or strchr() found!" >&4
10744 set d_strchr; eval $setvar
10746 set d_index; eval $setvar
10748 : check whether inet_aton exists
10749 set inet_aton d_inetaton
10754 $cat >isascii.c <<'EOCP'
10766 if eval $compile; then
10767 echo "isascii() found." >&4
10770 echo "isascii() NOT found." >&4
10777 : see if isfinite exists
10778 set isfinite d_isfinite
10781 : see if isinf exists
10785 : see if isnan exists
10789 : see if isnanl exists
10790 set isnanl d_isnanl
10793 : see if killpg exists
10794 set killpg d_killpg
10797 : see if lchown exists
10799 $cat > try.c <<'EOCP'
10800 /* System header to define __stub macros and hopefully few prototypes,
10801 which can conflict with char lchown(); below. */
10802 #include <assert.h>
10803 /* Override any gcc2 internal prototype to avoid an error. */
10804 /* We use char because int might match the return type of a gcc2
10805 builtin and then its argument prototype would still apply. */
10808 /* The GNU C library defines this for functions which it implements
10809 to always fail with ENOSYS. Some functions are actually named
10810 something starting with __ and the normal name is an alias. */
10811 #if defined (__stub_lchown) || defined (__stub___lchown)
10819 if eval $compile; then
10820 $echo "lchown() found." >&4
10823 $echo "lchown() NOT found." >&4
10829 : See if number of significant digits in a double precision number is known
10831 $cat >ldbl_dig.c <<EOM
10832 #$i_limits I_LIMITS
10835 #include <limits.h>
10841 printf("Contains LDBL_DIG");
10844 $cppstdin $cppflags $cppminus < ldbl_dig.c >ldbl_dig.E 2>/dev/null
10845 if $contains 'LDBL_DIG' ldbl_dig.E >/dev/null 2>&1; then
10846 echo "LDBL_DIG found." >&4
10849 echo "LDBL_DIG NOT found." >&4
10856 : see if link exists
10860 : see if localeconv exists
10861 set localeconv d_locconv
10864 : see if lockf exists
10868 : see if prototype for lseek is available
10870 set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h
10873 : see if lstat exists
10877 : see if madvise exists
10878 set madvise d_madvise
10881 : see if mblen exists
10885 : see if mbstowcs exists
10886 set mbstowcs d_mbstowcs
10889 : see if mbtowc exists
10890 set mbtowc d_mbtowc
10893 : see if memchr exists
10894 set memchr d_memchr
10897 : see if memcmp exists
10898 set memcmp d_memcmp
10901 : see if memcpy exists
10902 set memcpy d_memcpy
10905 : see if memmove exists
10906 set memmove d_memmove
10909 : see if memset exists
10910 set memset d_memset
10913 : see if mkdir exists
10917 : see if mkdtemp exists
10918 set mkdtemp d_mkdtemp
10921 : see if mkfifo exists
10922 set mkfifo d_mkfifo
10925 : see if mkstemp exists
10926 set mkstemp d_mkstemp
10929 : see if mkstemps exists
10930 set mkstemps d_mkstemps
10933 : see if mktime exists
10934 set mktime d_mktime
10937 : see if this is a sys/mman.h system
10938 set sys/mman.h i_sysmman
10941 : see if mmap exists
10944 : see what shmat returns
10945 : default to something harmless
10947 case "$i_sysmman$d_mmap" in
10949 $cat >mmap.c <<'END'
10950 #include <sys/mman.h>
10953 if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
10958 echo "and it returns ($mmaptype)." >&4
10964 : see if modfl exists
10968 d_modfl_pow32_bug="$undef"
10970 case "$d_longdbl$d_modfl" in
10973 Checking to see whether your modfl() is okay for large values...
10979 long double nv = 4294967303.15;
10985 printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w);
10989 case "$osname:$gccversion" in
10990 aix:) saveccflags="$ccflags"
10991 ccflags="$ccflags -qlongdouble" ;; # to avoid core dump
10994 if eval $compile; then
10997 *" 4294967303.150000 1.150000 4294967302.000000")
10998 echo >&4 "Your modfl() is broken for large values."
10999 d_modfl_pow32_bug="$define"
11001 glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()."
11005 *" 4294967303.150000 0.150000 4294967303.000000")
11006 echo >&4 "Your modfl() seems okay for large values."
11008 *) echo >&4 "I don't understand your modfl() at all."
11012 $rm -f try.* try core core.try.*
11014 echo "I cannot figure out whether your modfl() is okay, assuming it isn't."
11017 case "$osname:$gccversion" in
11018 aix:) ccflags="$saveccflags" ;; # restore
11023 : see if mprotect exists
11024 set mprotect d_mprotect
11027 : see if msgctl exists
11028 set msgctl d_msgctl
11031 : see if msgget exists
11032 set msgget d_msgget
11035 : see if msgsnd exists
11036 set msgsnd d_msgsnd
11039 : see if msgrcv exists
11040 set msgrcv d_msgrcv
11043 : see how much of the 'msg*(2)' library is present.
11046 case "$d_msgctl$d_msgget$d_msgsnd$d_msgrcv" in
11047 *"$undef"*) h_msg=false;;
11051 case "`ipcs 2>&1`" in
11052 "SVID messages"*"not configured"*)
11053 echo "Your $osname does not have the msg*(2) configured." >&4
11056 set msgctl d_msgctl
11058 set msgget d_msgget
11060 set msgsnd d_msgsnd
11062 set msgrcv d_msgrcv
11068 : we could also check for sys/ipc.h ...
11069 if $h_msg && $test `./findhdr sys/msg.h`; then
11070 echo "You have the full msg*(2) library." >&4
11073 echo "You don't have the full msg*(2) library." >&4
11081 echo "Checking to see if your system supports struct msghdr..." >&4
11082 set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
11084 case "$d_msghdr_s" in
11085 "$define") echo "Yes, it does." ;;
11086 *) echo "No, it doesn't." ;;
11090 : see if msync exists
11094 : see if munmap exists
11095 set munmap d_munmap
11098 : see if nice exists
11102 : see if this is a langinfo.h system
11103 set langinfo.h i_langinfo
11106 : see if nl_langinfo exists
11107 set nl_langinfo d_nl_langinfo
11110 : check for length of character
11112 case "$charsize" in
11114 echo "Checking to see how big your characters are (hey, you never know)..." >&4
11115 $cat >try.c <<'EOCP'
11119 printf("%d\n", (int)sizeof(char));
11124 if eval $compile_ok; then
11128 echo "(I can't seem to compile the test program. Guessing...)"
11135 rp="What is the size of a character (in bytes)?"
11140 : check for volatile keyword
11142 echo 'Checking to see if your C compiler knows about "volatile"...' >&4
11143 $cat >try.c <<'EOCP'
11146 typedef struct _goo_struct goo_struct;
11147 goo_struct * volatile goo = ((goo_struct *)0);
11148 struct _goo_struct {
11153 typedef unsigned short foo_t;
11154 char *volatile foo;
11156 volatile foo_t blech;
11160 if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
11162 echo "Yup, it does."
11165 echo "Nope, it doesn't."
11173 $echo "Choosing the C types to be used for Perl's internal types..." >&4
11175 case "$use64bitint:$d_quad:$quadtype" in
11178 uvtype="$uquadtype"
11183 uvtype="unsigned long"
11189 case "$uselongdouble:$d_longdbl" in
11191 nvtype="long double"
11192 nvsize=$longdblsize
11199 $echo "(IV will be "$ivtype", $ivsize bytes)"
11200 $echo "(UV will be "$uvtype", $uvsize bytes)"
11201 $echo "(NV will be "$nvtype", $nvsize bytes)"
11204 #$i_inttypes I_INTTYPES
11206 #include <inttypes.h>
11211 int8_t i = INT8_MAX;
11212 uint8_t u = UINT8_MAX;
11213 printf("int8_t\n");
11216 int16_t i = INT16_MAX;
11217 uint16_t i = UINT16_MAX;
11218 printf("int16_t\n");
11221 int32_t i = INT32_MAX;
11222 uint32_t u = UINT32_MAX;
11223 printf("int32_t\n");
11229 '') case "$charsize" in
11231 u8type="unsigned char"
11240 if eval $compile; then
11241 case "`$run ./try`" in
11242 int8_t) i8type=int8_t
11252 '') if $test $charsize -ge 1; then
11254 u8type="unsigned char"
11262 '') case "$shortsize" in
11264 u16type="unsigned short"
11272 '') set try -DINT16
11273 if eval $compile; then
11274 case "`$run ./try`" in
11286 '') if $test $shortsize -ge 2; then
11288 u16type="unsigned short"
11296 '') case "$longsize" in
11298 u32type="unsigned long"
11302 *) case "$intsize" in
11304 u32type="unsigned int"
11314 '') set try -DINT32
11315 if eval $compile; then
11316 case "`$run ./try`" in
11328 '') if $test $intsize -ge 4; then
11330 u32type="unsigned int"
11338 '') case "$d_quad:$quadtype" in
11340 i64type="$quadtype"
11341 u64type="$uquadtype"
11349 $echo "Checking how many bits of your UVs your NVs can preserve..." >&4
11350 : volatile so that the compiler has to store it out to memory.
11351 if test X"$d_volatile" = X"$define"; then
11356 #include <sys/types.h>
11357 #include <signal.h>
11359 $volatile int bletched = 0;
11360 $signal_t blech(s) int s; { bletched = 1; }
11365 int n = 8 * $uvsize;
11368 signal(SIGFPE, blech);
11371 for (i = 0; i < n; i++) {
11372 u = u << 1 | ($uvtype)1;
11374 if (($uvtype)d != u)
11378 d = ($nvtype)(u - 1);
11379 if (($uvtype)d != (u - 1))
11387 printf("%d\n", ((i == n) ? -n : i));
11393 d_nv_preserves_uv="$undef"
11394 if eval $compile; then
11395 d_nv_preserves_uv_bits="`$run ./try`"
11397 case "$d_nv_preserves_uv_bits" in
11399 d_nv_preserves_uv_bits=`expr 0 - $d_nv_preserves_uv_bits`
11400 $echo "Your NVs can preserve all $d_nv_preserves_uv_bits bits of your UVs." 2>&1
11401 d_nv_preserves_uv="$define"
11403 [1-9]*) $echo "Your NVs can preserve only $d_nv_preserves_uv_bits bits of your UVs." 2>&1
11404 d_nv_preserves_uv="$undef" ;;
11405 *) $echo "Can't figure out how many bits your NVs preserve." 2>&1
11406 d_nv_preserves_uv_bits="$undef" ;;
11412 : check for off64_t
11414 echo "Checking to see if you have off64_t..." >&4
11416 #include <sys/types.h>
11417 #include <unistd.h>
11418 int main() { off64_t x = 7; }
11421 if eval $compile; then
11423 echo "You have off64_t."
11426 echo "You do not have off64_t."
11427 case "$lseeksize" in
11428 8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
11435 : see if POSIX threads are available
11436 set pthread.h i_pthread
11442 : how to create joinable pthreads
11443 if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
11445 echo "Checking what constant to use for creating joinable pthreads..." >&4
11446 $cat >try.c <<'EOCP'
11447 #include <pthread.h>
11449 int detachstate = JOINABLE;
11452 set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
11453 if eval $compile; then
11454 echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
11455 val="$undef" # Yes, undef.
11456 set d_old_pthread_create_joinable
11459 set old_pthread_create_joinable
11462 set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
11463 if eval $compile; then
11464 echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
11466 set d_old_pthread_create_joinable
11468 val=PTHREAD_CREATE_UNDETACHED
11469 set old_pthread_create_joinable
11472 set try -DJOINABLE=__UNDETACHED
11473 if eval $compile; then
11474 echo "You seem to use __UNDETACHED." >&4
11476 set d_old_pthread_create_joinable
11479 set old_pthread_create_joinable
11482 echo "Egads, nothing obvious found. Guessing that you use 0." >&4
11484 set d_old_pthread_create_joinable
11487 set old_pthread_create_joinable
11494 d_old_pthread_create_joinable="$undef"
11495 old_pthread_create_joinable=""
11498 : see if pause exists
11502 : see if pipe exists
11506 : see if poll exists
11510 : see if readlink exists
11511 set readlink d_readlink
11515 echo "Checking for /proc/self/exe..." >&4
11517 case "$d_readlink" in
11519 if $issymlink /proc/self/exe ; then
11520 $ls -l /proc/self/exe > reflect
11521 if $contains /`basename $ls` reflect >/dev/null 2>&1; then
11523 echo "You have Linux-like /proc/self/exe."
11532 : see if pthread_atfork exists
11533 set pthread_atfork d_pthread_atfork
11537 : see whether the various POSIXish _yields exist
11539 #include <pthread.h>
11545 #ifdef PTHREAD_YIELD
11548 #ifdef PTHREAD_YIELD_NULL
11549 pthread_yield(NULL);
11555 : see if sched_yield exists
11556 set try -DSCHED_YIELD
11557 if eval $compile; then
11559 sched_yield='sched_yield()'
11563 case "$usethreads" in
11566 $define) echo 'sched_yield() found.' >&4 ;;
11567 *) echo 'sched_yield() NOT found.' >&4 ;;
11573 : see if pthread_yield exists
11574 set try -DPTHREAD_YIELD
11575 if eval $compile; then
11577 case "$sched_yield" in
11578 '') sched_yield='pthread_yield()' ;;
11581 set try -DPTHREAD_YIELD_NULL
11582 if eval $compile; then
11584 case "$sched_yield" in
11585 '') sched_yield='pthread_yield(NULL)' ;;
11591 case "$usethreads" in
11594 $define) echo 'pthread_yield() found.' >&4 ;;
11595 *) echo 'pthread_yield() NOT found.' >&4 ;;
11599 set d_pthread_yield
11602 case "$sched_yield" in
11603 '') sched_yield=undef ;;
11608 : see if this is a pwd.h system
11614 xxx=`./findhdr pwd.h`
11615 $cppstdin $cppflags $cppminus < $xxx >$$.h
11617 if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
11625 if $contains 'pw_age' $$.h >/dev/null 2>&1; then
11633 if $contains 'pw_change' $$.h >/dev/null 2>&1; then
11641 if $contains 'pw_class' $$.h >/dev/null 2>&1; then
11649 if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
11657 if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
11665 if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
11673 if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
11685 set d_pwquota; eval $setvar
11686 set d_pwage; eval $setvar
11687 set d_pwchange; eval $setvar
11688 set d_pwclass; eval $setvar
11689 set d_pwexpire; eval $setvar
11690 set d_pwcomment; eval $setvar
11691 set d_pwgecos; eval $setvar
11692 set d_pwpasswd; eval $setvar
11696 : see if readdir and friends exist
11697 set readdir d_readdir
11699 set seekdir d_seekdir
11701 set telldir d_telldir
11703 set rewinddir d_rewinddir
11706 : see if readv exists
11710 : see if recvmsg exists
11711 set recvmsg d_recvmsg
11714 : see if rename exists
11715 set rename d_rename
11718 : see if rmdir exists
11722 : see if memory.h is available.
11727 : See if it conflicts with string.h
11733 $cppstdin $cppflags $cppminus < $strings > mem.h
11734 if $contains 'memcpy' mem.h >/dev/null 2>&1; then
11736 echo "We won't be including <memory.h>."
11746 : can bcopy handle overlapping blocks?
11749 case "$d_memmove" in
11750 "$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
11751 *) case "$d_bcopy" in
11753 echo "Checking to see if bcopy() can do overlapping copies..." >&4
11755 #$i_memory I_MEMORY
11756 #$i_stdlib I_STDLIB
11757 #$i_string I_STRING
11758 #$i_unistd I_UNISTD
11760 $cat >>try.c <<'EOCP'
11763 # include <memory.h>
11766 # include <stdlib.h>
11769 # include <string.h>
11771 # include <strings.h>
11774 # include <unistd.h> /* Needed for NetBSD */
11778 char buf[128], abc[128];
11784 /* Copy "abcde..." string to char abc[] so that gcc doesn't
11785 try to store the string in read-only memory. */
11786 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
11788 for (align = 7; align >= 0; align--) {
11789 for (len = 36; len; len--) {
11791 bcopy(abc, b, len);
11792 for (off = 1; off <= len; off++) {
11793 bcopy(b, b+off, len);
11794 bcopy(b+off, b, len);
11795 if (bcmp(b, abc, len))
11804 if eval $compile_ok; then
11805 if ./try 2>/dev/null; then
11806 echo "Yes, it can."
11809 echo "It can't, sorry."
11812 echo "(I can't compile the test program, so we'll assume not...)"
11816 $rm -f try.* try core
11822 : can memcpy handle overlapping blocks?
11825 case "$d_memmove" in
11826 "$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
11827 *) case "$d_memcpy" in
11829 echo "Checking to see if memcpy() can do overlapping copies..." >&4
11831 #$i_memory I_MEMORY
11832 #$i_stdlib I_STDLIB
11833 #$i_string I_STRING
11834 #$i_unistd I_UNISTD
11836 $cat >>try.c <<'EOCP'
11839 # include <memory.h>
11842 # include <stdlib.h>
11845 # include <string.h>
11847 # include <strings.h>
11850 # include <unistd.h> /* Needed for NetBSD */
11854 char buf[128], abc[128];
11860 /* Copy "abcde..." string to char abc[] so that gcc doesn't
11861 try to store the string in read-only memory. */
11862 memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36);
11864 for (align = 7; align >= 0; align--) {
11865 for (len = 36; len; len--) {
11867 memcpy(b, abc, len);
11868 for (off = 1; off <= len; off++) {
11869 memcpy(b+off, b, len);
11870 memcpy(b, b+off, len);
11871 if (memcmp(b, abc, len))
11880 if eval $compile_ok; then
11881 if ./try 2>/dev/null; then
11882 echo "Yes, it can."
11885 echo "It can't, sorry."
11888 echo "(I can't compile the test program, so we'll assume not...)"
11892 $rm -f try.* try core
11898 : can memcmp be trusted to compare relative magnitude?
11900 case "$d_memcmp" in
11903 echo "Checking if your memcmp() can compare relative magnitude..." >&4
11905 #$i_memory I_MEMORY
11906 #$i_stdlib I_STDLIB
11907 #$i_string I_STRING
11908 #$i_unistd I_UNISTD
11910 $cat >>try.c <<'EOCP'
11913 # include <memory.h>
11916 # include <stdlib.h>
11919 # include <string.h>
11921 # include <strings.h>
11924 # include <unistd.h> /* Needed for NetBSD */
11930 if ((a < b) && memcmp(&a, &b, 1) < 0)
11936 if eval $compile_ok; then
11937 if $run ./try 2>/dev/null; then
11938 echo "Yes, it can."
11941 echo "No, it can't (it uses signed chars)."
11944 echo "(I can't compile the test program, so we'll assume not...)"
11948 $rm -f try.* try core
11952 : see if prototype for sbrk is available
11954 set d_sbrkproto sbrk $i_unistd unistd.h
11957 : see if select exists
11958 set select d_select
11961 : see if semctl exists
11962 set semctl d_semctl
11965 : see if semget exists
11966 set semget d_semget
11969 : see if semop exists
11973 : see how much of the 'sem*(2)' library is present.
11976 case "$d_semctl$d_semget$d_semop" in
11977 *"$undef"*) h_sem=false;;
11981 case "`ipcs 2>&1`" in
11982 "SVID messages"*"not configured"*)
11983 echo "Your $osname does not have the sem*(2) configured." >&4
11986 set semctl d_semctl
11988 set semget d_semget
11996 : we could also check for sys/ipc.h ...
11997 if $h_sem && $test `./findhdr sys/sem.h`; then
11998 echo "You have the full sem*(2) library." >&4
12001 echo "You don't have the full sem*(2) library." >&4
12007 : see whether sys/sem.h defines union semun
12009 $cat > try.c <<'END'
12010 #include <sys/types.h>
12011 #include <sys/ipc.h>
12012 #include <sys/sem.h>
12013 int main () { union semun semun; semun.buf = 0; }
12016 if eval $compile; then
12017 echo "You have union semun in <sys/sem.h>." >&4
12020 echo "You do not have union semun in <sys/sem.h>." >&4
12023 $rm -f try try.c try.h
12027 : see how to do semctl IPC_STAT
12030 : see whether semctl IPC_STAT can use union semun
12035 # define S_IRUSR S_IREAD
12036 # define S_IWUSR S_IWRITE
12037 # define S_IXUSR S_IEXEC
12039 # define S_IRUSR 0400
12040 # define S_IWUSR 0200
12041 # define S_IXUSR 0100
12043 # define S_IRGRP (S_IRUSR>>3)
12044 # define S_IWGRP (S_IWUSR>>3)
12045 # define S_IXGRP (S_IXUSR>>3)
12046 # define S_IROTH (S_IRUSR>>6)
12047 # define S_IWOTH (S_IWUSR>>6)
12048 # define S_IXOTH (S_IXUSR>>6)
12051 # define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
12052 # define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
12053 # define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
12058 #include <sys/types.h>
12059 #include <sys/ipc.h>
12060 #include <sys/sem.h>
12061 #include <sys/stat.h>
12068 #$d_union_semun HAS_UNION_SEMUN
12071 #ifndef HAS_UNION_SEMUN
12074 struct semid_ds *buf;
12075 unsigned short *array;
12081 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
12082 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
12084 struct semid_ds argbuf;
12087 st = semctl(sem, 0, IPC_STAT, arg);
12091 # endif /* IPC_STAT */
12092 printf("semctl IPC_STAT failed: errno = %d\n", errno);
12094 if (semctl(sem, 0, IPC_RMID, arg) != 0)
12095 # endif /* IPC_RMID */
12096 printf("semctl IPC_RMID failed: errno = %d\n", errno);
12098 #endif /* IPC_PRIVATE && ... */
12099 printf("semget failed: errno = %d\n", errno);
12105 if eval $compile; then
12108 semun) val="$define" ;;
12114 case "$d_semctl_semun" in
12116 echo "You can use union semun for semctl IPC_STAT." >&4
12119 *) echo "You cannot use union semun for semctl IPC_STAT." >&4
12124 : see whether semctl IPC_STAT can use struct semid_ds pointer
12125 $cat > try.c <<'END'
12126 #include <sys/types.h>
12127 #include <sys/ipc.h>
12128 #include <sys/sem.h>
12129 #include <sys/stat.h>
12137 struct semid_ds arg;
12140 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
12141 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
12144 st = semctl(sem, 0, IPC_STAT, &arg);
12146 printf("semid_ds\n");
12148 # endif /* IPC_STAT */
12149 printf("semctl IPC_STAT failed: errno = %d\n", errno);
12151 if (semctl(sem, 0, IPC_RMID, &arg) != 0)
12152 # endif /* IPC_RMID */
12153 printf("semctl IPC_RMID failed: errno = %d\n", errno);
12155 #endif /* IPC_PRIVATE && ... */
12156 printf("semget failed: errno = %d\n", errno);
12163 if eval $compile; then
12166 semid_ds) val="$define" ;;
12170 set d_semctl_semid_ds
12172 case "$d_semctl_semid_ds" in
12174 echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4
12176 *) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
12183 # We do not have the full sem*(2) library, so assume we can not
12189 set d_semctl_semid_ds
12194 : see if sendmsg exists
12195 set sendmsg d_sendmsg
12198 : see if setegid exists
12199 set setegid d_setegid
12202 : see if seteuid exists
12203 set seteuid d_seteuid
12206 : see if setgrent exists
12207 set setgrent d_setgrent
12210 : see if sethostent exists
12211 set sethostent d_sethent
12214 : see if setitimer exists
12215 set setitimer d_setitimer
12218 : see if setlinebuf exists
12219 set setlinebuf d_setlinebuf
12222 : see if setlocale exists
12223 set setlocale d_setlocale
12226 : see if setnetent exists
12227 set setnetent d_setnent
12230 : see if setprotoent exists
12231 set setprotoent d_setpent
12234 : see if setpgid exists
12235 set setpgid d_setpgid
12238 : see if setpgrp2 exists
12239 set setpgrp2 d_setpgrp2
12242 : see if setpriority exists
12243 set setpriority d_setprior
12246 : see if setproctitle exists
12247 set setproctitle d_setproctitle
12250 : see if setpwent exists
12251 set setpwent d_setpwent
12254 : see if setregid exists
12255 set setregid d_setregid
12257 set setresgid d_setresgid
12260 : see if setreuid exists
12261 set setreuid d_setreuid
12263 set setresuid d_setresuid
12266 : see if setrgid exists
12267 set setrgid d_setrgid
12270 : see if setruid exists
12271 set setruid d_setruid
12274 : see if setservent exists
12275 set setservent d_setsent
12278 : see if setsid exists
12279 set setsid d_setsid
12282 : see if setvbuf exists
12283 set setvbuf d_setvbuf
12286 : see if sfio.h is available
12291 : see if sfio library is available
12302 : Ok, but do we want to use it.
12306 true|$define|[yY]*) dflt='y';;
12309 echo "$package can use the sfio library, but it is experimental."
12310 case "$useperlio" in
12312 echo "For sfio also the PerlIO abstraction layer is needed."
12313 echo "Earlier you said you wouldn't want that."
12316 rp="You seem to have sfio available, do you want to try using it?"
12319 y|Y) echo "Ok, turning on both sfio and PerlIO, then."
12320 useperlio="$define"
12323 *) echo "Ok, avoiding sfio this time. I'll use stdio instead."
12328 *) case "$usesfio" in
12329 true|$define|[yY]*)
12330 echo "Sorry, cannot find sfio on this machine." >&4
12331 echo "Ignoring your setting of usesfio=$usesfio." >&4
12340 $define) usesfio='true';;
12341 *) usesfio='false';;
12345 *) : Remove sfio from list of libraries to use
12348 echo "Removing unneeded -lsfio from library list" >&4
12349 set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
12352 echo "libs = $libs" >&4
12359 : see if shmctl exists
12360 set shmctl d_shmctl
12363 : see if shmget exists
12364 set shmget d_shmget
12367 : see if shmat exists
12370 : see what shmat returns
12373 $cat >shmat.c <<'END'
12374 #include <sys/shm.h>
12377 if $cc $ccflags -c shmat.c >/dev/null 2>&1; then
12382 echo "and it returns ($shmattype)." >&4
12383 : see if a prototype for shmat is available
12384 xxx=`./findhdr sys/shm.h`
12385 $cppstdin $cppflags $cppminus < $xxx > shmat.c 2>/dev/null
12386 if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
12397 set d_shmatprototype
12400 : see if shmdt exists
12404 : see how much of the 'shm*(2)' library is present.
12407 case "$d_shmctl$d_shmget$d_shmat$d_shmdt" in
12408 *"$undef"*) h_shm=false;;
12412 case "`ipcs 2>&1`" in
12413 "SVID shared memory"*"not configured"*)
12414 echo "Your $osname does not have the shm*(2) configured." >&4
12417 set shmctl d_shmctl
12419 set shmget d_shmget
12429 : we could also check for sys/ipc.h ...
12430 if $h_shm && $test `./findhdr sys/shm.h`; then
12431 echo "You have the full shm*(2) library." >&4
12434 echo "You don't have the full shm*(2) library." >&4
12441 : see if we have sigaction
12442 if set sigaction val -f d_sigaction; eval $csym; $val; then
12443 echo 'sigaction() found.' >&4
12444 $cat > try.c <<'EOP'
12446 #include <sys/types.h>
12447 #include <signal.h>
12450 struct sigaction act, oact;
12452 oact.sa_handler = 0;
12453 /* so that act and oact are used */
12454 exit(act.sa_flags == 0 && oact.sa_handler == 0);
12458 if eval $compile_ok; then
12461 echo "But you don't seem to have a useable struct sigaction." >&4
12465 echo 'sigaction NOT found.' >&4
12468 set d_sigaction; eval $setvar
12469 $rm -f try try$_o try.c
12471 : see if sigprocmask exists
12472 set sigprocmask d_sigprocmask
12475 : see if sigsetjmp exists
12477 case "$d_sigsetjmp" in
12479 $cat >try.c <<'EOP'
12480 #include <setjmp.h>
12485 if (sigsetjmp(env,1))
12488 siglongjmp(env, 1);
12493 if eval $compile; then
12494 if $run ./try >/dev/null 2>&1; then
12495 echo "POSIX sigsetjmp found." >&4
12499 Uh-Oh! You have POSIX sigsetjmp and siglongjmp, but they do not work properly!!
12505 echo "sigsetjmp not found." >&4
12509 *) val="$d_sigsetjmp"
12510 case "$d_sigsetjmp" in
12511 $define) echo "POSIX sigsetjmp found." >&4;;
12512 $undef) echo "sigsetjmp not found." >&4;;
12520 : see if sockatmark exists
12521 set sockatmark d_sockatmark
12524 : see if prototype for sockatmark is available
12526 set d_sockatmarkproto sockatmark $d_socket sys/socket.h
12529 : see if socks5_init exists
12530 set socks5_init d_socks5_init
12533 : see if prototype for setresgid is available
12535 set d_sresgproto setresgid $i_unistd unistd.h
12538 : see if prototype for setresuid is available
12540 set d_sresuproto setresuid $i_unistd unistd.h
12543 : see if sys/stat.h is available
12544 set sys/stat.h i_sysstat
12548 : see if stat knows about block sizes
12550 echo "Checking to see if your struct stat has st_blocks field..." >&4
12551 set d_statblks stat st_blocks $i_sysstat sys/stat.h
12555 : see if this is a sys/vfs.h system
12556 set sys/vfs.h i_sysvfs
12560 : see if this is a sys/statfs.h system
12561 set sys/statfs.h i_sysstatfs
12566 echo "Checking to see if your system supports struct statfs..." >&4
12567 set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
12569 case "$d_statfs_s" in
12570 "$define") echo "Yes, it does." ;;
12571 *) echo "No, it doesn't." ;;
12576 : see if struct statfs knows about f_flags
12577 case "$d_statfs_s" in
12580 echo "Checking to see if your struct statfs has f_flags field..." >&4
12581 set d_statfs_f_flags statfs f_flags $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
12585 set d_statfs_f_flags
12589 case "$d_statfs_f_flags" in
12590 "$define") echo "Yes, it does." ;;
12591 *) echo "No, it doesn't." ;;
12594 : see if _ptr and _cnt from stdio act std
12597 if $contains '_lbfsize' `./findhdr stdio.h` >/dev/null 2>&1 ; then
12598 echo "(Looks like you have stdio.h from BSD.)"
12599 case "$stdio_ptr" in
12600 '') stdio_ptr='((fp)->_p)'
12603 *) ptr_lval=$d_stdio_ptr_lval;;
12605 case "$stdio_cnt" in
12606 '') stdio_cnt='((fp)->_r)'
12609 *) cnt_lval=$d_stdio_cnt_lval;;
12611 case "$stdio_base" in
12612 '') stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)';;
12614 case "$stdio_bufsiz" in
12615 '') stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)';;
12617 elif $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then
12618 echo "(Looks like you have stdio.h from Linux.)"
12619 case "$stdio_ptr" in
12620 '') stdio_ptr='((fp)->_IO_read_ptr)'
12623 *) ptr_lval=$d_stdio_ptr_lval;;
12625 case "$stdio_cnt" in
12626 '') stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
12629 *) cnt_lval=$d_stdio_cnt_lval;;
12631 case "$stdio_base" in
12632 '') stdio_base='((fp)->_IO_read_base)';;
12634 case "$stdio_bufsiz" in
12635 '') stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)';;
12638 case "$stdio_ptr" in
12639 '') stdio_ptr='((fp)->_ptr)'
12642 *) ptr_lval=$d_stdio_ptr_lval;;
12644 case "$stdio_cnt" in
12645 '') stdio_cnt='((fp)->_cnt)'
12648 *) cnt_lval=$d_stdio_cnt_lval;;
12650 case "$stdio_base" in
12651 '') stdio_base='((fp)->_base)';;
12653 case "$stdio_bufsiz" in
12654 '') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';;
12658 : test whether _ptr and _cnt really work
12659 echo "Checking how std your stdio is..." >&4
12662 #define FILE_ptr(fp) $stdio_ptr
12663 #define FILE_cnt(fp) $stdio_cnt
12665 FILE *fp = fopen("try.c", "r");
12668 18 <= FILE_cnt(fp) &&
12669 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
12677 if eval $compile && $to try.c; then
12678 if $run ./try; then
12679 echo "Your stdio acts pretty std."
12682 echo "Your stdio isn't very std."
12685 echo "Your stdio doesn't appear very std."
12691 : Can _ptr be used as an lvalue?
12692 case "$d_stdstdio$ptr_lval" in
12693 $define$define) val=$define ;;
12696 set d_stdio_ptr_lval
12699 : Can _cnt be used as an lvalue?
12700 case "$d_stdstdio$cnt_lval" in
12701 $define$define) val=$define ;;
12704 set d_stdio_cnt_lval
12708 : test whether setting _ptr sets _cnt as a side effect
12709 d_stdio_ptr_lval_sets_cnt="$undef"
12710 d_stdio_ptr_lval_nochange_cnt="$undef"
12711 case "$d_stdio_ptr_lval$d_stdstdio" in
12713 echo "Checking to see what happens if we set the stdio ptr..." >&4
12716 /* Can we scream? */
12717 /* Eat dust sed :-) */
12718 /* In the buffer space, no one can hear you scream. */
12719 #define FILE_ptr(fp) $stdio_ptr
12720 #define FILE_cnt(fp) $stdio_cnt
12721 #include <sys/types.h>
12723 FILE *fp = fopen("try.c", "r");
12728 puts("Fail even to read");
12731 c = getc(fp); /* Read away the first # */
12733 puts("Fail even to read");
12737 18 <= FILE_cnt(fp) &&
12738 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
12740 puts("Fail even to read");
12743 ptr = (char*) FILE_ptr(fp);
12744 cnt = (size_t)FILE_cnt(fp);
12746 FILE_ptr(fp) += 42;
12748 if ((char*)FILE_ptr(fp) != (ptr + 42)) {
12749 printf("Fail ptr check %p != %p", FILE_ptr(fp), (ptr + 42));
12752 if (FILE_cnt(fp) <= 20) {
12753 printf ("Fail (<20 chars to test)");
12756 if (strncmp(FILE_ptr(fp), "Eat dust sed :-) */\n", 20) != 0) {
12757 puts("Fail compare");
12760 if (cnt == FILE_cnt(fp)) {
12761 puts("Pass_unchanged");
12764 if (FILE_cnt(fp) == (cnt - 42)) {
12765 puts("Pass_changed");
12768 printf("Fail count was %d now %d\n", cnt, FILE_cnt(fp));
12774 if eval $compile && $to try.c; then
12775 case `$run ./try` in
12777 echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
12778 d_stdio_ptr_lval_sets_cnt="$define" ;;
12780 echo "Increasing ptr in your stdio leaves cnt unchanged. Good." >&4
12781 d_stdio_ptr_lval_nochange_cnt="$define" ;;
12783 echo "Increasing ptr in your stdio didn't do exactly what I expected. We'll not be doing that then." >&4 ;;
12785 echo "It appears attempting to set ptr in your stdio is a bad plan." >&4 ;;
12788 echo "It seems we can't set ptr in your stdio. Nevermind." >&4
12794 : see if _base is also standard
12796 case "$d_stdstdio" in
12800 #define FILE_base(fp) $stdio_base
12801 #define FILE_bufsiz(fp) $stdio_bufsiz
12803 FILE *fp = fopen("try.c", "r");
12806 19 <= FILE_bufsiz(fp) &&
12807 strncmp(FILE_base(fp), "#include <stdio.h>\n", 19) == 0
12814 if eval $compile && $to try.c; then
12815 if $run ./try; then
12816 echo "And its _base field acts std."
12819 echo "But its _base field isn't std."
12822 echo "However, it seems to be lacking the _base field."
12831 Checking how to access stdio streams by file descriptor number...
12833 case "$stdio_stream_array" in
12834 '') $cat >try.c <<EOCP
12837 if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
12841 for s in _iob __iob __sF
12843 set try -DSTDIO_STREAM_ARRAY=$s
12844 if eval $compile; then
12845 case "`$run ./try`" in
12846 yes) stdio_stream_array=$s; break ;;
12850 $rm -f try.* try$exe_ext
12852 case "$stdio_stream_array" in
12854 I can't figure out how to access stdio streams by file descriptor number.
12856 d_stdio_stream_array="$undef"
12859 You can access stdio streams by file descriptor number by the $stdio_stream_array array.
12861 d_stdio_stream_array="$define"
12865 : see if strcoll exists
12866 set strcoll d_strcoll
12869 : check for structure copying
12871 echo "Checking to see if your C compiler can copy structs..." >&4
12872 $cat >try.c <<'EOCP'
12882 if $cc -c try.c >/dev/null 2>&1 ; then
12884 echo "Yup, it can."
12887 echo "Nope, it can't."
12893 : see if strerror and/or sys_errlist[] exist
12895 if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then
12896 if set strerror val -f d_strerror; eval $csym; $val; then
12897 echo 'strerror() found.' >&4
12898 d_strerror="$define"
12899 d_strerrm='strerror(e)'
12900 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12901 echo "(You also have sys_errlist[], so we could roll our own strerror.)"
12902 d_syserrlst="$define"
12904 echo "(Since you don't have sys_errlist[], sterror() is welcome.)"
12905 d_syserrlst="$undef"
12907 elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \
12908 $contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
12909 echo 'strerror() found in string header.' >&4
12910 d_strerror="$define"
12911 d_strerrm='strerror(e)'
12912 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12913 echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
12914 d_syserrlst="$define"
12916 echo "(You don't appear to have any sys_errlist[], how can this be?)"
12917 d_syserrlst="$undef"
12919 elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12920 echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
12921 d_strerror="$undef"
12922 d_syserrlst="$define"
12923 d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
12925 echo 'strerror() and sys_errlist[] NOT found.' >&4
12926 d_strerror="$undef"
12927 d_syserrlst="$undef"
12928 d_strerrm='"unknown"'
12932 : see if strftime exists
12933 set strftime d_strftime
12936 : see if strtod exists
12937 set strtod d_strtod
12940 : see if strtol exists
12941 set strtol d_strtol
12944 : see if strtold exists
12945 set strtold d_strtold
12948 : see if strtoll exists
12949 set strtoll d_strtoll
12952 case "$d_longlong-$d_strtoll" in
12955 Checking whether your strtoll() works okay...
12957 $cat >try.c <<'EOCP'
12960 #define strtoll __strtoll
12963 #define strtoll _strtoll
12966 extern long long int strtoll(char *s, char **, int);
12967 static int bad = 0;
12968 int check(char *s, long long ell, int een) {
12971 gll = strtoll(s, 0, 10);
12972 if (!((gll == ell) && (errno == een)))
12976 check(" 1", 1LL, 0);
12977 check(" 0", 0LL, 0);
12978 check("-1", -1LL, 0);
12979 check("-9223372036854775808", -9223372036854775808LL, 0);
12980 check("-9223372036854775808", -9223372036854775808LL, 0);
12981 check(" 9223372036854775807", 9223372036854775807LL, 0);
12982 check("-9223372036854775808", -9223372036854775808LL, 0);
12983 check(" 9223372036854775808", 9223372036854775807LL, ERANGE);
12984 check("-9223372036854775809", -9223372036854775808LL, ERANGE);
12990 if eval $compile; then
12993 ok) echo "Your strtoll() seems to be working okay." ;;
12995 Your strtoll() doesn't seem to be working okay.
13001 echo "(I can't seem to compile the test program--assuming it doesn't)"
13007 : see if strtoq exists
13008 set strtoq d_strtoq
13011 : see if strtoul exists
13012 set strtoul d_strtoul
13015 case "$d_strtoul" in
13018 Checking whether your strtoul() works okay...
13020 $cat >try.c <<'EOCP'
13023 extern unsigned long int strtoul(char *s, char **, int);
13024 static int bad = 0;
13025 void check(char *s, unsigned long eul, int een) {
13028 gul = strtoul(s, 0, 10);
13029 if (!((gul == eul) && (errno == een)))
13033 check(" 1", 1L, 0);
13034 check(" 0", 0L, 0);
13036 case "$longsize" in
13038 $cat >>try.c <<'EOCP'
13039 check("18446744073709551615", 18446744073709551615UL, 0);
13040 check("18446744073709551616", 18446744073709551615UL, ERANGE);
13041 #if 0 /* strtoul() for /^-/ strings is undefined. */
13042 check("-1", 18446744073709551615UL, 0);
13043 check("-18446744073709551614", 2, 0);
13044 check("-18446744073709551615", 1, 0);
13045 check("-18446744073709551616", 18446744073709551615UL, ERANGE);
13046 check("-18446744073709551617", 18446744073709551615UL, ERANGE);
13051 $cat >>try.c <<'EOCP'
13052 check("4294967295", 4294967295UL, 0);
13053 check("4294967296", 4294967295UL, ERANGE);
13054 #if 0 /* strtoul() for /^-/ strings is undefined. */
13055 check("-1", 4294967295UL, 0);
13056 check("-4294967294", 2, 0);
13057 check("-4294967295", 1, 0);
13058 check("-4294967296", 4294967295UL, ERANGE);
13059 check("-4294967297", 4294967295UL, ERANGE);
13064 : Should we write these tests to be more portable by sprintf-ing
13065 : ~0 and then manipulating that char string as input for strtol?
13068 $cat >>try.c <<'EOCP'
13075 if eval $compile; then
13076 case "`$run ./try`" in
13077 ok) echo "Your strtoul() seems to be working okay." ;;
13079 Your strtoul() doesn't seem to be working okay.
13088 : see if strtoull exists
13089 set strtoull d_strtoull
13092 case "$d_longlong-$d_strtoull" in
13095 Checking whether your strtoull() works okay...
13097 $cat >try.c <<'EOCP'
13100 #define strtoull __strtoull
13103 extern unsigned long long int strtoull(char *s, char **, int);
13104 static int bad = 0;
13105 int check(char *s, long long eull, int een) {
13108 gull = strtoull(s, 0, 10);
13109 if (!((gull == eull) && (errno == een)))
13113 check(" 1", 1LL, 0);
13114 check(" 0", 0LL, 0);
13115 check("18446744073709551615", 18446744073709551615ULL, 0);
13116 check("18446744073709551616", 18446744073709551615ULL, ERANGE);
13117 #if 0 /* strtoull() for /^-/ strings is undefined. */
13118 check("-1", 18446744073709551615ULL, 0);
13119 check("-18446744073709551614", 2LL, 0);
13120 check("-18446744073709551615", 1LL, 0);
13121 check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
13122 check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
13129 if eval $compile; then
13130 case "`$run ./try`" in
13131 ok) echo "Your strtoull() seems to be working okay." ;;
13133 Your strtoull() doesn't seem to be working okay.
13135 d_strtoull="$undef"
13142 : see if strtouq exists
13143 set strtouq d_strtouq
13146 case "$d_strtouq" in
13149 Checking whether your strtouq() works okay...
13151 $cat >try.c <<'EOCP'
13154 extern unsigned long long int strtouq(char *s, char **, int);
13155 static int bad = 0;
13156 void check(char *s, unsigned long long eull, int een) {
13157 unsigned long long gull;
13159 gull = strtouq(s, 0, 10);
13160 if (!((gull == eull) && (errno == een)))
13164 check(" 1", 1LL, 0);
13165 check(" 0", 0LL, 0);
13166 check("18446744073709551615", 18446744073709551615ULL, 0);
13167 check("18446744073709551616", 18446744073709551615ULL, ERANGE);
13168 #if 0 /* strtouq() for /^-/ strings is undefined. */
13169 check("-1", 18446744073709551615ULL, 0);
13170 check("-18446744073709551614", 2LL, 0);
13171 check("-18446744073709551615", 1LL, 0);
13172 check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
13173 check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
13181 if eval $compile; then
13182 case "`$run ./try`" in
13183 ok) echo "Your strtouq() seems to be working okay." ;;
13185 Your strtouq() doesn't seem to be working okay.
13194 : see if strxfrm exists
13195 set strxfrm d_strxfrm
13198 : see if symlink exists
13199 set symlink d_symlink
13202 : see if syscall exists
13203 set syscall d_syscall
13206 : see if prototype for syscall is available
13208 set d_syscallproto syscall $i_unistd unistd.h
13211 : see if sysconf exists
13212 set sysconf d_sysconf
13215 : see if system exists
13216 set system d_system
13219 : see if tcgetpgrp exists
13220 set tcgetpgrp d_tcgetpgrp
13223 : see if tcsetpgrp exists
13224 set tcsetpgrp d_tcsetpgrp
13227 : see if prototype for telldir is available
13229 set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
13232 : see if this is a sys/times.h system
13233 set sys/times.h i_systimes
13236 : see if times exists
13238 if set times val -f d_times; eval $csym; $val; then
13239 echo 'times() found.' >&4
13242 case "$i_systimes" in
13243 "$define") inc='sys/times.h';;
13245 rp="What is the type returned by times() on this system?"
13246 set clock_t clocktype long stdio.h sys/types.h $inc
13249 echo 'times() NOT found, hope that will do.' >&4
13254 : see if truncate exists
13255 set truncate d_truncate
13258 : see if tzname[] exists
13260 if set tzname val -a d_tzname; eval $csym; $val; then
13262 echo 'tzname[] found.' >&4
13265 echo 'tzname[] NOT found.' >&4
13271 next|rhapsody|darwin) multiarch="$define" ;;
13273 case "$multiarch" in
13274 ''|[nN]*) multiarch="$undef" ;;
13277 : check for ordering of bytes in a long
13279 case "$usecrosscompile$multiarch" in
13282 You seem to be either cross-compiling or doing a multiarchitecture build,
13283 skipping the byteorder check.
13289 case "$byteorder" in
13292 In the following, larger digits indicate more significance. A big-endian
13293 machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
13294 little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
13295 machines may have weird orders like 3412. A Cray will report 87654321,
13296 an Alpha will report 12345678. If the test program works the default is
13298 I'm now running the test program...
13300 $cat >try.c <<'EOCP'
13307 char c[sizeof(long)];
13310 if (sizeof(long) > 4)
13311 u.l = (0x08070605L << 32) | 0x04030201L;
13314 for (i = 0; i < sizeof(long); i++)
13315 printf("%c", u.c[i]+'0');
13322 if eval $compile && ./try > /dev/null; then
13325 [1-4][1-4][1-4][1-4]|12345678|87654321)
13326 echo "(The test program ran ok.)"
13327 echo "byteorder=$dflt"
13330 ????|????????) echo "(The test program ran ok.)" ;;
13331 *) echo "(The test program didn't run right for some reason.)" ;;
13336 (I can't seem to compile the test program. Guessing big-endian...)
13339 case "$xxx_prompt" in
13341 rp="What is the order of bytes in a long?"
13357 Checking to see whether you can access character data unalignedly...
13361 #define U32 $u32type
13362 #define BYTEORDER $byteorder
13364 #if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
13365 U8 buf[] = "\0\0\0\1\0\0\0\0";
13369 if (sizeof(U32) != 4) {
13370 printf("sizeof(U32) is not 4, but %d\n", sizeof(U32));
13376 for (i = 0; i < 4; i++) {
13377 up = (U32*)(buf + i);
13378 if (! ((*up == 1 << (8*i)) || /* big-endian */
13379 (*up == 1 << (8*(3-i))) /* little-endian */
13383 printf("read failed (%x)\n", *up);
13389 for (i = 0; i < 4; i++) {
13390 up = (U32*)(buf + i);
13392 if (*up != 0xBeef) {
13393 printf("write failed (%x)\n", *up);
13407 if eval $compile_ok; then
13408 echo "(Testing for character data alignment may dump core.)" >&4
13409 $run ./try 2>&1 >/dev/null
13412 You can access character data pretty unalignedly.
13414 d_u32align="$undef"
13417 It seems that you must access character data in an aligned manner.
13419 d_u32align="$define"
13422 $rm -f core core.try.* try.core
13424 rp='Can you access character data at unaligned addresses?'
13428 [yY]*) d_u32align="$undef" ;;
13429 *) d_u32align="$define" ;;
13433 : see if ualarm exists
13434 set ualarm d_ualarm
13437 : see if umask exists
13441 : see if unordered exists
13442 set unordered d_unordered
13445 : see if usleep exists
13446 set usleep d_usleep
13449 : see if prototype for usleep is available
13451 set d_usleepproto usleep $i_unistd unistd.h
13454 : see if ustat exists
13458 : backward compatibility for d_hvfork
13459 if test X$d_hvfork != X; then
13460 d_vfork="$d_hvfork"
13463 : see if there is a vfork
13468 : Ok, but do we want to use it. vfork is reportedly unreliable in
13469 : perl on Solaris 2.x, and probably elsewhere.
13473 case "$usevfork" in
13479 Perl can only use a vfork() that doesn't suffer from strict
13480 restrictions on calling functions or modifying global data in
13481 the child. For example, glibc-2.1 contains such a vfork()
13482 that is unsuitable. If your system provides a proper fork()
13483 call, chances are that you do NOT want perl to use vfork().
13486 rp="Do you still want to use vfork()?"
13491 echo "Ok, we won't use vfork()."
13500 $define) usevfork='true';;
13501 *) usevfork='false';;
13504 : see if closedir exists
13505 set closedir d_closedir
13508 case "$d_closedir" in
13511 echo "Checking whether closedir() returns a status..." >&4
13513 #$i_dirent I_DIRENT /**/
13514 #$i_sysdir I_SYS_DIR /**/
13515 #$i_sysndir I_SYS_NDIR /**/
13516 #$i_systypes I_SYS_TYPES /**/
13518 #if defined(I_SYS_TYPES)
13519 #include <sys/types.h>
13521 #if defined(I_DIRENT)
13522 #include <dirent.h>
13523 #if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
13524 #include <sys/dir.h>
13528 #include <sys/ndir.h>
13532 #include <ndir.h> /* may be wrong in the future */
13534 #include <sys/dir.h>
13539 int main() { return closedir(opendir(".")); }
13542 if eval $compile_ok; then
13543 if $run ./try > /dev/null 2>&1 ; then
13544 echo "Yes, it does."
13547 echo "No, it doesn't."
13551 echo "(I can't seem to compile the test program--assuming it doesn't)"
13559 set d_void_closedir
13562 : see if there is a wait4
13566 : see if waitpid exists
13567 set waitpid d_waitpid
13570 : see if wcstombs exists
13571 set wcstombs d_wcstombs
13574 : see if wctomb exists
13575 set wctomb d_wctomb
13578 : see if writev exists
13579 set writev d_writev
13582 : preserve RCS keywords in files with variable substitution, grrr
13587 Revision='$Revision'
13589 : check for alignment requirements
13591 case "$usecrosscompile$multiarch" in
13594 You seem to be either cross-compiling or doing a multiarchitecture build,
13595 skipping the memory alignment check.
13598 case "$alignbytes" in
13599 '') alignbytes=8 ;;
13603 case "$alignbytes" in
13604 '') echo "Checking alignment constraints..." >&4
13605 if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then
13606 $cat >try.c <<'EOCP'
13607 typedef long double NV;
13610 $cat >try.c <<'EOCP'
13614 $cat >>try.c <<'EOCP'
13622 printf("%d\n", (int)((char *)&try_algn.bar - (char *)&try_algn.foo));
13627 if eval $compile_ok; then
13631 echo "(I can't seem to compile the test program...)"
13634 *) dflt="$alignbytes"
13637 rp="Doubles must be aligned on a how-many-byte boundary?"
13645 : set the base revision
13648 : how do we catenate cpp tokens here?
13650 echo "Checking to see how your cpp does stuff like catenate tokens..." >&4
13651 $cat >cpp_stuff.c <<'EOCP'
13652 #define RCAT(a,b)a/**/b
13653 #define ACAT(a,b)a ## b
13657 $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
13658 if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then
13659 echo "Oh! Smells like ANSI's been here." >&4
13660 echo "We can catify or stringify, separately or together!"
13662 elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then
13663 echo "Ah, yes! The good old days!" >&4
13664 echo "However, in the good old days we don't know how to stringify and"
13665 echo "catify at the same time."
13669 Hmm, I don't seem to be able to catenate tokens with your cpp. You're going
13670 to have to edit the values of CAT[2-5] in config.h...
13672 cpp_stuff="/* Help! How do we handle cpp_stuff? */*/"
13676 : see if this is a db.h system
13682 : Check db version.
13684 echo "Checking Berkeley DB version ..." >&4
13690 #include <sys/types.h>
13693 int main(int argc, char *argv[])
13695 #ifdef DB_VERSION_MAJOR /* DB version >= 2 */
13696 int Major, Minor, Patch ;
13697 unsigned long Version ;
13698 (void)db_version(&Major, &Minor, &Patch) ;
13700 printf("%d %d %d %d %d %d\n",
13701 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
13702 Major, Minor, Patch);
13705 printf("You have Berkeley DB Version 2 or greater.\n");
13707 printf("db.h is from Berkeley DB Version %d.%d.%d\n",
13708 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
13709 printf("libdb is from Berkeley DB Version %d.%d.%d\n",
13710 Major, Minor, Patch) ;
13712 /* check that db.h & libdb are compatible */
13713 if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
13714 printf("db.h and libdb are incompatible.\n") ;
13718 printf("db.h and libdb are compatible.\n") ;
13720 Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
13721 + DB_VERSION_PATCH ;
13723 /* needs to be >= 2.3.4 */
13724 if (Version < 2003004) {
13725 /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
13726 printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
13732 #if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
13737 printf("You have Berkeley DB Version 1.\n");
13738 exit(0); /* DB version < 2: the coast is clear. */
13740 exit(1); /* <db.h> not Berkeley DB? */
13746 if eval $compile_ok && $run ./try; then
13747 echo 'Looks OK.' >&4
13749 db_version_major=$1
13750 db_version_minor=$2
13751 db_version_patch=$3
13753 echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
13757 : Remove db from list of libraries to use
13758 echo "Removing unusable -ldb from library list" >&4
13759 set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'`
13762 echo "libs = $libs" >&4
13772 : Check the return type needed for hash
13774 echo "Checking return type needed for hash for Berkeley DB ..." >&4
13780 #include <sys/types.h>
13783 #ifndef DB_VERSION_MAJOR
13784 u_int32_t hash_cb (ptr, size)
13792 info.hash = hash_cb;
13796 if $cc $ccflags -c try.c >try.out 2>&1 ; then
13797 if $contains warning try.out >>/dev/null 2>&1 ; then
13800 db_hashtype='u_int32_t'
13803 : XXX Maybe we should just give up here.
13804 db_hashtype=u_int32_t
13806 echo "Help: I can't seem to compile the db test program." >&4
13807 echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
13810 echo "Your version of Berkeley DB uses $db_hashtype for hash."
13812 *) db_hashtype=u_int32_t
13817 : Check the return type needed for prefix
13819 echo "Checking return type needed for prefix for Berkeley DB ..." >&4
13825 #include <sys/types.h>
13828 #ifndef DB_VERSION_MAJOR
13829 size_t prefix_cb (key1, key2)
13837 info.prefix = prefix_cb;
13841 if $cc $ccflags -c try.c >try.out 2>&1 ; then
13842 if $contains warning try.out >>/dev/null 2>&1 ; then
13843 db_prefixtype='int'
13845 db_prefixtype='size_t'
13848 db_prefixtype='size_t'
13849 : XXX Maybe we should just give up here.
13851 echo "Help: I can't seem to compile the db test program." >&4
13852 echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
13855 echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
13857 *) db_prefixtype='size_t'
13862 : How can we generate normalized random numbers ?
13864 echo "Looking for a random number function..." >&4
13865 case "$randfunc" in
13867 if set drand48 val -f; eval $csym; $val; then
13869 echo "Good, found drand48()." >&4
13870 elif set random val -f; eval $csym; $val; then
13872 echo "OK, found random()." >&4
13875 echo "Yick, looks like I have to use rand()." >&4
13886 *-Dmy_rand=*|*-Dmy_srand=*)
13887 echo "Removing obsolete -Dmy_rand, -Dmy_srand, and -Drandbits from ccflags." >&4
13888 ccflags="`echo $ccflags | sed -e 's/-Dmy_rand=random/ /'`"
13889 ccflags="`echo $ccflags | sed -e 's/-Dmy_srand=srandom/ /'`"
13890 ccflags="`echo $ccflags | sed -e 's/-Drandbits=[0-9][0-9]*/ /'`"
13894 while $test "$cont"; do
13895 rp="Use which function to generate random numbers?"
13897 if $test "$ans" = "$dflt"; then
13903 if set $ans val -f; eval $csym; $val; then
13907 rp="I cannot find function $ans. Use that name anyway?"
13916 case "$randfunc" in
13918 drand01="drand48()"
13924 case "$randbits" in
13926 echo "Checking to see how many bits your $randfunc() function produces..." >&4
13928 #$i_unistd I_UNISTD
13929 #$i_stdlib I_STDLIB
13932 # include <unistd.h>
13935 # include <stdlib.h>
13940 register unsigned long tmp;
13941 register unsigned long max = 0L;
13943 for (i = 1000; i; i--) {
13944 tmp = (unsigned long) $randfunc();
13945 if (tmp > max) max = tmp;
13947 for (i = 0; max; i++)
13953 if eval $compile_ok; then
13957 echo "(I can't seem to compile the test program...)"
13964 rp="How many bits does your $randfunc() function produce?"
13968 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
13969 seedfunc="s$randfunc"
13970 randseedtype=unsigned
13974 rp="How many bits does your $randfunc() function produce?"
13977 seedfunc="s$randfunc"
13978 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
13979 if set $seedfunc val -f; eval $csym; $val; then
13980 echo "(Using $seedfunc() to seed random generator)"
13982 echo "(Warning: no $seedfunc() to seed random generator)"
13985 randseedtype=unsigned
13993 echo "Determining whether or not we are on an EBCDIC system..." >&4
13994 $cat >try.c <<'EOM'
13997 if ('M'==0xd4) return 0;
14004 if eval $compile_ok; then
14005 if $run ./try; then
14006 echo "You seem to speak EBCDIC." >&4
14009 echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
14012 echo "I'm unable to compile the test program." >&4
14013 echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
14021 Checking how to flush all pending stdio output...
14023 # I only know how to find the first 32 possibly open files on SunOS.
14024 # See also hints/sunos_4_1.sh and util.c --AD
14026 sunos) $echo '#define PERL_FFLUSH_ALL_FOPEN_MAX 32' > try.c ;;
14028 $cat >>try.c <<EOCP
14030 #$i_unistd I_UNISTD
14032 # include <unistd.h>
14034 #$d_sysconf HAS_SYSCONF
14035 #$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY
14036 #ifdef HAS_STDIO_STREAM_ARRAY
14037 # define STDIO_STREAM_ARRAY $stdio_stream_array
14042 p = fopen("try.out", "w");
14046 # ifdef TRY_FPRINTF
14050 #ifdef TRY_FFLUSH_NULL
14053 #ifdef TRY_FFLUSH_ALL
14055 long open_max = -1;
14056 # ifdef PERL_FFLUSH_ALL_FOPEN_MAX
14057 open_max = PERL_FFLUSH_ALL_FOPEN_MAX;
14059 # if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
14060 open_max = sysconf(_SC_OPEN_MAX);
14063 open_max = FOPEN_MAX;
14066 open_max = OPEN_MAX;
14075 # ifdef HAS_STDIO_STREAM_ARRAY
14076 if (open_max > 0) {
14078 for (i = 0; i < open_max; i++)
14079 if (STDIO_STREAM_ARRAY[i]._file >= 0 &&
14080 STDIO_STREAM_ARRAY[i]._file < open_max &&
14081 STDIO_STREAM_ARRAY[i]._flag)
14082 fflush(&STDIO_STREAM_ARRAY[i]);
14090 : first we have to find out how _not_ to flush
14092 if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
14094 set try -DTRY_FPUTC
14095 if eval $compile; then
14096 $run ./try 2>/dev/null
14099 if $test ! -s try.out -a "X$code" = X42; then
14105 set try -DTRY_FPRINTF
14106 if eval $compile; then
14107 $run ./try 2>/dev/null
14110 if $test ! -s try.out -a "X$code" = X42; then
14111 output=-DTRY_FPRINTF
14117 : check for fflush NULL behaviour
14118 case "$fflushNULL" in
14119 '') set try -DTRY_FFLUSH_NULL $output
14120 if eval $compile; then
14121 $run ./try 2>/dev/null
14124 if $test -s try.out -a "X$code" = X42; then
14125 fflushNULL="`$cat try.out`"
14127 if $test "X$code" != X42; then
14129 (If this test failed, don't worry, we'll try another method shortly.)
14134 $rm -f core try.core core.try.*
14135 case "$fflushNULL" in
14137 Your fflush(NULL) works okay for output streams.
14138 Let's see if it clobbers input pipes...
14140 # As of mid-March 2000 all versions of Solaris appear to have a stdio
14141 # bug that improperly flushes the input end of pipes. So we avoid the
14142 # autoflush on fork/system/exec support for now. :-(
14143 $cat >tryp.c <<EOCP
14146 main(int argc, char **argv)
14152 while ((i = getc(stdin)) != -1
14153 && (*bp++ = i) != '\n'
14154 && bp < &buf[1024])
14157 fprintf(stdout, "%s", buf);
14165 fflushNULL="$define"
14167 if eval $compile; then
14169 $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
14170 if cmp tryp.c tryp.out >/dev/null 2>&1; then
14172 fflush(NULL) seems to behave okay with input streams.
14174 fflushNULL="$define"
14177 Ouch, fflush(NULL) clobbers input pipes! We will not use it.
14179 fflushNULL="$undef"
14182 $rm -f core tryp.c tryp.core core.tryp.*
14185 Your fflush(NULL) isn't working (contrary to ANSI C).
14187 fflushNULL="$undef"
14190 Cannot figure out whether your fflush(NULL) works or not.
14191 I'm assuming it doesn't (contrary to ANSI C).
14193 fflushNULL="$undef"
14197 $define|true|[yY]*)
14198 fflushNULL="$define"
14201 fflushNULL="$undef"
14204 : check explicit looping only if NULL did not work, and if the pipe
14205 : bug does not show up on an explicit flush too
14206 case "$fflushNULL" in
14208 $cat >tryp.c <<EOCP
14211 main(int argc, char **argv)
14217 while ((i = getc(stdin)) != -1
14218 && (*bp++ = i) != '\n'
14219 && bp < &buf[1024])
14222 fprintf(stdout, "%s", buf);
14231 if eval $compile; then
14233 $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
14234 if cmp tryp.c tryp.out >/dev/null 2>&1; then
14236 Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
14238 : now check for fflushall behaviour
14239 case "$fflushall" in
14240 '') set try -DTRY_FFLUSH_ALL $output
14241 if eval $compile; then
14243 (Now testing the other method--but note that this also may fail.)
14245 $run ./try 2>/dev/null
14248 if $test -s try.out -a "X$code" = X42; then
14249 fflushall="`$cat try.out`"
14252 $rm -f core try.core core.try.*
14253 case "$fflushall" in
14255 Whew. Flushing explicitly all the stdio streams works.
14257 fflushall="$define"
14260 Sigh. Flushing explicitly all the stdio streams doesn't work.
14265 Cannot figure out whether flushing stdio streams explicitly works or not.
14266 I'm assuming it doesn't.
14272 "$define"|true|[yY]*)
14273 fflushall="$define"
14281 All is futile. Even fflush(stdin) clobbers input pipes!
14288 $rm -f core tryp.c tryp.core core.tryp.*
14290 *) fflushall="$undef"
14294 case "$fflushNULL$fflushall" in
14297 OK, I give up. I cannot figure out how to flush pending stdio output.
14298 We won't be flushing handles at all before fork/exec/popen.
14302 $rm -f try.* try$exe_ext
14304 : Store the full pathname to the ar program for use in the C program
14305 : Respect a hint or command line value for full_ar.
14310 : Store the full pathname to the sed program for use in the C program
14313 : see what type gids are declared as in the kernel
14315 echo "Looking for the type for group ids returned by getgid()."
14316 set gid_t gidtype xxx stdio.h sys/types.h
14320 xxx=`./findhdr sys/user.h`
14321 set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
14323 unsigned) dflt="$1 $2" ;;
14327 *) dflt="$gidtype";;
14330 gid_t) echo "gid_t found." ;;
14331 *) rp="What is the type for group ids returned by getgid()?"
14339 *_t) zzz="$gidtype" ;;
14342 echo "Checking the size of $zzz..." >&4
14344 #include <sys/types.h>
14347 printf("%d\n", (int)sizeof($gidtype));
14352 if eval $compile_ok; then
14356 echo "(I can't execute the test program--guessing $gidsize.)" >&4
14359 echo "Your $zzz is $gidsize bytes long."
14364 echo "(I can't compile the test program--guessing $gidsize.)" >&4
14370 *_t) zzz="$gidtype" ;;
14373 echo "Checking the sign of $zzz..." >&4
14375 #include <sys/types.h>
14386 if eval $compile; then
14390 echo "(I can't execute the test program--guessing unsigned.)" >&4
14394 1) echo "Your $zzz is unsigned." ;;
14395 -1) echo "Your $zzz is signed." ;;
14401 echo "(I can't compile the test program--guessing unsigned.)" >&4
14407 if $test X"$quadtype" != X; then
14409 echo "Checking how to print 64-bit integers..." >&4
14411 if $test X"$sPRId64" = X -a X"$quadtype" = Xint; then
14412 $cat >try.c <<'EOCP'
14413 #include <sys/types.h>
14416 int q = 12345678901;
14417 printf("%ld\n", q);
14421 if eval $compile; then
14425 sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
14426 sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
14427 echo "We will use %d."
14433 if $test X"$sPRId64" = X -a X"$quadtype" = Xlong; then
14434 $cat >try.c <<'EOCP'
14435 #include <sys/types.h>
14438 long q = 12345678901;
14439 printf("%ld\n", q);
14443 if eval $compile; then
14447 sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
14448 sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
14449 echo "We will use %ld."
14455 if $test X"$sPRId64" = X -a X"$i_inttypes" = X"$define" -a X"$quadtype" = Xint64_t; then
14456 $cat >try.c <<'EOCP'
14457 #include <sys/types.h>
14458 #include <inttypes.h>
14461 int64_t q = 12345678901;
14462 printf("%" PRId64 "\n", q);
14466 if eval $compile; then
14470 sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
14471 sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
14472 echo "We will use the C9X style."
14478 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
14480 #include <sys/types.h>
14483 $quadtype q = 12345678901;
14484 printf("%Ld\n", q);
14488 if eval $compile; then
14492 sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
14493 sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
14494 echo "We will use %Ld."
14500 if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
14501 $cat >try.c <<'EOCP'
14502 #include <sys/types.h>
14505 long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
14506 printf("%lld\n", q);
14510 if eval $compile; then
14514 sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
14515 sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
14516 echo "We will use the %lld style."
14522 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
14524 #include <sys/types.h>
14527 $quadtype q = 12345678901;
14528 printf("%qd\n", q);
14532 if eval $compile; then
14536 sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
14537 sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
14538 echo "We will use %qd."
14544 if $test X"$sPRId64" = X; then
14545 echo "Cannot figure out how to print 64-bit integers." >&4
14553 '') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
14554 d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
14556 *) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
14557 d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
14563 $echo "Checking the format strings to be used for Perl's internal types..." >&4
14565 if $test X"$ivsize" = X8; then
14566 ivdformat="$sPRId64"
14567 uvuformat="$sPRIu64"
14568 uvoformat="$sPRIo64"
14569 uvxformat="$sPRIx64"
14570 uvXUformat="$sPRIXU64"
14572 if $test X"$ivsize" = X"$longsize"; then
14579 if $test X"$ivsize" = X"$intsize"; then
14587 if $test X"$ivsize" = X"$shortsize"; then
14598 if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
14599 nveformat="$sPRIeldbl"
14600 nvfformat="$sPRIfldbl"
14601 nvgformat="$sPRIgldbl"
14602 nvEUformat="$sPRIEUldbl"
14603 nvFUformat="$sPRIFUldbl"
14604 nvGUformat="$sPRIGUldbl"
14614 case "$ivdformat" in
14615 '') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4
14622 $echo "Checking the format string to be used for gids..." >&4
14625 -1) if $test X"$gidsize" = X"$ivsize"; then
14626 gidformat="$ivdformat"
14628 if $test X"$gidsize" = X"$longsize"; then
14631 if $test X"$gidsize" = X"$intsize"; then
14634 if $test X"$gidsize" = X"$shortsize"; then
14641 *) if $test X"$gidsize" = X"$uvsize"; then
14642 gidformat="$uvuformat"
14644 if $test X"$gidsize" = X"$longsize"; then
14647 if $test X"$gidsize" = X"$intsize"; then
14650 if $test X"$gidsize" = X"$shortsize"; then
14659 : see if getgroups exists
14660 set getgroups d_getgrps
14663 : see if setgroups exists
14664 set setgroups d_setgrps
14668 : Find type of 2nd arg to 'getgroups()' and 'setgroups()'
14670 case "$d_getgrps$d_setgrps" in
14672 case "$groupstype" in
14673 '') dflt="$gidtype" ;;
14674 *) dflt="$groupstype" ;;
14677 What type of pointer is the second argument to getgroups() and setgroups()?
14678 Usually this is the same as group ids, $gidtype, but not always.
14681 rp='What type pointer is the second argument to getgroups() and setgroups()?'
14685 *) groupstype="$gidtype";;
14689 echo "Checking if your $make program sets \$(MAKE)..." >&4
14690 case "$make_set_make" in
14692 $sed 's/^X //' > testmake.mak << 'EOF'
14694 X @echo 'maketemp="$(MAKE)"'
14696 case "`$make -f testmake.mak 2>/dev/null`" in
14697 *maketemp=*) make_set_make='#' ;;
14698 *) make_set_make="MAKE=$make" ;;
14700 $rm -f testmake.mak
14703 case "$make_set_make" in
14704 '#') echo "Yup, it does.";;
14705 *) echo "Nope, it doesn't.";;
14708 : see what type is used for mode_t
14709 rp="What is the type used for file modes for system calls (e.g. fchmod())?"
14710 set mode_t modetype int stdio.h sys/types.h
14713 : see if stdarg is available
14715 if $test `./findhdr stdarg.h`; then
14716 echo "<stdarg.h> found." >&4
14719 echo "<stdarg.h> NOT found." >&4
14723 : see if varags is available
14725 if $test `./findhdr varargs.h`; then
14726 echo "<varargs.h> found." >&4
14728 echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
14731 : set up the varargs testing programs
14732 $cat > varargs.c <<EOP
14734 #include <stdarg.h>
14737 #include <varargs.h>
14741 int f(char *p, ...)
14755 p = va_arg(ap, char *);
14760 $cat > varargs <<EOP
14762 if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
14771 : now check which varargs header should be included
14776 if `./varargs I_STDARG`; then
14778 elif `./varargs I_VARARGS`; then
14783 if `./varargs I_VARARGS`; then
14790 echo "I could not find the definition for va_dcl... You have problems..." >&4
14791 val="$undef"; set i_stdarg; eval $setvar
14792 val="$undef"; set i_varargs; eval $setvar
14797 case "$i_varhdr" in
14799 val="$define"; set i_stdarg; eval $setvar
14800 val="$undef"; set i_varargs; eval $setvar
14803 val="$undef"; set i_stdarg; eval $setvar
14804 val="$define"; set i_varargs; eval $setvar
14807 echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
14811 : see if we need va_copy
14813 case "$i_stdarg" in
14816 #include <stdarg.h>
14818 #$i_stdlib I_STDLIB
14820 #include <stdlib.h>
14822 #include <signal.h>
14825 ivfprintf(FILE *f, const char *fmt, va_list *valp)
14827 return vfprintf(f, fmt, *valp);
14831 myvfprintf(FILE *f, const char *fmt, va_list val)
14833 return ivfprintf(f, fmt, &val);
14837 myprintf(char *fmt, ...)
14840 va_start(val, fmt);
14841 return myvfprintf(stdout, fmt, val);
14845 main(int ac, char **av)
14847 signal(SIGSEGV, exit);
14849 myprintf("%s%cs all right, then\n", "that", '\'');
14854 if eval $compile && $run ./try 2>&1 >/dev/null; then
14855 case "`$run ./try`" in
14856 "that's all right, then")
14862 yes) echo "It seems that you don't need va_copy()." >&4
14863 need_va_copy="$undef"
14865 *) echo "It seems that va_copy() or similar will be needed." >&4
14866 need_va_copy="$define"
14869 $rm -f try.* core core.* *.core *.core.*
14871 *) echo "You don't have <stdarg.h>, not checking for va_copy()." >&4
14875 : define a fucntion to check prototypes
14876 $cat > protochk <<EOSH
14879 optimize="$optimize"
14881 prototype="$prototype"
14886 $cat >> protochk <<'EOSH'
14891 while test $# -ge 2; do
14893 $define) echo "#include <$2>" >> try.c ;;
14894 literal) echo "$2" >> try.c ;;
14898 test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
14899 cat >> try.c <<'EOCP'
14900 #ifdef CAN_PROTOTYPE
14901 #define _(args) args
14906 echo "$foo" >> try.c
14907 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
14908 $cc $optimize $ccflags -c try.c > /dev/null 2>&1
14914 $eunicefix protochk
14916 : see what type is used for size_t
14917 rp="What is the type used for the length parameter for string functions?"
14918 set size_t sizetype 'unsigned int' stdio.h sys/types.h
14921 : check for type of arguments to gethostbyaddr.
14922 if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
14923 case "$d_gethbyaddr" in
14927 Checking to see what type of arguments are accepted by gethostbyaddr().
14929 hdrs="$define sys/types.h
14930 $d_socket sys/socket.h
14931 $i_niin netinet/in.h
14933 $i_unistd unistd.h"
14934 : The first arg can 'char *' or 'void *'
14935 : The second arg is some of integral type
14936 for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do
14937 for yyy in size_t long int; do
14938 case "$netdb_host_type" in
14939 '') try="extern struct hostent *gethostbyaddr($xxx, $yyy, int);"
14940 if ./protochk "$try" $hdrs; then
14941 echo "Your system accepts $xxx for the first arg."
14942 echo "...and $yyy for the second arg."
14943 netdb_host_type="$xxx"
14944 netdb_hlen_type="$yyy"
14950 : In case none of those worked, prompt the user.
14951 case "$netdb_host_type" in
14952 '') rp='What is the type for the 1st argument to gethostbyaddr?'
14955 netdb_host_type=$ans
14956 rp='What is the type for the 2nd argument to gethostbyaddr?'
14959 netdb_hlen_type=$ans
14963 *) : no gethostbyaddr, so pick harmless defaults
14964 netdb_host_type='char *'
14965 netdb_hlen_type="$sizetype"
14968 # Remove the "const" if needed. -- but then we'll have a
14970 # netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'`
14973 : check for type of argument to gethostbyname.
14974 if test "X$netdb_name_type" = X ; then
14975 case "$d_gethbyname" in
14979 Checking to see what type of argument is accepted by gethostbyname().
14981 hdrs="$define sys/types.h
14982 $d_socket sys/socket.h
14983 $i_niin netinet/in.h
14985 $i_unistd unistd.h"
14986 for xxx in "const char *" "char *"; do
14987 case "$netdb_name_type" in
14988 '') try="extern struct hostent *gethostbyname($xxx);"
14989 if ./protochk "$try" $hdrs; then
14990 echo "Your system accepts $xxx."
14991 netdb_name_type="$xxx"
14996 : In case none of those worked, prompt the user.
14997 case "$netdb_name_type" in
14998 '') rp='What is the type for the 1st argument to gethostbyname?'
15001 netdb_name_type=$ans
15005 *) : no gethostbyname, so pick harmless default
15006 netdb_name_type='char *'
15011 : check for type of 1st argument to getnetbyaddr.
15012 if test "X$netdb_net_type" = X ; then
15013 case "$d_getnbyaddr" in
15017 Checking to see what type of 1st argument is accepted by getnetbyaddr().
15019 hdrs="$define sys/types.h
15020 $d_socket sys/socket.h
15021 $i_niin netinet/in.h
15023 $i_unistd unistd.h"
15024 for xxx in in_addr_t "unsigned long" long "unsigned int" int; do
15025 case "$netdb_net_type" in
15026 '') try="extern struct netent *getnetbyaddr($xxx, int);"
15027 if ./protochk "$try" $hdrs; then
15028 echo "Your system accepts $xxx."
15029 netdb_net_type="$xxx"
15034 : In case none of those worked, prompt the user.
15035 case "$netdb_net_type" in
15036 '') rp='What is the type for the 1st argument to getnetbyaddr?'
15039 netdb_net_type=$ans
15043 *) : no getnetbyaddr, so pick harmless default
15044 netdb_net_type='long'
15048 : locate the preferred pager for this system
15054 [a-zA-Z]:/*) dflt=$pg;;
15058 [a-zA-Z]:/*) dflt=$more;;
15062 [a-zA-Z]:/*) dflt=$less;;
15065 '') dflt=/usr/ucb/more;;
15072 rp='What pager is used on your system?'
15076 : see what type pids are declared as in the kernel
15077 rp="What is the type of process ids on this system?"
15078 set pid_t pidtype int stdio.h sys/types.h
15081 : Find earliest binary compatible site_perl subdirectory perl can use.
15082 case "$bincompat5005" in
15083 "$define") xs_apiversion='5.005' ;;
15084 *) xs_apiversion=$version ;; # The current site_perl version.
15086 : Find earliest pure perl site_perl subdirectory perl can use.
15087 : The versioned directories started at 5.005.
15088 pm_apiversion='5.005'
15090 : see if ar generates random libraries by itself
15092 echo "Checking how to generate random libraries on your machine..." >&4
15093 echo 'int bar1() { return bar2(); }' > bar1.c
15094 echo 'int bar2() { return 2; }' > bar2.c
15095 $cat > foo.c <<'EOP'
15096 int main() { printf("%d\n", bar1()); exit(0); }
15098 $cc $ccflags -c bar1.c >/dev/null 2>&1
15099 $cc $ccflags -c bar2.c >/dev/null 2>&1
15100 $cc $ccflags -c foo.c >/dev/null 2>&1
15101 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
15102 if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
15103 $run ./foobar >/dev/null 2>&1; then
15104 echo "$ar appears to generate random libraries itself."
15107 elif $ar ts bar$_a >/dev/null 2>&1 &&
15108 $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
15109 $run ./foobar >/dev/null 2>&1; then
15110 echo "a table of contents needs to be added with '$ar ts'."
15117 ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
15118 $test -f $ranlib || ranlib=''
15121 if $test -n "$ranlib"; then
15122 echo "your system has '$ranlib'; we'll use that."
15125 echo "your system doesn't seem to support random libraries"
15126 echo "so we'll use lorder and tsort to order the libraries."
15133 : check for type of arguments to select.
15134 case "$selecttype" in
15135 '') case "$d_select" in
15139 Checking to see what type of arguments are accepted by select().
15141 hdrs="$define sys/types.h
15142 $i_systime sys/time.h
15143 $i_sysselct sys/select.h
15144 $d_socket sys/socket.h"
15145 : The first arg can be int, unsigned, or size_t
15146 : The last arg may or may not be 'const'
15148 : void pointer has been seen but using that
15149 : breaks the selectminbits test
15150 for xxx in 'fd_set *' 'int *'; do
15151 for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do
15152 for tmo in 'struct timeval *' 'const struct timeval *'; do
15154 '') try="extern select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
15155 if ./protochk "$try" $hdrs; then
15156 echo "Your system accepts $xxx."
15165 '') rp='What is the type for the 2nd, 3rd, and 4th arguments to select?'
15166 case "$d_fd_set" in
15167 $define) dflt="fd_set *" ;;
15176 *) : no select, so pick a harmless default
15183 : check for the select 'width'
15184 case "$selectminbits" in
15185 '') case "$d_select" in
15189 Checking to see on how many bits at a time your select() operates...
15192 #include <sys/types.h>
15194 #$i_systime I_SYS_TIME
15195 #$i_systimek I_SYS_TIME_KERNEL
15200 # ifdef I_SYS_TIME_KERNEL
15203 # include <sys/time.h>
15204 # ifdef I_SYS_TIME_KERNEL
15208 #$i_sysselct I_SYS_SELECT
15209 #ifdef I_SYS_SELECT
15210 #include <sys/select.h>
15212 #$d_socket HAS_SOCKET
15214 # include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
15218 #define S sizeof(*(b))
15220 #define NBYTES (S * 8 > MINBITS ? S : MINBITS/8)
15221 #define NBITS (NBYTES * 8)
15230 fp = fopen("try.c", "r");
15236 b = ($selecttype)s;
15237 for (i = 0; i < NBITS; i++)
15241 select(fd + 1, b, 0, 0, &t);
15242 for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--);
15243 printf("%d\n", i + 1);
15248 if eval $compile_ok; then
15249 selectminbits=`$run ./try`
15250 case "$selectminbits" in
15252 Cannot figure out on how many bits at a time your select() operates.
15253 I'll play safe and guess it is 32 bits.
15259 *) bits="$selectminbits bits" ;;
15261 echo "Your select() operates on $bits at a time." >&4
15263 rp='What is the minimum number of bits your select() operates on?'
15264 case "$byteorder" in
15265 1234|12345678) dflt=32 ;;
15270 selectminbits="$val"
15274 *) : no select, so pick a harmless default
15281 : Trace out the files included by signal.h, then look for SIGxxx names.
15282 : Remove SIGARRAYSIZE used by HPUX.
15283 : Remove SIGSTKSIZE used by Linux.
15284 : Remove SIGSTKSZ used by Posix.
15285 : Remove SIGTYP void lines used by OS2.
15286 : Some cpps, like os390, dont give the file name anywhere
15287 if [ "X$fieldn" = X ]; then
15288 : Just make some guesses. We check them later.
15289 xxx='/usr/include/signal.h /usr/include/sys/signal.h'
15291 xxx=`echo '#include <signal.h>' |
15292 $cppstdin $cppminus $cppflags 2>/dev/null |
15293 $grep '^[ ]*#.*include' |
15294 $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq`
15296 : Check this list of files to be sure we have parsed the cpp output ok.
15297 : This will also avoid potentially non-existent files, such
15300 for xx in $xxx /dev/null ; do
15301 $test -f "$xx" && xxxfiles="$xxxfiles $xx"
15303 : If we have found no files, at least try signal.h
15304 case "$xxxfiles" in
15305 '') xxxfiles=`./findhdr signal.h` ;;
15308 $1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ {
15309 print substr($2, 4, 20)
15311 $1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ {
15312 print substr($3, 4, 20)
15314 : Append some common names just in case the awk scan failed.
15315 xxx="$xxx ABRT ALRM BUS CANCEL CHLD CLD CONT DIL EMT FPE"
15316 xxx="$xxx FREEZE HUP ILL INT IO IOT KILL LOST LWP PHONE"
15317 xxx="$xxx PIPE POLL PROF PWR QUIT RTMAX RTMIN SEGV STKFLT STOP"
15318 xxx="$xxx SYS TERM THAW TRAP TSTP TTIN TTOU URG USR1 USR2"
15319 xxx="$xxx USR3 USR4 VTALRM WAITING WINCH WIND WINDOW XCPU XFSZ"
15321 : generate a few handy files for later
15322 $cat > signal.c <<'EOCP'
15323 #include <sys/types.h>
15324 #include <signal.h>
15328 /* Strange style to avoid deeply-nested #if/#else/#endif */
15331 # define NSIG (_NSIG)
15337 # define NSIG (SIGMAX+1)
15343 # define NSIG (SIG_MAX+1)
15349 # define NSIG (MAXSIG+1)
15355 # define NSIG (MAX_SIG+1)
15360 # ifdef SIGARRAYSIZE
15361 # define NSIG (SIGARRAYSIZE+1) /* Not sure of the +1 */
15367 # define NSIG (_sys_nsig) /* Solaris 2.5 */
15371 /* Default to some arbitrary number that's big enough to get most
15372 of the common signals.
15378 printf("NSIG %d\n", NSIG);
15384 echo $xxx | $tr ' ' $trnl | $sort | $uniq | $awk '
15386 printf "#ifdef SIG"; printf $1; printf "\n"
15387 printf "printf(\""; printf $1; printf " %%d\\n\",SIG";
15388 printf $1; printf ");\n"
15392 printf "#endif /* JUST_NSIG */\n";
15393 printf "exit(0);\n}\n";
15396 $cat >signal.awk <<'EOP'
15397 BEGIN { ndups = 0 }
15398 $1 ~ /^NSIG$/ { nsig = $2 }
15399 ($1 !~ /^NSIG$/) && (NF == 2) {
15400 if ($2 > maxsig) { maxsig = $2 }
15401 if (sig_name[$2]) {
15402 dup_name[ndups] = $1
15403 dup_num[ndups] = $2
15415 printf("NSIG %d\n", nsig);
15416 for (n = 1; n < nsig; n++) {
15418 printf("%s %d\n", sig_name[n], sig_num[n])
15421 printf("NUM%d %d\n", n, n)
15424 for (n = 0; n < ndups; n++) {
15425 printf("%s %d\n", dup_name[n], dup_num[n])
15429 $cat >signal_cmd <<EOS
15431 if $test -s signal.lst; then
15432 echo "Using your existing signal.lst file"
15437 $cat >>signal_cmd <<'EOS'
15440 if eval $compile_ok; then
15441 $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
15443 echo "(I can't seem be able to compile the whole test program)" >&4
15444 echo "(I'll try it in little pieces.)" >&4
15445 set signal -DJUST_NSIG
15446 if eval $compile_ok; then
15447 $run ./signal$_exe > signal.nsg
15450 echo "I can't seem to figure out how many signals you have." >&4
15451 echo "Guessing 50." >&4
15452 echo 'NSIG 50' > signal.nsg
15454 : Now look at all the signal names, one at a time.
15455 for xx in `echo $xxx | $tr ' ' $trnl | $sort | $uniq`; do
15456 $cat > signal.c <<EOCP
15457 #include <sys/types.h>
15458 #include <signal.h>
15461 printf("$xx %d\n", SIG${xx});
15466 if eval $compile; then
15467 echo "SIG${xx} found."
15468 $run ./signal$_exe >> signal.ls1
15470 echo "SIG${xx} NOT found."
15473 if $test -s signal.ls1; then
15474 $cat signal.nsg signal.ls1 |
15475 $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
15479 if $test -s signal.lst; then
15482 echo "(AAK! I can't compile the test programs -- Guessing)" >&4
15483 echo 'kill -l' >signal
15484 set X `csh -f <signal`
15488 0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;;
15490 echo $@ | $tr ' ' $trnl | \
15491 $awk '{ printf "%s %d\n", $1, ++s; }
15492 END { printf "NSIG %d\n", ++s }' >signal.lst
15494 $rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1
15496 chmod a+x signal_cmd
15497 $eunicefix signal_cmd
15499 : generate list of signal names
15501 case "$sig_name_init" in
15503 *) case "$sig_num_init" in
15504 ''|*,*) doinit=yes ;;
15509 echo "Generating a list of signal names and numbers..." >&4
15511 sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
15512 sig_name=`$awk 'BEGIN { printf "ZERO " }
15513 !/^NSIG/ { printf "%s ", $1 }' signal.lst`
15514 sig_num=`$awk 'BEGIN { printf "0 " }
15515 !/^NSIG/ { printf "%d ", $2 }' signal.lst`
15516 sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
15517 !/^NSIG/ { printf "\"%s\", ", $1 }
15518 END { printf "0\n" }' signal.lst`
15519 sig_num_init=`$awk 'BEGIN { printf "0, " }
15520 !/^NSIG/ { printf "%d, ", $2}
15521 END { printf "0\n"}' signal.lst`
15524 echo "The following $sig_count signals are available:"
15526 echo $sig_name | $awk \
15527 'BEGIN { linelen = 0 }
15529 for (i = 1; i <= NF; i++) {
15530 name = "SIG" $i " "
15531 linelen = linelen + length(name)
15532 if (linelen > 70) {
15534 linelen = length(name)
15540 sig_size=`echo $sig_name | awk '{print NF}'`
15541 $rm -f signal signal.c signal.awk signal.lst signal_cmd
15544 case "$sizetype" in
15545 *_t) zzz="$sizetype" ;;
15546 *) zzz="filesize" ;;
15548 echo "Checking the size of $zzz..." >&4
15550 #include <sys/types.h>
15553 printf("%d\n", (int)sizeof($sizetype));
15558 if eval $compile_ok; then
15562 echo "(I can't execute the test program--guessing $sizesize.)" >&4
15565 echo "Your $zzz size is $sizesize bytes."
15570 echo "(I can't compile the test program--guessing $sizesize.)" >&4
15574 : check for socklen_t
15576 echo "Checking to see if you have socklen_t..." >&4
15578 #include <sys/types.h>
15579 #$d_socket HAS_SOCKET
15581 #include <sys/socket.h>
15583 int main() { socklen_t x = 16; }
15586 if eval $compile; then
15588 echo "You have socklen_t."
15591 echo "You do not have socklen_t."
15592 case "$sizetype" in
15593 size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
15600 : see if this is a socks.h system
15601 set socks.h i_socks
15604 : check for type of the size argument to socket calls
15605 case "$d_socket" in
15609 Checking to see what type is the last argument of accept().
15612 case "$d_socklen_t" in
15613 "$define") yyy="$yyy socklen_t"
15615 yyy="$yyy $sizetype int long unsigned"
15616 for xxx in $yyy; do
15617 case "$socksizetype" in
15618 '') try="extern int accept(int, struct sockaddr *, $xxx *);"
15619 case "$usesocks" in
15621 if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then
15622 echo "Your system accepts '$xxx *' for the last argument of accept()."
15623 socksizetype="$xxx"
15626 *) if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h; then
15627 echo "Your system accepts '$xxx *' for the last argument of accept()."
15628 socksizetype="$xxx"
15635 : In case none of those worked, prompt the user.
15636 case "$socksizetype" in
15637 '') rp='What is the type for socket address structure sizes?'
15644 *) : no sockets, so pick relatively harmless default
15649 : see what type is used for signed size_t
15650 set ssize_t ssizetype int stdio.h sys/types.h
15655 #include <sys/types.h>
15656 #define Size_t $sizetype
15657 #define SSize_t $dflt
15660 if (sizeof(Size_t) == sizeof(SSize_t))
15662 else if (sizeof(Size_t) == sizeof(int))
15671 if eval $compile_ok && $run ./try > /dev/null; then
15672 ssizetype=`$run ./try`
15673 echo "I'll be using $ssizetype for functions returning a byte count." >&4
15676 Help! I can't compile and run the ssize_t test program: please enlighten me!
15677 (This is probably a misconfiguration in your system or libraries, and
15678 you really ought to fix it. Still, I'll try anyway.)
15680 I need a type that is the same size as $sizetype, but is guaranteed to
15681 be signed. Common values are ssize_t, int and long.
15684 rp="What signed type is the same size as $sizetype?"
15690 : see what type of char stdio uses.
15692 echo '#include <stdio.h>' | $cppstdin $cppminus > stdioh
15693 if $contains 'unsigned.*char.*_ptr;' stdioh >/dev/null 2>&1 ; then
15694 echo "Your stdio uses unsigned chars." >&4
15695 stdchar="unsigned char"
15697 echo "Your stdio uses signed chars." >&4
15704 : see if time exists
15706 if test "X$d_time" = X -o X"$timetype" = X; then
15707 if set time val -f d_time; eval $csym; $val; then
15708 echo 'time() found.' >&4
15710 rp="What is the type returned by time() on this system?"
15711 set time_t timetype long stdio.h sys/types.h
15714 echo 'time() not found, hope that will do.' >&4
15722 : see what type uids are declared as in the kernel
15724 echo "Looking for the type for user ids returned by getuid()."
15725 set uid_t uidtype xxx stdio.h sys/types.h
15729 xxx=`./findhdr sys/user.h`
15730 set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
15732 unsigned) dflt="$1 $2" ;;
15736 *) dflt="$uidtype";;
15739 uid_t) echo "uid_t found." ;;
15740 *) rp="What is the type for user ids returned by getuid()?"
15748 *_t) zzz="$uidtype" ;;
15751 echo "Checking the size of $zzz..." >&4
15753 #include <sys/types.h>
15756 printf("%d\n", (int)sizeof($uidtype));
15761 if eval $compile_ok; then
15765 echo "(I can't execute the test program--guessing $uidsize.)" >&4
15768 echo "Your $zzz is $uidsize bytes long."
15773 echo "(I can't compile the test program--guessing $uidsize.)" >&4
15778 *_t) zzz="$uidtype" ;;
15781 echo "Checking the sign of $zzz..." >&4
15783 #include <sys/types.h>
15794 if eval $compile; then
15798 echo "(I can't execute the test program--guessing unsigned.)" >&4
15802 1) echo "Your $zzz is unsigned." ;;
15803 -1) echo "Your $zzz is signed." ;;
15809 echo "(I can't compile the test program--guessing unsigned.)" >&4
15815 $echo "Checking the format string to be used for uids..." >&4
15818 -1) if $test X"$uidsize" = X"$ivsize"; then
15819 uidformat="$ivdformat"
15821 if $test X"$uidsize" = X"$longsize"; then
15824 if $test X"$uidsize" = X"$intsize"; then
15827 if $test X"$uidsize" = X"$shortsize"; then
15834 *) if $test X"$uidsize" = X"$uvsize"; then
15835 uidformat="$uvuformat"
15837 if $test X"$uidsize" = X"$longsize"; then
15840 if $test X"$uidsize" = X"$intsize"; then
15843 if $test X"$uidsize" = X"$shortsize"; then
15852 : determine compiler compiler
15861 if $test -f "$byacc"; then
15863 comp="byacc or $comp"
15865 if $test -f "$bison"; then
15866 comp="$comp or bison -y"
15868 rp="Which compiler compiler ($comp) shall I use?"
15877 echo "(Adding -y option to bison to get yacc-compatible behaviour.)"
15883 : see if fcntl.h is there
15888 : see if we can include fcntl.h
15894 echo "We'll be including <fcntl.h>." >&4
15897 if $h_sysfile; then
15898 echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
15900 echo "We won't be including <fcntl.h>." >&4
15912 : see if this is a fp.h system
15916 : see if this is a fp_class.h system
15917 set fp_class.h i_fp_class
15920 : see if this is a ieeefp.h system
15921 set ieeefp.h i_ieeefp
15924 : see if this is a libutil.h system
15925 set libutil.h i_libutil
15928 : see if locale.h is available
15929 set locale.h i_locale
15932 : see if mach cthreads are available
15933 if test "X$usethreads" = "X$define"; then
15934 set mach/cthreads.h i_machcthr
15937 i_machcthr="$undef"
15942 : see if this is a math.h system
15946 : see if this is a mntent.h system
15947 set mntent.h i_mntent
15950 : see if ndbm.h is available
15955 : see if dbm_open exists
15956 set dbm_open d_dbm_open
15958 case "$d_dbm_open" in
15961 echo "We won't be including <ndbm.h>"
15970 : see if net/errno.h is available
15972 set net/errno.h val
15975 : Unfortunately, it causes problems on some systems. Arrgh.
15978 cat > try.c <<'EOM'
15981 #include <net/errno.h>
15987 if $cc $ccflags -c try.c >/dev/null 2>&1; then
15988 echo "We'll be including <net/errno.h>." >&4
15990 echo "We won't be including <net/errno.h>." >&4
15999 : see if netinet/tcp.h is available
16000 set netinet/tcp.h i_netinettcp
16003 : see if this is a poll.h system
16007 : see if this is a prot.h system
16012 $echo "Guessing which symbols your C compiler and preprocessor define..." >&4
16013 $cat <<'EOSH' > Cppsym.know
16014 a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370
16015 AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE
16016 alliant alpha am29000 AM29000 AMD64 amiga AMIGAOS AMIX
16017 ansi ANSI_C_SOURCE apollo ardent ARM32 atarist att386 att3b
16018 BeOS BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4
16019 BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi
16020 bull c cadmus clipper CMU COFF COMPILER_VERSION
16021 concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX
16022 CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
16023 Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD
16024 FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
16026 GNU_SOURCE GNUC GNUC_MINOR GNU_LIBRARY GO32 gould GOULD_PN
16027 H3050R H3050RX hbullx20 hcx host_mips
16028 hp200 hp300 hp700 HP700 hp800 hp9000
16029 hp9000s200 hp9000s300 hp9000s400 hp9000s500
16030 hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE
16031 i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960
16032 IA64 iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
16033 INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1
16034 LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE
16035 LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE
16036 Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
16037 LONGDOUBLE LONGLONG LP64 luna luna88k Lynx
16038 M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF
16039 M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3
16040 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen
16041 MATH_HAS_NO_SIDE_EFFECTS
16042 mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040
16043 mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin
16044 mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT
16045 MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola
16046 mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr
16047 NetBSD news1500 news1700 news1800 news1900 news3700
16048 news700 news800 news900 NeXT NLS nonstopux ns16000 ns32000
16049 ns32016 ns32332 ns32k nsc32000
16050 OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE
16051 pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc
16052 pc532 pdp11 PGC PIC plexus PORTAR posix
16053 POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
16054 POSIX_C_SOURCE POSIX_SOURCE POWER
16055 PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000
16056 riscix riscos RT S390 SA110 scs SCO sequent sgi SGI_SOURCE SH3 sinix
16057 SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE
16058 sony sony_news sonyrisc sparc sparclite spectrum
16059 stardent stdc STDC_EXT stratos sun sun3 sun386
16060 Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5
16061 SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44
16062 SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5
16063 sysV68 sysV88 Tek4132 Tek4300 titan
16064 TM3200 TM5400 TM5600
16065 tower tower32 tower32_200 tower32_600 tower32_700
16066 tower32_800 tower32_850 tss
16067 u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5
16068 ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK
16069 unix UNIX95 UNIX99 unixpc unos
16070 USE_BSD USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE USE_LARGEFILE64
16071 USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2
16072 USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED
16074 Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
16075 XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
16076 XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
16079 # Maybe put other stuff here too.
16080 cat <<EOSH >>Cppsym.know
16083 ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
16084 ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
16085 $cat Cppsym.know > Cppsym.c
16086 $cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | $sort | $uniq > Cppsym.know
16087 $rm -f Cppsym.a Cppsym.b Cppsym.c
16088 cat <<EOSH > Cppsym
16090 if $test \$# -gt 0; then
16091 echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got
16092 if $test -s Cppsym.got; then
16099 $tr " " "$trnl" | ./Cppsym.try
16105 cat <<EOSH > Cppsym.try
16107 cat <<'EOCP' > try.c
16113 cat <<'EOSH' >> Cppsym.try
16115 printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", (long)%s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
16116 printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", (long)_%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
16117 printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", (long)__%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
16118 printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", (long)__%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
16120 echo 'return 0;}' >> try.c
16122 cat <<EOSH >> Cppsym.try
16124 case "$osname-$gccversion" in
16125 irix-) ccflags="\$ccflags -woff 1178" ;;
16126 os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
16128 $cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
16130 chmod +x Cppsym.try
16131 $eunicefix Cppsym.try
16132 ./Cppsym < Cppsym.know > Cppsym.true
16133 : now check the C compiler for additional symbols
16134 postprocess_cc_v=''
16136 aix) postprocess_cc_v="|$tr , ' '" ;;
16143 for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
16146 -D*) echo "\$i" | $sed 's/^-D//';;
16147 -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';;
16152 postprocess_cc_v=''
16155 ./ccsym > ccsym1.raw
16156 if $test -s ccsym1.raw; then
16157 $sort ccsym1.raw | $uniq >ccsym.raw
16159 mv ccsym1.raw ccsym.raw
16162 $awk '/\=/ { print $0; next }
16163 { print $0"=1" }' ccsym.raw >ccsym.list
16164 $awk '/\=/ { print $0; next }
16165 { print $0"=1" }' Cppsym.true >ccsym.true
16166 $comm -13 ccsym.true ccsym.list >ccsym.own
16167 $comm -12 ccsym.true ccsym.list >ccsym.com
16168 $comm -23 ccsym.true ccsym.list >ccsym.cpp
16170 if $test -z ccsym.raw; then
16171 echo "Your C compiler doesn't seem to define any symbols!" >&4
16173 echo "However, your C preprocessor defines the following symbols:"
16176 cppsymbols=`$cat Cppsym.true`
16177 cppsymbols=`echo $cppsymbols`
16178 cppccsymbols="$cppsymbols"
16180 if $test -s ccsym.com; then
16181 echo "Your C compiler and pre-processor define these symbols:"
16182 $sed -e 's/\(..*\)=.*/\1/' ccsym.com
16185 cppccsymbols=`$cat ccsym.com`
16186 cppccsymbols=`echo $cppccsymbols`
16187 $test "$silent" || sleep 1
16189 if $test -s ccsym.cpp; then
16190 $test "$also" && echo " "
16191 echo "Your C pre-processor ${also}defines the following symbols:"
16192 $sed -e 's/\(..*\)=.*/\1/' ccsym.cpp
16194 cppsymbols=`$cat ccsym.cpp`
16195 cppsymbols=`echo $cppsymbols`
16196 $test "$silent" || sleep 1
16198 if $test -s ccsym.own; then
16199 $test "$also" && echo " "
16200 echo "Your C compiler ${also}defines the following cpp symbols:"
16201 $sed -e 's/\(..*\)=1/\1/' ccsym.own
16202 $sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
16203 ccsymbols=`$cat ccsym.own`
16204 ccsymbols=`echo $ccsymbols`
16205 $test "$silent" || sleep 1
16209 : see if this is a termio system
16213 if $test `./findhdr termios.h`; then
16214 set tcsetattr i_termios
16220 "$define") echo "You have POSIX termios.h... good!" >&4;;
16221 *) if ./Cppsym pyr; then
16222 case "`/bin/universe`" in
16223 ucb) if $test `./findhdr sgtty.h`; then
16225 echo "<sgtty.h> found." >&4
16227 echo "System is pyramid with BSD universe."
16228 echo "<sgtty.h> not found--you could have problems." >&4
16230 *) if $test `./findhdr termio.h`; then
16232 echo "<termio.h> found." >&4
16234 echo "System is pyramid with USG universe."
16235 echo "<termio.h> not found--you could have problems." >&4
16239 if $test `./findhdr termio.h`; then
16240 echo "<termio.h> found." >&4
16242 elif $test `./findhdr sgtty.h`; then
16243 echo "<sgtty.h> found." >&4
16246 echo "Neither <termio.h> nor <sgtty.h> found--you could have problems." >&4
16249 if $test `./findhdr sgtty.h`; then
16250 echo "<sgtty.h> found." >&4
16252 elif $test `./findhdr termio.h`; then
16253 echo "<termio.h> found." >&4
16256 echo "Neither <sgtty.h> nor <termio.h> found--you could have problems." >&4
16260 set i_termio; eval $setvar
16261 val=$val2; set i_sgtty; eval $setvar
16262 val=$val3; set i_termios; eval $setvar
16264 : see if this is a shadow.h system
16265 set shadow.h i_shadow
16268 : see if stddef is available
16269 set stddef.h i_stddef
16272 : see if this is a sunmath.h system
16273 set sunmath.h i_sunmath
16276 : see if sys/access.h is available
16277 set sys/access.h i_sysaccess
16280 : see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl
16281 set sys/filio.h i_sysfilio
16284 if $test `./findhdr sys/ioctl.h`; then
16286 echo '<sys/ioctl.h> found.' >&4
16289 if $test $i_sysfilio = "$define"; then
16290 echo '<sys/ioctl.h> NOT found.' >&4
16292 $test $i_sgtty = "$define" && xxx="sgtty.h"
16293 $test $i_termio = "$define" && xxx="termio.h"
16294 $test $i_termios = "$define" && xxx="termios.h"
16295 echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
16301 : see if socket ioctl defs are in sys/sockio.h
16303 xxx=`./findhdr sys/sockio.h`
16304 if $test "$xxx"; then
16305 if $contains SIOCATMARK $xxx >/dev/null 2>&1; then
16307 echo "You have socket ioctls defined in <sys/sockio.h>." >&4
16310 echo "No socket ioctls found in <sys/sockio.h>." >&4
16315 <sys/sockio.h> not found, assuming socket ioctls are in <sys/ioctl.h>.
16322 : see if this is a syslog.h system
16323 set syslog.h i_syslog
16327 : see if this is a sys/mode.h system
16328 set sys/mode.h i_sysmode
16331 : see if sys/resource.h has to be included
16332 set sys/resource.h i_sysresrc
16335 : see if sys/security.h is available
16336 set sys/security.h i_syssecrt
16339 : see if this is a sys/statvfs.h system
16340 set sys/statvfs.h i_sysstatvfs
16343 : see if this is a sys/un.h system
16344 set sys/un.h i_sysun
16348 : see if this is a sys/utsname.h system
16349 set sys/utsname.h i_sysutsname
16352 : see if this is a syswait system
16353 set sys/wait.h i_syswait
16356 : see if this is a ustat.h system
16357 set ustat.h i_ustat
16360 : see if this is an utime system
16361 set utime.h i_utime
16364 : see if this is a values.h system
16365 set values.h i_values
16368 : see if this is a vfork system
16371 set vfork.h i_vfork
16379 : see if gdbm.h is available
16384 : see if gdbm_open exists
16385 set gdbm_open d_gdbm_open
16387 case "$d_gdbm_open" in
16390 echo "We won't be including <gdbm.h>"
16400 echo "Looking for extensions..." >&4
16401 : If we are using the old config.sh, known_extensions may contain
16402 : old or inaccurate or duplicate values.
16403 known_extensions=''
16404 nonxs_extensions=''
16405 : We do not use find because it might not be available.
16406 : We do not just use MANIFEST because the user may have dropped
16407 : some additional extensions into the source tree and expect them
16410 : Function to recursively find available extensions, ignoring DynaLoader
16411 : NOTE: recursion limit of 10 to prevent runaway in case of symlink madness
16415 DynaLoader|dynaload) ;;
16417 if $test -f $xxx/$xxx.xs; then
16418 known_extensions="$known_extensions $1$xxx";
16419 elif $test -f $xxx/Makefile.PL; then
16420 nonxs_extensions="$nonxs_extensions $1$xxx";
16422 if $test -d $xxx -a $# -lt 10; then
16425 eval $find_extensions;
16437 eval $find_extensions
16438 # Special case: Add in threads/shared since it is not picked up by the
16439 # recursive find above (and adding in general recursive finding breaks
16440 # SDBM_File/sdbm). A.D. 10/25/2001.
16441 known_extensions="$known_extensions threads/shared"
16442 set X $nonxs_extensions
16444 nonxs_extensions="$*"
16445 set X $known_extensions
16447 known_extensions="$*"
16450 : Now see which are supported on this system.
16452 for xxx in $known_extensions ; do
16456 $define) avail_ext="$avail_ext $xxx" ;;
16459 GDBM_File|gdbm_fil)
16461 $define) avail_ext="$avail_ext $xxx" ;;
16464 I18N/Langinfo|i18n_lan)
16465 case "$i_langinfo$d_nl_langinfo" in
16466 $define$define) avail_ext="$avail_ext $xxx" ;;
16469 NDBM_File|ndbm_fil)
16472 case "$osname-$use64bitint" in
16473 cygwin-*|hpux-define)
16475 *-lndbm*) avail_ext="$avail_ext $xxx" ;;
16478 *) avail_ext="$avail_ext $xxx" ;;
16483 ODBM_File|odbm_fil)
16484 case "${i_dbm}${i_rpcsvcdbm}" in
16486 case "$osname-$use64bitint" in
16487 cygwin-*|hpux-define)
16489 *-ldbm*) avail_ext="$avail_ext $xxx" ;;
16492 *) avail_ext="$avail_ext $xxx" ;;
16498 case "$useposix" in
16499 true|define|y) avail_ext="$avail_ext $xxx" ;;
16503 case "$useopcode" in
16504 true|define|y) avail_ext="$avail_ext $xxx" ;;
16508 case "$d_socket" in
16509 true|$define|y) avail_ext="$avail_ext $xxx" ;;
16512 Sys/Syslog|sys/syslog)
16513 : XXX syslog requires socket
16514 case "$d_socket" in
16515 true|$define|y) avail_ext="$avail_ext $xxx" ;;
16519 case "$usethreads" in
16521 case "$useithreads" in
16522 $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
16526 threads|threads/shared)
16527 case "$usethreads" in
16529 case "$useithreads" in
16530 $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
16535 : XXX Do we need a useipcsysv variable here
16536 case "${d_msg}${d_sem}${d_shm}" in
16537 *"${define}"*) avail_ext="$avail_ext $xxx" ;;
16540 *) avail_ext="$avail_ext $xxx"
16549 : Now see which nonxs extensions are supported on this system.
16550 : For now assume all are.
16552 for xxx in $nonxs_extensions ; do
16554 *) nonxs_ext="$nonxs_ext $xxx"
16566 A number of extensions are supplied with $package. You may choose to
16567 compile these extensions for dynamic loading (the default), compile
16568 them into the $package executable (static loading), or not include
16569 them at all. Answer "none" to include no extensions.
16570 Note that DynaLoader is always built and need not be mentioned here.
16573 case "$dynamic_ext" in
16574 '') dflt="$avail_ext" ;;
16575 *) dflt="$dynamic_ext"
16576 # Perhaps we are reusing an old out-of-date config.sh.
16579 if test X"$dynamic_ext" != X"$avail_ext"; then
16581 NOTICE: Your previous config.sh list may be incorrect.
16582 The extensions now available to you are
16584 but the default list from your previous config.sh is
16596 rp="What extensions do you wish to load dynamically?"
16599 none) dynamic_ext=' ' ;;
16600 *) dynamic_ext="$ans" ;;
16603 case "$static_ext" in
16605 : Exclude those already listed in dynamic linking
16607 for xxx in $avail_ext; do
16608 case " $dynamic_ext " in
16610 *) dflt="$dflt $xxx" ;;
16617 *) dflt="$static_ext"
16624 rp="What extensions do you wish to load statically?"
16627 none) static_ext=' ' ;;
16628 *) static_ext="$ans" ;;
16633 A number of extensions are supplied with $package. Answer "none"
16634 to include no extensions.
16635 Note that DynaLoader is always built and need not be mentioned here.
16638 case "$static_ext" in
16639 '') dflt="$avail_ext" ;;
16640 *) dflt="$static_ext"
16641 # Perhaps we are reusing an old out-of-date config.sh.
16644 if test X"$static_ext" != X"$avail_ext"; then
16646 NOTICE: Your previous config.sh list may be incorrect.
16647 The extensions now available to you are
16649 but the default list from your previous config.sh is
16658 : Exclude those that are not xs extensions
16662 rp="What extensions do you wish to include?"
16665 none) static_ext=' ' ;;
16666 *) static_ext="$ans" ;;
16671 set X $dynamic_ext $static_ext $nonxs_ext
16675 : Remove libraries needed only for extensions
16676 : The appropriate ext/Foo/Makefile.PL will add them back in, if necessary.
16677 : The exception is SunOS 4.x, which needs them.
16678 case "${osname}X${osvers}" in
16682 *) case "$usedl" in
16683 $define|true|[yY]*)
16684 set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'`
16688 *) perllibs="$libs"
16694 : Remove build directory name from cppstdin so it can be used from
16695 : either the present location or the final installed location.
16697 : Get out of the UU directory to get correct path name.
16699 case "$cppstdin" in
16701 echo "Stripping down cppstdin path name"
16707 : end of configuration questions
16709 echo "End of configuration questions."
16712 : back to where it started
16713 if test -d ../UU; then
16717 : configuration may be patched via a 'config.arch' file
16718 if $test -f config.arch; then
16719 echo "I see a config.arch file, loading it."
16723 : configuration may be patched via a 'config.over' file
16724 if $test -f config.over; then
16727 rp='I see a config.over file. Do you wish to load it?'
16730 n*) echo "OK, I'll ignore it.";;
16732 echo "Configuration override changes have been loaded."
16737 : in case they want portability, strip down executable paths
16738 case "$d_portable" in
16741 echo "Stripping down executable paths..." >&4
16742 for file in $loclist $trylist; do
16744 eval $file=`basename $temp`
16749 : create config.sh file
16751 echo "Creating config.sh..." >&4
16752 $spitshell <<EOT >config.sh
16755 # This file was produced by running the Configure script. It holds all the
16756 # definitions figured out by Configure. Should you modify one of these values,
16757 # do not forget to propagate your changes by running "Configure -der". You may
16758 # instead choose to run each of the .SH files by yourself, or "Configure -S".
16761 # Package name : $package
16762 # Source directory : $src
16763 # Configuration time: $cf_time
16764 # Configured by : $cf_by
16765 # Target system : $myuname
16775 Revision='$Revision'
16783 alignbytes='$alignbytes'
16784 ansi2knr='$ansi2knr'
16785 aphostname='$aphostname'
16786 api_revision='$api_revision'
16787 api_subversion='$api_subversion'
16788 api_version='$api_version'
16789 api_versionstring='$api_versionstring'
16792 archlibexp='$archlibexp'
16793 archname64='$archname64'
16794 archname='$archname'
16795 archobjs='$archobjs'
16800 bincompat5005='$bincompat5005'
16804 byteorder='$byteorder'
16806 castflags='$castflags'
16809 cccdlflags='$cccdlflags'
16810 ccdlflags='$ccdlflags'
16812 ccflags_uselargefiles='$ccflags_uselargefiles'
16814 ccsymbols='$ccsymbols'
16815 ccversion='$ccversion'
16817 cf_email='$cf_email'
16819 charsize='$charsize'
16823 clocktype='$clocktype'
16825 compress='$compress'
16826 contains='$contains'
16830 cpp_stuff='$cpp_stuff'
16831 cppccsymbols='$cppccsymbols'
16832 cppflags='$cppflags'
16834 cppminus='$cppminus'
16836 cppstdin='$cppstdin'
16837 cppsymbols='$cppsymbols'
16838 cryptlib='$cryptlib'
16840 d_Gconvert='$d_Gconvert'
16841 d_PRIEUldbl='$d_PRIEUldbl'
16842 d_PRIFUldbl='$d_PRIFUldbl'
16843 d_PRIGUldbl='$d_PRIGUldbl'
16844 d_PRIXU64='$d_PRIXU64'
16845 d_PRId64='$d_PRId64'
16846 d_PRIeldbl='$d_PRIeldbl'
16847 d_PRIfldbl='$d_PRIfldbl'
16848 d_PRIgldbl='$d_PRIgldbl'
16849 d_PRIi64='$d_PRIi64'
16850 d_PRIo64='$d_PRIo64'
16851 d_PRIu64='$d_PRIu64'
16852 d_PRIx64='$d_PRIx64'
16853 d_SCNfldbl='$d_SCNfldbl'
16854 d__fwalk='$d__fwalk'
16855 d_access='$d_access'
16856 d_accessx='$d_accessx'
16858 d_archlib='$d_archlib'
16861 d_attribut='$d_attribut'
16864 d_bincompat5005='$d_bincompat5005'
16866 d_bsdgetpgrp='$d_bsdgetpgrp'
16867 d_bsdsetpgrp='$d_bsdsetpgrp'
16869 d_casti32='$d_casti32'
16870 d_castneg='$d_castneg'
16871 d_charvspr='$d_charvspr'
16873 d_chroot='$d_chroot'
16874 d_chsize='$d_chsize'
16876 d_closedir='$d_closedir'
16877 d_cmsghdr_s='$d_cmsghdr_s'
16881 d_cuserid='$d_cuserid'
16882 d_dbl_dig='$d_dbl_dig'
16883 d_dbminitproto='$d_dbminitproto'
16884 d_difftime='$d_difftime'
16886 d_dirnamlen='$d_dirnamlen'
16887 d_dlerror='$d_dlerror'
16888 d_dlopen='$d_dlopen'
16889 d_dlsymun='$d_dlsymun'
16890 d_dosuid='$d_dosuid'
16891 d_drand48proto='$d_drand48proto'
16893 d_eaccess='$d_eaccess'
16894 d_endgrent='$d_endgrent'
16895 d_endhent='$d_endhent'
16896 d_endnent='$d_endnent'
16897 d_endpent='$d_endpent'
16898 d_endpwent='$d_endpwent'
16899 d_endsent='$d_endsent'
16900 d_eofnblk='$d_eofnblk'
16901 d_eunice='$d_eunice'
16902 d_fchdir='$d_fchdir'
16903 d_fchmod='$d_fchmod'
16904 d_fchown='$d_fchown'
16906 d_fcntl_can_lock='$d_fcntl_can_lock'
16907 d_fd_macros='$d_fd_macros'
16908 d_fd_set='$d_fd_set'
16909 d_fds_bits='$d_fds_bits'
16910 d_fgetpos='$d_fgetpos'
16911 d_finite='$d_finite'
16912 d_finitel='$d_finitel'
16913 d_flexfnam='$d_flexfnam'
16915 d_flockproto='$d_flockproto'
16917 d_fp_class='$d_fp_class'
16918 d_fpathconf='$d_fpathconf'
16919 d_fpclass='$d_fpclass'
16920 d_fpclassify='$d_fpclassify'
16921 d_fpclassl='$d_fpclassl'
16922 d_fpos64_t='$d_fpos64_t'
16923 d_frexpl='$d_frexpl'
16924 d_fs_data_s='$d_fs_data_s'
16925 d_fseeko='$d_fseeko'
16926 d_fsetpos='$d_fsetpos'
16927 d_fstatfs='$d_fstatfs'
16928 d_fstatvfs='$d_fstatvfs'
16930 d_ftello='$d_ftello'
16932 d_getcwd='$d_getcwd'
16933 d_getespwnam='$d_getespwnam'
16934 d_getfsstat='$d_getfsstat'
16935 d_getgrent='$d_getgrent'
16936 d_getgrps='$d_getgrps'
16937 d_gethbyaddr='$d_gethbyaddr'
16938 d_gethbyname='$d_gethbyname'
16939 d_gethent='$d_gethent'
16940 d_gethname='$d_gethname'
16941 d_gethostprotos='$d_gethostprotos'
16942 d_getitimer='$d_getitimer'
16943 d_getlogin='$d_getlogin'
16944 d_getmnt='$d_getmnt'
16945 d_getmntent='$d_getmntent'
16946 d_getnbyaddr='$d_getnbyaddr'
16947 d_getnbyname='$d_getnbyname'
16948 d_getnent='$d_getnent'
16949 d_getnetprotos='$d_getnetprotos'
16950 d_getpagsz='$d_getpagsz'
16951 d_getpbyname='$d_getpbyname'
16952 d_getpbynumber='$d_getpbynumber'
16953 d_getpent='$d_getpent'
16954 d_getpgid='$d_getpgid'
16955 d_getpgrp2='$d_getpgrp2'
16956 d_getpgrp='$d_getpgrp'
16957 d_getppid='$d_getppid'
16958 d_getprior='$d_getprior'
16959 d_getprotoprotos='$d_getprotoprotos'
16960 d_getprpwnam='$d_getprpwnam'
16961 d_getpwent='$d_getpwent'
16962 d_getsbyname='$d_getsbyname'
16963 d_getsbyport='$d_getsbyport'
16964 d_getsent='$d_getsent'
16965 d_getservprotos='$d_getservprotos'
16966 d_getspnam='$d_getspnam'
16967 d_gettimeod='$d_gettimeod'
16968 d_gnulibc='$d_gnulibc'
16969 d_grpasswd='$d_grpasswd'
16970 d_hasmntopt='$d_hasmntopt'
16973 d_inetaton='$d_inetaton'
16974 d_int64_t='$d_int64_t'
16975 d_isascii='$d_isascii'
16976 d_isfinite='$d_isfinite'
16979 d_isnanl='$d_isnanl'
16980 d_killpg='$d_killpg'
16981 d_lchown='$d_lchown'
16982 d_ldbl_dig='$d_ldbl_dig'
16984 d_locconv='$d_locconv'
16986 d_longdbl='$d_longdbl'
16987 d_longlong='$d_longlong'
16988 d_lseekproto='$d_lseekproto'
16990 d_madvise='$d_madvise'
16992 d_mbstowcs='$d_mbstowcs'
16993 d_mbtowc='$d_mbtowc'
16994 d_memchr='$d_memchr'
16995 d_memcmp='$d_memcmp'
16996 d_memcpy='$d_memcpy'
16997 d_memmove='$d_memmove'
16998 d_memset='$d_memset'
17000 d_mkdtemp='$d_mkdtemp'
17001 d_mkfifo='$d_mkfifo'
17002 d_mkstemp='$d_mkstemp'
17003 d_mkstemps='$d_mkstemps'
17004 d_mktime='$d_mktime'
17007 d_modfl_pow32_bug='$d_modfl_pow32_bug'
17008 d_mprotect='$d_mprotect'
17010 d_msg_ctrunc='$d_msg_ctrunc'
17011 d_msg_dontroute='$d_msg_dontroute'
17012 d_msg_oob='$d_msg_oob'
17013 d_msg_peek='$d_msg_peek'
17014 d_msg_proxy='$d_msg_proxy'
17015 d_msgctl='$d_msgctl'
17016 d_msgget='$d_msgget'
17017 d_msghdr_s='$d_msghdr_s'
17018 d_msgrcv='$d_msgrcv'
17019 d_msgsnd='$d_msgsnd'
17021 d_munmap='$d_munmap'
17022 d_mymalloc='$d_mymalloc'
17024 d_nl_langinfo='$d_nl_langinfo'
17025 d_nv_preserves_uv='$d_nv_preserves_uv'
17026 d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
17027 d_off64_t='$d_off64_t'
17028 d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
17029 d_oldpthreads='$d_oldpthreads'
17030 d_oldsock='$d_oldsock'
17032 d_pathconf='$d_pathconf'
17034 d_perl_otherlibdirs='$d_perl_otherlibdirs'
17035 d_phostname='$d_phostname'
17038 d_portable='$d_portable'
17039 d_procselfexe='$d_procselfexe'
17040 d_pthread_atfork='$d_pthread_atfork'
17041 d_pthread_yield='$d_pthread_yield'
17043 d_pwchange='$d_pwchange'
17044 d_pwclass='$d_pwclass'
17045 d_pwcomment='$d_pwcomment'
17046 d_pwexpire='$d_pwexpire'
17047 d_pwgecos='$d_pwgecos'
17048 d_pwpasswd='$d_pwpasswd'
17049 d_pwquota='$d_pwquota'
17052 d_readdir='$d_readdir'
17053 d_readlink='$d_readlink'
17055 d_recvmsg='$d_recvmsg'
17056 d_rename='$d_rename'
17057 d_rewinddir='$d_rewinddir'
17059 d_safebcpy='$d_safebcpy'
17060 d_safemcpy='$d_safemcpy'
17061 d_sanemcmp='$d_sanemcmp'
17062 d_sbrkproto='$d_sbrkproto'
17063 d_sched_yield='$d_sched_yield'
17064 d_scm_rights='$d_scm_rights'
17065 d_seekdir='$d_seekdir'
17066 d_select='$d_select'
17068 d_semctl='$d_semctl'
17069 d_semctl_semid_ds='$d_semctl_semid_ds'
17070 d_semctl_semun='$d_semctl_semun'
17071 d_semget='$d_semget'
17073 d_sendmsg='$d_sendmsg'
17074 d_setegid='$d_setegid'
17075 d_seteuid='$d_seteuid'
17076 d_setgrent='$d_setgrent'
17077 d_setgrps='$d_setgrps'
17078 d_sethent='$d_sethent'
17079 d_setitimer='$d_setitimer'
17080 d_setlinebuf='$d_setlinebuf'
17081 d_setlocale='$d_setlocale'
17082 d_setnent='$d_setnent'
17083 d_setpent='$d_setpent'
17084 d_setpgid='$d_setpgid'
17085 d_setpgrp2='$d_setpgrp2'
17086 d_setpgrp='$d_setpgrp'
17087 d_setprior='$d_setprior'
17088 d_setproctitle='$d_setproctitle'
17089 d_setpwent='$d_setpwent'
17090 d_setregid='$d_setregid'
17091 d_setresgid='$d_setresgid'
17092 d_setresuid='$d_setresuid'
17093 d_setreuid='$d_setreuid'
17094 d_setrgid='$d_setrgid'
17095 d_setruid='$d_setruid'
17096 d_setsent='$d_setsent'
17097 d_setsid='$d_setsid'
17098 d_setvbuf='$d_setvbuf'
17102 d_shmatprototype='$d_shmatprototype'
17103 d_shmctl='$d_shmctl'
17105 d_shmget='$d_shmget'
17106 d_sigaction='$d_sigaction'
17107 d_sigprocmask='$d_sigprocmask'
17108 d_sigsetjmp='$d_sigsetjmp'
17109 d_sockatmark='$d_sockatmark'
17110 d_sockatmarkproto='$d_sockatmarkproto'
17111 d_socket='$d_socket'
17112 d_socklen_t='$d_socklen_t'
17113 d_sockpair='$d_sockpair'
17114 d_socks5_init='$d_socks5_init'
17116 d_sresgproto='$d_sresgproto'
17117 d_sresuproto='$d_sresuproto'
17118 d_statblks='$d_statblks'
17119 d_statfs_f_flags='$d_statfs_f_flags'
17120 d_statfs_s='$d_statfs_s'
17121 d_statvfs='$d_statvfs'
17122 d_stdio_cnt_lval='$d_stdio_cnt_lval'
17123 d_stdio_ptr_lval='$d_stdio_ptr_lval'
17124 d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt'
17125 d_stdio_ptr_lval_sets_cnt='$d_stdio_ptr_lval_sets_cnt'
17126 d_stdio_stream_array='$d_stdio_stream_array'
17127 d_stdiobase='$d_stdiobase'
17128 d_stdstdio='$d_stdstdio'
17129 d_strchr='$d_strchr'
17130 d_strcoll='$d_strcoll'
17131 d_strctcpy='$d_strctcpy'
17132 d_strerrm='$d_strerrm'
17133 d_strerror='$d_strerror'
17134 d_strftime='$d_strftime'
17135 d_strtod='$d_strtod'
17136 d_strtol='$d_strtol'
17137 d_strtold='$d_strtold'
17138 d_strtoll='$d_strtoll'
17139 d_strtoq='$d_strtoq'
17140 d_strtoul='$d_strtoul'
17141 d_strtoull='$d_strtoull'
17142 d_strtouq='$d_strtouq'
17143 d_strxfrm='$d_strxfrm'
17144 d_suidsafe='$d_suidsafe'
17145 d_symlink='$d_symlink'
17146 d_syscall='$d_syscall'
17147 d_syscallproto='$d_syscallproto'
17148 d_sysconf='$d_sysconf'
17149 d_sysernlst='$d_sysernlst'
17150 d_syserrlst='$d_syserrlst'
17151 d_system='$d_system'
17152 d_tcgetpgrp='$d_tcgetpgrp'
17153 d_tcsetpgrp='$d_tcsetpgrp'
17154 d_telldir='$d_telldir'
17155 d_telldirproto='$d_telldirproto'
17158 d_truncate='$d_truncate'
17159 d_tzname='$d_tzname'
17160 d_u32align='$d_u32align'
17161 d_ualarm='$d_ualarm'
17164 d_union_semun='$d_union_semun'
17165 d_unordered='$d_unordered'
17166 d_usleep='$d_usleep'
17167 d_usleepproto='$d_usleepproto'
17169 d_vendorarch='$d_vendorarch'
17170 d_vendorbin='$d_vendorbin'
17171 d_vendorlib='$d_vendorlib'
17173 d_void_closedir='$d_void_closedir'
17174 d_voidsig='$d_voidsig'
17175 d_voidtty='$d_voidtty'
17176 d_volatile='$d_volatile'
17177 d_vprintf='$d_vprintf'
17179 d_waitpid='$d_waitpid'
17180 d_wcstombs='$d_wcstombs'
17181 d_wctomb='$d_wctomb'
17182 d_writev='$d_writev'
17185 db_hashtype='$db_hashtype'
17186 db_prefixtype='$db_prefixtype'
17187 db_version_major='$db_version_major'
17188 db_version_minor='$db_version_minor'
17189 db_version_patch='$db_version_patch'
17190 defvoidused='$defvoidused'
17191 direntrytype='$direntrytype'
17194 doublesize='$doublesize'
17196 dynamic_ext='$dynamic_ext'
17202 eunicefix='$eunicefix'
17205 extensions='$extensions'
17207 fflushNULL='$fflushNULL'
17208 fflushall='$fflushall'
17210 firstmakefile='$firstmakefile'
17212 fpossize='$fpossize'
17213 fpostype='$fpostype'
17214 freetype='$freetype'
17217 full_csh='$full_csh'
17218 full_sed='$full_sed'
17219 gccosandvers='$gccosandvers'
17220 gccversion='$gccversion'
17221 gidformat='$gidformat'
17227 groupcat='$groupcat'
17228 groupstype='$groupstype'
17231 h_sysfile='$h_sysfile'
17242 i_arpainet='$i_arpainet'
17243 i_bsdioctl='$i_bsdioctl'
17246 i_dirent='$i_dirent'
17252 i_fp_class='$i_fp_class'
17255 i_ieeefp='$i_ieeefp'
17256 i_inttypes='$i_inttypes'
17257 i_langinfo='$i_langinfo'
17258 i_libutil='$i_libutil'
17259 i_limits='$i_limits'
17260 i_locale='$i_locale'
17261 i_machcthr='$i_machcthr'
17262 i_malloc='$i_malloc'
17264 i_memory='$i_memory'
17265 i_mntent='$i_mntent'
17268 i_neterrno='$i_neterrno'
17269 i_netinettcp='$i_netinettcp'
17273 i_pthread='$i_pthread'
17275 i_rpcsvcdbm='$i_rpcsvcdbm'
17278 i_shadow='$i_shadow'
17280 i_stdarg='$i_stdarg'
17281 i_stddef='$i_stddef'
17282 i_stdlib='$i_stdlib'
17283 i_string='$i_string'
17284 i_sunmath='$i_sunmath'
17285 i_sysaccess='$i_sysaccess'
17286 i_sysdir='$i_sysdir'
17287 i_sysfile='$i_sysfile'
17288 i_sysfilio='$i_sysfilio'
17290 i_sysioctl='$i_sysioctl'
17291 i_syslog='$i_syslog'
17292 i_sysmman='$i_sysmman'
17293 i_sysmode='$i_sysmode'
17294 i_sysmount='$i_sysmount'
17295 i_sysndir='$i_sysndir'
17296 i_sysparam='$i_sysparam'
17297 i_sysresrc='$i_sysresrc'
17298 i_syssecrt='$i_syssecrt'
17299 i_sysselct='$i_sysselct'
17300 i_syssockio='$i_syssockio'
17301 i_sysstat='$i_sysstat'
17302 i_sysstatfs='$i_sysstatfs'
17303 i_sysstatvfs='$i_sysstatvfs'
17304 i_systime='$i_systime'
17305 i_systimek='$i_systimek'
17306 i_systimes='$i_systimes'
17307 i_systypes='$i_systypes'
17308 i_sysuio='$i_sysuio'
17310 i_sysutsname='$i_sysutsname'
17311 i_sysvfs='$i_sysvfs'
17312 i_syswait='$i_syswait'
17313 i_termio='$i_termio'
17314 i_termios='$i_termios'
17316 i_unistd='$i_unistd'
17319 i_values='$i_values'
17320 i_varargs='$i_varargs'
17321 i_varhdr='$i_varhdr'
17323 ignore_versioned_solibs='$ignore_versioned_solibs'
17324 inc_version_list='$inc_version_list'
17325 inc_version_list_init='$inc_version_list_init'
17328 installarchlib='$installarchlib'
17329 installbin='$installbin'
17330 installman1dir='$installman1dir'
17331 installman3dir='$installman3dir'
17332 installprefix='$installprefix'
17333 installprefixexp='$installprefixexp'
17334 installprivlib='$installprivlib'
17335 installscript='$installscript'
17336 installsitearch='$installsitearch'
17337 installsitebin='$installsitebin'
17338 installsitelib='$installsitelib'
17339 installstyle='$installstyle'
17340 installusrbinperl='$installusrbinperl'
17341 installvendorarch='$installvendorarch'
17342 installvendorbin='$installvendorbin'
17343 installvendorlib='$installvendorlib'
17345 issymlink='$issymlink'
17346 ivdformat='$ivdformat'
17349 known_extensions='$known_extensions'
17352 lddlflags='$lddlflags'
17354 ldflags_uselargefiles='$ldflags_uselargefiles'
17355 ldlibpthname='$ldlibpthname'
17362 libsdirs='$libsdirs'
17363 libsfiles='$libsfiles'
17364 libsfound='$libsfound'
17365 libspath='$libspath'
17366 libswanted='$libswanted'
17367 libswanted_uselargefiles='$libswanted_uselargefiles'
17373 locincpth='$locincpth'
17374 loclibpth='$loclibpth'
17375 longdblsize='$longdblsize'
17376 longlongsize='$longlongsize'
17377 longsize='$longsize'
17381 lseeksize='$lseeksize'
17382 lseektype='$lseektype'
17386 make_set_make='$make_set_make'
17387 mallocobj='$mallocobj'
17388 mallocsrc='$mallocsrc'
17389 malloctype='$malloctype'
17391 man1direxp='$man1direxp'
17394 man3direxp='$man3direxp'
17396 mips_type='$mips_type'
17398 mmaptype='$mmaptype'
17399 modetype='$modetype'
17401 multiarch='$multiarch'
17403 myarchname='$myarchname'
17404 mydomain='$mydomain'
17405 myhostname='$myhostname'
17408 need_va_copy='$need_va_copy'
17409 netdb_hlen_type='$netdb_hlen_type'
17410 netdb_host_type='$netdb_host_type'
17411 netdb_name_type='$netdb_name_type'
17412 netdb_net_type='$netdb_net_type'
17415 nm_so_opt='$nm_so_opt'
17416 nonxs_ext='$nonxs_ext'
17418 nvEUformat='$nvEUformat'
17419 nvFUformat='$nvFUformat'
17420 nvGUformat='$nvGUformat'
17421 nveformat='$nveformat'
17422 nvfformat='$nvfformat'
17423 nvgformat='$nvgformat'
17426 o_nonblock='$o_nonblock'
17428 old_pthread_create_joinable='$old_pthread_create_joinable'
17429 optimize='$optimize'
17430 orderlib='$orderlib'
17433 otherlibdirs='$otherlibdirs'
17437 patchlevel='$patchlevel'
17438 path_sep='$path_sep'
17441 perl_patchlevel='$perl_patchlevel'
17442 perladmin='$perladmin'
17443 perllibs='$perllibs'
17444 perlpath='$perlpath'
17446 phostname='$phostname'
17449 pm_apiversion='$pm_apiversion'
17453 prefixexp='$prefixexp'
17455 privlibexp='$privlibexp'
17456 prototype='$prototype'
17458 quadkind='$quadkind'
17459 quadtype='$quadtype'
17460 randbits='$randbits'
17461 randfunc='$randfunc'
17462 randseedtype='$randseedtype'
17464 rd_nodata='$rd_nodata'
17465 revision='$revision'
17470 sPRIEUldbl='$sPRIEUldbl'
17471 sPRIFUldbl='$sPRIFUldbl'
17472 sPRIGUldbl='$sPRIGUldbl'
17473 sPRIXU64='$sPRIXU64'
17475 sPRIeldbl='$sPRIeldbl'
17476 sPRIfldbl='$sPRIfldbl'
17477 sPRIgldbl='$sPRIgldbl'
17482 sSCNfldbl='$sSCNfldbl'
17483 sched_yield='$sched_yield'
17484 scriptdir='$scriptdir'
17485 scriptdirexp='$scriptdirexp'
17487 seedfunc='$seedfunc'
17488 selectminbits='$selectminbits'
17489 selecttype='$selecttype'
17490 sendmail='$sendmail'
17493 sharpbang='$sharpbang'
17494 shmattype='$shmattype'
17495 shortsize='$shortsize'
17498 sig_count='$sig_count'
17499 sig_name='$sig_name'
17500 sig_name_init='$sig_name_init'
17502 sig_num_init='$sig_num_init'
17503 sig_size='$sig_size'
17504 signal_t='$signal_t'
17505 sitearch='$sitearch'
17506 sitearchexp='$sitearchexp'
17508 sitebinexp='$sitebinexp'
17510 sitelib_stem='$sitelib_stem'
17511 sitelibexp='$sitelibexp'
17512 siteprefix='$siteprefix'
17513 siteprefixexp='$siteprefixexp'
17514 sizesize='$sizesize'
17515 sizetype='$sizetype'
17519 sockethdr='$sockethdr'
17520 socketlib='$socketlib'
17521 socksizetype='$socksizetype'
17523 spackage='$spackage'
17524 spitshell='$spitshell'
17526 ssizetype='$ssizetype'
17527 startperl='$startperl'
17529 static_ext='$static_ext'
17531 stdio_base='$stdio_base'
17532 stdio_bufsiz='$stdio_bufsiz'
17533 stdio_cnt='$stdio_cnt'
17534 stdio_filbuf='$stdio_filbuf'
17535 stdio_ptr='$stdio_ptr'
17536 stdio_stream_array='$stdio_stream_array'
17539 subversion='$subversion'
17543 targetarch='$targetarch'
17547 timeincl='$timeincl'
17548 timetype='$timetype'
17562 uidformat='$uidformat'
17568 uquadtype='$uquadtype'
17569 use5005threads='$use5005threads'
17570 use64bitall='$use64bitall'
17571 use64bitint='$use64bitint'
17572 usecrosscompile='$usecrosscompile'
17574 useithreads='$useithreads'
17575 uselargefiles='$uselargefiles'
17576 uselongdouble='$uselongdouble'
17577 usemorebits='$usemorebits'
17578 usemultiplicity='$usemultiplicity'
17579 usemymalloc='$usemymalloc'
17581 useopcode='$useopcode'
17582 useperlio='$useperlio'
17583 useposix='$useposix'
17584 usereentrant='$usereentrant'
17586 useshrplib='$useshrplib'
17587 usesocks='$usesocks'
17588 usethreads='$usethreads'
17589 usevendorprefix='$usevendorprefix'
17590 usevfork='$usevfork'
17593 uvXUformat='$uvXUformat'
17594 uvoformat='$uvoformat'
17597 uvuformat='$uvuformat'
17598 uvxformat='$uvxformat'
17599 vendorarch='$vendorarch'
17600 vendorarchexp='$vendorarchexp'
17601 vendorbin='$vendorbin'
17602 vendorbinexp='$vendorbinexp'
17603 vendorlib='$vendorlib'
17604 vendorlib_stem='$vendorlib_stem'
17605 vendorlibexp='$vendorlibexp'
17606 vendorprefix='$vendorprefix'
17607 vendorprefixexp='$vendorprefixexp'
17609 version_patchlevel_string='$version_patchlevel_string'
17610 versiononly='$versiononly'
17612 voidflags='$voidflags'
17614 xs_apiversion='$xs_apiversion'
17616 yaccflags='$yaccflags'
17621 : Add in command line options if available
17622 $test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh
17624 : add special variables
17625 $test -f $src/patchlevel.h && \
17626 awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
17627 echo "PERL_PATCHLEVEL=$perl_patchlevel" >>config.sh
17628 echo "PERL_CONFIG_SH=true" >>config.sh
17630 : propagate old symbols
17631 if $test -f UU/config.sh; then
17632 <UU/config.sh $sort | $uniq >UU/oldconfig.sh
17633 sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\
17634 $sort | $uniq -u >UU/oldsyms
17635 set X `cat UU/oldsyms`
17641 Hmm...You had some extra variables I don't know about...I'll try to keep 'em...
17643 echo "# Variables propagated from previous config.sh file." >>config.sh
17644 for sym in `cat UU/oldsyms`; do
17645 echo " Propagating $hint variable "'$'"$sym..."
17646 eval 'tmp="$'"${sym}"'"'
17648 sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh
17654 : Finish up by extracting the .SH files
17658 echo "Extraction done."
17668 If you'd like to make any changes to the config.sh file before I begin
17669 to configure things, do it as a shell escape now (e.g. !vi config.sh).
17672 rp="Press return or use a shell escape to edit config.sh:"
17677 *) : in case they cannot read
17678 sh 1>&4 -c "$ans";;
17683 : if this fails, just run all the .SH files by hand
17692 if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
17699 Now you need to generate make dependencies by running "$make depend".
17700 You might prefer to run it in background: "$make depend > makedepend.out &"
17701 It can take a while, so you might not want to run it right now.
17706 rp="Run $make depend now?"
17710 $make depend && echo "Now you must run '$make'."
17713 echo "You must run '$make depend' then '$make'."
17716 elif test -f [Mm]akefile; then
17718 echo "Now you must run a $make."
17720 echo "Configure done."
17723 if $test -f Policy.sh; then
17726 If you compile $package on a different machine or from a different object
17727 directory, copy the Policy.sh file from this object directory to the
17728 new one before you run Configure -- this will help you with most of
17729 the policy defaults.
17733 if $test -f config.msg; then
17734 echo "Hmm. I also noted the following information while running:"
17736 $cat config.msg >&4
17739 $rm -f kit*isdone ark*isdone