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 Sun Dec 9 23:28:11 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
494 d_old_pthread_create_joinable=''
495 old_pthread_create_joinable=''
583 d_stdio_ptr_lval_nochange_cnt=''
584 d_stdio_ptr_lval_sets_cnt=''
769 inc_version_list_init=''
788 ignore_versioned_solibs=''
847 d_perl_otherlibdirs=''
861 version_patchlevel_string=''
866 d_nv_preserves_uv_bits=''
965 d_stdio_stream_array=''
966 stdio_stream_array=''
976 ccflags_uselargefiles=''
977 ldflags_uselargefiles=''
978 libswanted_uselargefiles=''
1024 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
1027 : We must find out about Eunice early
1029 if test -f /etc/unixtovms; then
1030 eunicefix=/etc/unixtovms
1032 if test -f /etc/unixtovms.exe; then
1033 eunicefix=/etc/unixtovms.exe
1040 : set useposix=false in your hint file to disable the POSIX extension.
1042 : set useopcode=false in your hint file to disable the Opcode extension.
1044 : Trailing extension. Override this in a hint file, if needed.
1046 : Extra object files, if any, needed on this platform.
1049 : Possible local include directories to search.
1050 : Set locincpth to "" in a hint file to defeat local include searches.
1051 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
1052 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
1054 : no include file wanted by default
1059 : change the next line if compiling for Xenix/286 on Xenix/386
1060 xlibpth='/usr/lib/386 /lib/386'
1061 : Possible local library directories to search.
1062 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
1063 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
1065 : general looking path for locating libraries
1066 glibpth="/lib /usr/lib $xlibpth"
1067 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
1068 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
1069 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
1071 : Private path used by Configure to find libraries. Its value
1072 : is prepended to libpth. This variable takes care of special
1073 : machines, like the mips. Usually, it should be empty.
1076 : default library list
1078 : some systems want to use only the non-versioned libso:s
1079 ignore_versioned_solibs=''
1081 ccflags_uselargefiles=''
1082 ldflags_uselargefiles=''
1083 libswanted_uselargefiles=''
1084 : set usemultiplicity on the Configure command line to enable multiplicity.
1085 : set usesocks on the Configure command line to enable socks.
1086 : set usethreads on the Configure command line to enable threads.
1087 usereentrant='undef'
1088 : full support for void wanted by default
1091 : List of libraries we want.
1092 : If anyone needs -lnet, put it in a hint file.
1093 libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
1094 libswanted="$libswanted dld ld sun m c cposix posix"
1095 libswanted="$libswanted ndir dir crypt sec"
1096 libswanted="$libswanted ucb bsd BSD PW x util"
1097 : We probably want to search /usr/shlib before most other libraries.
1098 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
1099 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
1100 glibpth="/usr/shlib $glibpth"
1101 : Do not use vfork unless overridden by a hint file.
1104 : Find the basic shell for Bourne shell scripts
1108 *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
1111 if test -f "$xxx"; then
1114 : Build up a list and do a single loop so we can 'break' out.
1115 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1116 for xxx in sh bash ksh pdksh ash; do
1118 try="$try ${p}/${xxx}"
1122 if test -f "$xxx"; then
1125 elif test -f "$xxx.exe"; then
1136 $me: Fatal Error: I can't find a Bourne Shell anywhere.
1138 Usually it's in /bin/sh. How did you even get this far?
1139 Please contact me (Perl Maintainers) at perlbug@perl.org and
1140 we'll try to straighten this all out.
1146 : see if sh knows # comments
1147 if `$sh -c '#' >/dev/null 2>&1`; then
1151 test -f $xcat || xcat=/usr/bin/cat
1152 echo "#!$xcat" >sharp
1156 if test -s today; then
1159 echo "#! $xcat" > sharp
1163 if test -s today; then
1171 echo "Your $sh doesn't grok # comments--I will strip them later on."
1174 echo "exec grep -v '^[ ]*#'" >spitshell
1176 $eunicefix spitshell
1177 spitshell=`pwd`/spitshell
1179 echo "I presume that if # doesn't work, #! won't work either!"
1184 : figure out how to guarantee sh startup
1186 '') startsh=${sharpbang}${sh} ;;
1198 : echo "Yup, it does."
1200 echo "Hmm... '$startsh' does not guarantee sh startup..."
1201 echo "You may have to fix up the shell scripts to make sure $sh runs them."
1206 : Save command line options in file UU/cmdline.opt for later use in
1207 : generating config.sh.
1208 cat > cmdline.opt <<EOSH
1209 # Configure command line arguments.
1218 cat >>cmdline.opt <<EOSH
1219 config_arg$argn='$arg'
1221 # Extreme backslashitis: replace each ' by '"'"'
1222 cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
1225 arg_exp=`cat cmdl.opt`
1226 args_exp="$args_exp$args_sep'$arg_exp'"
1227 argn=`expr $argn + 1`
1230 # args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@"
1231 # used by ./hints/os2.sh
1234 : produce awk script to parse command line options
1235 cat >options.awk <<'EOF'
1237 optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
1239 len = length(optstr);
1240 for (i = 1; i <= len; i++) {
1241 c = substr(optstr, i, 1);
1242 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1253 if (substr(str, 1, 1) != "-") {
1254 printf("'%s'\n", str);
1258 for (i = 2; i <= len; i++) {
1259 c = substr(str, i, 1);
1261 printf("-%s\n", substr(str, i));
1267 printf("'%s'\n", substr(str, i + 1));
1280 : process the command line options
1281 set X `for arg in "$@"; do echo "X$arg"; done |
1282 sed -e s/X// | awk -f options.awk`
1287 : set up default values
1297 rm -f optdef.sh posthint.sh
1298 cat >optdef.sh <<EOS
1304 while test $# -gt 0; do
1306 -d) shift; fastread=yes;;
1307 -e) shift; alldone=cont;;
1311 if test -r "$1"; then
1314 echo "$me: cannot read config file $1." >&2
1319 -h) shift; error=true;;
1320 -r) shift; reuseval=true;;
1321 -s) shift; silent=true; realsilent=true;;
1322 -E) shift; alldone=exit;;
1323 -K) shift; knowitall=true;;
1324 -O) shift; override=true;;
1325 -S) shift; silent=true; extractsh=true;;
1330 echo "$me: use '-U symbol=', not '-D symbol='." >&2
1331 echo "$me: ignoring -D $1" >&2
1334 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1335 *) echo "$1='define'" >> optdef.sh;;
1342 *=) echo "$1" >> optdef.sh;;
1344 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1345 echo "$me: ignoring -U $1" >&2
1347 *) echo "$1='undef'" >> optdef.sh;;
1358 *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1362 zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
1363 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1369 *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1370 yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1371 zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1372 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1373 *) xxx=`echo $yyy|sed 's!:.*!!'`
1374 yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1380 echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
1382 echo "$yyy=''" >> posthint.sh ;;
1387 echo "$yyy='$zzz'" >> posthint.sh ;;
1389 echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
1391 echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
1396 echo "$yyy=$zzz" >> posthint.sh ;;
1397 *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1401 -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1404 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1412 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1413 [-U symbol] [-U symbol=] [-A command:symbol...]
1414 -d : use defaults for all answers.
1415 -e : go on without questioning past the production of config.sh.
1416 -f : specify an alternate default configuration file.
1417 -h : print this help message and exit (with an error status).
1418 -r : reuse C symbols value if possible (skips costly nm extraction).
1419 -s : silent mode, only echoes questions and essential information.
1420 -D : define symbol to have some value:
1421 -D symbol symbol gets the value 'define'
1422 -D symbol=value symbol gets the value 'value'
1423 -E : stop at the end of questions, after having produced config.sh.
1424 -K : do not use unless you know what you are doing.
1425 -O : let -D and -U override definitions from loaded configuration file.
1426 -S : perform variable substitutions on all .SH files (can mix with -f)
1427 -U : undefine symbol:
1428 -U symbol symbol gets the value 'undef'
1429 -U symbol= symbol gets completely empty
1430 -A : manipulate symbol after the platform specific hints have been applied:
1431 -A symbol=value append " "value to symbol
1432 -A append:symbol=value append value to symbol
1433 -A define:symbol=value define symbol to have value
1434 -A clear:symbol define symbol to be ''
1435 -A define:symbol define symbol to be 'define'
1436 -A eval:symbol=value define symbol to be eval of value
1437 -A prepend:symbol=value prepend value to symbol
1438 -A undef:symbol define symbol to be 'undef'
1439 -A undef:symbol= define symbol to be ''
1440 -V : print version number and exit (with a zero status).
1447 case "$fastread$alldone" in
1450 case "$extractsh" in
1453 if test ! -t 0; then
1454 echo "Say 'sh Configure', not 'sh <Configure'"
1464 true) exec 1>/dev/null;;
1467 : run the defines and the undefines, if any, but leave the file out there...
1470 : create the posthint manipulation script and leave the file out there...
1475 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1476 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1477 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1478 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1479 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1482 : Some greps do not return status, grrr.
1483 echo "grimblepritz" >grimble
1484 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1486 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1492 : the following should work in any shell
1496 echo "AGH! Grep doesn't return a status. Attempting remedial action."
1497 cat >contains <<'EOSS'
1498 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1503 : Find the path to the source tree
1506 */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1510 *) src=`cd ../$src && pwd` ;;
1523 if test -f $rsrc/Configure && \
1524 $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1526 : found it, so we are ok.
1529 for src in . .. ../.. ../../.. ../../../..; do
1530 if test -f ../$src/Configure && \
1531 $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1542 Sorry, I can't seem to locate the source dir for $package. Please start
1543 Configure with an explicit path -- i.e. /some/path/Configure.
1551 echo "Sources for $package found in \"$src\"." >&4
1555 : script used to extract .SH files with variable substitutions
1556 cat >extract <<'EOS'
1558 echo "Doing variable substitutions on .SH files..."
1559 if test -f MANIFEST; then
1560 set x `awk '{print $1}' < MANIFEST | grep '\.SH$'`
1562 echo "(Looking for .SH files under the source directory.)"
1563 set x `(cd $src; find . -name "*.SH" -print)`
1567 0) set x `(cd $src; echo *.SH)`; shift;;
1569 if test ! -f $src/$1; then
1575 while test $name; do
1576 if test ! -d "$name"; then
1577 create="$name $create";
1578 name=`echo $name | sed -e "s|^[^/]*$||"`;
1579 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1584 for file in $create; do
1593 dir=`expr X$file : 'X\(.*\)/'`
1594 file=`expr X$file : 'X.*/\(.*\)'`
1595 (cd $dir && . ./$file)
1605 dir=`expr X$file : 'X\(.*\)/'`
1606 file=`expr X$file : 'X.*/\(.*\)'`
1607 (set x $dir; shift; eval $mkdir_p)
1617 if test -f $src/config_h.SH; then
1618 if test ! -f config.h; then
1619 : oops, they left it out of MANIFEST, probably, so do it anyway.
1625 : extract files and exit if asked to do so
1626 case "$extractsh" in
1628 case "$realsilent" in
1632 case "$config_sh" in
1633 '') config_sh='config.sh';;
1636 echo "Fetching answers from $config_sh..."
1639 test "$override" && . ./optdef.sh
1643 echo "Extraction done."
1648 : Eunice requires " " instead of "", can you believe it
1651 echo "Beginning of configuration questions for $package."
1653 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1655 : first determine how to suppress newline on echo command
1657 echo "Checking echo to see how to suppress newlines..."
1658 (echo "hi there\c" ; echo " ") >.echotmp
1659 if $contains c .echotmp >/dev/null 2>&1 ; then
1670 echo $n "The star should be here-->$c"
1674 : Now test for existence of everything in MANIFEST
1676 if test -f $rsrc/MANIFEST; then
1677 echo "First let's make sure your kit is complete. Checking..." >&4
1678 awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1681 for filelist in x??; do
1682 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1684 if test -s missing; then
1688 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1690 You have the option of continuing the configuration process, despite the
1691 distinct possibility that your kit is damaged, by typing 'y'es. If you
1692 do, don't blame me if something goes wrong. I advise you to type 'n'o
1693 and contact the author (perlbug@perl.org).
1696 echo $n "Continue? [n] $c" >&4
1700 echo "Continuing..." >&4
1704 echo "ABORTING..." >&4
1709 echo "Looks good..."
1712 echo "There is no MANIFEST file. I hope your kit is complete !"
1717 : Find the appropriate value for a newline for tr
1718 if test -n "$DJGPP"; then
1721 if test X"$trnl" = X; then
1722 case "`echo foo|tr '\n' x 2>/dev/null`" in
1726 if test X"$trnl" = X; then
1727 case "`echo foo|tr '\012' x 2>/dev/null`" in
1728 foox) trnl='\012' ;;
1731 if test X"$trnl" = X; then
1734 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1740 : compute the number of columns on the terminal for proper question formatting
1745 : set up the echo used in my read
1746 myecho="case \"\$xxxm\" in
1747 '') echo $n \"\$rp $c\" >&4;;
1749 '') echo $n \"[\$xxxm] $c\";;
1751 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1753 echo $n \"[\$xxxm] $c\" >&4
1755 echo $n \"\$rp [\$xxxm] $c\" >&4
1761 : now set up to do reads with possible shell escape and default assignment
1767 case "\$fastread" in
1768 yes) case "\$dflt" in
1771 case "\$silent-\$rp" in
1776 *) case "\$silent" in
1777 true) case "\$rp" in
1782 while expr "X\$ans" : "X!" >/dev/null; do
1786 aok=''; eval "ans=\\"\$answ\\"" && aok=y
1794 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1803 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1808 echo "(OK, I'll run with -d after this question.)" >&4
1811 echo "*** Sorry, \$1 not supported yet." >&4
1821 echo "*** Substitution done -- please confirm."
1823 ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1828 echo "*** Error -- try again."
1835 case "\$ans\$xxxm\$nostick" in
1847 : create .config dir to save info across Configure sessions
1848 test -d ../.config || mkdir ../.config
1849 cat >../.config/README <<EOF
1850 This directory created by Configure to save information that should
1851 persist across sessions for $package.
1853 You may safely delete it if you wish.
1856 xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
1858 $define|true|[yY]*) ;;
1859 *) case "$xversion" in
1862 *** WHOA THERE!!! ***
1864 This is an UNSTABLE DEVELOPMENT release.
1865 The version of this $package distribution is $xversion, that is, odd,
1866 (as opposed to even) and that signifies a development release.
1867 If you want a maintenance release, you want an even-numbered version.
1869 Do ***NOT*** install this into production use.
1870 Data corruption and crashes are possible.
1872 It is most seriously suggested that you do not continue any further
1873 unless you want to help in developing and debugging Perl.
1875 If you *still* want to build perl, you can answer 'y' now,
1876 or pass -Dusedevel to Configure.
1879 rp='Do you really want to continue?'
1883 [yY]) echo >&4 "Okay, continuing."
1884 usedevel="$define" ;;
1885 *) echo >&4 "Okay, bye."
1895 case "$versiononly" in
1896 '') versiononly="$define" ;;
1898 case "$installusrbinperl" in
1899 '') installusrbinperl="$undef" ;;
1904 : general instructions
1907 user=`(logname) 2>/dev/null`
1909 '') user=`whoami 2>&1`;;
1911 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1914 rp='Would you like to see the instructions?'
1925 This installation shell script will examine your system and ask you questions
1926 to determine how the perl5 package should be installed. If you get
1927 stuck on a question, you may use a ! shell escape to start a subshell or
1928 execute a command. Many of the questions will have default answers in square
1929 brackets; typing carriage return will give you the default.
1931 On some of the questions which ask for file or directory names you are allowed
1932 to use the ~name construct to specify the login directory belonging to "name",
1933 even if you don't have a shell which knows about that. Questions where this is
1934 allowed will be marked "(~name ok)".
1938 dflt='Type carriage return to continue'
1942 The prompter used in this script allows you to use shell variables and
1943 backticks in your answers. You may use $1, $2, etc... to refer to the words
1944 in the default answer, as if the default line was a set of arguments given to a
1945 script shell. This means you may also use $* to repeat the whole default line,
1946 so you do not have to re-type everything to add something to the default.
1948 Everytime there is a substitution, you will have to confirm. If there is an
1949 error (e.g. an unmatched backtick), the default answer will remain unchanged
1950 and you will be prompted again.
1952 If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1953 the questions and use the computed defaults (or the previous answers if there
1954 was already a config.sh file). Type 'Configure -h' for a list of options.
1955 You may also start interactively and then answer '& -d' at any prompt to turn
1956 on the non-interactive behaviour for the remainder of the execution.
1962 Much effort has been expended to ensure that this shell script will run on any
1963 Unix system. If despite that it blows up on yours, your best bet is to edit
1964 Configure and run it again. If you can't run Configure for some reason,
1965 you'll have to generate a config.sh file by hand. Whatever problems you
1966 have, let me (perlbug@perl.org) know how I blew it.
1968 This installation script affects things in two ways:
1970 1) it may do direct variable substitutions on some of the files included
1972 2) it builds a config.h file for inclusion in C programs. You may edit
1973 any of these files as the need arises after running this script.
1975 If you make a mistake on a question, there is no easy way to back up to it
1976 currently. The easiest thing to do is to edit config.sh and rerun all the SH
1977 files. Configure will offer to let you do this before it runs the SH files.
1980 dflt='Type carriage return to continue'
1982 case "$firsttime" in
1983 true) echo $user >>../.config/instruct;;
1987 : find out where common programs are
1989 echo "Locating common programs..." >&4
2002 if test -d \$dir/\$thing; then
2008 for thisthing in \$dir/\$thing; do
2009 : just loop through to pick last item
2011 if test -f \$thisthing; then
2014 elif test -f \$dir/\$thing.exe; then
2015 if test -n "$DJGPP"; then
2016 echo \$dir/\$thing.exe
2018 : on Eunice apparently
2070 pth=`echo $PATH | sed -e "s/$p_/ /g"`
2071 pth="$pth /lib /usr/lib"
2072 for file in $loclist; do
2076 if test -f "$xxx"; then
2079 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
2080 xxx=`./loc $file $file $pth`
2083 '') xxx=`./loc $file $file $pth`;;
2084 *) xxx=`./loc $xxx $xxx $pth`;;
2090 echo $file is in $xxx.
2093 echo $file is in $xxx.
2096 echo "I don't know where '$file' is, and my life depends on it." >&4
2097 echo "Go find a public domain implementation or fix your PATH setting!" >&4
2103 echo "Don't worry if any of the following aren't found..."
2105 for file in $trylist; do
2109 if test -f "$xxx"; then
2112 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
2113 xxx=`./loc $file $file $pth`
2116 '') xxx=`./loc $file $file $pth`;;
2117 *) xxx=`./loc $xxx $xxx $pth`;;
2123 echo $file is in $xxx.
2126 echo $file is in $xxx.
2129 echo "I don't see $file out there, $say."
2136 echo "Substituting grep for egrep."
2142 echo "Substituting cp for ln."
2148 echo "Hopefully test is built into your sh."
2151 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
2152 echo "Using the test built into your sh."
2160 echo "Hopefully echo is built into your sh."
2165 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
2166 $echo $n "hi there$c" >foo1
2167 echo $n "hi there$c" >foo2
2168 if cmp foo1 foo2 >/dev/null 2>&1; then
2169 echo "They are compatible. In fact, they may be identical."
2176 They are not compatible! You are probably running ksh on a non-USG system.
2177 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
2178 have echo built in and we may have to run some Bourne shell scripts. That
2179 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
2182 $echo $n "The star should be here-->$c"
2192 cat <<'EOSC' >>checkcc
2197 int main(int argc, char *argv[]) {
2201 if $cc -o try $ccflags $ldflags try.c; then
2204 echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
2210 case "`$cc -v -c try.c 2>&1`" in
2213 if $test X"$trygcc" = Xyes; then
2214 if gcc -o try -c try.c; then
2216 echo "You seem to have a working gcc, though." >&4
2217 rp="Would you like to use it?"
2219 if $test -f myread; then
2222 if $test -f UU/myread; then
2225 echo "Cannot find myread, sorry. Aborting." >&2
2230 [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;;
2234 if $test X"$despair" = Xyes; then
2236 You need to find a working C compiler.
2237 Either (purchase and) install the C compiler supplied by your OS vendor,
2238 or for a free C compiler try http://gcc.gnu.org/
2239 I cannot continue any further, aborting.
2249 : determine whether symbolic links are supported
2252 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2253 echo "Symbolic links are supported." >&4
2256 echo "Symbolic links are NOT supported." >&4
2261 : determine whether symbolic links are supported
2265 echo "Checking how to test for symbolic links..." >&4
2267 if $test "X$issymlink" = X; then
2269 '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
2270 *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
2272 if test $? = 0; then
2275 echo "Your builtin 'test -h' may be broken." >&4
2278 *) pth=`echo $PATH | sed -e "s/$p_/ /g"`
2281 if test -f "$p/$test"; then
2290 echo "Trying external '$test -h'." >&4
2291 issymlink="$test -h"
2292 if $test ! -h sym >/dev/null 2>&1; then
2293 echo "External '$test -h' is broken, too." >& 4
2301 if $test "X$issymlink" = X; then
2302 if $test -L sym 2>/dev/null; then
2303 issymlink="$test -L"
2304 echo "The builtin '$test -L' worked." >&4
2307 if $test "X$issymlink" != X; then
2308 echo "You can test for symbolic links with '$issymlink'." >&4
2310 echo "I do not know how you can test for symbolic links." >&4
2314 *) echo "No symbolic links, so not testing for their testing..." >&4
2320 case "$mksymlinks" in
2323 ''|'.') echo "Cannot create symlinks in the original directory." >&4
2326 *) case "$lns:$issymlink" in
2327 *"ln -s:"*"test -"?)
2328 echo "Creating the symbolic links..." >&4
2329 echo "(First creating the subdirectories...)" >&4
2331 awk '{print $1}' $src/MANIFEST | grep / | sed 's:/[^/]*$::' | sort -u | while true; do
2333 test -z "$directory" && break
2337 if test ! -d t/base; then
2338 echo "Failed to create the subdirectories. Aborting." >&4
2341 echo "(Then creating the symlinks...)" >&4
2342 awk '{print $1}' $src/MANIFEST | while true; do
2344 test -z "$filename" && break
2345 if test -f $filename; then
2346 if $issymlink $filename; then
2350 if test -f $filename; then
2351 echo "$filename already exists, not symlinking."
2353 ln -s $src/$filename $filename
2357 if test ! -f t/base/lex.t; then
2358 echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4
2363 *) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4
2372 case "$usecrosscompile" in
2374 $echo "Cross-compiling..."
2377 *-*-gcc) # A cross-compiling gcc, probably.
2378 targetarch=`$echo $cc|$sed 's/-gcc$//'`
2380 # leave out ld, choosing it is more complex
2382 ranlib=$targetarch-ranlib
2383 $echo 'extern int foo;' > try.c
2384 set X `$cc -v -E try.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
2386 if $test $# -gt 0; then
2388 incpth="`$echo $incpth|$sed 's/^ //'`"
2389 echo "Guessing incpth '$incpth'." >&4
2391 j="`$echo $i|$sed 's,/include$,/lib,'`"
2392 if $test -d $j; then
2396 libpth="`$echo $libpth|$sed 's/^ //'`"
2397 echo "Guessing libpth '$libpth'." >&4
2402 case "$targetarch" in
2403 '') echo "Targetarch not defined." >&4; croak=y ;;
2404 *) echo "Using targetarch $targetarch." >&4 ;;
2407 '') echo "Incpth not defined." >&4; croak=y ;;
2408 *) echo "Using incpth '$incpth'." >&4 ;;
2411 '') echo "Libpth not defined." >&4; croak=y ;;
2412 *) echo "Using libpth '$libpth'." >&4 ;;
2415 '') for i in $incpth; do
2416 if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
2418 echo "Guessing usrinc $usrinc." >&4
2423 '') echo "Usrinc not defined." >&4; croak=y ;;
2426 *) echo "Using usrinc $usrinc." >&4 ;;
2428 case "$targethost" in
2429 '') echo "Targethost not defined." >&4; croak=y ;;
2430 *) echo "Using targethost $targethost." >&4
2435 y) echo "Cannot continue, aborting." >&4; exit 1 ;;
2438 /*) run=$src/Cross/run
2439 targetmkdir=$src/Cross/mkdir
2441 from=$src/Cross/from
2443 *) pwd=`$test -f ../Configure & cd ..; pwd`
2445 targetmkdir=$pwd/Cross/mkdir
2447 from=$pwd/Cross/from
2450 case "$targetrun" in
2451 '') targetrun=ssh ;;
2456 case "$targetfrom" in
2457 '') targetfrom=scp ;;
2461 from=$from-$targetfrom
2462 case "$targetdir" in
2464 echo "Guessing targetdir $targetdir." >&4
2467 case "$targetuser" in
2469 echo "Guessing targetuser $targetuser." >&4
2472 case "$targetfrom" in
2476 case "$targetrun" in
2488 '') cwd=$targetdir ;;
2492 if $test ! -f \$exe.xok; then
2496 $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
2499 *) echo "Unknown targetrun '$targetrun'" >&4
2503 case "$targetmkdir" in
2505 cat >$targetmkdir <<EOF
2507 $targetrun -l $targetuser $targethost "mkdir -p \$@"
2509 $chmod a+rx $targetmkdir
2511 *) echo "Unknown targetmkdir '$targetmkdir'" >&4
2523 $targetmkdir \`dirname \$f\`
2524 $targetto $q \$f $targetuser@$targethost:\$f || exit 1
2527 $targetmkdir $targetdir/\`dirname \$f\`
2528 $targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1
2541 $mkdir -p $targetdir/\`dirname \$f\`
2542 $cp \$f $targetdir/\$f || exit 1
2545 $targetmkdir $targetdir/\`dirname \$f\`
2546 $cp \$f $targetdir/\$f || exit 1
2553 *) echo "Unknown targetto '$targetto'" >&4
2557 case "$targetfrom" in
2564 $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
2569 cp) cat >$from <<EOF
2574 cp $targetdir/\$f . || exit 1
2579 *) echo "Unknown targetfrom '$targetfrom'" >&4
2583 if $test ! -f $run; then
2584 echo "Target 'run' script '$run' not found." >&4
2588 if $test ! -f $to; then
2589 echo "Target 'to' script '$to' not found." >&4
2593 if $test ! -f $from; then
2594 echo "Target 'from' script '$from' not found." >&4
2598 if $test ! -f $run -o ! -f $to -o ! -f $from; then
2602 Using '$run' for remote execution,
2603 and '$from' and '$to'
2604 for remote file transfer.
2610 usecrosscompile='undef'
2615 : see whether [:lower:] and [:upper:] are supported character classes
2617 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2619 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2623 *) # There is a discontinuity in EBCDIC between 'I' and 'J'
2624 # (0xc9 and 0xd1), therefore that is a nice testing point.
2625 if test "X$up" = X -o "X$low" = X; then
2626 case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
2632 if test "X$up" = X -o "X$low" = X; then
2633 case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
2639 if test "X$up" = X -o "X$low" = X; then
2640 case "`echo IJ | od -x 2>/dev/null`" in
2642 echo "Hey, this might be EBCDIC." >&4
2643 if test "X$up" = X -o "X$low" = X; then
2644 case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
2645 ij) up='[A-IJ-RS-Z]'
2650 if test "X$up" = X -o "X$low" = X; then
2651 case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2661 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2663 echo "Using $up and $low to convert case." >&4
2666 echo "I don't know how to translate letters from upper to lower case." >&4
2667 echo "Your tr is not acting any way I know of." >&4
2671 : set up the translation script tr, must be called with ./tr of course
2675 '[A-Z][a-z]') exec $tr '$up' '$low';;
2676 '[a-z][A-Z]') exec $tr '$low' '$up';;
2683 : Try to determine whether config.sh was made on this system
2684 case "$config_sh" in
2686 myuname=`$uname -a 2>/dev/null`
2687 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2688 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2689 # because the A-Z/a-z are not consecutive.
2690 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2691 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2692 newmyuname="$myuname"
2694 case "$knowitall" in
2696 if test -f ../config.sh; then
2697 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2698 eval "`grep myuname= ../config.sh`"
2700 if test "X$myuname" = "X$newmyuname"; then
2708 : Get old answers from old config file if Configure was run on the
2709 : same system, otherwise use the hints.
2712 if test -f config.sh; then
2714 rp="I see a config.sh file. Shall I use it to set the defaults?"
2717 n*|N*) echo "OK, I'll ignore it."
2718 mv config.sh config.sh.old
2719 myuname="$newmyuname"
2721 *) echo "Fetching default answers from your old config.sh file..." >&4
2729 : Older versions did not always set $sh. Catch re-use of such
2739 if test ! -f config.sh; then
2742 First time through, eh? I have some defaults handy for some systems
2743 that need some extra help getting the Configure answers right:
2746 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
2748 : Half the following guesses are probably wrong... If you have better
2749 : tests or hints, please send them to perlbug@perl.org
2750 : The metaconfig authors would also appreciate a copy...
2751 $test -f /irix && osname=irix
2752 $test -f /xenix && osname=sco_xenix
2753 $test -f /dynix && osname=dynix
2754 $test -f /dnix && osname=dnix
2755 $test -f /lynx.os && osname=lynxos
2756 $test -f /unicos && osname=unicos && osvers=`$uname -r`
2757 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2758 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2759 $test -f /bin/mips && /bin/mips && osname=mips
2760 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2761 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2762 $test -d /usr/apollo/bin && osname=apollo
2763 $test -f /etc/saf/_sactab && osname=svr4
2764 $test -d /usr/include/minix && osname=minix
2765 if $test -d /MachTen -o -d /MachTen_Folder; then
2767 if $test -x /sbin/version; then
2768 osvers=`/sbin/version | $awk '{print $2}' |
2769 $sed -e 's/[A-Za-z]$//'`
2770 elif $test -x /usr/etc/version; then
2771 osvers=`/usr/etc/version | $awk '{print $2}' |
2772 $sed -e 's/[A-Za-z]$//'`
2778 $test -f /sys/posix.dll &&
2779 $test -f /usr/bin/what &&
2780 set X `/usr/bin/what /sys/posix.dll` &&
2781 $test "$3" = UWIN &&
2785 if $test -f $uname; then
2793 umips) osname=umips ;;
2796 [23]100) osname=mips ;;
2797 next*) osname=next ;;
2799 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2800 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2803 elif $test -f /etc/kconfig; then
2805 if test "$lns" = "$ln -s"; then
2807 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2809 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2816 if test -n "$DJGPP"; then
2825 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2827 'not found') osvers="$4"."$3" ;;
2828 '<3240'|'<>3240') osvers=3.2.0 ;;
2829 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2830 '=3250'|'>3250') osvers=3.2.5 ;;
2834 bsd386) osname=bsd386
2837 cygwin*) osname=cygwin
2840 *dc.osx) osname=dcosx
2846 domainos) osname=apollo
2852 dynixptx*) osname=dynixptx
2853 osvers=`echo "$4"|sed 's/^v//'`
2855 freebsd) osname=freebsd
2857 genix) osname=genix ;;
2859 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2875 netbsd*) osname=netbsd
2878 news-os) osvers="$3"
2880 4*) osname=newsos4 ;;
2884 next*) osname=next ;;
2885 nonstop-ux) osname=nonstopux ;;
2886 POSIX-BC | posix-bc ) osname=posix-bc
2889 powerux | power_ux | powermax_os | powermaxos | \
2890 powerunix | power_unix) osname=powerux
2896 solaris) osname=solaris
2898 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2905 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2909 titanos) osname=titanos
2918 ultrix) osname=ultrix
2921 osf1|mls+) case "$5" in
2924 osvers=`sizer -v | awk '{print $3}' | tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
2927 *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
2930 hp*) osname=hp_osf1 ;;
2931 mips) osname=mips_osf1 ;;
2934 unixware) osname=svr5
2940 $2) case "$osname" in
2944 : svr4.x or possibly later
2954 if test -f /stand/boot ; then
2955 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2956 if test -n "$INITPROG" -a -f "$INITPROG"; then
2957 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2958 if test -n "$isesix"; then
2966 *) if test -f /etc/systemid; then
2968 set `echo $3 | $sed 's/\./ /g'` $4
2969 if $test -f $src/hints/sco_$1_$2_$3.sh; then
2971 elif $test -f $src/hints/sco_$1_$2.sh; then
2973 elif $test -f $src/hints/sco_$1.sh; then
2978 '') : Still unknown. Probably a generic Sys V.
2987 *) case "$osname" in
2988 '') : Still unknown. Probably a generic BSD.
2996 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2997 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2998 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
3001 $rm -f UU/kernel.what
3002 elif test -d c:/.; then
3009 case "$targetarch" in
3012 osname=`echo $targetarch|sed 's,^[^-]*-,,'`
3017 : Now look for a hint file osname_osvers, unless one has been
3018 : specified already.
3021 file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
3022 : Also try without trailing minor version numbers.
3023 xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
3024 xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
3025 xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
3026 xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
3029 *) case "$osvers" in
3032 *) if $test -f $src/hints/$file.sh ; then
3034 elif $test -f $src/hints/$xfile.sh ; then
3036 elif $test -f $src/hints/$xxfile.sh ; then
3038 elif $test -f $src/hints/$xxxfile.sh ; then
3040 elif $test -f $src/hints/$xxxxfile.sh ; then
3042 elif $test -f "$src/hints/${osname}.sh" ; then
3051 if $test -f Policy.sh ; then
3054 none) dflt="Policy" ;;
3055 *) dflt="Policy $dflt" ;;
3060 dflt=`echo $hintfile | $sed 's/\.sh$//'`
3064 if $test -f Policy.sh ; then
3067 There's also a Policy hint file available, which should make the
3068 site-specific (policy) questions easier to answer.
3075 You may give one or more space-separated answers, or "none" if appropriate.
3076 A well-behaved OS will have no hints, so answering "none" or just "Policy"
3077 is a good thing. DO NOT give a wrong version or a wrong OS.
3081 rp="Which of these apply, if any?"
3084 for file in $tans; do
3085 if $test X$file = XPolicy -a -f Policy.sh; then
3087 $cat Policy.sh >> UU/config.sh
3088 elif $test -f $src/hints/$file.sh; then
3089 . $src/hints/$file.sh
3090 $cat $src/hints/$file.sh >> UU/config.sh
3091 elif $test X"$tans" = X -o X"$tans" = Xnone ; then
3094 : Give one chance to correct a possible typo.
3095 echo "$file.sh does not exist"
3097 rp="hint to use instead?"
3099 for file in $ans; do
3100 if $test -f "$src/hints/$file.sh"; then
3101 . $src/hints/$file.sh
3102 $cat $src/hints/$file.sh >> UU/config.sh
3103 elif $test X$ans = X -o X$ans = Xnone ; then
3106 echo "$file.sh does not exist -- ignored."
3113 : Remember our hint file for later.
3114 if $test -f "$src/hints/$file.sh" ; then
3124 echo "Fetching default answers from $config_sh..." >&4
3128 cp $config_sh config.sh 2>/dev/null
3138 test "$override" && . ./optdef.sh
3140 : Restore computed paths
3141 for file in $loclist $trylist; do
3142 eval $file="\$_$file"
3147 Configure uses the operating system name and version to set some defaults.
3148 The default value is probably right if the name rings a bell. Otherwise,
3149 since spelling matters for me, either accept the default or answer "none"
3156 ''|' '|none) dflt=none ;;
3157 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
3160 *) dflt="$osname" ;;
3162 rp="Operating system name?"
3166 *) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
3172 ''|' '|none) dflt=none ;;
3173 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
3174 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
3176 ''|' ') dflt=none ;;
3181 *) dflt="$osvers" ;;
3183 rp="Operating system version?"
3193 : who configured the system
3194 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
3195 cf_by=`(logname) 2>/dev/null`
3198 cf_by=`(whoami) 2>/dev/null`
3200 "") cf_by=unknown ;;
3204 : set up the script used to warn in case of inconsistency
3211 echo "*** WHOA THERE!!! ***" >&4
3212 echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
3213 rp=" Keep the $hint value?"
3216 y) td=$was; tu=$was;;
3220 : function used to set $1 to $val
3221 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
3223 $define$undef) . ./whoa; eval "$var=\$td";;
3224 $undef$define) . ./whoa; eval "$var=\$tu";;
3225 *) eval "$var=$val";;
3228 case "$usethreads" in
3229 $define|true|[yY]*) dflt='y';;
3234 Perl can be built to take advantage of threads on some systems.
3235 To do so, Configure can be run with -Dusethreads.
3237 Note that threading is a highly experimental feature, and
3238 some known race conditions still remain. If you choose to try
3239 it, be very sure to not actually deploy it for production
3240 purposes. README.threads has more details, and is required
3241 reading if you enable threads.
3243 If this doesn't make any sense to you, just accept the default '$dflt'.
3245 rp='Build a threading Perl?'
3248 y|Y) val="$define" ;;
3254 case "$usethreads" in
3258 As of 5.5.640, Perl has two different internal threading implementations,
3259 the 5.005 version (5005threads) and an interpreter-based version
3260 (ithreads) that has one interpreter per thread. Both are very
3261 experimental. This arrangement exists to help developers work out
3262 which one is better.
3264 If you're a casual user, you probably don't want interpreter-threads
3265 at this time. There doesn't yet exist a way to create threads from
3266 within Perl in this model, i.e., "use Thread;" will NOT work.
3268 : Default to ithreads unless overridden on command line or with
3271 case "$use5005threads" in
3272 $define|true|[yY]*) dflt='n';;
3274 case "$useithreads" in
3275 $undef|false|[nN]*) dflt='n';;
3277 rp='Use interpreter-based ithreads?'
3280 y|Y) val="$define" ;;
3285 : Now set use5005threads to the opposite value.
3286 case "$useithreads" in
3287 $define) val="$undef" ;;
3294 useithreads="$undef"
3295 use5005threads="$undef"
3299 case "$useithreads$use5005threads" in
3303 You cannot have both the ithreads and the 5.005 threads enabled
3304 at the same time. Disabling the 5.005 threads since they are
3305 much less stable than the ithreads.
3308 use5005threads="$undef"
3312 case "$d_oldpthreads" in
3313 '') : Configure tests would be welcome here. For now, assume undef.
3315 *) val="$d_oldpthreads" ;;
3321 case "$usethreads" in
3322 "$define"|true|[yY]*)
3323 : Look for a hint-file generated 'call-back-unit'. If the
3324 : user has specified that a threading perl is to be built,
3325 : we may need to set or change some other defaults.
3326 if $test -f usethreads.cbu; then
3327 echo "Your platform has some specific hints for threaded builds, using them..."
3331 (Your platform doesn't have any specific hints for threaded builds.
3332 Assuming POSIX threads, then.)
3340 Perl can be built so that multiple Perl interpreters can coexist
3341 within the same Perl executable.
3344 case "$useithreads" in
3347 This multiple interpreter support is required for interpreter-based threads.
3351 *) case "$usemultiplicity" in
3352 $define|true|[yY]*) dflt='y';;
3356 echo "If this doesn't make any sense to you, just accept the default '$dflt'."
3357 rp='Build Perl for multiplicity?'
3360 y|Y) val="$define" ;;
3369 case "$usemorebits" in
3370 "$define"|true|[yY]*)
3371 use64bitint="$define"
3372 uselongdouble="$define"
3373 usemorebits="$define"
3375 *) usemorebits="$undef"
3379 : make some quick guesses about what we are up against
3381 $echo $n "Hmm... $c"
3391 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
3392 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
3394 echo "Looks kind of like an OSF/1 system, but we'll see..."
3396 elif test `echo abc | $tr a-z A-Z` = Abc ; then
3397 xxx=`./loc addbib blurfl $pth`
3398 if $test -f $xxx; then
3399 echo "Looks kind of like a USG system with BSD features, but we'll see..."
3403 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
3404 echo "Looks kind of like an extended USG system, but we'll see..."
3406 echo "Looks kind of like a USG system, but we'll see..."
3410 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
3411 echo "Looks kind of like a BSD system, but we'll see..."
3415 echo "Looks kind of like a Version 7 system, but we'll see..."
3418 case "$eunicefix" in
3421 There is, however, a strange, musty smell in the air that reminds me of
3422 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
3426 : it so happens the Eunice I know will not run shell scripts in Unix format
3430 echo "Congratulations. You aren't running Eunice."
3434 : Detect OS2. The p_ variable is set above in the Head.U unit.
3435 : Note that this also -- wrongly -- detects e.g. dos-djgpp, which also uses
3436 : semicolon as a patch separator
3441 I have the feeling something is not exactly right, however...don't tell me...
3442 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
3443 (Or you may be running DOS with DJGPP.)
3448 if test -f /xenix; then
3449 echo "Actually, this looks more like a XENIX system..."
3454 echo "It's not Xenix..."
3459 if test -f /venix; then
3460 echo "Actually, this looks more like a VENIX system..."
3467 echo "Nor is it Venix..."
3470 chmod +x bsd usg v7 osf1 eunice xenix venix os2
3471 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
3478 rp="Use which C compiler?"
3481 : Look for a hint-file generated 'call-back-unit'. Now that the
3482 : user has specified the compiler, we may need to set or change some
3484 if $test -f cc.cbu; then
3490 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3496 printf("%s\n", __VERSION__);
3498 printf("%s\n", "1");
3504 if $cc -o try $ccflags $ldflags try.c; then
3505 gccversion=`$run ./try`
3506 case "$gccversion" in
3507 '') echo "You are not using GNU cc." ;;
3508 *) echo "You are using GNU cc $gccversion."
3514 echo "*** WHOA THERE!!! ***" >&4
3515 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3516 case "$knowitall" in
3518 echo " You'd better start hunting for one and let me know about it." >&4
3524 case "$gccversion" in
3525 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3527 case "$gccversion" in
3528 '') gccosandvers='' ;;
3529 *) gccshortvers=`echo "$gccversion"|sed 's/ .*//'`
3530 gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"`
3532 case "$gccosandvers" in
3533 $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr
3534 $osname$osvers) ;; # looking good
3535 $osname*) cat <<EOM >&4
3537 *** WHOA THERE!!! ***
3539 Your gcc has not been compiled for the exact release of
3540 your operating system ($gccosandvers versus $osname$osvers).
3542 In general it is a good idea to keep gcc synchronized with
3543 the operating system because otherwise serious problems
3544 may ensue when trying to compile software, like Perl.
3546 I'm trying to be optimistic here, though, and will continue.
3547 If later during the configuration and build icky compilation
3548 problems appear (headerfile conflicts being the most common
3549 manifestation), I suggest reinstalling the gcc to match
3550 your operating system release.
3554 *) gccosandvers='' ;; # failed to parse, better be silent
3563 : decide how portable to be. Allow command line overrides.
3564 case "$d_portable" in
3566 *) d_portable="$define" ;;
3569 : set up shell script to do ~ expansion
3575 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3578 if $test -f /bin/csh; then
3579 /bin/csh -f -c "glob \$1"
3584 name=\`$expr x\$1 : '..\([^/]*\)'\`
3585 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3586 if $test ! -d "\$dir"; then
3588 echo "\$me: can't locate home directory for: \$name" >&2
3593 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3609 : now set up to get a file name
3613 cat <<'EOSC' >>getfile
3629 expr $fn : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
3630 fn=`echo $fn | sed 's/(.*)//'`
3636 loc_file=`expr $fn : '.*:\(.*\)'`
3637 fn=`expr $fn : '\(.*\):.*'`
3645 */*) fullpath=true;;
3654 *e*) exp_file=true;;
3657 *p*) nopath_ok=true;;
3662 *d*) type='Directory';;
3663 *l*) type='Locate';;
3668 Locate) what='File';;
3673 case "$d_portable" in
3681 while test "$type"; do
3686 true) rp="$rp (~name ok)";;
3689 if test -f UU/getfile.ok && \
3690 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3709 value=`UU/filexp $ans`
3712 if test "$ans" != "$value"; then
3713 echo "(That expands to $value on this system.)"
3727 /*) value="$ansexp" ;;
3728 [a-zA-Z]:/*) value="$ansexp" ;;
3733 echo "I shall only accept a full path name, as in /bin/ls." >&4
3734 echo "Use a ! shell escape if you wish to check pathnames." >&4
3737 echo "Please give a full path name, starting with slash." >&4
3740 echo "Note that using ~name is ok provided it expands well." >&4
3753 for fp in $gfpth; do
3754 if test "X$fp" = X.; then
3759 if test -f "$pf"; then
3761 elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3763 echo "($value is not a plain file, but that's ok.)"
3766 if test X"$type" = X; then
3773 for fp in $gfpth; do
3774 if test "X$fp" = X.; then
3779 direxp="$fp/$ansexp"
3781 if test -d "$direxp"; then
3789 if test -d "$ansexp"; then
3790 echo "(Looking for $loc_file in directory $value.)"
3791 value="$value/$loc_file"
3792 ansexp="$ansexp/$loc_file"
3794 if test -f "$ansexp"; then
3797 case "$nopath_ok" in
3798 true) case "$value" in
3800 *) echo "Assuming $value will be in people's path."
3816 if test "$fastread" = yes; then
3821 rp="$what $value doesn't exist. Use that name anyway?"
3840 test "X$gfpthkeep" != Xy && gfpth=""
3843 : What should the include directory be ?
3845 $echo $n "Hmm... $c"
3849 if $test -f /bin/mips && /bin/mips; then
3850 echo "Looks like a MIPS system..."
3851 $cat >usr.c <<'EOCP'
3852 #ifdef SYSTYPE_BSD43
3856 if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3857 dflt='/bsd43/usr/include'
3861 mips_type='System V'
3863 $rm -f usr.c usr.out
3864 echo "and you're compiling with the $mips_type compiler and libraries."
3868 echo "Doesn't look like a MIPS system."
3878 case "$xxx_prompt" in
3881 rp='Where are the include files you want to use?'
3889 : see how we invoke the C preprocessor
3891 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3892 cat <<'EOT' >testcpp.c
3898 if test ! -f cppstdin; then
3899 if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3900 # AIX cc -E doesn't show the absolute headerfile
3901 # locations but we'll cheat by using the -M flag.
3902 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
3904 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3907 echo "Keeping your $hint cppstdin wrapper."
3910 wrapper=`pwd`/cppstdin
3914 if $test "X$cppstdin" != "X" && \
3915 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3916 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3918 echo "You used to use $cppstdin $cppminus so we'll use that again."
3920 '') echo "But let's see if we can live without a wrapper..." ;;
3922 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3923 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3925 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3928 echo "(However, $cpprun $cpplast does not work, let's see...)"
3936 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3943 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3944 $cc -E <testcpp.c >testcpp.out 2>&1; \
3945 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3946 echo "Yup, it does."
3949 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3950 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3951 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3952 echo "Yup, it does."
3955 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3956 $cc -P <testcpp.c >testcpp.out 2>&1; \
3957 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3958 echo "Yipee, that works!"
3961 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3962 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3963 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3964 echo "At long last!"
3967 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3968 $cpp <testcpp.c >testcpp.out 2>&1; \
3969 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3973 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3974 $cpp - <testcpp.c >testcpp.out 2>&1; \
3975 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3976 echo "Hooray, it works! I was beginning to wonder."
3979 elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3980 $wrapper <testcpp.c >testcpp.out 2>&1; \
3981 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3987 rp="No dice. I can't find a C preprocessor. Name one:"
3991 $x_cpp <testcpp.c >testcpp.out 2>&1
3992 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3993 echo "OK, that will do." >&4
3995 echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
4010 echo "Perhaps can we force $cc -E using a wrapper..."
4011 if $wrapper <testcpp.c >testcpp.out 2>&1; \
4012 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
4018 echo "Nope, we'll have to live without it..."
4032 "$wrapper"|'cppstdin') ;;
4033 *) $rm -f $wrapper;;
4035 $rm -f testcpp.c testcpp.out
4037 : Set private lib path
4040 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
4045 '') dlist="$loclibpth $plibpth $glibpth";;
4046 *) dlist="$libpth";;
4049 : Now check and see which directories actually exist, avoiding duplicates
4053 if $test -d $xxx; then
4056 *) libpth="$libpth $xxx";;
4062 Some systems have incompatible or broken versions of libraries. Among
4063 the directories listed in the question below, please remove any you
4064 know not to be holding relevant libraries, and add any that are needed.
4065 Say "none" for none.
4076 rp="Directories to use for library searches?"
4083 : compute shared library extension
4086 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
4096 On some systems, shared libraries may be available. Answer 'none' if
4097 you want to suppress searching of shared libraries for the remainder
4098 of this configuration.
4101 rp='What is the file extension used for shared libraries?'
4105 : Define several unixisms.
4106 : Hints files or command line option can be used to override them.
4107 : The convoluted testing is in case hints files set either the old
4110 '') case "$exe_ext" in
4112 *) _exe="$exe_ext" ;;
4117 '') case "$lib_ext" in
4124 '') case "$obj_ext" in
4131 '') case "$path_sep" in
4142 : Which makefile gets called first. This is used by make depend.
4143 case "$firstmakefile" in
4144 '') firstmakefile='makefile';;
4148 $define|true|[yY]*) dflt='y';;
4153 Perl can be built to use the SOCKS proxy protocol library. To do so,
4154 Configure must be run with -Dusesocks. If you use SOCKS you also need
4155 to use the PerlIO abstraction layer, this will be implicitly selected.
4157 If this doesn't make any sense to you, just accept the default '$dflt'.
4159 rp='Build Perl for SOCKS?'
4162 y|Y) val="$define" ;;
4169 $define|true|[yY]*) useperlio="$define";;
4172 : Looking for optional libraries
4174 echo "Checking for optional libraries..." >&4
4179 case "$libswanted" in
4180 '') libswanted='c_s';;
4183 "$define") libswanted="$libswanted socks5 socks5_sh" ;;
4189 for thisdir in $libpth $xlibpth; do
4190 test -d $thisdir && libspath="$libspath $thisdir"
4192 for thislib in $libswanted; do
4193 for thisdir in $libspath; do
4195 if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
4196 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
4197 $test -f "$xxx" && eval $libscheck
4198 $test -f "$xxx" && libstyle=shared
4200 if test ! -f "$xxx"; then
4201 xxx=$thisdir/lib$thislib.$so
4202 $test -f "$xxx" && eval $libscheck
4203 $test -f "$xxx" && libstyle=shared
4205 if test ! -f "$xxx"; then
4206 xxx=$thisdir/lib$thislib$_a
4207 $test -f "$xxx" && eval $libscheck
4208 $test -f "$xxx" && libstyle=static
4210 if test ! -f "$xxx"; then
4211 xxx=$thisdir/$thislib$_a
4212 $test -f "$xxx" && eval $libscheck
4213 $test -f "$xxx" && libstyle=static
4215 if test ! -f "$xxx"; then
4216 xxx=$thisdir/lib${thislib}_s$_a
4217 $test -f "$xxx" && eval $libscheck
4218 $test -f "$xxx" && libstyle=static
4219 $test -f "$xxx" && thislib=${thislib}_s
4221 if test ! -f "$xxx"; then
4222 xxx=$thisdir/Slib$thislib$_a
4223 $test -f "$xxx" && eval $libscheck
4224 $test -f "$xxx" && libstyle=static
4226 if $test -f "$xxx"; then
4228 shared) echo "Found -l$thislib (shared)." ;;
4229 static) echo "Found -l$thislib." ;;
4230 *) echo "Found -l$thislib ($libstyle)." ;;
4234 *) dflt="$dflt -l$thislib"
4235 libsfound="$libsfound $xxx"
4237 libsfiles="$libsfiles $yyy"
4238 yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
4239 case " $libsdirs " in
4241 *) libsdirs="$libsdirs $yyy" ;;
4248 if $test ! -f "$xxx"; then
4249 echo "No -l$thislib."
4260 ' '|'') dflt='none';;
4265 In order to compile $package on your machine, a number of libraries
4266 are usually needed. Include any other special libraries here as well.
4267 Say "none" for none. The default list is almost always right.
4271 rp="What libraries to use?"
4278 : determine optimization, if desired, or use for debug flag also
4280 ' '|$undef) dflt='none';;
4282 *) dflt="$optimize";;
4286 By default, $package compiles with the -O flag to use the optimizer.
4287 Alternately, you might want to use the symbolic debugger, which uses
4288 the -g flag (on traditional Unix systems). Either flag can be
4289 specified here. To use neither flag, specify the word "none".
4292 rp="What optimizer/debugger flag should be used?"
4296 'none') optimize=" ";;
4300 : We will not override a previous value, but we might want to
4301 : augment a hint file
4303 default|recommended)
4304 case "$gccversion" in
4305 1*) dflt='-fpcc-struct-return' ;;
4308 *-g*) dflt="$dflt -DDEBUGGING";;
4310 case "$gccversion" in
4311 2*) if test -d /etc/conf/kconfig.d &&
4312 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
4318 case "$gccversion" in
4322 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
4323 echo 'int main(void) { return 0; }' > gcctest.c
4324 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
4325 echo "Yes, it does." 2>&1
4328 echo "Leaving current flags $ccflags alone." 2>&1
4330 *) dflt="$dflt -fno-strict-aliasing" ;;
4333 echo "Nope, it doesn't, but that's ok." 2>&1
4340 case "$mips_type" in
4341 *BSD*|'') inclwanted="$locincpth $usrinc";;
4342 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
4344 for thisincl in $inclwanted; do
4345 if $test -d $thisincl; then
4346 if $test x$thisincl != x$usrinc; then
4348 *" -I$thisincl "*);;
4349 *) dflt="$dflt -I$thisincl ";;
4355 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
4357 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
4365 *) dflt="$dflt -D$2";;
4369 set signal.h LANGUAGE_C; eval $inctest
4373 ccflags="$ccflags -DSOCKS"
4378 default|recommended) dflt="$ccflags $dflt" ;;
4379 *) dflt="$ccflags";;
4388 Your C compiler may want other flags. For this question you should include
4389 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
4390 but you should NOT include libraries or ld flags like -lwhatever. If you
4391 want $package to honor its debug switch, you should include -DDEBUGGING here.
4392 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
4394 To use no flags, specify the word "none".
4400 rp="Any additional cc flags?"
4407 : the following weeds options from ccflags that are of no interest to cpp
4409 '') cppflags="$ccflags" ;;
4410 *) cppflags="$cppflags $ccflags" ;;
4412 case "$gccversion" in
4413 1*) cppflags="$cppflags -D__GNUC__"
4415 case "$mips_type" in
4417 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
4423 echo "Let me guess what the preprocessor flags are..." >&4
4437 *) ftry="$previous $flag";;
4439 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
4440 >cpp1.out 2>/dev/null && \
4441 $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
4442 >cpp2.out 2>/dev/null && \
4443 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
4444 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
4446 cppflags="$cppflags $ftry"
4456 *-*) echo "They appear to be: $cppflags";;
4458 $rm -f cpp.c cpp?.out
4462 : flags used in final linking phase
4464 '') if ./venix; then
4470 *-posix*) dflt="$dflt -posix" ;;
4473 *) dflt="$ldflags";;
4476 : Try to guess additional flags to pick up local libraries.
4477 for thislibdir in $libpth; do
4478 case " $loclibpth " in
4481 *"-L$thislibdir "*) ;;
4482 *) dflt="$dflt -L$thislibdir" ;;
4494 Your C linker may need flags. For this question you should
4495 include -L/whatever and any other flags used by the C linker, but you
4496 should NOT include libraries like -lwhatever.
4498 Make sure you include the appropriate -L/path flags if your C linker
4499 does not normally search all of the directories you specified above,
4502 To use no flags, specify the word "none".
4506 rp="Any additional ld flags (NOT including libraries)?"
4512 rmlist="$rmlist pdp11"
4516 echo "Checking your choice of C compiler and flags for coherency..." >&4
4517 $cat > try.c <<'EOF'
4519 int main() { printf("Ok\n"); exit(0); }
4521 set X $cc -o try $optimize $ccflags $ldflags try.c $libs
4523 $cat >try.msg <<'EOM'
4524 I've tried to compile and run the following simple program:
4527 $cat try.c >> try.msg
4529 $cat >> try.msg <<EOM
4536 and I got the following output:
4540 if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
4541 if $sh -c "$run ./try" >>try.msg 2>&1; then
4545 *) echo 'The program compiled OK, but produced no output.' >> try.msg
4548 cat >> try.msg <<'EOQS'
4549 If $libs contains -lsfio, and sfio is mis-configured, then it
4550 sometimes (apparently) runs and exits with a 0 status, but with no
4551 output! It may have to do with sfio's use of _exit vs. exit.
4554 rp="You have a big problem. Shall I abort Configure"
4561 echo "The program compiled OK, but exited with status $?." >>try.msg
4562 rp="You have a problem. Shall I abort Configure"
4566 echo "I can't compile the test program." >>try.msg
4567 rp="You have a BIG problem. Shall I abort Configure"
4573 case "$knowitall" in
4575 echo "(The supplied flags or libraries might be incorrect.)"
4583 *) echo "Ok. Stopping Configure." >&4
4588 n) echo "OK, that should do.";;
4590 $rm -f try try.* core
4592 : define a shorthand compile call
4596 $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
4597 : define a shorthand compile call for compilations that should be ok.
4601 $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
4603 : check for lengths of integral types
4607 echo "Checking to see how big your integers are..." >&4
4608 $cat >try.c <<'EOCP'
4612 printf("intsize=%d;\n", (int)sizeof(int));
4613 printf("longsize=%d;\n", (int)sizeof(long));
4614 printf("shortsize=%d;\n", (int)sizeof(short));
4619 if eval $compile_ok && $run ./try > /dev/null; then
4621 echo "Your integers are $intsize bytes long."
4622 echo "Your long integers are $longsize bytes long."
4623 echo "Your short integers are $shortsize bytes long."
4627 Help! I can't compile and run the intsize test program: please enlighten me!
4628 (This is probably a misconfiguration in your system or libraries, and
4629 you really ought to fix it. Still, I'll try anyway.)
4633 rp="What is the size of an integer (in bytes)?"
4637 rp="What is the size of a long integer (in bytes)?"
4641 rp="What is the size of a short integer (in bytes)?"
4649 : check for void type
4651 echo "Checking to see how well your C compiler groks the void type..." >&4
4652 case "$voidflags" in
4654 $cat >try.c <<'EOCP'
4660 extern void moo(); /* function returning void */
4661 void (*goo)(); /* ptr to func returning void */
4663 void *hue; /* generic ptr */
4676 int main() { sub(); }
4678 if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
4679 voidflags=$defvoidused
4680 echo "Good. It appears to support void to the level $package wants.">&4
4681 if $contains warning .out >/dev/null 2>&1; then
4682 echo "However, you might get some warnings that look like this:"
4686 echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
4687 if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
4688 echo "It supports 1..."
4689 if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
4690 echo "It also supports 2..."
4691 if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
4693 echo "And it supports 4 but not 8 definitely."
4695 echo "It doesn't support 4..."
4696 if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
4698 echo "But it supports 8."
4701 echo "Neither does it support 8."
4705 echo "It does not support 2..."
4706 if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
4708 echo "But it supports 4 and 8."
4710 if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
4712 echo "And it supports 4 but has not heard about 8."
4714 echo "However it supports 8 but not 4."
4719 echo "There is no support at all for void."
4724 case "$voidflags" in
4727 Support flag bits are:
4728 1: basic void declarations.
4729 2: arrays of pointers to functions returning void.
4730 4: operations between pointers to and addresses of void functions.
4731 8: generic void pointers.
4734 rp="Your void support flags add up to what?"
4741 : check for length of pointer
4745 echo "Checking to see how big your pointers are..." >&4
4746 if test "$voidflags" -gt 7; then
4747 echo '#define VOID_PTR char *' > try.c
4749 echo '#define VOID_PTR void *' > try.c
4751 $cat >>try.c <<'EOCP'
4755 printf("%d\n", (int)sizeof(VOID_PTR));
4760 if eval $compile_ok; then
4761 ptrsize=`$run ./try`
4762 echo "Your pointers are $ptrsize bytes long."
4765 echo "(I can't seem to compile the test program. Guessing...)" >&4
4766 rp="What is the size of a pointer (in bytes)?"
4774 : check for long long
4776 echo "Checking to see if you have long long..." >&4
4777 echo 'int main() { long long x = 7; return 0; }' > try.c
4779 if eval $compile; then
4781 echo "You have long long."
4784 echo "You do not have long long."
4790 : check for length of long long
4791 case "${d_longlong}${longlongsize}" in
4794 echo "Checking to see how big your long longs are..." >&4
4795 $cat >try.c <<'EOCP'
4799 printf("%d\n", (int)sizeof(long long));
4804 if eval $compile_ok; then
4805 longlongsize=`$run ./try`
4806 echo "Your long longs are $longlongsize bytes long."
4810 echo "(I can't seem to compile the test program. Guessing...)"
4811 rp="What is the size of a long long (in bytes)?"
4815 if $test "X$longsize" = "X$longlongsize"; then
4816 echo "(That isn't any different from an ordinary long.)"
4822 : determine filename position in cpp output
4824 echo "Computing filename position in cpp output for #include directives..." >&4
4825 echo '#include <stdio.h>' > foo.c
4828 $cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
4829 $grep '^[ ]*#.*stdio\.h' | \
4830 while read cline; do
4833 while $test \$# -gt 0; do
4834 if $test -r \`echo \$1 | $tr -d '"'\`; then
4839 pos=\`expr \$pos + 1\`
4851 *) pos="${fieldn}th";;
4853 echo "Your cpp writes the filename in the $pos field of the line."
4855 : locate header file
4860 for usrincdir in $usrinc
4862 if test -f \$usrincdir/\$wanted; then
4863 echo "\$usrincdir/\$wanted"
4867 awkprg='{ print \$$fieldn }'
4868 echo "#include <\$wanted>" > foo\$\$.c
4869 $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
4870 $grep "^[ ]*#.*\$wanted" | \
4871 while read cline; do
4872 name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
4874 *[/\\\\]\$wanted) echo "\$name"; exit 1;;
4875 *[\\\\/]\$wanted) echo "\$name"; exit 1;;
4880 # status = 0: grep returned 0 lines, case statement not executed
4881 # status = 1: headerfile found
4882 # status = 2: while loop executed, no headerfile found
4886 if test \$status -eq 1; then
4893 : define an alternate in-header-list? function
4894 inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
4895 cont=true; xxf="echo \"<\$1> found.\" >&4";
4896 case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
4897 *) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
4899 case $# in 4) instead=instead;; *) instead="at last";; esac;
4900 while $test "$cont"; do
4902 var=$2; eval "was=\$$2";
4903 if $test "$xxx" && $test -r "$xxx";
4905 eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
4908 eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
4909 set $yyy; shift; shift; yyy=$@;
4910 case $# in 0) cont="";;
4911 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
4912 xxnf="echo \"and I did not find <\$1> either.\" >&4";;
4913 *) xxf="echo \"but I found <\$1\> instead.\" >&4";
4914 xxnf="echo \"there is no <\$1>, ...\" >&4";;
4918 do set $yyy; var=$2; eval "was=\$$2";
4919 eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu";
4920 set $yyy; shift; shift; yyy=$@;
4923 : see if inttypes.h is available
4924 : we want a real compile instead of Inhdr because some systems
4925 : have an inttypes.h which includes non-existent headers
4928 #include <inttypes.h>
4930 static int32_t foo32 = 0x12345678;
4934 if eval $compile; then
4935 echo "<inttypes.h> found." >&4
4938 echo "<inttypes.h> NOT found." >&4
4947 echo "Checking to see if you have int64_t..." >&4
4949 #include <sys/types.h>
4950 #$i_inttypes I_INTTYPES
4952 #include <inttypes.h>
4954 int main() { int64_t x = 7; }
4957 if eval $compile; then
4959 echo "You have int64_t."
4962 echo "You do not have int64_t."
4970 echo "Checking which 64-bit integer type we could use..." >&4
4976 val='"unsigned int"'
4981 *) case "$longsize" in
4985 val='"unsigned long"'
4990 *) case "$d_longlong:$longlongsize" in
4995 val='"unsigned long long"'
5000 *) case "$d_int64_t" in
5019 '') echo "Alas, no 64-bit integer types in sight." >&4
5022 *) echo "We could use '$quadtype' for 64-bit integers." >&4
5028 case "$uselonglong" in
5029 "$define"|true|[yY]*)
5032 *** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
5034 use64bitint="$define"
5037 case "$use64bits" in
5038 "$define"|true|[yY]*)
5041 *** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
5043 use64bitint="$define"
5046 case "$use64bitints" in
5047 "$define"|true|[yY]*)
5050 *** There is no Configure -Duse64bitints, using -Duse64bitint instead.
5052 use64bitint="$define"
5055 case "$use64bitsint" in
5056 "$define"|true|[yY]*)
5059 *** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
5061 use64bitint="$define"
5064 case "$uselonglongs" in
5065 "$define"|true|[yY]*)
5068 *** There is no Configure -Duselonglongs, using -Duse64bitint instead.
5070 use64bitint="$define"
5073 case "$use64bitsall" in
5074 "$define"|true|[yY]*)
5077 *** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
5079 use64bitall="$define"
5084 *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
5086 case "$use64bitall" in
5087 "$define"|true|[yY]*) use64bitint="$define" ;;
5093 You have natively 64-bit long integers.
5097 *) case "$use64bitint" in
5098 "$define"|true|[yY]*) dflt='y';;
5107 Perl can be built to take advantage of 64-bit integer types
5108 on some systems. To do so, Configure can be run with -Duse64bitint.
5109 Choosing this option will most probably introduce binary incompatibilities.
5111 If this doesn't make any sense to you, just accept the default '$dflt'.
5112 (The default has been chosen based on your configuration.)
5114 rp='Try to use 64-bit integers, if available?'
5117 [yY]*) val="$define" ;;
5125 case "$use64bitall" in
5126 "$define"|true|[yY]*) dflt='y' ;;
5127 *) case "$longsize" in
5135 You may also choose to try maximal 64-bitness. It means using as much
5136 64-bitness as possible on the platform. This in turn means even more
5137 binary incompatibilities. On the other hand, your platform may not
5138 have any more 64-bitness available than what you already have chosen.
5140 If this doesn't make any sense to you, just accept the default '$dflt'.
5141 (The default has been chosen based on your configuration.)
5143 rp='Try to use maximal 64-bit support, if available?'
5146 [yY]*) val="$define" ;;
5151 case "$use64bitall" in
5153 case "$use64bitint" in
5157 Since you have chosen a maximally 64-bit build, I'm also turning on
5158 the use of 64-bit integers.
5160 use64bitint="$define" ;;
5165 case "$use64bitall" in
5166 "$define"|true|[yY]*)
5170 *** You have chosen a maximally 64-bit build, but your pointers
5171 *** are only 4 bytes wide, disabling maximal 64-bitness.
5174 use64bitall="$undef"
5175 case "$use64bitint" in
5176 "$define"|true|[yY]*) ;;
5179 *** Downgrading from maximal 64-bitness to using 64-bit integers.
5182 use64bitint="$define"
5190 case "$use64bitint" in
5191 "$define"|true|[yY]*)
5192 : Look for a hint-file generated 'call-back-unit'. If the
5193 : user has specified that a 64-bit perl is to be built,
5194 : we may need to set or change some other defaults.
5195 if $test -f use64bitint.cbu; then
5196 echo "Your platform has some specific hints for 64-bit integers, using them..."
5200 4) case "$archname64" in
5201 '') archname64=64int ;;
5208 case "$use64bitall" in
5209 "$define"|true|[yY]*)
5210 : Look for a hint-file generated 'call-back-unit'. If the
5211 : user has specified that a maximally 64-bit perl is to be built,
5212 : we may need to set or change some other defaults.
5213 if $test -f use64bitall.cbu; then
5214 echo "Your platform has some specific hints for 64-bit builds, using them..."
5218 4) case "$archname64" in
5219 ''|64int) archname64=64all ;;
5227 echo "Checking for GNU C Library..." >&4
5240 if eval $compile_ok && $run ./try; then
5242 echo "You are using the GNU C Library"
5245 echo "You are not using the GNU C Library"
5251 : see if nm is to be used to determine whether a symbol is defined or not
5255 case "$d_gnulibc" in
5258 echo "nm probably won't work on the GNU C Library." >&4
5264 if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then
5266 echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4
5267 echo "'nm' won't be sufficient on this sytem." >&4
5273 '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null`
5274 if $test $dflt -gt 20; then
5284 true|$define) dflt=y;;
5291 I can use $nm to extract the symbols from your C libraries. This
5292 is a time consuming task which may generate huge output on the disk (up
5293 to 3 megabytes) but that should make the symbols extraction faster. The
5294 alternative is to skip the 'nm' extraction part and to compile a small
5295 test program instead to determine whether each symbol is present. If
5296 you have a fast C compiler and/or if your 'nm' output cannot be parsed,
5297 this may be the best solution.
5299 You probably shouldn't let me use 'nm' if you are using the GNU C Library.
5302 rp="Shall I use $nm to extract C symbols from the libraries?"
5305 [Nn]*) usenm=false;;
5314 : nm options which may be necessary
5316 '') if $test -f /mach_boot; then
5318 elif $test -d /usr/ccs/lib; then
5319 nm_opt='-p' # Solaris (and SunOS?)
5320 elif $test -f /dgux; then
5322 elif $test -f /lib64/rld; then
5323 nm_opt='-p' # 64-bit Irix
5329 : nm options which may be necessary for shared libraries but illegal
5330 : for archive libraries. Thank you, Linux.
5331 case "$nm_so_opt" in
5332 '') case "$myuname" in
5334 if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
5335 nm_so_opt='--dynamic'
5344 : get list of predefined functions in a handy place
5349 *-lc_s*) libc=`./loc libc_s$_a $libc $libpth`
5355 *) for thislib in $libs; do
5358 : Handle C library specially below.
5361 thislib=`echo $thislib | $sed -e 's/^-l//'`
5362 if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
5364 elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
5366 elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then
5368 elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then
5370 elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
5372 elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
5374 elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then
5379 libnames="$libnames $try"
5381 *) libnames="$libnames $thislib" ;;
5390 for xxx in $libpth; do
5391 $test -r $1 || set $xxx/libc.$so
5392 : The messy sed command sorts on library version numbers.
5394 set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \
5395 tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e '
5397 s/[0-9][0-9]*/0000&/g
5398 s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g
5401 $sort | $sed -e 's/^.* //'`
5404 $test -r $1 || set /usr/ccs/lib/libc.$so
5405 $test -r $1 || set /lib/libsys_s$_a
5411 if $test -r "$1"; then
5412 echo "Your (shared) C library seems to be in $1."
5414 elif $test -r /lib/libc && $test -r /lib/clib; then
5415 echo "Your C library seems to be in both /lib/clib and /lib/libc."
5417 libc='/lib/clib /lib/libc'
5418 if $test -r /lib/syslib; then
5419 echo "(Your math library is in /lib/syslib.)"
5420 libc="$libc /lib/syslib"
5422 elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
5423 echo "Your C library seems to be in $libc, as you said before."
5424 elif $test -r $incpath/usr/lib/libc$_a; then
5425 libc=$incpath/usr/lib/libc$_a;
5426 echo "Your C library seems to be in $libc. That's fine."
5427 elif $test -r /lib/libc$_a; then
5429 echo "Your C library seems to be in $libc. You're normal."
5431 if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then
5433 elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
5434 libnames="$libnames "`./loc clib blurfl/dyick $libpth`
5435 elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
5437 elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
5439 elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
5442 tans=`./loc Llibc$_a blurfl/dyick $xlibpth`
5444 if $test -r "$tans"; then
5445 echo "Your C library seems to be in $tans, of all places."
5451 if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
5455 If the guess above is wrong (which it might be if you're using a strange
5456 compiler, or your machine supports multiple models), you can override it here.
5461 echo $libpth | $tr ' ' $trnl | $sort | $uniq > libpath
5463 I can't seem to find your C library. I've looked in the following places:
5466 $sed 's/^/ /' libpath
5469 None of these seems to contain your C library. I need to get its name...
5474 rp='Where is your C library?'
5479 echo $libc $libnames | $tr ' ' $trnl | $sort | $uniq > libnames
5480 set X `cat libnames`
5483 case $# in 1) xxx=file; esac
5484 echo "Extracting names from the following $xxx for later perusal:" >&4
5486 $sed 's/^/ /' libnames >&4
5488 $echo $n "This may take a while...$c" >&4
5492 *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
5493 *) $nm $nm_opt $file 2>/dev/null;;
5498 $grep fprintf libc.tmp > libc.ptf
5499 xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
5500 xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
5502 if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\
5504 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5506 elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
5508 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5510 elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
5512 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5514 elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
5516 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5518 elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
5520 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5522 elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
5524 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5526 elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
5527 -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\
5529 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5531 elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
5533 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5535 elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
5537 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5539 elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\
5541 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5543 elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
5545 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5547 elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
5549 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5551 elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
5553 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5555 elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\
5557 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5560 $nm -p $* 2>/dev/null >libc.tmp
5561 $grep fprintf libc.tmp > libc.ptf
5562 if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
5563 eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
5569 echo "$nm didn't seem to work right. Trying $ar instead..." >&4
5571 if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then
5572 for thisname in $libnames $libc; do
5573 $ar t $thisname >>libc.tmp
5575 $sed -e "s/\\$_o\$//" < libc.tmp > libc.list
5577 elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then
5578 # Repeat libc to extract forwarders to DLL entries too
5579 for thisname in $libnames $libc; do
5580 $ar tv $thisname >>libc.tmp
5581 # Revision 50 of EMX has bug in $ar.
5582 # it will not extract forwarders to DLL entries
5583 # Use emximp which will extract exactly them.
5584 emximp -o tmp.imp $thisname \
5586 $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
5587 < tmp.imp >>libc.tmp
5590 $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list
5593 echo "$ar didn't seem to work right." >&4
5594 echo "Maybe this is a Cray...trying bld instead..." >&4
5595 if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list
5597 for thisname in $libnames; do
5599 $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
5600 $ar t $thisname >>libc.tmp
5604 echo "That didn't work either. Giving up." >&4
5611 if $test -f /lib/syscalls.exp; then
5613 echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
5614 $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list
5618 $rm -f libnames libpath
5620 : is a C symbol defined?
5623 -v) tf=libc.tmp; tc=""; tdc="";;
5624 -a) tf=libc.tmp; tc="[0]"; tdc="[]";;
5625 *) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";;
5628 case "$reuseval-$4" in
5630 true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
5636 if $contains $tlook $tf >/dev/null 2>&1;
5641 echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c;
5642 if $cc -o t $optimize $ccflags $ldflags t.c $libs >/dev/null 2>&1;
5650 $define) tval=true;;
5656 : define an is-in-libc? function
5657 inlibc='echo " "; td=$define; tu=$undef;
5658 sym=$1; var=$2; eval "was=\$$2";
5660 case "$reuseval$was" in
5670 echo "$sym() found." >&4;
5671 case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";;
5673 echo "$sym() NOT found." >&4;
5674 case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";;
5678 $define) echo "$sym() found." >&4;;
5679 *) echo "$sym() NOT found." >&4;;
5683 : see if sqrtl exists
5688 *-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
5691 case "$uselongdouble" in
5692 $define|true|[yY]*) dflt='y';;
5697 Perl can be built to take advantage of long doubles which
5698 (if available) may give more accuracy and range for floating point numbers.
5700 If this doesn't make any sense to you, just accept the default '$dflt'.
5702 rp='Try to use long doubles if available?'
5705 y|Y) val="$define" ;;
5711 case "$uselongdouble" in
5712 true|[yY]*) uselongdouble="$define" ;;
5715 case "$uselongdouble" in
5717 : Look for a hint-file generated 'call-back-unit'. If the
5718 : user has specified that long doubles should be used,
5719 : we may need to set or change some other defaults.
5720 if $test -f uselongdouble.cbu; then
5721 echo "Your platform has some specific hints for long doubles, using them..."
5722 . ./uselongdouble.cbu
5725 (Your platform doesn't have any specific hints for long doubles.)
5731 case "$uselongdouble:$d_sqrtl" in
5735 *** You requested the use of long doubles but you do not seem to have
5736 *** the mathematic functions for long doubles. I'm disabling the use
5737 *** of long doubles.
5740 uselongdouble=$undef
5744 : check for length of double
5746 case "$doublesize" in
5748 echo "Checking to see how big your double precision numbers are..." >&4
5749 $cat >try.c <<'EOCP'
5753 printf("%d\n", (int)sizeof(double));
5758 if eval $compile_ok; then
5759 doublesize=`$run ./try`
5760 echo "Your double is $doublesize bytes long."
5763 echo "(I can't seem to compile the test program. Guessing...)"
5764 rp="What is the size of a double precision number (in bytes)?"
5772 : check for long doubles
5774 echo "Checking to see if you have long double..." >&4
5775 echo 'int main() { long double x = 7.0; }' > try.c
5777 if eval $compile; then
5779 echo "You have long double."
5782 echo "You do not have long double."
5788 : check for length of long double
5789 case "${d_longdbl}${longdblsize}" in
5792 echo "Checking to see how big your long doubles are..." >&4
5793 $cat >try.c <<'EOCP'
5797 printf("%d\n", sizeof(long double));
5802 if eval $compile; then
5803 longdblsize=`$run ./try`
5804 echo "Your long doubles are $longdblsize bytes long."
5808 echo "(I can't seem to compile the test program. Guessing...)" >&4
5809 rp="What is the size of a long double (in bytes)?"
5813 if $test "X$doublesize" = "X$longdblsize"; then
5814 echo "(That isn't any different from an ordinary double.)"
5820 case "$useperlio" in
5821 $define|true|[yY]*|'') dflt='y';;
5826 Previous version of $package used the standard IO mechanisms as
5827 defined in <stdio.h>. Versions 5.003_02 and later of $package allow
5828 alternate IO mechanisms via the PerlIO abstraction layer, but the
5829 stdio mechanism is still available if needed. The abstraction layer
5830 can use AT&T's sfio (if you already have sfio installed) or regular stdio.
5831 Using PerlIO with sfio may cause problems with some extension modules.
5833 If this doesn't make any sense to you, just accept the default '$dflt'.
5835 rp='Use the PerlIO abstraction layer?'
5842 echo "Ok, doing things the stdio way."
5851 case "$useperlio" in
5852 $define|true|[yY]*) ;;
5855 You are using the SOCKS proxy protocol library which means that you
5856 should also use the PerlIO layer. You may be headed for trouble.
5865 : determine the architecture name
5867 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
5868 tarch=`arch`"-$osname"
5869 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
5870 if uname -m > tmparch 2>&1 ; then
5871 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
5872 -e 's/$/'"-$osname/" tmparch`
5880 case "$myarchname" in
5883 echo "(Your architecture name used to be $myarchname.)"
5887 case "$targetarch" in
5889 *) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
5894 *) dflt="$archname";;
5896 rp='What is your architecture name'
5899 case "$usethreads" in
5901 echo "Threads selected." >&4
5903 *-thread*) echo "...and architecture name already has -thread." >&4
5905 *) archname="$archname-thread"
5906 echo "...setting architecture name to $archname." >&4
5911 case "$usemultiplicity" in
5913 echo "Multiplicity selected." >&4
5915 *-multi*) echo "...and architecture name already has -multi." >&4
5917 *) archname="$archname-multi"
5918 echo "...setting architecture name to $archname." >&4
5923 case "$use64bitint$use64bitall" in
5925 case "$archname64" in
5927 echo "This architecture is naturally 64-bit, not changing architecture name." >&4
5930 case "$use64bitint" in
5931 "$define") echo "64 bit integers selected." >&4 ;;
5933 case "$use64bitall" in
5934 "$define") echo "Maximal 64 bitness selected." >&4 ;;
5937 *-$archname64*) echo "...and architecture name already has $archname64." >&4
5939 *) archname="$archname-$archname64"
5940 echo "...setting architecture name to $archname." >&4
5946 case "$uselongdouble" in
5948 echo "Long doubles selected." >&4
5949 case "$longdblsize" in
5951 echo "...but long doubles are equal to doubles, not changing architecture name." >&4
5955 *-ld*) echo "...and architecture name already has -ld." >&4
5957 *) archname="$archname-ld"
5958 echo "...setting architecture name to $archname." >&4
5965 case "$useperlio" in
5967 echo "Perlio selected." >&4
5970 echo "Perlio not selected, using stdio." >&4
5972 *-stdio*) echo "...and architecture name already has -stdio." >&4
5974 *) archname="$archname-stdio"
5975 echo "...setting architecture name to $archname." >&4
5981 : determine root of directory hierarchy where package will be installed.
5984 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
5992 By default, $package will be installed in $dflt/bin, manual pages
5993 under $dflt/man, etc..., i.e. with $dflt as prefix for all
5994 installation directories. Typically this is something like /usr/local.
5995 If you wish to have binaries under /usr/bin but other parts of the
5996 installation under /usr/local, that's ok: you will be prompted
5997 separately for each of the installation directories, the prefix being
5998 only used to set the defaults.
6002 rp='Installation prefix to use?'
6010 *) oldprefix="$prefix";;
6019 *) afsroot=$afsroot ;;
6025 $define|true) afs=true ;;
6026 $undef|false) afs=false ;;
6027 *) if test -d $afsroot; then
6035 echo "AFS may be running... I'll be extra cautious then..." >&4
6037 echo "AFS does not seem to be running..." >&4
6040 : determine installation prefix for where package is to be installed.
6044 Since you are running AFS, I need to distinguish the directory in which
6045 files will reside from the directory in which they are installed (and from
6046 which they are presumably copied to the former directory by occult means).
6049 case "$installprefix" in
6050 '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
6051 *) dflt="$installprefix";;
6056 In some special cases, particularly when building $package for distribution,
6057 it is convenient to distinguish between the directory in which files should
6058 be installed from the directory ($prefix) in which they
6059 will eventually reside. For most users, these two directories are the same.
6062 case "$installprefix" in
6064 *) dflt=$installprefix;;
6068 rp='What installation prefix should I use for installing files?'
6070 installprefix="$ans"
6071 installprefixexp="$ansexp"
6073 : set the prefixit variable, to compute a suitable default value
6074 prefixit='case "$3" in
6076 case "$oldprefix" in
6077 "") eval "$1=\"\$$2\"";;
6084 ""|" ") eval "$1=\"\$$2\"";;
6090 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
6092 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
6093 /*-$oldprefix/*|\~*-$oldprefix/*)
6094 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
6095 *) eval "$1=\"\$$2\"";;
6099 : get the patchlevel
6101 echo "Getting the current patchlevel..." >&4
6102 if $test -r $rsrc/patchlevel.h;then
6103 revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
6104 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
6105 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
6106 api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
6107 api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
6108 api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
6109 perl_patchlevel=`grep ',"DEVEL[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'`
6118 $echo "(You do not have patchlevel.h. Eek.)"
6120 if $test -r $rsrc/.patch ; then
6121 if $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then
6122 perl_patchlevel=`cat $rsrc/.patch`
6125 : Define a handy string here to avoid duplication in myconfig.SH and configpm.
6126 version_patchlevel_string="version $patchlevel subversion $subversion"
6127 case "$perl_patchlevel" in
6129 *) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;;
6132 $echo "(You have $package $version_patchlevel_string.)"
6136 : XXX Should be a Configure test for double-dots in filenames.
6137 version=`echo $revision $patchlevel $subversion | \
6138 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
6139 api_versionstring=`echo $api_revision $api_version $api_subversion | \
6140 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
6143 version=`echo $revision $patchlevel $subversion | \
6144 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
6145 api_versionstring=`echo $api_revision $api_version $api_subversion | \
6146 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
6149 : Special case the 5.005_xx maintenance series, which used 5.005
6150 : without any subversion label as a subdirectory in $sitelib
6151 if test "${api_revision}${api_version}${api_subversion}" = "550"; then
6152 api_versionstring='5.005'
6155 : determine installation style
6156 : For now, try to deduce it from prefix unless it is already set.
6157 : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
6158 case "$installstyle" in
6159 '') case "$prefix" in
6160 *perl*) dflt='lib';;
6161 *) dflt='lib/perl5' ;;
6164 *) dflt="$installstyle" ;;
6166 : Probably not worth prompting for this since we prompt for all
6167 : the directories individually, and the prompt would be too long and
6171 : determine where private library files go
6172 : Usual default is /usr/local/lib/perl5/$version.
6173 : Also allow things like /opt/perl/lib/$version, since
6174 : /opt/perl/lib/perl5... would be redundant.
6175 : The default "style" setting is made in installstyle.U
6176 case "$installstyle" in
6177 *lib/perl5*) set dflt privlib lib/$package/$version ;;
6178 *) set dflt privlib lib/$version ;;
6183 There are some auxiliary files for $package that need to be put into a
6184 private library directory that is accessible by everyone.
6188 rp='Pathname where the private library files will reside?'
6191 privlibexp="$ansexp"
6192 : Change installation prefix, if necessary.
6193 if $test X"$prefix" != X"$installprefix"; then
6194 installprivlib=`echo $privlibexp | sed "s#^$prefix#$installprefix#"`
6196 installprivlib="$privlibexp"
6199 : set the prefixup variable, to restore leading tilda escape
6200 prefixup='case "$prefixexp" in
6202 *) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";;
6205 : determine where public architecture dependent libraries go
6208 : privlib default is /usr/local/lib/$package/$version
6209 : archlib default is /usr/local/lib/$package/$version/$archname
6210 : privlib may have an optional trailing /share.
6211 tdflt=`echo $privlib | $sed 's,/share$,,'`
6212 tdflt=$tdflt/$archname
6221 $spackage contains architecture-dependent library files. If you are
6222 sharing libraries in a heterogeneous environment, you might store
6223 these files in a separate location. Otherwise, you can just include
6224 them with the rest of the public library files.
6228 rp='Where do you want to put the public architecture-dependent libraries?'
6231 archlibexp="$ansexp"
6232 if $test X"$archlib" = X"$privlib"; then
6237 : Change installation prefix, if necessary.
6238 if $test X"$prefix" != X"$installprefix"; then
6239 installarchlib=`echo $archlibexp | sed "s#^$prefix#$installprefix#"`
6241 installarchlib="$archlibexp"
6245 : Binary compatibility with 5.005 is not possible for builds
6246 : with advanced features
6247 case "$usethreads$usemultiplicity" in
6249 bincompat5005="$undef"
6250 d_bincompat5005="$undef"
6254 This version of Perl can be compiled for binary compatibility with 5.005.
6255 If you decide to do so, you will be able to continue using most of the
6256 extensions that were compiled for Perl 5.005.
6259 case "$bincompat5005$d_bincompat5005" in
6260 *"$undef"*) dflt=n ;;
6263 rp='Binary compatibility with Perl 5.005?'
6266 y*) val="$define" ;;
6271 case "$d_bincompat5005" in
6273 bincompat5005="$define"
6275 *) bincompat5005="$undef"
6276 d_bincompat5005="$undef"
6283 : see if setuid scripts can be secure
6286 Some kernels have a bug that prevents setuid #! scripts from being
6287 secure. Some sites have disabled setuid #! scripts because of this.
6289 First let's decide if your kernel supports secure setuid #! scripts.
6290 (If setuid #! scripts would be secure but have been disabled anyway,
6291 don't say that they are secure if asked.)
6296 if $test -d /dev/fd; then
6297 echo "#!$ls" >reflect
6298 chmod +x,u+s reflect
6299 ./reflect >flect 2>&1
6300 if $contains "/dev/fd" flect >/dev/null; then
6301 echo "Congratulations, your kernel has secure setuid scripts!" >&4
6305 If you are not sure if they are secure, I can check but I'll need a
6306 username and password different from the one you are using right now.
6307 If you don't have such a username or don't want me to test, simply
6311 rp='Other username to test security of setuid scripts with?'
6316 case "$d_suidsafe" in
6317 '') echo "I'll assume setuid scripts are *not* secure." >&4
6320 echo "Well, the $hint value is *not* secure." >&4
6322 *) echo "Well, the $hint value *is* secure." >&4
6327 $rm -f reflect flect
6328 echo "#!$ls" >reflect
6329 chmod +x,u+s reflect
6332 echo '"su" will (probably) prompt you for '"$ans's password."
6333 su $ans -c './reflect >flect'
6334 if $contains "/dev/fd" flect >/dev/null; then
6335 echo "Okay, it looks like setuid scripts are secure." >&4
6338 echo "I don't think setuid scripts are secure." >&4
6343 rp='Does your kernel have *secure* setuid scripts?'
6346 [yY]*) val="$define";;
6351 echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
6352 echo "(That's for file descriptors, not floppy disks.)"
6358 $rm -f reflect flect
6360 : now see if they want to do setuid emulation
6363 case "$d_suidsafe" in
6366 echo "No need to emulate SUID scripts since they are secure here." >& 4
6370 Some systems have disabled setuid scripts, especially systems where
6371 setuid scripts cannot be secure. On systems where setuid scripts have
6372 been disabled, the setuid/setgid bits on scripts are currently
6373 useless. It is possible for $package to detect those bits and emulate
6374 setuid/setgid in a secure fashion. This emulation will only work if
6375 setuid scripts have been disabled in your kernel.
6379 "$define") dflt=y ;;
6382 rp="Do you want to do setuid/setgid emulation?"
6385 [yY]*) val="$define";;
6393 : see if this is a malloc.h system
6394 set malloc.h i_malloc
6397 : see if stdlib is available
6398 set stdlib.h i_stdlib
6401 : determine which malloc to compile in
6403 case "$usemymalloc" in
6404 [yY]*|true|$define) dflt='y' ;;
6405 [nN]*|false|$undef) dflt='n' ;;
6406 *) case "$ptrsize" in
6412 rp="Do you wish to attempt to use the malloc that comes with $package?"
6418 mallocsrc='malloc.c'
6419 mallocobj="malloc$_o"
6420 d_mymalloc="$define"
6423 : Remove malloc from list of libraries to use
6424 echo "Removing unneeded -lmalloc from library list" >&4
6425 set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
6428 echo "libs = $libs" >&4
6440 : compute the return types of malloc and free
6442 $cat >malloc.c <<END
6446 #include <sys/types.h>
6460 case "$malloctype" in
6462 if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then
6469 echo "Your system wants malloc to return '$malloctype', it would seem." >&4
6473 if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then
6480 echo "Your system uses $freetype free(), it would seem." >&4
6484 After $package is installed, you may wish to install various
6485 add-on modules and utilities. Typically, these add-ons will
6486 be installed under $prefix with the rest
6487 of this package. However, you may wish to install such add-ons
6488 elsewhere under a different prefix.
6490 If you do not wish to put everything under a single prefix, that's
6491 ok. You will be prompted for the individual locations; this siteprefix
6492 is only used to suggest the defaults.
6494 The default should be fine for most people.
6498 rp='Installation prefix to use for add-on modules and utilities?'
6499 : XXX Here might be another good place for an installstyle setting.
6500 case "$siteprefix" in
6502 *) dflt=$siteprefix ;;
6505 : XXX Prefixit unit does not yet support siteprefix and vendorprefix
6507 case "$siteprefix" in
6511 *) oldsiteprefix="$prefix";;
6516 siteprefixexp="$ansexp"
6518 : determine where site specific libraries go.
6519 : Usual default is /usr/local/lib/perl5/site_perl/$version
6520 : The default "style" setting is made in installstyle.U
6521 : XXX No longer works with Prefixit stuff.
6522 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
6524 '') case "$installstyle" in
6525 *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
6526 *) dflt=$siteprefix/lib/site_$prog/$version ;;
6534 The installation process will create a directory for
6535 site-specific extensions and modules. Most users find it convenient
6536 to place all site-specific files in this directory rather than in the
6537 main distribution directory.
6541 rp='Pathname for the site-specific library files?'
6544 sitelibexp="$ansexp"
6545 sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
6546 : Change installation prefix, if necessary.
6547 if $test X"$prefix" != X"$installprefix"; then
6548 installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
6550 installsitelib="$sitelibexp"
6553 : determine where site specific architecture-dependent libraries go.
6554 : sitelib default is /usr/local/lib/perl5/site_perl/$version
6555 : sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
6556 : sitelib may have an optional trailing /share.
6558 '') dflt=`echo $sitelib | $sed 's,/share$,,'`
6559 dflt="$dflt/$archname"
6564 set sitearch sitearch none
6568 The installation process will also create a directory for
6569 architecture-dependent site-specific extensions and modules.
6573 rp='Pathname for the site-specific architecture-dependent library files?'
6576 sitearchexp="$ansexp"
6577 : Change installation prefix, if necessary.
6578 if $test X"$prefix" != X"$installprefix"; then
6579 installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
6581 installsitearch="$sitearchexp"
6586 The installation process will also create a directory for
6587 vendor-supplied add-ons. Vendors who supply perl with their system
6588 may find it convenient to place all vendor-supplied files in this
6589 directory rather than in the main distribution directory. This will
6590 ease upgrades between binary-compatible maintenance versions of perl.
6592 Of course you may also use these directories in whatever way you see
6593 fit. For example, you might use them to access modules shared over a
6594 company-wide network.
6596 The default answer should be fine for most people.
6597 This causes further questions about vendor add-ons to be skipped
6598 and no vendor-specific directories will be configured for perl.
6601 rp='Do you want to configure vendor-specific add-on directories?'
6602 case "$usevendorprefix" in
6603 define|true|[yY]*) dflt=y ;;
6604 *) : User may have set vendorprefix directly on Configure command line.
6605 case "$vendorprefix" in
6614 rp='Installation prefix to use for vendor-supplied add-ons?'
6615 case "$vendorprefix" in
6617 *) dflt=$vendorprefix ;;
6620 : XXX Prefixit unit does not yet support siteprefix and vendorprefix
6622 case "$vendorprefix" in
6626 *) oldvendorprefix="$prefix";;
6630 usevendorprefix="$define"
6632 vendorprefixexp="$ansexp"
6634 *) usevendorprefix="$undef"
6640 case "$vendorprefix" in
6641 '') d_vendorlib="$undef"
6645 *) d_vendorlib="$define"
6646 : determine where vendor-supplied modules go.
6647 : Usual default is /usr/local/lib/perl5/vendor_perl/$version
6648 case "$vendorlib" in
6650 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
6651 case "$installstyle" in
6652 *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
6653 *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
6656 *) dflt="$vendorlib"
6660 rp='Pathname for the vendor-supplied library files?'
6663 vendorlibexp="$ansexp"
6666 vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"`
6667 : Change installation prefix, if necessary.
6668 if $test X"$prefix" != X"$installprefix"; then
6669 installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
6671 installvendorlib="$vendorlibexp"
6674 case "$vendorprefix" in
6675 '') d_vendorarch="$undef"
6679 *) d_vendorarch="$define"
6680 : determine where vendor-supplied architecture-dependent libraries go.
6681 : vendorlib default is /usr/local/lib/perl5/vendor_perl/$version
6682 : vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname
6683 : vendorlib may have an optional trailing /share.
6684 case "$vendorarch" in
6685 '') dflt=`echo $vendorlib | $sed 's,/share$,,'`
6686 dflt="$dflt/$archname"
6688 *) dflt="$vendorarch" ;;
6691 rp='Pathname for vendor-supplied architecture-dependent files?'
6694 vendorarchexp="$ansexp"
6697 : Change installation prefix, if necessary.
6698 if $test X"$prefix" != X"$installprefix"; then
6699 installvendorarch=`echo $vendorarchexp | sed "s#^$prefix#$installprefix#"`
6701 installvendorarch="$vendorarchexp"
6704 : Final catch-all directories to search
6707 Lastly, you can have perl look in other directories for extensions and
6708 modules in addition to those already specified.
6709 These directories will be searched after
6713 test X"$vendorlib" != "X" && echo ' ' $vendorlib
6714 test X"$vendorarch" != "X" && echo ' ' $vendorarch
6716 case "$otherlibdirs" in
6717 ''|' ') dflt='none' ;;
6718 *) dflt="$otherlibdirs" ;;
6721 Enter a colon-separated set of extra paths to include in perl's @INC
6722 search path, or enter 'none' for no extra paths.
6726 rp='Colon-separated list of additional directories for perl to search?'
6729 ' '|''|none) otherlibdirs=' ' ;;
6730 *) otherlibdirs="$ans" ;;
6732 case "$otherlibdirs" in
6736 set d_perl_otherlibdirs
6739 : Cruising for prototypes
6741 echo "Checking out function prototypes..." >&4
6742 $cat >prototype.c <<'EOCP'
6743 int main(int argc, char *argv[]) {
6746 if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
6747 echo "Your C compiler appears to support function prototypes."
6750 echo "Your C compiler doesn't seem to understand function prototypes."
6757 case "$prototype" in
6759 *) ansi2knr='ansi2knr'
6764 This version of $package can only be compiled by a compiler that
6765 understands function prototypes. Unfortunately, your C compiler
6767 doesn't seem to understand them. Sorry about that.
6769 If GNU cc is available for your system, perhaps you could try that instead.
6771 Eventually, we hope to support building Perl with pre-ANSI compilers.
6772 If you would like to help in that effort, please contact <perlbug@perl.org>.
6774 Aborting Configure now.
6780 : determine where public executables go
6785 rp='Pathname where the public executables will reside?'
6787 if $test "X$ansexp" != "X$binexp"; then
6792 : Change installation prefix, if necessary.
6793 : XXX Bug? -- ignores Configure -Dinstallprefix setting.
6794 if $test X"$prefix" != X"$installprefix"; then
6795 installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"`
6797 installbin="$binexp"
6806 Perl can be built with extra modules or bundles of modules which
6807 will be fetched from the CPAN and installed alongside Perl.
6809 Notice that you will need access to the CPAN; either via the Internet,
6810 or a local copy, for example a CD-ROM or a local CPAN mirror. (You will
6811 be asked later to configure the CPAN.pm module which will in turn do
6812 the installation of the rest of the extra modules or bundles.)
6814 Notice also that if the modules require any external software such as
6815 libraries and headers (the libz library and the zlib.h header for the
6816 Compress::Zlib module, for example) you MUST have any such software
6817 already installed, this configuration process will NOT install such
6820 If this doesn't make any sense to you, just accept the default '$dflt'.
6822 rp='Install any extra modules (y or n)?'
6828 Please list any extra modules or bundles to be installed from CPAN,
6829 with spaces between the names. The names can be in any format the
6830 'install' command of CPAN.pm will understand. (Answer 'none',
6831 without the quotes, to install no extra modules or bundles.)
6841 $rm -f ../extras.lst
6843 *) echo "(Saving the list of extras for later...)"
6844 echo "$extras" > ../extras.lst
6852 : Find perl5.005 or later.
6853 echo "Looking for a previously installed perl5.005 or later... "
6855 '') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do
6856 : Check if this perl is recent and can load a simple module
6857 if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
6860 elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
6870 '') echo "None found. That's ok.";;
6871 *) echo "Using $perl5." ;;
6874 : Determine list of previous versions to include in @INC
6875 $cat > getverlist <<EOPL
6878 \$api_versionstring = "$api_versionstring";
6879 \$version = "$version";
6880 \$stem = "$sitelib_stem";
6881 \$archname = "$archname";
6883 $cat >> getverlist <<'EOPL'
6884 # Can't have leading @ because metaconfig interprets it as a command!
6885 ;@inc_version_list=();
6886 # XXX Redo to do opendir/readdir?
6889 ;@candidates = glob("5.*");
6895 # XXX ToDo: These comparisons must be reworked when two-digit
6896 # subversions come along, so that 5.7.10 compares as greater than
6897 # 5.7.3! By that time, hope that 5.6.x is sufficiently
6898 # widespread that we can use the built-in version vectors rather
6899 # than reinventing them here. For 5.6.0, however, we must
6900 # assume this script will likely be run by 5.005_0x. --AD 1/2000.
6901 foreach $d (@candidates) {
6902 if ($d lt $version) {
6903 if ($d ge $api_versionstring) {
6904 unshift(@inc_version_list, grep { -d } "$d/$archname", $d);
6906 elsif ($d ge "5.005") {
6907 unshift(@inc_version_list, grep { -d } $d);
6911 # Skip newer version. I.e. don't look in
6912 # 5.7.0 if we're installing 5.6.1.
6916 if (@inc_version_list) {
6917 print join(' ', @inc_version_list);
6920 # Blank space to preserve value for next Configure run.
6925 case "$inc_version_list" in
6926 '') if test -x "$perl5$exe_ext"; then
6927 dflt=`$perl5 getverlist`
6932 $undef) dflt='none' ;;
6933 *) eval dflt=\"$inc_version_list\" ;;
6936 ''|' ') dflt=none ;;
6939 5.005) case "$bincompat5005" in
6940 $define|true|[yY]*) ;;
6947 In order to ease the process of upgrading, this version of perl
6948 can be configured to use modules built and installed with earlier
6949 versions of perl that were installed under $prefix. Specify here
6950 the list of earlier versions that this version of perl should check.
6951 If Configure detected no earlier versions of perl installed under
6952 $prefix, then the list will be empty. Answer 'none' to tell perl
6953 to not search earlier versions.
6955 The default should almost always be sensible, so if you're not sure,
6956 just accept the default.
6959 rp='List of earlier versions to include in @INC?'
6962 [Nn]one|''|' ') inc_version_list=' ' ;;
6963 *) inc_version_list="$ans" ;;
6965 case "$inc_version_list" in
6967 inc_version_list_init='0';;
6968 *) inc_version_list_init=`echo $inc_version_list |
6969 $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'`
6974 : determine whether to install perl also as /usr/bin/perl
6977 if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
6979 Many scripts expect perl to be installed as /usr/bin/perl.
6980 I can install the perl you are about to compile also as /usr/bin/perl
6981 (in addition to $installbin/perl).
6983 case "$installusrbinperl" in
6984 "$undef"|[nN]*) dflt='n';;
6987 rp="Do you want to install perl as /usr/bin/perl?"
6990 [yY]*) val="$define";;
6996 set installusrbinperl
6999 : see if dld is available
7003 : see if dlopen exists
7010 : determine which dynamic loading, if any, to compile in
7012 dldir="ext/DynaLoader"
7025 $define) dflt='y' ;;
7028 $define) dflt='y' ;;
7030 : Does a dl_xxx.xs file exist for this operating system
7031 $test -f $rsrc/$dldir/dl_${osname}.xs && dflt='y'
7034 rp="Do you wish to use dynamic loading?"
7041 if $test -f $rsrc/$dldir/dl_${osname}.xs ; then
7042 dflt="$dldir/dl_${osname}.xs"
7043 elif $test "$d_dlopen" = "$define" ; then
7044 dflt="$dldir/dl_dlopen.xs"
7045 elif $test "$i_dld" = "$define" ; then
7046 dflt="$dldir/dl_dld.xs"
7051 *) dflt="$dldir/$dlsrc"
7054 echo "The following dynamic loading files are available:"
7055 : Can not go over to $dldir because getfile has path hard-coded in.
7056 tdir=`pwd`; cd $rsrc; $ls -C $dldir/dl*.xs; cd $tdir
7057 rp="Source file to use for dynamic loading"
7063 dlsrc=`echo $ans | $sed -e 's%.*/\([^/]*\)$%\1%'`
7067 Some systems may require passing special flags to $cc -c to
7068 compile modules that will be used to create a shared library.
7069 To use no flags, say "none".
7072 case "$cccdlflags" in
7073 '') case "$gccversion" in
7074 '') case "$osname" in
7076 next) dflt='none' ;;
7077 irix*) dflt='-KPIC' ;;
7078 svr4*|esix*|solaris|nonstopux) dflt='-KPIC' ;;
7079 sunos) dflt='-pic' ;;
7083 *) case "$osname" in
7084 darwin) dflt='none' ;;
7085 svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
7090 *) dflt="$cccdlflags" ;;
7092 rp="Any special flags to pass to $cc -c to compile shared library modules?"
7095 none) cccdlflags=' ' ;;
7096 *) cccdlflags="$ans" ;;
7101 Some systems use ld to create libraries that can be dynamically loaded,
7102 while other systems (such as those using ELF) use $cc.
7106 '') $cat >try.c <<'EOM'
7107 /* Test for whether ELF binaries are produced */
7112 int i = open("a.out",O_RDONLY);
7115 if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
7116 exit(0); /* succeed (yes, it's ELF) */
7121 if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then
7123 You appear to have ELF support. I'll use $cc to build dynamic libraries.
7127 echo "I'll use ld to build dynamic libraries."
7136 rp="What command should be used to create dynamic libraries?"
7142 Some systems may require passing special flags to $ld to create a
7143 library that can be dynamically loaded. If your ld flags include
7144 -L/other/path options to locate libraries outside your loader's normal
7145 search path, you may need to specify those -L options here as well. To
7146 use no flags, say "none".
7149 case "$lddlflags" in
7150 '') case "$osname" in
7151 beos) dflt='-nostart' ;;
7153 case "$gccversion" in
7154 '') dflt="$dflt +vnocompatwarnings" ;;
7157 linux|irix*) dflt='-shared' ;;
7158 next) dflt='none' ;;
7159 solaris) dflt='-G' ;;
7160 sunos) dflt='-assert nodefinitions' ;;
7161 svr4*|esix*|nonstopux) dflt="-G $ldflags" ;;
7165 *) dflt="$lddlflags" ;;
7168 : Try to guess additional flags to pick up local libraries.
7169 : Be careful not to append to a plain 'none'
7173 for thisflag in $ldflags; do
7178 *) dflt="$dflt $thisflag" ;;
7185 ''|' ') dflt='none' ;;
7188 rp="Any special flags to pass to $ld to create a dynamically loaded library?"
7191 none) lddlflags=' ' ;;
7192 *) lddlflags="$ans" ;;
7197 Some systems may require passing special flags to $cc to indicate that
7198 the resulting executable will use dynamic linking. To use no flags,
7202 case "$ccdlflags" in
7203 '') case "$osname" in
7204 hpux) dflt='-Wl,-E' ;;
7205 linux) dflt='-rdynamic' ;;
7206 next) dflt='none' ;;
7207 sunos) dflt='none' ;;
7211 *) dflt="$ccdlflags" ;;
7213 rp="Any special flags to pass to $cc to use dynamic linking?"
7216 none) ccdlflags=' ' ;;
7217 *) ccdlflags="$ans" ;;
7231 # No dynamic loading being used, so don't bother even to prompt.
7234 *) case "$useshrplib" in
7235 '') case "$osname" in
7236 svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|cygwin*)
7238 also='Building a shared libperl is required for dynamic loading to work on your system.'
7243 also='Building a shared libperl is needed for MAB support.'
7261 The perl executable is normally obtained by linking perlmain.c with
7262 libperl${_a}, any static extensions (usually just DynaLoader), and
7263 any other libraries needed on this system (such as -lm, etc.). Since
7264 your system supports dynamic loading, it is probably possible to build
7265 a shared libperl.$so. If you will have more than one executable linked
7266 to libperl.$so, this will significantly reduce the size of each
7267 executable, but it may have a noticeable affect on performance. The
7268 default is probably sensible for your system.
7272 rp="Build a shared libperl.$so (y/n)"
7276 useshrplib='true' ;;
7277 *) useshrplib='false' ;;
7282 case "$useshrplib" in
7286 # Figure out a good name for libperl.so. Since it gets stored in
7287 # a version-specific architecture-dependent library, the version
7288 # number isn't really that important, except for making cc/ld happy.
7290 # A name such as libperl.so.3.1
7291 majmin="libperl.$so.$patchlevel.$subversion"
7292 # A name such as libperl.so.301
7293 majonly=`echo $patchlevel $subversion |
7294 $awk '{printf "%d%02d", $1, $2}'`
7295 majonly=libperl.$so.$majonly
7296 # I'd prefer to keep the os-specific stuff here to a minimum, and
7297 # rely on figuring it out from the naming of libc.
7298 case "${osname}${osvers}" in
7301 # XXX How handle the --version stuff for MAB?
7303 linux*) # ld won't link with a bare -lperl otherwise.
7306 cygwin*) # include version
7307 dflt=`echo libperl$version | sed -e 's/\./_/g'`$lib_ext
7309 *) # Try to guess based on whether libc has major.minor.
7311 *libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;;
7312 *libc.$so.[0-9]*) dflt=$majonly ;;
7313 *) dflt=libperl.$so ;;
7323 I need to select a good name for the shared libperl. If your system uses
7324 library names with major and minor numbers, then you might want something
7325 like $majmin. Alternatively, if your system uses a single version
7326 number for shared libraries, then you might want to use $majonly.
7327 Or, your system might be quite happy with a simple libperl.$so.
7329 Since the shared libperl will get installed into a version-specific
7330 architecture-dependent directory, the version number of the shared perl
7331 library probably isn't important, so the default should be o.k.
7334 rp='What name do you want to give to the shared libperl?'
7337 echo "Ok, I'll use $libperl"
7340 libperl="libperl${_a}"
7344 # Detect old use of shrpdir via undocumented Configure -Dshrpdir
7348 WARNING: Use of the shrpdir variable for the installation location of
7349 the shared $libperl is not supported. It was never documented and
7350 will not work in this version. Let me (perlbug@perl.org)
7351 know of any problems this may cause.
7357 But your current setting of $shrpdir is
7358 the default anyway, so it's harmless.
7363 Further, your current attempted setting of $shrpdir
7364 conflicts with the value of $archlibexp/CORE
7365 that installperl will use.
7372 # How will the perl executable find the installed shared $libperl?
7373 # Add $xxx to ccdlflags.
7374 # If we can't figure out a command-line option, use $shrpenv to
7375 # set env LD_RUN_PATH. The main perl makefile uses this.
7376 shrpdir=$archlibexp/CORE
7379 if "$useshrplib"; then
7382 # We'll set it in Makefile.SH...
7388 xxx="-Wl,-R$shrpdir"
7390 linux|irix*|dec_osf)
7391 xxx="-Wl,-rpath,$shrpdir"
7394 # next doesn't like the default...
7397 # beos doesn't like the default, either.
7400 # hpux doesn't like the default, either.
7401 tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
7404 tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
7410 # Only add $xxx if it isn't already in ccdlflags.
7411 case " $ccdlflags " in
7413 *) ccdlflags="$ccdlflags $xxx"
7416 Adding $xxx to the flags
7417 passed to $ld so that the perl executable will find the
7418 installed shared $libperl.
7426 # Fix ccdlflags in AIX for building external extensions.
7427 # (For building Perl itself bare -bE:perl.exp is needed,
7428 # Makefile.SH takes care of this.)
7430 aix) ccdlflags="$ccdlflags -bE:$installarchlib/CORE/perl.exp" ;;
7432 # Respect a hint or command-line value.
7434 '') shrpenv="$tmp_shrpenv" ;;
7436 case "$ldlibpthname" in
7437 '') ldlibpthname=LD_LIBRARY_PATH ;;
7438 none) ldlibpthname='' ;;
7441 : determine where manual pages are on this system
7445 syspath='/usr/share/man/man1 /usr/man/man1'
7446 syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
7447 syspath="$syspath /usr/man/u_man/man1"
7448 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
7449 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
7450 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
7451 sysman=`./loc . /usr/man/man1 $syspath`
7454 if $test -d "$sysman"; then
7455 echo "System manual is in $sysman." >&4
7457 echo "Could not find manual pages in source form." >&4
7460 : determine where manual pages go
7461 set man1dir man1dir none
7465 $spackage has manual pages available in source form.
7469 echo "However, you don't have nroff, so they're probably useless to you."
7471 '') man1dir="none";;
7474 echo "If you don't want the manual sources installed, answer 'none'."
7479 lookpath="$prefixexp/share/man/man1"
7480 lookpath="$lookpath $prefixexp/man/man1 $prefixexp/man/l_man/man1"
7481 lookpath="$lookpath $prefixexp/man/p_man/man1"
7482 lookpath="$lookpath $prefixexp/man/u_man/man1"
7483 lookpath="$lookpath $prefixexp/man/man.1"
7485 */?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;;
7486 *) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;;
7496 rp="Where do the main $spackage manual pages (source) go?"
7498 if $test "X$man1direxp" != "X$ansexp"; then
7502 man1direxp="$ansexp"
7508 : Change installation prefix, if necessary.
7509 if $test X"$prefix" != X"$installprefix"; then
7510 installman1dir=`echo $man1direxp | $sed "s#^$prefix#$installprefix#"`
7512 installman1dir="$man1direxp"
7515 : What suffix to use on installed man pages
7522 rp="What suffix should be used for the main $spackage man pages?"
7524 '') case "$man1dir" in
7538 *) dflt="$man1ext";;
7545 : see if we can have long filenames
7547 first=123456789abcdef
7549 if (echo hi >$first) 2>/dev/null; then
7550 if $test -f 123456789abcde; then
7551 echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4
7554 echo 'You can have filenames longer than 14 characters.'>&4
7559 You can't have filenames longer than 14 chars.
7560 You can't even think about them!
7566 $rm -rf 123456789abcde*
7568 : determine where library module manual pages go
7569 set man3dir man3dir none
7573 $spackage has manual pages for many of the library modules.
7579 However, you don't have nroff, so they're probably useless to you.
7582 '') man3dir="none";;
7586 case "$d_flexfnam" in
7589 However, your system can't handle the long file names like File::Basename.3.
7592 '') man3dir="none";;
7596 echo "If you don't want the manual sources installed, answer 'none'."
7597 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
7599 '') dflt=`echo "$man1dir" | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
7600 if $test -d "$privlib/man/man3"; then
7603 WARNING: Previous versions of perl installed man3 pages into
7604 $privlib/man/man3. This version will suggest a
7605 new default of $dflt.
7609 rp='Do you wish to preserve the old behavior?(y/n)'
7612 y*) dflt="$privlib/man/man3" ;;
7617 *) dflt="$man3dir" ;;
7624 rp="Where do the $package library man pages (source) go?"
7627 man3direxp="$ansexp"
7633 : Change installation prefix, if necessary.
7634 if $test X"$prefix" != X"$installprefix"; then
7635 installman3dir=`echo $man3direxp | $sed "s#^$prefix#$installprefix#"`
7637 installman3dir="$man3direxp"
7640 : What suffix to use on installed man pages
7646 rp="What suffix should be used for the $package library man pages?"
7648 '') case "$man3dir" in
7662 *) dflt="$man3ext";;
7669 : see if we have to deal with yellow pages, now NIS.
7670 if $test -d /usr/etc/yp || $test -d /etc/yp; then
7671 if $test -f /usr/etc/nibindd; then
7673 echo "I'm fairly confident you're on a NeXT."
7675 rp='Do you get the hosts file via NetInfo?'
7684 y*) hostcat='nidump hosts .';;
7685 *) case "$hostcat" in
7686 nidump*) hostcat='';;
7696 '') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then
7704 rp='Are you getting the hosts file via yellow pages?'
7707 y*) hostcat='ypcat hosts';;
7708 *) hostcat='cat /etc/hosts';;
7714 '') test -f /etc/hosts && hostcat='cat /etc/hosts';;
7717 '') test -f /etc/group && groupcat='cat /etc/group';;
7720 '') test -f /etc/passwd && passcat='cat /etc/passwd';;
7723 : now get the host name
7725 echo "Figuring out host name..." >&4
7726 case "$myhostname" in
7728 echo 'Maybe "hostname" will work...'
7729 if tans=`sh -c hostname 2>&1` ; then
7737 if $test "$cont"; then
7739 echo 'Oh, dear. Maybe "/etc/systemid" is the key...'
7740 if tans=`cat /etc/systemid 2>&1` ; then
7742 phostname='cat /etc/systemid'
7743 echo "Whadyaknow. Xenix always was a bit strange..."
7746 elif $test -r /etc/systemid; then
7747 echo "(What is a non-Xenix system doing with /etc/systemid?)"
7750 if $test "$cont"; then
7751 echo 'No, maybe "uuname -l" will work...'
7752 if tans=`sh -c 'uuname -l' 2>&1` ; then
7754 phostname='uuname -l'
7756 echo 'Strange. Maybe "uname -n" will work...'
7757 if tans=`sh -c 'uname -n' 2>&1` ; then
7759 phostname='uname -n'
7761 echo 'Oh well, maybe I can mine it out of whoami.h...'
7762 if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then
7763 myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'`
7764 phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h"
7766 case "$myhostname" in
7767 '') echo "Does this machine have an identity crisis or something?"
7770 echo "Well, you said $myhostname before..."
7771 phostname='echo $myhostname';;
7777 : you do not want to know about this
7782 if $test "$myhostname" ; then
7784 rp='Your host name appears to be "'$myhostname'".'" Right?"
7792 : bad guess or no guess
7793 while $test "X$myhostname" = X ; do
7795 rp="Please type the (one word) name of your host:"
7800 : translate upper to lower if necessary
7801 case "$myhostname" in
7803 echo "(Normalizing case in your host name)"
7804 myhostname=`echo $myhostname | ./tr '[A-Z]' '[a-z]'`
7808 case "$myhostname" in
7810 dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"`
7811 myhostname=`expr "X$myhostname" : "X\([^.]*\)\."`
7812 echo "(Trimming domain name from host name--host name is now $myhostname)"
7814 *) case "$mydomain" in
7817 test "X$hostcat" = "Xypcat hosts" &&
7818 ypmatch "$myhostname" hosts 2>/dev/null |\
7819 $sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \
7822 test "X$hostcat" != "X" &&
7823 $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
7824 /[ ]$myhostname[ . ]/p" > hosts
7827 if $test -f hosts; then
7828 $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ }
7829 END { print sum }" hosts` = x1 || tmp_re="[ ]"
7830 dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
7831 hosts | $sort | $uniq | \
7832 $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
7833 case `$echo X$dflt` in
7834 X*\ *) echo "(Several hosts in the database matched hostname)"
7837 X.) echo "(You do not have fully-qualified names in the hosts database)"
7841 echo "(I cannot locate a hosts database anywhere)"
7846 tans=`./loc resolv.conf X /etc /usr/etc`
7847 if $test -f "$tans"; then
7848 echo "(Attempting domain name extraction from $tans)"
7849 dflt=.`$sed -n -e 's/ / /g' \
7850 -e 's/^search *\([^ ]*\).*/\1/p' $tans \
7851 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
7853 .) dflt=.`$sed -n -e 's/ / /g' \
7854 -e 's/^domain *\([^ ]*\).*/\1/p' $tans \
7855 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
7862 .) echo "(No help from resolv.conf either -- attempting clever guess)"
7863 dflt=.`sh -c domainname 2>/dev/null`
7866 .nis.*|.yp.*|.main.*) dflt=`echo $dflt | $sed -e 's/^\.[^.]*//'`;;
7870 case "$dflt$osname" in
7871 .os390) echo "(Attempting domain name extraction from //'SYS1.TCPPARMS(TCPDATA)')"
7872 dflt=.`awk '/^DOMAINORIGIN/ {print $2}' "//'SYS1.TCPPARMS(TCPDATA)'" 2>/dev/null`
7876 .) echo "(Lost all hope -- silly guess then)"
7882 *) dflt="$mydomain";;
7886 rp="What is your domain name?"
7896 : translate upper to lower if necessary
7899 echo "(Normalizing case in your domain name)"
7900 mydomain=`echo $mydomain | ./tr '[A-Z]' '[a-z]'`
7904 : a little sanity check here
7905 case "$phostname" in
7908 case `$phostname | ./tr '[A-Z]' '[a-z]'` in
7909 $myhostname$mydomain|$myhostname) ;;
7911 case "$phostname" in
7913 echo "(That doesn't agree with your whoami.h file, by the way.)"
7916 echo "(That doesn't agree with your $phostname command, by the way.)"
7926 I need to get your e-mail address in Internet format if possible, i.e.
7927 something like user@host.domain. Please answer accurately since I have
7928 no easy means to double check it. The default value provided below
7929 is most probably close to reality but may not be valid from outside
7930 your organization...
7934 while test "$cont"; do
7936 '') dflt="$cf_by@$myhostname$mydomain";;
7937 *) dflt="$cf_email";;
7939 rp='What is your e-mail address?'
7945 rp='Address does not look like an Internet one. Use it anyway?'
7961 If you or somebody else will be maintaining perl at your site, please
7962 fill in the correct e-mail address here so that they may be contacted
7963 if necessary. Currently, the "perlbug" program included with perl
7964 will send mail to this address in addition to perlbug@perl.org. You may
7965 enter "none" for no administrator.
7968 case "$perladmin" in
7969 '') dflt="$cf_email";;
7970 *) dflt="$perladmin";;
7972 rp='Perl administrator e-mail address'
7976 : determine whether to only install version-specific parts.
7979 Do you want to install only the version-specific parts of the perl
7980 distribution? Usually you do *not* want to do this.
7982 case "$versiononly" in
7983 "$define"|[Yy]*|true) dflt='y' ;;
7986 rp="Do you want to install only the version-specific parts of perl?"
7989 [yY]*) val="$define";;
7995 : figure out how to guarantee perl startup
7996 case "$startperl" in
7998 case "$sharpbang" in
8002 I can use the #! construct to start perl on your system. This will
8003 make startup of perl scripts faster, but may cause problems if you
8004 want to share those scripts and perl is not in a standard place
8005 ($binexp/perl) on all your platforms. The alternative is to force
8006 a shell by starting the script with a single ':' character.
8009 case "$versiononly" in
8010 "$define") dflt="$binexp/perl$version";;
8011 *) dflt="$binexp/perl";;
8013 rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
8016 none) startperl=": # use perl";;
8017 *) startperl="#!$ans"
8018 if $test 30 -lt `echo "$ans" | wc -c`; then
8021 WARNING: Some systems limit the #! command to 32 characters.
8022 If you experience difficulty running Perl scripts with #!, try
8023 installing Perl in a directory with a shorter pathname.
8029 *) startperl=": # use perl"
8034 echo "I'll use $startperl to start perl scripts."
8036 : figure best path for perl in scripts
8039 perlpath="$binexp/perl"
8040 case "$startperl" in
8045 I will use the "eval 'exec'" idiom to start Perl on your system.
8046 I can use the full path of your Perl binary for this purpose, but
8047 doing so may cause problems if you want to share those scripts and
8048 Perl is not always in a standard place ($binexp/perl).
8052 rp="What path shall I use in \"eval 'exec'\"?"
8059 case "$startperl" in
8061 *) echo "I'll use $perlpath in \"eval 'exec'\"" ;;
8064 : determine where public executable scripts go
8065 set scriptdir scriptdir
8067 case "$scriptdir" in
8070 : guess some guesses
8071 $test -d /usr/share/scripts && dflt=/usr/share/scripts
8072 $test -d /usr/share/bin && dflt=/usr/share/bin
8073 $test -d /usr/local/script && dflt=/usr/local/script
8074 $test -d /usr/local/scripts && dflt=/usr/local/scripts
8075 $test -d $prefixexp/script && dflt=$prefixexp/script
8079 *) dflt="$scriptdir"
8084 Some installations have a separate directory just for executable scripts so
8085 that they can mount it across multiple architectures but keep the scripts in
8086 one spot. You might, for example, have a subdirectory of /usr/share for this.
8087 Or you might just lump your scripts in with all your other executables.
8091 rp='Where do you keep publicly executable scripts?'
8093 if $test "X$ansexp" != "X$scriptdirexp"; then
8097 scriptdirexp="$ansexp"
8098 : Change installation prefix, if necessary.
8099 if $test X"$prefix" != X"$installprefix"; then
8100 installscript=`echo $scriptdirexp | sed "s#^$prefix#$installprefix#"`
8102 installscript="$scriptdirexp"
8105 : determine where add-on public executables go
8107 '') dflt=$siteprefix/bin ;;
8111 rp='Pathname where the add-on public executables should be installed?'
8114 sitebinexp="$ansexp"
8115 : Change installation prefix, if necessary.
8116 if $test X"$prefix" != X"$installprefix"; then
8117 installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
8119 installsitebin="$sitebinexp"
8122 : define an is-a-typedef? function
8123 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
8125 "") inclist="sys/types.h";;
8127 eval "varval=\$$var";
8131 for inc in $inclist; do
8132 echo "#include <$inc>" >>temp.c;
8134 echo "#ifdef $type" >> temp.c;
8135 echo "printf(\"We have $type\");" >> temp.c;
8136 echo "#endif" >> temp.c;
8137 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
8138 if $contains $type temp.E >/dev/null 2>&1; then
8144 *) eval "$var=\$varval";;
8147 : define an is-a-typedef? function that prompts if the type is not available.
8148 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
8150 "") inclist="sys/types.h";;
8152 eval "varval=\$$var";
8156 for inc in $inclist; do
8157 echo "#include <$inc>" >>temp.c;
8159 echo "#ifdef $type" >> temp.c;
8160 echo "printf(\"We have $type\");" >> temp.c;
8161 echo "#endif" >> temp.c;
8162 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
8164 echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
8165 if $contains $type temp.E >/dev/null 2>&1; then
8166 echo "$type found." >&4;
8169 echo "$type NOT found." >&4;
8175 *) eval "$var=\$varval";;
8178 : see what type lseek is declared as in the kernel
8179 rp="What is the type used for lseek's offset on this system?"
8180 set off_t lseektype long stdio.h sys/types.h
8184 echo "Checking to see how big your file offsets are..." >&4
8186 #include <sys/types.h>
8190 printf("%d\n", (int)sizeof($lseektype));
8195 if eval $compile_ok; then
8196 lseeksize=`$run ./try`
8197 echo "Your file offsets are $lseeksize bytes long."
8201 echo "(I can't seem to compile the test program. Guessing...)"
8202 rp="What is the size of your file offsets (in bytes)?"
8208 : see what type file positions are declared as in the library
8209 rp="What is the type for file position used by fsetpos()?"
8210 set fpos_t fpostype long stdio.h sys/types.h
8215 *_t) zzz="$fpostype" ;;
8218 echo "Checking the size of $zzz..." >&4
8220 #include <sys/types.h>
8223 printf("%d\n", (int)sizeof($fpostype));
8228 if eval $compile_ok; then
8232 echo "(I can't execute the test program--guessing $fpossize.)" >&4
8235 echo "Your $zzz is $fpossize bytes long."
8241 echo "(I can't compile the test program. Guessing...)" >&4
8242 rp="What is the size of your file positions (in bytes)?"
8249 # Backward compatibility (uselfs is deprecated).
8251 "$define"|true|[yY]*)
8254 *** Configure -Duselfs is deprecated, using -Duselargefiles instead.
8256 uselargefiles="$define"
8260 case "$lseeksize:$fpossize" in
8263 You can have files larger than 2 gigabytes.
8266 *) case "$uselargefiles" in
8267 "$undef"|false|[nN]*) dflt='n' ;;
8272 Perl can be built to understand large files (files larger than 2 gigabytes)
8273 on some systems. To do so, Configure can be run with -Duselargefiles.
8275 If this doesn't make any sense to you, just accept the default '$dflt'.
8277 rp='Try to understand large files, if available?'
8280 y|Y) val="$define" ;;
8287 case "$uselargefiles" in
8289 : Look for a hint-file generated 'call-back-unit'. If the
8290 : user has specified that a large files perl is to be built,
8291 : we may need to set or change some other defaults.
8292 if $test -f uselargefiles.cbu; then
8293 echo "Your platform has some specific hints for large file builds, using them..."
8294 . ./uselargefiles.cbu
8296 echo "Rechecking to see how big your file offsets are..." >&4
8298 #include <sys/types.h>
8302 printf("%d\n", (int)sizeof($lseektype));
8307 if eval $compile_ok; then
8308 lseeksize=`$run ./try`
8309 $echo "Your file offsets are now $lseeksize bytes long."
8313 echo "(I can't seem to compile the test program. Guessing...)"
8314 rp="What is the size of your file offsets (in bytes)?"
8319 *_t) zzz="$fpostype" ;;
8322 $echo $n "Rechecking the size of $zzz...$c" >&4
8324 #include <sys/types.h>
8327 printf("%d\n", (int)sizeof($fpostype));
8332 if eval $compile_ok; then
8337 echo "(I can't execute the test program--guessing $fpossize.)" >&4
8340 echo " $fpossize bytes." >&4
8346 echo "(I can't compile the test program. Guessing...)" >&4
8347 rp="What is the size of your file positions (in bytes)?"
8356 case "$vendorprefix" in
8357 '') d_vendorbin="$undef"
8361 *) d_vendorbin="$define"
8362 : determine where vendor-supplied executables go.
8363 case "$vendorbin" in
8364 '') dflt=$vendorprefix/bin ;;
8365 *) dflt="$vendorbin" ;;
8368 rp='Pathname for the vendor-supplied executables directory?'
8371 vendorbinexp="$ansexp"
8374 : Change installation prefix, if necessary.
8375 if $test X"$prefix" != X"$installprefix"; then
8376 installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
8378 installvendorbin="$vendorbinexp"
8381 : see if qgcvt exists
8387 if $test X"$d_longdbl" = X"$define"; then
8389 echo "Checking how to print long doubles..." >&4
8391 if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then
8392 $cat >try.c <<'EOCP'
8393 #include <sys/types.h>
8397 printf("%.3f\n", d);
8401 if eval $compile; then
8405 sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
8406 sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
8407 echo "We will use %f."
8413 if $test X"$sPRIfldbl" = X; then
8414 $cat >try.c <<'EOCP'
8415 #include <sys/types.h>
8418 long double d = 123.456;
8419 printf("%.3Lf\n", d);
8423 if eval $compile; then
8427 sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
8428 sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
8429 echo "We will use %Lf."
8435 if $test X"$sPRIfldbl" = X; then
8436 $cat >try.c <<'EOCP'
8437 #include <sys/types.h>
8440 long double d = 123.456;
8441 printf("%.3llf\n", d);
8445 if eval $compile; then
8449 sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
8450 sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
8451 echo "We will use %llf."
8457 if $test X"$sPRIfldbl" = X; then
8458 $cat >try.c <<'EOCP'
8459 #include <sys/types.h>
8462 long double d = 123.456;
8463 printf("%.3lf\n", d);
8467 if eval $compile; then
8471 sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
8472 sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
8473 echo "We will use %lf."
8479 if $test X"$sPRIfldbl" = X; then
8480 echo "Cannot figure out how to print long doubles." >&4
8482 sSCNfldbl=$sPRIfldbl # expect consistency
8489 case "$sPRIfldbl" in
8490 '') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
8491 d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
8492 d_SCNfldbl="$undef";
8494 *) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
8495 d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
8496 d_SCNfldbl="$define";
8500 : Check how to convert floats to strings.
8502 echo "Checking for an efficient way to convert floats to strings."
8504 case "$uselongdouble" in
8505 "$define") echo "#define USE_LONG_DOUBLE" >>try.c ;;
8507 case "$d_longdbl" in
8508 "$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;;
8510 case "$d_PRIgldbl" in
8511 "$define") echo "#define HAS_PRIgldbl" >>try.c ;;
8515 #define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
8516 char *myname = "gconvert";
8519 #define Gconvert(x,n,t,b) gcvt((x),(n),(b))
8520 char *myname = "gcvt";
8523 #define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
8524 char *myname = "qgcvt";
8525 #define DOUBLETYPE long double
8528 #if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && defined(HAS_PRIgldbl)
8529 #define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x))
8531 #define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
8533 char *myname = "sprintf";
8537 #if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
8538 #define DOUBLETYPE long double
8540 #define DOUBLETYPE double
8546 #define I_STDLIB $i_stdlib
8552 checkit(expect, got)
8556 if (strcmp(expect, got)) {
8557 printf("%s oddity: Expected %s, got %s\n",
8558 myname, expect, got);
8568 /* This must be 1st test on (which?) platform */
8569 /* Alan Burlison <AlanBurlsin@unn.unisys.com> */
8570 Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
8571 checkit("0.1", buf);
8573 Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
8576 Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
8577 checkit("1.1", buf);
8579 Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
8580 checkit("1.01", buf);
8582 Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
8583 checkit("1.001", buf);
8585 Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
8586 checkit("1.0001", buf);
8588 Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
8589 checkit("1.00001", buf);
8591 Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
8592 checkit("1.000001", buf);
8594 Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
8597 Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
8600 /* Some Linux gcvt's give 1.e+5 here. */
8601 Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
8602 checkit("100000", buf);
8604 /* Some Linux gcvt's give -1.e+5 here. */
8605 Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
8606 checkit("-100000", buf);
8608 Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
8609 checkit("123.456", buf);
8611 /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
8612 Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
8613 if (strlen(buf) > 5)
8614 checkit("1e+030", buf); /* for Microsoft */
8616 checkit("1e+30", buf);
8621 case "$d_Gconvert" in
8622 gconvert*) xxx_list='gconvert gcvt sprintf' ;;
8623 gcvt*) xxx_list='gcvt gconvert sprintf' ;;
8624 sprintf*) xxx_list='sprintf gconvert gcvt' ;;
8625 *) xxx_list='gconvert gcvt sprintf' ;;
8628 case "$d_longdbl$uselongdouble$d_PRIgldbl" in
8629 "$define$define$define")
8630 # for long doubles prefer first qgcvt, then sprintf
8631 xxx_list="`echo $xxx_list|sed s/sprintf//`"
8632 xxx_list="sprintf $xxx_list"
8634 "$define") xxx_list="qgcvt $xxx_list" ;;
8639 for xxx_convert in $xxx_list; do
8640 echo "Trying $xxx_convert..."
8642 set try -DTRY_$xxx_convert
8643 if eval $compile; then
8644 echo "$xxx_convert() found." >&4
8646 echo "I'll use $xxx_convert to convert floats into a string." >&4
8649 echo "...But $xxx_convert didn't work as I expected."
8652 echo "$xxx_convert NOT found." >&4
8656 case "$xxx_convert" in
8657 gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
8658 gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
8659 qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
8660 *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
8661 "$define$define$define")
8662 d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;;
8663 *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
8668 : see if _fwalk exists
8672 : Initialize h_fcntl
8675 : Initialize h_sysfile
8678 : access call always available on UNIX
8682 : locate the flags for 'access()'
8686 $cat >access.c <<'EOCP'
8687 #include <sys/types.h>
8692 #include <sys/file.h>
8701 : check sys/file.h first, no particular reason here
8702 if $test `./findhdr sys/file.h` && \
8703 $cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then
8705 echo "<sys/file.h> defines the *_OK access constants." >&4
8706 elif $test `./findhdr fcntl.h` && \
8707 $cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then
8709 echo "<fcntl.h> defines the *_OK access constants." >&4
8710 elif $test `./findhdr unistd.h` && \
8711 $cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then
8712 echo "<unistd.h> defines the *_OK access constants." >&4
8714 echo "I can't find the four *_OK access constants--I'll use mine." >&4
8720 : see if accessx exists
8721 set accessx d_accessx
8724 : see if alarm exists
8728 : see if atolf exists
8732 : see if atoll exists
8736 : Look for GNU-cc style attribute checking
8738 echo "Checking whether your compiler can handle __attribute__ ..." >&4
8739 $cat >attrib.c <<'EOCP'
8741 void croak (char* pat,...) __attribute__((format(printf,1,2),noreturn));
8743 if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
8744 if $contains 'warning' attrib.out >/dev/null 2>&1; then
8745 echo "Your C compiler doesn't fully support __attribute__."
8748 echo "Your C compiler supports __attribute__."
8752 echo "Your C compiler doesn't seem to understand __attribute__ at all."
8759 : see if bcmp exists
8763 : see if bcopy exists
8767 : see if this is a unistd.h system
8768 set unistd.h i_unistd
8771 : see if getpgrp exists
8772 set getpgrp d_getpgrp
8775 case "$d_getpgrp" in
8778 echo "Checking to see which flavor of getpgrp is in use..."
8781 #include <sys/types.h>
8783 # include <unistd.h>
8787 if (getuid() == 0) {
8788 printf("(I see you are running Configure as super-user...)\n");
8792 if (getpgrp(1) == 0)
8801 if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8802 echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
8804 elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8805 echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
8808 echo "I can't seem to compile and run the test program."
8810 xxx="a USG one, i.e. you use getpgrp()."
8812 # SVR4 systems can appear rather BSD-ish.
8815 xxx="a BSD one, i.e. you use getpgrp(pid)."
8819 xxx="probably a USG one, i.e. you use getpgrp()."
8824 echo "Assuming your getpgrp is $xxx" >&4
8833 : see if setpgrp exists
8834 set setpgrp d_setpgrp
8837 case "$d_setpgrp" in
8840 echo "Checking to see which flavor of setpgrp is in use..."
8843 #include <sys/types.h>
8845 # include <unistd.h>
8849 if (getuid() == 0) {
8850 printf("(I see you are running Configure as super-user...)\n");
8854 if (-1 == setpgrp(1, 1))
8857 if (setpgrp() != -1)
8863 if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8864 echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
8866 elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
8867 echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
8870 echo "(I can't seem to compile and run the test program.)"
8872 xxx="a USG one, i.e. you use setpgrp()."
8874 # SVR4 systems can appear rather BSD-ish.
8877 xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)."
8881 xxx="probably a USG one, i.e. you use setpgrp()."
8886 echo "Assuming your setpgrp is $xxx" >&4
8894 : see if bzero exists
8898 : see if signal is declared as pointer to function returning int or void
8900 xxx=`./findhdr signal.h`
8901 $test "$xxx" && $cppstdin $cppminus $cppflags < $xxx >$$.tmp 2>/dev/null
8902 if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
8903 echo "You have int (*signal())() instead of void." >&4
8905 elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
8906 echo "You have void (*signal())()." >&4
8908 elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then
8909 echo "You have int (*signal())() instead of void." >&4
8911 elif $contains 'void.*\*.*sig' $$.tmp >/dev/null 2>&1 ; then
8912 echo "You have void (*signal())()." >&4
8915 case "$d_voidsig" in
8917 echo "I can't determine whether signal handler returns void or int..." >&4
8919 rp="What type does your signal handler return?"
8926 echo "As you already told me, signal handler returns void." >&4
8929 *) echo "As you already told me, signal handler returns int." >&4
8936 case "$d_voidsig" in
8937 "$define") signal_t="void";;
8942 : check for ability to cast large floats to 32-bit ints.
8944 echo 'Checking whether your C compiler can cast large floats to int32.' >&4
8945 if $test "$intsize" -ge 4; then
8952 #include <sys/types.h>
8954 $signal_t blech(s) int s; { exit(3); }
8961 signal(SIGFPE, blech);
8963 /* Don't let compiler optimize the test away. Store the number
8964 in a writable string for gcc to pass to sscanf under HP/UX.
8966 sprintf(str, "2147483647");
8967 sscanf(str, "%lf", &f); /* f = (double) 0x7fffffff; */
8971 /* x86 processors will probably give 0x8000 0000, which is a
8972 sign change. We don't want that. We want to mimic SPARC
8973 behavior here, which is to preserve the sign and give
8976 if (i32 != ($xxx) f)
8982 if eval $compile_ok; then
8986 echo "(I can't seem to compile the test program--assuming it can't)"
8994 echo "Nope, it can't."
9001 : check for ability to cast negative floats to unsigned
9003 echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
9006 #include <sys/types.h>
9008 $signal_t blech(s) int s; { exit(7); }
9009 $signal_t blech_in_list(s) int s; { exit(4); }
9010 unsigned long dummy_long(p) unsigned long p; { return p; }
9011 unsigned int dummy_int(p) unsigned int p; { return p; }
9012 unsigned short dummy_short(p) unsigned short p; { return p; }
9016 unsigned long along;
9018 unsigned short ashort;
9022 /* Frustrate gcc-2.7.2's optimizer which failed this test with
9023 a direct f = -123. assignment. gcc-2.8.0 reportedly
9024 optimized the whole file away
9026 /* Store the number in a writable string for gcc to pass to
9029 sprintf(str, "-123");
9030 sscanf(str, "%lf", &f); /* f = -123.; */
9032 signal(SIGFPE, blech);
9033 along = (unsigned long)f;
9034 aint = (unsigned int)f;
9035 ashort = (unsigned short)f;
9036 if (along != (unsigned long)-123)
9038 if (aint != (unsigned int)-123)
9040 if (ashort != (unsigned short)-123)
9042 sprintf(str, "1073741824.");
9043 sscanf(str, "%lf", &f); /* f = (double)0x40000000; */
9046 along = (unsigned long)f;
9047 if (along != 0x80000000)
9051 along = (unsigned long)f;
9052 if (along != 0x7fffffff)
9056 along = (unsigned long)f;
9057 if (along != 0x80000001)
9061 signal(SIGFPE, blech_in_list);
9062 sprintf(str, "123.");
9063 sscanf(str, "%lf", &f); /* f = 123.; */
9064 along = dummy_long((unsigned long)f);
9065 aint = dummy_int((unsigned int)f);
9066 ashort = dummy_short((unsigned short)f);
9067 if (along != (unsigned long)123)
9069 if (aint != (unsigned int)123)
9071 if (ashort != (unsigned short)123)
9078 if eval $compile_ok; then
9082 echo "(I can't seem to compile the test program--assuming it can't)"
9085 case "$castflags" in
9090 echo "Nope, it can't."
9097 : see if vprintf exists
9099 if set vprintf val -f d_vprintf; eval $csym; $val; then
9100 echo 'vprintf() found.' >&4
9103 #include <varargs.h>
9105 int main() { xxx("foo"); }
9114 exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
9118 if eval $compile && $run ./try; then
9119 echo "Your vsprintf() returns (int)." >&4
9122 echo "Your vsprintf() returns (char*)." >&4
9126 echo 'vprintf() NOT found.' >&4
9137 : see if chown exists
9141 : see if chroot exists
9145 : see if chsize exists
9149 : see if class exists
9153 hasstruct='varname=$1; struct=$2; shift; shift;
9154 while $test $# -ge 2; do
9156 $define) echo "#include <$2>";;
9160 echo "int main () { struct $struct foo; }" >> try.c;
9162 if eval $compile; then
9171 : see if sys/types.h has to be included
9172 set sys/types.h i_systypes
9175 hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
9176 while $test $# -ge 2; do
9178 $define) echo "#include <$2>";;
9182 echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
9184 if eval $compile; then
9195 : see whether socket exists
9197 $echo $n "Hmm... $c" >&4
9198 if set socket val -f d_socket; eval $csym; $val; then
9199 echo "Looks like you have Berkeley networking support." >&4
9201 if set setsockopt val -f; eval $csym; $val; then
9204 echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
9208 if $contains socklib libc.list >/dev/null 2>&1; then
9209 echo "Looks like you have Berkeley networking support." >&4
9211 : we will have to assume that it supports the 4.2 BSD interface
9214 echo "You don't have Berkeley networking in libc$_a..." >&4
9215 if test "X$d_socket" = "X$define"; then
9216 echo "...but you seem to believe that you have sockets." >&4
9218 for net in net socket
9220 if test -f /usr/lib/lib$net$_a; then
9221 ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
9222 $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
9223 if $contains socket libc.list >/dev/null 2>&1; then
9228 echo "...but the Wollongong group seems to have hacked it in." >&4
9229 sockethdr="-I/usr/netinclude"
9232 echo "Found Berkeley sockets interface in lib$net." >& 4
9233 if $contains setsockopt libc.list >/dev/null 2>&1; then
9236 echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
9243 if test "X$d_socket" != "X$define"; then
9244 echo "or anywhere else I see." >&4
9252 : see if socketpair exists
9253 set socketpair d_sockpair
9258 echo "Checking the availability of certain socket constants..." >& 4
9259 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
9260 enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
9262 #include <sys/types.h>
9263 #include <sys/socket.h>
9269 set try; if eval $compile; then
9272 set d_${enum}; eval $setvar
9276 : see if this is a sys/uio.h system
9277 set sys/uio.h i_sysuio
9282 echo "Checking to see if your system supports struct cmsghdr..." >&4
9283 set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
9285 case "$d_cmsghdr_s" in
9286 "$define") echo "Yes, it does." ;;
9287 *) echo "No, it doesn't." ;;
9291 : check for const keyword
9293 echo 'Checking to see if your C compiler knows about "const"...' >&4
9294 $cat >const.c <<'EOCP'
9295 typedef struct spug { int drokk; } spug;
9302 if $cc -c $ccflags const.c >/dev/null 2>&1 ; then
9304 echo "Yup, it does."
9307 echo "Nope, it doesn't."
9312 : see if crypt exists
9314 if set crypt val -f d_crypt; eval $csym; $val; then
9315 echo 'crypt() found.' >&4
9319 cryptlib=`./loc Slibcrypt$_a "" $xlibpth`
9320 if $test -z "$cryptlib"; then
9321 cryptlib=`./loc Mlibcrypt$_a "" $xlibpth`
9325 if $test -z "$cryptlib"; then
9326 cryptlib=`./loc Llibcrypt$_a "" $xlibpth`
9330 if $test -z "$cryptlib"; then
9331 cryptlib=`./loc libcrypt$_a "" $libpth`
9335 if $test -z "$cryptlib"; then
9336 echo 'crypt() NOT found.' >&4
9345 : get csh whereabouts
9347 'csh') val="$undef" ;;
9352 : Respect a hint or command line value for full_csh.
9354 '') full_csh=$csh ;;
9357 : see if cuserid exists
9358 set cuserid d_cuserid
9361 : see if this is a limits.h system
9362 set limits.h i_limits
9365 : see if this is a float.h system
9369 : See if number of significant digits in a double precision number is known
9371 $cat >dbl_dig.c <<EOM
9381 printf("Contains DBL_DIG");
9384 $cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null
9385 if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then
9386 echo "DBL_DIG found." >&4
9389 echo "DBL_DIG NOT found." >&4
9396 hasproto='varname=$1; func=$2; shift; shift;
9397 while $test $# -ge 2; do
9399 $define) echo "#include <$2>";;
9403 $cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
9404 if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
9405 echo "$func() prototype found.";
9408 echo "$func() prototype NOT found.";
9413 $rm -f try.c tryout.c'
9415 : see if dbm.h is available
9416 : see if dbmclose exists
9417 set dbmclose d_dbmclose
9420 case "$d_dbmclose" in
9430 *) set rpcsvc/dbm.h i_rpcsvcdbm
9435 *) echo "We won't be including <dbm.h>"
9445 : see if prototype for dbminit is available
9447 set d_dbminitproto dbminit $i_dbm dbm.h
9450 : see if difftime exists
9451 set difftime d_difftime
9454 : see if this is a dirent system
9456 if xinc=`./findhdr dirent.h`; $test "$xinc"; then
9458 echo "<dirent.h> found." >&4
9461 if xinc=`./findhdr sys/dir.h`; $test "$xinc"; then
9462 echo "<sys/dir.h> found." >&4
9465 xinc=`./findhdr sys/ndir.h`
9467 echo "<dirent.h> NOT found." >&4
9472 : Look for type of directory structure.
9474 $cppstdin $cppflags $cppminus < "$xinc" > try.c
9476 case "$direntrytype" in
9479 $define) guess1='struct dirent' ;;
9480 *) guess1='struct direct' ;;
9483 *) guess1="$direntrytype"
9488 'struct dirent') guess2='struct direct' ;;
9489 *) guess2='struct dirent' ;;
9492 if $contains "$guess1" try.c >/dev/null 2>&1; then
9493 direntrytype="$guess1"
9494 echo "Your directory entries are $direntrytype." >&4
9495 elif $contains "$guess2" try.c >/dev/null 2>&1; then
9496 direntrytype="$guess2"
9497 echo "Your directory entries seem to be $direntrytype." >&4
9499 echo "I don't recognize your system's directory entries." >&4
9500 rp="What type is used for directory entries on this system?"
9508 : see if the directory entry stores field length
9510 $cppstdin $cppflags $cppminus < "$xinc" > try.c
9511 if $contains 'd_namlen' try.c >/dev/null 2>&1; then
9512 echo "Good, your directory entry keeps length information in d_namlen." >&4
9515 echo "Your directory entry does not know about the d_namlen field." >&4
9522 : see if this is an sysdir system
9523 set sys/dir.h i_sysdir
9526 : see if this is an sysndir system
9527 set sys/ndir.h i_sysndir
9534 #$i_dirent I_DIRENT /**/
9535 #$i_sysdir I_SYS_DIR /**/
9536 #$i_sysndir I_SYS_NDIR /**/
9537 #$i_systypes I_SYS_TYPES /**/
9538 #if defined(I_SYS_TYPES)
9539 #include <sys/types.h>
9541 #if defined(I_DIRENT)
9543 #if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
9544 #include <sys/dir.h>
9548 #include <sys/ndir.h>
9552 #include <ndir.h> /* may be wrong in the future */
9554 #include <sys/dir.h>
9560 DIR *dirp = opendir(".");
9561 if (dirfd(dirp) >= 0)
9568 if eval $compile; then
9572 $define) echo "dirfd() found." >&4 ;;
9573 *) echo "dirfd() NOT found." >&4 ;;
9579 : see if dlerror exists
9582 set dlerror d_dlerror
9586 : see if dlfcn is available
9594 On a few systems, the dynamically loaded modules that perl generates and uses
9595 will need a different extension than shared libs. The default will probably
9603 rp='What is the extension of dynamically loaded modules'
9612 : Check if dlsym need a leading underscore
9618 echo "Checking whether your dlsym() needs a leading underscore ..." >&4
9619 $cat >dyna.c <<'EOM'
9628 #include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */
9630 #include <sys/types.h>
9644 int mode = RTLD_LAZY ;
9646 handle = dlopen("./dyna.$dlext", mode) ;
9647 if (handle == NULL) {
9652 symbol = dlsym(handle, "fred") ;
9653 if (symbol == NULL) {
9654 /* try putting a leading underscore */
9655 symbol = dlsym(handle, "_fred") ;
9656 if (symbol == NULL) {
9669 : Call the object file tmp-dyna.o in case dlext=o.
9670 if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
9671 mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
9672 $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
9673 $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
9676 1) echo "Test program failed using dlopen." >&4
9677 echo "Perhaps you should not use dynamic loading." >&4;;
9678 2) echo "Test program failed using dlsym." >&4
9679 echo "Perhaps you should not use dynamic loading." >&4;;
9680 3) echo "dlsym needs a leading underscore" >&4
9682 4) echo "dlsym doesn't need a leading underscore." >&4;;
9685 echo "I can't compile and run the test program." >&4
9686 echo "I'm guessing that dlsym doesn't need a leading underscore." >&4
9691 $rm -f fred fred.? dyna.$dlext dyna.? tmp-dyna.?
9696 : see if prototype for drand48 is available
9698 set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h
9701 : see if dup2 exists
9705 : see if eaccess exists
9706 set eaccess d_eaccess
9709 : see if endgrent exists
9710 set endgrent d_endgrent
9713 : see if endhostent exists
9714 set endhostent d_endhent
9717 : see if endnetent exists
9718 set endnetent d_endnent
9721 : see if endprotoent exists
9722 set endprotoent d_endpent
9725 : see if endpwent exists
9726 set endpwent d_endpwent
9729 : see if endservent exists
9730 set endservent d_endsent
9733 : Locate the flags for 'open()'
9735 $cat >try.c <<'EOCP'
9736 #include <sys/types.h>
9741 #include <sys/file.h>
9752 : check sys/file.h first to get FREAD on Sun
9753 if $test `./findhdr sys/file.h` && \
9754 set try -DI_SYS_FILE && eval $compile; then
9756 echo "<sys/file.h> defines the O_* constants..." >&4
9758 echo "and you have the 3 argument form of open()." >&4
9761 echo "but not the 3 argument form of open(). Oh, well." >&4
9764 elif $test `./findhdr fcntl.h` && \
9765 set try -DI_FCNTL && eval $compile; then
9767 echo "<fcntl.h> defines the O_* constants..." >&4
9769 echo "and you have the 3 argument form of open()." >&4
9772 echo "but not the 3 argument form of open(). Oh, well." >&4
9777 echo "I can't find the O_* constant definitions! You got problems." >&4
9783 : see which of string.h or strings.h is needed
9785 strings=`./findhdr string.h`
9786 if $test "$strings" && $test -r "$strings"; then
9787 echo "Using <string.h> instead of <strings.h>." >&4
9791 strings=`./findhdr strings.h`
9792 if $test "$strings" && $test -r "$strings"; then
9793 echo "Using <strings.h> instead of <string.h>." >&4
9795 echo "No string header found -- You'll surely have problems." >&4
9801 "$undef") strings=`./findhdr strings.h`;;
9802 *) strings=`./findhdr string.h`;;
9805 : check for non-blocking I/O stuff
9806 case "$h_sysfile" in
9807 true) echo "#include <sys/file.h>" > head.c;;
9810 true) echo "#include <fcntl.h>" > head.c;;
9811 *) echo "#include <sys/fcntl.h>" > head.c;;
9816 echo "Figuring out the flag used by open() for non-blocking I/O..." >&4
9817 case "$o_nonblock" in
9820 $cat >>try.c <<'EOCP'
9825 printf("O_NONBLOCK\n");
9829 printf("O_NDELAY\n");
9833 printf("FNDELAY\n");
9840 if eval $compile_ok; then
9841 o_nonblock=`$run ./try`
9842 case "$o_nonblock" in
9843 '') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
9844 *) echo "Seems like we can use $o_nonblock.";;
9847 echo "(I can't compile the test program; pray O_NONBLOCK is right!)"
9850 *) echo "Using $hint value $o_nonblock.";;
9852 $rm -f try try.* .out core
9855 echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4
9861 #include <sys/types.h>
9865 #define MY_O_NONBLOCK $o_nonblock
9866 #ifndef errno /* XXX need better Configure test */
9877 #include <strings.h>
9879 $signal_t blech(x) int x; { exit(3); }
9881 $cat >> try.c <<'EOCP'
9889 pipe(pd); /* Down: child -> parent */
9890 pipe(pu); /* Up: parent -> child */
9893 close(pd[1]); /* Parent reads from pd[0] */
9894 close(pu[0]); /* Parent writes (blocking) to pu[1] */
9896 if (-1 == fcntl(pd[0], F_SETFL, MY_O_NONBLOCK))
9901 signal(SIGALRM, blech);
9903 if ((ret = read(pd[0], buf, 1)) > 0) /* Nothing to read! */
9905 sprintf(string, "%d\n", ret);
9906 write(2, string, strlen(string));
9909 if (errno == EAGAIN) {
9915 if (errno == EWOULDBLOCK)
9916 printf("EWOULDBLOCK\n");
9919 write(pu[1], buf, 1); /* Unblocks child, tell it to close our pipe */
9920 sleep(2); /* Give it time to close our pipe */
9922 ret = read(pd[0], buf, 1); /* Should read EOF */
9924 sprintf(string, "%d\n", ret);
9925 write(3, string, strlen(string));
9929 close(pd[0]); /* We write to pd[1] */
9930 close(pu[1]); /* We read from pu[0] */
9931 read(pu[0], buf, 1); /* Wait for parent to signal us we may continue */
9932 close(pd[1]); /* Pipe pd is now fully closed! */
9933 exit(0); /* Bye bye, thank you for playing! */
9937 if eval $compile_ok; then
9938 echo "$startsh" >mtry
9939 echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
9941 ./mtry >/dev/null 2>&1
9943 0) eagain=`$cat try.out`;;
9944 1) echo "Could not perform non-blocking setting!";;
9945 2) echo "I did a successful read() for something that was not there!";;
9946 3) echo "Hmm... non-blocking I/O does not seem to be working!";;
9947 4) echo "Could not find F_SETFL!";;
9948 *) echo "Something terribly wrong happened during testing.";;
9950 rd_nodata=`$cat try.ret`
9951 echo "A read() system call with no data present returns $rd_nodata."
9952 case "$rd_nodata" in
9955 echo "(That's peculiar, fixing that to be -1.)"
9961 echo "Forcing errno EAGAIN on read() with no data available."
9965 echo "Your read() sets errno to $eagain when no data is available."
9968 status=`$cat try.err`
9970 0) echo "And it correctly returns 0 to signal EOF.";;
9971 -1) echo "But it also returns -1 to signal EOF, so be careful!";;
9972 *) echo "However, your read() returns '$status' on EOF??";;
9975 if test "$status" = "$rd_nodata"; then
9976 echo "WARNING: you can't distinguish between EOF and no data!"
9980 echo "I can't compile the test program--assuming errno EAGAIN will do."
9987 echo "Using $hint value $eagain."
9988 echo "Your read() returns $rd_nodata when no data is present."
9989 case "$d_eofnblk" in
9990 "$define") echo "And you can see EOF because read() returns 0.";;
9991 "$undef") echo "But you can't see EOF status from read() returned value.";;
9993 echo "(Assuming you can't see EOF status from read anyway.)"
9999 $rm -f try try.* .out core head.c mtry
10001 : see if fchdir exists
10002 set fchdir d_fchdir
10005 : see if fchmod exists
10006 set fchmod d_fchmod
10009 : see if fchown exists
10010 set fchown d_fchown
10013 : see if this is an fcntl system
10018 : See if fcntl-based locking works.
10020 #include <stdlib.h>
10021 #include <unistd.h>
10023 #include <signal.h>
10024 $signal_t blech(x) int x; { exit(3); }
10026 #if defined(F_SETLK) && defined(F_SETLKW)
10027 struct flock flock;
10029 fd = open("try.c", O_RDONLY);
10030 flock.l_type = F_RDLCK;
10031 flock.l_whence = SEEK_SET;
10032 flock.l_start = flock.l_len = 0;
10033 signal(SIGALRM, blech);
10035 retval = fcntl(fd, F_SETLK, &flock);
10037 (retval < 0 ? exit(2) : exit(0));
10043 echo "Checking if fcntl-based file locking works... "
10047 if eval $compile_ok; then
10048 if $run ./try; then
10049 echo "Yes, it seems to work."
10052 echo "Nope, it didn't work."
10057 *** I had to forcibly timeout from fcntl(..., F_SETLK, ...).
10058 *** This is (almost) impossible.
10059 *** If your NFS lock daemons are not feeling well, something like
10060 *** this may happen, please investigate. Cannot continue, aborting.
10068 echo "I'm unable to compile the test program, so I'll assume not."
10073 echo "Nope, since you don't even have fcntl()."
10076 set d_fcntl_can_lock
10081 : see if sys/select.h has to be included
10082 set sys/select.h i_sysselct
10085 : see if we should include time.h, sys/time.h, or both
10087 if test "X$timeincl" = X; then
10088 echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
10089 $echo $n "I'm now running the test program...$c"
10090 $cat >try.c <<'EOCP'
10091 #include <sys/types.h>
10096 #ifdef SYSTIMEKERNEL
10099 #include <sys/time.h>
10102 #include <sys/select.h>
10108 struct timeval bar;
10111 struct timezone tzp;
10113 if (foo.tm_sec == foo.tm_sec)
10116 if (bar.tv_sec == bar.tv_sec)
10123 for s_timezone in '-DS_TIMEZONE' ''; do
10125 for s_timeval in '-DS_TIMEVAL' ''; do
10126 for i_systimek in '' '-DSYSTIMEKERNEL'; do
10127 for i_time in '' '-DI_TIME'; do
10128 for i_systime in '-DI_SYSTIME' ''; do
10131 set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
10132 if eval $compile; then
10133 set X $i_time $i_systime $i_systimek $sysselect $s_timeval
10137 $echo $n "Succeeded with $flags$c"
10149 *SYSTIMEKERNEL*) i_systimek="$define"
10150 timeincl=`./findhdr sys/time.h`
10151 echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
10152 *) i_systimek="$undef";;
10155 *I_TIME*) i_time="$define"
10156 timeincl=`./findhdr time.h`" $timeincl"
10157 echo "We'll include <time.h>." >&4;;
10158 *) i_time="$undef";;
10161 *I_SYSTIME*) i_systime="$define"
10162 timeincl=`./findhdr sys/time.h`" $timeincl"
10163 echo "We'll include <sys/time.h>." >&4;;
10164 *) i_systime="$undef";;
10169 : check for fd_set items
10172 Checking to see how well your C compiler handles fd_set and friends ...
10175 #$i_systime I_SYS_TIME
10176 #$i_sysselct I_SYS_SELECT
10177 #$d_socket HAS_SOCKET
10178 #include <sys/types.h>
10180 #include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
10183 #include <sys/time.h>
10185 #ifdef I_SYS_SELECT
10186 #include <sys/select.h>
10195 #if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
10203 if eval $compile; then
10204 d_fds_bits="$define"
10206 echo "Well, your system knows about the normal fd_set typedef..." >&4
10207 if $run ./try; then
10208 echo "and you have the normal fd_set macros (just as I'd expect)." >&4
10209 d_fd_macros="$define"
10212 but not the normal fd_set macros! Gaaack! I'll have to cover for you.
10214 d_fd_macros="$undef"
10218 Hmm, your compiler has some difficulty with fd_set. Checking further...
10221 if eval $compile; then
10222 d_fds_bits="$undef"
10224 echo "Well, your system has some sort of fd_set available..." >&4
10225 if $run ./try; then
10226 echo "and you have the normal fd_set macros." >&4
10227 d_fd_macros="$define"
10230 but not the normal fd_set macros! Gross! More work for me...
10232 d_fd_macros="$undef"
10235 echo "Well, you got zip. That's OK, I can roll my own fd_set stuff." >&4
10237 d_fds_bits="$undef"
10238 d_fd_macros="$undef"
10243 : see if fgetpos exists
10244 set fgetpos d_fgetpos
10247 : see if finite exists
10248 set finite d_finite
10251 : see if finitel exists
10252 set finitel d_finitel
10255 : see if flock exists
10259 : see if this is a sys/file.h system
10264 : do we need to include sys/file.h ?
10268 if $h_sysfile; then
10270 echo "We'll be including <sys/file.h>." >&4
10273 echo "We won't be including <sys/file.h>." >&4
10283 : see if prototype for flock is available
10285 set d_flockproto flock $i_sysfile sys/file.h
10288 : see if fork exists
10292 : see if fp_class exists
10293 set fp_class d_fp_class
10296 : see if pathconf exists
10297 set pathconf d_pathconf
10300 : see if fpathconf exists
10301 set fpathconf d_fpathconf
10304 : see if fpclass exists
10305 set fpclass d_fpclass
10308 : see if fpclassify exists
10309 set fpclassify d_fpclassify
10312 : see if fpclassl exists
10313 set fpclassl d_fpclassl
10317 : check for fpos64_t
10319 echo "Checking to see if you have fpos64_t..." >&4
10322 int main() { fpos64_t x = 7; }
10325 if eval $compile; then
10327 echo "You have fpos64_t."
10330 echo "You do not have fpos64_t."
10331 case "$fpossize" in
10332 8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
10339 : see if frexpl exists
10340 set frexpl d_frexpl
10343 : see if this is a sys/param system
10344 set sys/param.h i_sysparam
10347 : see if this is a sys/mount.h system
10348 set sys/mount.h i_sysmount
10353 echo "Checking to see if your system supports struct fs_data..." >&4
10354 set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
10356 case "$d_fs_data_s" in
10357 "$define") echo "Yes, it does." ;;
10358 *) echo "No, it doesn't." ;;
10361 : see if fseeko exists
10362 set fseeko d_fseeko
10364 case "$longsize" in
10365 8) echo "(Your long is 64 bits, so you could use fseek.)" ;;
10368 : see if fsetpos exists
10369 set fsetpos d_fsetpos
10373 : see if fstatfs exists
10374 set fstatfs d_fstatfs
10378 : see if statvfs exists
10379 set statvfs d_statvfs
10382 : see if fstatvfs exists
10383 set fstatvfs d_fstatvfs
10387 : see if fsync exists
10391 : see if ftello exists
10392 set ftello d_ftello
10394 case "$longsize" in
10395 8) echo "(Your long is 64 bits, so you could use ftell.)" ;;
10398 : see if getcwd exists
10399 set getcwd d_getcwd
10402 : see if getespwnam exists
10403 set getespwnam d_getespwnam
10407 : see if getfsstat exists
10408 set getfsstat d_getfsstat
10411 : see if getgrent exists
10412 set getgrent d_getgrent
10415 : see if gethostbyaddr exists
10416 set gethostbyaddr d_gethbyaddr
10419 : see if gethostbyname exists
10420 set gethostbyname d_gethbyname
10423 : see if gethostent exists
10424 set gethostent d_gethent
10427 : see how we will look up host name
10430 if set gethostname val -f d_gethname; eval $csym; $val; then
10431 echo 'gethostname() found.' >&4
10432 d_gethname="$define"
10435 if set uname val -f d_uname; eval $csym; $val; then
10438 uname() was found, but you're running xenix, and older versions of xenix
10439 have a broken uname(). If you don't really know whether your xenix is old
10440 enough to have a broken system call, use the default answer.
10445 "$define") dflt=n;;
10447 rp='Is your uname() broken?'
10450 n*) d_uname="$define"; call=uname;;
10453 echo 'uname() found.' >&4
10460 case "$d_gethname" in
10461 '') d_gethname="$undef";;
10464 '') d_uname="$undef";;
10466 case "$d_uname$d_gethname" in
10471 Every now and then someone has a $call() that lies about the hostname
10472 but can't be fixed for political or economic reasons. If you wish, I can
10473 pretend $call() isn't there and maybe compute hostname at run-time
10474 thanks to the '$phostname' command.
10477 rp="Shall I ignore $call() from now on?"
10480 y*) d_uname="$undef" d_gethname="$undef"; $echo $n "Okay...$c";;
10483 case "$phostname" in
10484 '') aphostname='';;
10485 *) case "$aphostname" in
10487 *) set X $phostname
10491 file=`./loc $file $file $pth`
10492 aphostname=`echo $file $*`
10497 case "$d_uname$d_gethname" in
10500 case "$phostname" in
10502 echo "There will be no way for $package to get your hostname." >&4;;
10504 echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
10508 case "$d_phostname" in
10509 '') d_phostname="$undef";;
10512 : see if this is a netdb.h system
10513 set netdb.h i_netdb
10516 : see if prototypes for various gethostxxx netdb.h functions are available
10518 set d_gethostprotos gethostent $i_netdb netdb.h
10521 : see if getitimer exists
10522 set getitimer d_getitimer
10525 : see if getlogin exists
10526 set getlogin d_getlogin
10529 : see if getmnt exists
10530 set getmnt d_getmnt
10533 : see if getmntent exists
10534 set getmntent d_getmntent
10537 : see if getnetbyaddr exists
10538 set getnetbyaddr d_getnbyaddr
10541 : see if getnetbyname exists
10542 set getnetbyname d_getnbyname
10545 : see if getnetent exists
10546 set getnetent d_getnent
10549 : see if prototypes for various getnetxxx netdb.h functions are available
10551 set d_getnetprotos getnetent $i_netdb netdb.h
10554 : see if getpagesize exists
10555 set getpagesize d_getpagsz
10559 : see if getprotobyname exists
10560 set getprotobyname d_getpbyname
10563 : see if getprotobynumber exists
10564 set getprotobynumber d_getpbynumber
10567 : see if getprotoent exists
10568 set getprotoent d_getpent
10571 : see if getpgid exists
10572 set getpgid d_getpgid
10575 : see if getpgrp2 exists
10576 set getpgrp2 d_getpgrp2
10579 : see if getppid exists
10580 set getppid d_getppid
10583 : see if getpriority exists
10584 set getpriority d_getprior
10587 : see if prototypes for various getprotoxxx netdb.h functions are available
10589 set d_getprotoprotos getprotoent $i_netdb netdb.h
10592 : see if getprpwnam exists
10593 set getprpwnam d_getprpwnam
10596 : see if getpwent exists
10597 set getpwent d_getpwent
10601 : see if getservbyname exists
10602 set getservbyname d_getsbyname
10605 : see if getservbyport exists
10606 set getservbyport d_getsbyport
10609 : see if getservent exists
10610 set getservent d_getsent
10613 : see if prototypes for various getservxxx netdb.h functions are available
10615 set d_getservprotos getservent $i_netdb netdb.h
10618 : see if getspnam exists
10619 set getspnam d_getspnam
10622 : see if gettimeofday or ftime exists
10623 set gettimeofday d_gettimeod
10625 case "$d_gettimeod" in
10631 val="$undef"; set d_ftime; eval $setvar
10634 case "$d_gettimeod$d_ftime" in
10637 echo 'No ftime() nor gettimeofday() -- timing may be less accurate.' >&4
10641 : see if this is an grp system
10647 xxx=`./findhdr grp.h`
10648 $cppstdin $cppflags $cppminus < $xxx >$$.h
10650 if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then
10662 set d_grpasswd; eval $setvar
10666 : see if hasmntopt exists
10667 set hasmntopt d_hasmntopt
10670 : see if this is a netinet/in.h or sys/in.h system
10671 set netinet/in.h i_niin sys/in.h i_sysin
10674 : see if arpa/inet.h has to be included
10675 set arpa/inet.h i_arpainet
10678 : see if htonl --and friends-- exists
10683 : Maybe they are macros.
10686 $cat >htonl.c <<EOM
10688 #include <sys/types.h>
10689 #$i_niin I_NETINET_IN
10691 #$i_arpainet I_ARPA_INET
10692 #ifdef I_NETINET_IN
10693 #include <netinet/in.h>
10696 #include <sys/in.h>
10699 #include <arpa/inet.h>
10702 printf("Defined as a macro.");
10705 $cppstdin $cppflags $cppminus < htonl.c >htonl.E 2>/dev/null
10706 if $contains 'Defined as a macro' htonl.E >/dev/null 2>&1; then
10708 echo "But it seems to be defined as a macro." >&4
10718 if set index val -f; eval $csym; $val; then
10719 if set strchr val -f d_strchr; eval $csym; $val; then
10720 if $contains strchr "$strings" >/dev/null 2>&1 ; then
10723 echo "strchr() found." >&4
10727 echo "index() found." >&4
10732 echo "index() found." >&4
10735 if set strchr val -f d_strchr; eval $csym; $val; then
10738 echo "strchr() found." >&4
10740 echo "No index() or strchr() found!" >&4
10745 set d_strchr; eval $setvar
10747 set d_index; eval $setvar
10749 : check whether inet_aton exists
10750 set inet_aton d_inetaton
10755 $cat >isascii.c <<'EOCP'
10767 if eval $compile; then
10768 echo "isascii() found." >&4
10771 echo "isascii() NOT found." >&4
10778 : see if isfinite exists
10779 set isfinite d_isfinite
10782 : see if isinf exists
10786 : see if isnan exists
10790 : see if isnanl exists
10791 set isnanl d_isnanl
10794 : see if killpg exists
10795 set killpg d_killpg
10798 : see if lchown exists
10800 $cat > try.c <<'EOCP'
10801 /* System header to define __stub macros and hopefully few prototypes,
10802 which can conflict with char lchown(); below. */
10803 #include <assert.h>
10804 /* Override any gcc2 internal prototype to avoid an error. */
10805 /* We use char because int might match the return type of a gcc2
10806 builtin and then its argument prototype would still apply. */
10809 /* The GNU C library defines this for functions which it implements
10810 to always fail with ENOSYS. Some functions are actually named
10811 something starting with __ and the normal name is an alias. */
10812 #if defined (__stub_lchown) || defined (__stub___lchown)
10820 if eval $compile; then
10821 $echo "lchown() found." >&4
10824 $echo "lchown() NOT found." >&4
10830 : See if number of significant digits in a double precision number is known
10832 $cat >ldbl_dig.c <<EOM
10833 #$i_limits I_LIMITS
10836 #include <limits.h>
10842 printf("Contains LDBL_DIG");
10845 $cppstdin $cppflags $cppminus < ldbl_dig.c >ldbl_dig.E 2>/dev/null
10846 if $contains 'LDBL_DIG' ldbl_dig.E >/dev/null 2>&1; then
10847 echo "LDBL_DIG found." >&4
10850 echo "LDBL_DIG NOT found." >&4
10857 : see if link exists
10861 : see if localeconv exists
10862 set localeconv d_locconv
10865 : see if lockf exists
10869 : see if prototype for lseek is available
10871 set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h
10874 : see if lstat exists
10878 : see if madvise exists
10879 set madvise d_madvise
10882 : see if mblen exists
10886 : see if mbstowcs exists
10887 set mbstowcs d_mbstowcs
10890 : see if mbtowc exists
10891 set mbtowc d_mbtowc
10894 : see if memchr exists
10895 set memchr d_memchr
10898 : see if memcmp exists
10899 set memcmp d_memcmp
10902 : see if memcpy exists
10903 set memcpy d_memcpy
10906 : see if memmove exists
10907 set memmove d_memmove
10910 : see if memset exists
10911 set memset d_memset
10914 : see if mkdir exists
10918 : see if mkdtemp exists
10919 set mkdtemp d_mkdtemp
10922 : see if mkfifo exists
10923 set mkfifo d_mkfifo
10926 : see if mkstemp exists
10927 set mkstemp d_mkstemp
10930 : see if mkstemps exists
10931 set mkstemps d_mkstemps
10934 : see if mktime exists
10935 set mktime d_mktime
10938 : see if this is a sys/mman.h system
10939 set sys/mman.h i_sysmman
10942 : see if mmap exists
10945 : see what shmat returns
10946 : default to something harmless
10948 case "$i_sysmman$d_mmap" in
10950 $cat >mmap.c <<'END'
10951 #include <sys/mman.h>
10954 if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
10959 echo "and it returns ($mmaptype)." >&4
10965 : see if modfl exists
10969 d_modfl_pow32_bug="$undef"
10971 case "$d_longdbl$d_modfl" in
10974 Checking to see whether your modfl() is okay for large values...
10980 long double nv = 4294967303.15;
10986 printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w);
10990 case "$osname:$gccversion" in
10991 aix:) saveccflags="$ccflags"
10992 ccflags="$ccflags -qlongdouble" ;; # to avoid core dump
10995 if eval $compile; then
10998 *" 4294967303.150000 1.150000 4294967302.000000")
10999 echo >&4 "Your modfl() is broken for large values."
11000 d_modfl_pow32_bug="$define"
11002 glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()."
11006 *" 4294967303.150000 0.150000 4294967303.000000")
11007 echo >&4 "Your modfl() seems okay for large values."
11009 *) echo >&4 "I don't understand your modfl() at all."
11013 $rm -f try.* try core core.try.*
11015 echo "I cannot figure out whether your modfl() is okay, assuming it isn't."
11018 case "$osname:$gccversion" in
11019 aix:) ccflags="$saveccflags" ;; # restore
11024 : see if mprotect exists
11025 set mprotect d_mprotect
11028 : see if msgctl exists
11029 set msgctl d_msgctl
11032 : see if msgget exists
11033 set msgget d_msgget
11036 : see if msgsnd exists
11037 set msgsnd d_msgsnd
11040 : see if msgrcv exists
11041 set msgrcv d_msgrcv
11044 : see how much of the 'msg*(2)' library is present.
11047 case "$d_msgctl$d_msgget$d_msgsnd$d_msgrcv" in
11048 *"$undef"*) h_msg=false;;
11052 case "`ipcs 2>&1`" in
11053 "SVID messages"*"not configured"*)
11054 echo "Your $osname does not have the msg*(2) configured." >&4
11057 set msgctl d_msgctl
11059 set msgget d_msgget
11061 set msgsnd d_msgsnd
11063 set msgrcv d_msgrcv
11069 : we could also check for sys/ipc.h ...
11070 if $h_msg && $test `./findhdr sys/msg.h`; then
11071 echo "You have the full msg*(2) library." >&4
11074 echo "You don't have the full msg*(2) library." >&4
11082 echo "Checking to see if your system supports struct msghdr..." >&4
11083 set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h
11085 case "$d_msghdr_s" in
11086 "$define") echo "Yes, it does." ;;
11087 *) echo "No, it doesn't." ;;
11091 : see if msync exists
11095 : see if munmap exists
11096 set munmap d_munmap
11099 : see if nice exists
11103 : see if this is a langinfo.h system
11104 set langinfo.h i_langinfo
11107 : see if nl_langinfo exists
11108 set nl_langinfo d_nl_langinfo
11111 : check for length of character
11113 case "$charsize" in
11115 echo "Checking to see how big your characters are (hey, you never know)..." >&4
11116 $cat >try.c <<'EOCP'
11120 printf("%d\n", (int)sizeof(char));
11125 if eval $compile_ok; then
11129 echo "(I can't seem to compile the test program. Guessing...)"
11136 rp="What is the size of a character (in bytes)?"
11141 : check for volatile keyword
11143 echo 'Checking to see if your C compiler knows about "volatile"...' >&4
11144 $cat >try.c <<'EOCP'
11147 typedef struct _goo_struct goo_struct;
11148 goo_struct * volatile goo = ((goo_struct *)0);
11149 struct _goo_struct {
11154 typedef unsigned short foo_t;
11155 char *volatile foo;
11157 volatile foo_t blech;
11161 if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
11163 echo "Yup, it does."
11166 echo "Nope, it doesn't."
11174 $echo "Choosing the C types to be used for Perl's internal types..." >&4
11176 case "$use64bitint:$d_quad:$quadtype" in
11179 uvtype="$uquadtype"
11184 uvtype="unsigned long"
11190 case "$uselongdouble:$d_longdbl" in
11192 nvtype="long double"
11193 nvsize=$longdblsize
11200 $echo "(IV will be "$ivtype", $ivsize bytes)"
11201 $echo "(UV will be "$uvtype", $uvsize bytes)"
11202 $echo "(NV will be "$nvtype", $nvsize bytes)"
11205 #$i_inttypes I_INTTYPES
11207 #include <inttypes.h>
11212 int8_t i = INT8_MAX;
11213 uint8_t u = UINT8_MAX;
11214 printf("int8_t\n");
11217 int16_t i = INT16_MAX;
11218 uint16_t i = UINT16_MAX;
11219 printf("int16_t\n");
11222 int32_t i = INT32_MAX;
11223 uint32_t u = UINT32_MAX;
11224 printf("int32_t\n");
11230 '') case "$charsize" in
11232 u8type="unsigned char"
11241 if eval $compile; then
11242 case "`$run ./try`" in
11243 int8_t) i8type=int8_t
11253 '') if $test $charsize -ge 1; then
11255 u8type="unsigned char"
11263 '') case "$shortsize" in
11265 u16type="unsigned short"
11273 '') set try -DINT16
11274 if eval $compile; then
11275 case "`$run ./try`" in
11287 '') if $test $shortsize -ge 2; then
11289 u16type="unsigned short"
11297 '') case "$longsize" in
11299 u32type="unsigned long"
11303 *) case "$intsize" in
11305 u32type="unsigned int"
11315 '') set try -DINT32
11316 if eval $compile; then
11317 case "`$run ./try`" in
11329 '') if $test $intsize -ge 4; then
11331 u32type="unsigned int"
11339 '') case "$d_quad:$quadtype" in
11341 i64type="$quadtype"
11342 u64type="$uquadtype"
11350 $echo "Checking how many bits of your UVs your NVs can preserve..." >&4
11351 : volatile so that the compiler has to store it out to memory.
11352 if test X"$d_volatile" = X"$define"; then
11357 #include <sys/types.h>
11358 #include <signal.h>
11360 $volatile int bletched = 0;
11361 $signal_t blech(s) int s; { bletched = 1; }
11366 int n = 8 * $uvsize;
11369 signal(SIGFPE, blech);
11372 for (i = 0; i < n; i++) {
11373 u = u << 1 | ($uvtype)1;
11375 if (($uvtype)d != u)
11379 d = ($nvtype)(u - 1);
11380 if (($uvtype)d != (u - 1))
11388 printf("%d\n", ((i == n) ? -n : i));
11394 d_nv_preserves_uv="$undef"
11395 if eval $compile; then
11396 d_nv_preserves_uv_bits="`$run ./try`"
11398 case "$d_nv_preserves_uv_bits" in
11400 d_nv_preserves_uv_bits=`expr 0 - $d_nv_preserves_uv_bits`
11401 $echo "Your NVs can preserve all $d_nv_preserves_uv_bits bits of your UVs." 2>&1
11402 d_nv_preserves_uv="$define"
11404 [1-9]*) $echo "Your NVs can preserve only $d_nv_preserves_uv_bits bits of your UVs." 2>&1
11405 d_nv_preserves_uv="$undef" ;;
11406 *) $echo "Can't figure out how many bits your NVs preserve." 2>&1
11407 d_nv_preserves_uv_bits="$undef" ;;
11413 : check for off64_t
11415 echo "Checking to see if you have off64_t..." >&4
11417 #include <sys/types.h>
11418 #include <unistd.h>
11419 int main() { off64_t x = 7; }
11422 if eval $compile; then
11424 echo "You have off64_t."
11427 echo "You do not have off64_t."
11428 case "$lseeksize" in
11429 8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
11436 : see if POSIX threads are available
11437 set pthread.h i_pthread
11443 : how to create joinable pthreads
11444 if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
11446 echo "Checking what constant to use for creating joinable pthreads..." >&4
11447 $cat >try.c <<'EOCP'
11448 #include <pthread.h>
11450 int detachstate = JOINABLE;
11453 set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
11454 if eval $compile; then
11455 echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
11456 val="$undef" # Yes, undef.
11457 set d_old_pthread_create_joinable
11460 set old_pthread_create_joinable
11463 set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
11464 if eval $compile; then
11465 echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
11467 set d_old_pthread_create_joinable
11469 val=PTHREAD_CREATE_UNDETACHED
11470 set old_pthread_create_joinable
11473 set try -DJOINABLE=__UNDETACHED
11474 if eval $compile; then
11475 echo "You seem to use __UNDETACHED." >&4
11477 set d_old_pthread_create_joinable
11480 set old_pthread_create_joinable
11483 echo "Egads, nothing obvious found. Guessing that you use 0." >&4
11485 set d_old_pthread_create_joinable
11488 set old_pthread_create_joinable
11495 d_old_pthread_create_joinable="$undef"
11496 old_pthread_create_joinable=""
11499 : see if pause exists
11503 : see if pipe exists
11507 : see if poll exists
11511 : see if readlink exists
11512 set readlink d_readlink
11518 case "$d_readlink" in
11520 if $issymlink /proc/self/exe ; then
11521 $ls -l /proc/self/exe > reflect
11522 if $contains /`basename $ls` reflect >/dev/null 2>&1; then
11523 echo "You have Linux-like /proc/self/exe."
11524 procselfexe='"/proc/self/exe"'
11528 if $issymlink /proc/curproc/file ; then
11529 $ls -l /proc/curproc/file > reflect
11530 if $contains /`basename $ls` reflect >/dev/null 2>&1; then
11531 echo "You have BSD-like /proc/curproc/file."
11532 procselfexe='"/proc/curproc/file"'
11542 : see if pthread_atfork exists
11543 set pthread_atfork d_pthread_atfork
11547 : see whether the various POSIXish _yields exist
11549 #include <pthread.h>
11555 #ifdef PTHREAD_YIELD
11558 #ifdef PTHREAD_YIELD_NULL
11559 pthread_yield(NULL);
11565 : see if sched_yield exists
11566 set try -DSCHED_YIELD
11567 if eval $compile; then
11569 sched_yield='sched_yield()'
11573 case "$usethreads" in
11576 $define) echo 'sched_yield() found.' >&4 ;;
11577 *) echo 'sched_yield() NOT found.' >&4 ;;
11583 : see if pthread_yield exists
11584 set try -DPTHREAD_YIELD
11585 if eval $compile; then
11587 case "$sched_yield" in
11588 '') sched_yield='pthread_yield()' ;;
11591 set try -DPTHREAD_YIELD_NULL
11592 if eval $compile; then
11594 case "$sched_yield" in
11595 '') sched_yield='pthread_yield(NULL)' ;;
11601 case "$usethreads" in
11604 $define) echo 'pthread_yield() found.' >&4 ;;
11605 *) echo 'pthread_yield() NOT found.' >&4 ;;
11609 set d_pthread_yield
11612 case "$sched_yield" in
11613 '') sched_yield=undef ;;
11618 : see if this is a pwd.h system
11624 xxx=`./findhdr pwd.h`
11625 $cppstdin $cppflags $cppminus < $xxx >$$.h
11627 if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
11635 if $contains 'pw_age' $$.h >/dev/null 2>&1; then
11643 if $contains 'pw_change' $$.h >/dev/null 2>&1; then
11651 if $contains 'pw_class' $$.h >/dev/null 2>&1; then
11659 if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
11667 if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
11675 if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
11683 if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
11695 set d_pwquota; eval $setvar
11696 set d_pwage; eval $setvar
11697 set d_pwchange; eval $setvar
11698 set d_pwclass; eval $setvar
11699 set d_pwexpire; eval $setvar
11700 set d_pwcomment; eval $setvar
11701 set d_pwgecos; eval $setvar
11702 set d_pwpasswd; eval $setvar
11706 : see if readdir and friends exist
11707 set readdir d_readdir
11709 set seekdir d_seekdir
11711 set telldir d_telldir
11713 set rewinddir d_rewinddir
11716 : see if readv exists
11720 : see if recvmsg exists
11721 set recvmsg d_recvmsg
11724 : see if rename exists
11725 set rename d_rename
11728 : see if rmdir exists
11732 : see if memory.h is available.
11737 : See if it conflicts with string.h
11743 $cppstdin $cppflags $cppminus < $strings > mem.h
11744 if $contains 'memcpy' mem.h >/dev/null 2>&1; then
11746 echo "We won't be including <memory.h>."
11756 : can bcopy handle overlapping blocks?
11759 case "$d_memmove" in
11760 "$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
11761 *) case "$d_bcopy" in
11763 echo "Checking to see if bcopy() can do overlapping copies..." >&4
11765 #$i_memory I_MEMORY
11766 #$i_stdlib I_STDLIB
11767 #$i_string I_STRING
11768 #$i_unistd I_UNISTD
11770 $cat >>try.c <<'EOCP'
11773 # include <memory.h>
11776 # include <stdlib.h>
11779 # include <string.h>
11781 # include <strings.h>
11784 # include <unistd.h> /* Needed for NetBSD */
11788 char buf[128], abc[128];
11794 /* Copy "abcde..." string to char abc[] so that gcc doesn't
11795 try to store the string in read-only memory. */
11796 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
11798 for (align = 7; align >= 0; align--) {
11799 for (len = 36; len; len--) {
11801 bcopy(abc, b, len);
11802 for (off = 1; off <= len; off++) {
11803 bcopy(b, b+off, len);
11804 bcopy(b+off, b, len);
11805 if (bcmp(b, abc, len))
11814 if eval $compile_ok; then
11815 if ./try 2>/dev/null; then
11816 echo "Yes, it can."
11819 echo "It can't, sorry."
11822 echo "(I can't compile the test program, so we'll assume not...)"
11826 $rm -f try.* try core
11832 : can memcpy handle overlapping blocks?
11835 case "$d_memmove" in
11836 "$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
11837 *) case "$d_memcpy" in
11839 echo "Checking to see if memcpy() can do overlapping copies..." >&4
11841 #$i_memory I_MEMORY
11842 #$i_stdlib I_STDLIB
11843 #$i_string I_STRING
11844 #$i_unistd I_UNISTD
11846 $cat >>try.c <<'EOCP'
11849 # include <memory.h>
11852 # include <stdlib.h>
11855 # include <string.h>
11857 # include <strings.h>
11860 # include <unistd.h> /* Needed for NetBSD */
11864 char buf[128], abc[128];
11870 /* Copy "abcde..." string to char abc[] so that gcc doesn't
11871 try to store the string in read-only memory. */
11872 memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36);
11874 for (align = 7; align >= 0; align--) {
11875 for (len = 36; len; len--) {
11877 memcpy(b, abc, len);
11878 for (off = 1; off <= len; off++) {
11879 memcpy(b+off, b, len);
11880 memcpy(b, b+off, len);
11881 if (memcmp(b, abc, len))
11890 if eval $compile_ok; then
11891 if ./try 2>/dev/null; then
11892 echo "Yes, it can."
11895 echo "It can't, sorry."
11898 echo "(I can't compile the test program, so we'll assume not...)"
11902 $rm -f try.* try core
11908 : can memcmp be trusted to compare relative magnitude?
11910 case "$d_memcmp" in
11913 echo "Checking if your memcmp() can compare relative magnitude..." >&4
11915 #$i_memory I_MEMORY
11916 #$i_stdlib I_STDLIB
11917 #$i_string I_STRING
11918 #$i_unistd I_UNISTD
11920 $cat >>try.c <<'EOCP'
11923 # include <memory.h>
11926 # include <stdlib.h>
11929 # include <string.h>
11931 # include <strings.h>
11934 # include <unistd.h> /* Needed for NetBSD */
11940 if ((a < b) && memcmp(&a, &b, 1) < 0)
11946 if eval $compile_ok; then
11947 if $run ./try 2>/dev/null; then
11948 echo "Yes, it can."
11951 echo "No, it can't (it uses signed chars)."
11954 echo "(I can't compile the test program, so we'll assume not...)"
11958 $rm -f try.* try core
11962 : see if prototype for sbrk is available
11964 set d_sbrkproto sbrk $i_unistd unistd.h
11967 : see if select exists
11968 set select d_select
11971 : see if semctl exists
11972 set semctl d_semctl
11975 : see if semget exists
11976 set semget d_semget
11979 : see if semop exists
11983 : see how much of the 'sem*(2)' library is present.
11986 case "$d_semctl$d_semget$d_semop" in
11987 *"$undef"*) h_sem=false;;
11991 case "`ipcs 2>&1`" in
11992 "SVID messages"*"not configured"*)
11993 echo "Your $osname does not have the sem*(2) configured." >&4
11996 set semctl d_semctl
11998 set semget d_semget
12006 : we could also check for sys/ipc.h ...
12007 if $h_sem && $test `./findhdr sys/sem.h`; then
12008 echo "You have the full sem*(2) library." >&4
12011 echo "You don't have the full sem*(2) library." >&4
12017 : see whether sys/sem.h defines union semun
12019 $cat > try.c <<'END'
12020 #include <sys/types.h>
12021 #include <sys/ipc.h>
12022 #include <sys/sem.h>
12023 int main () { union semun semun; semun.buf = 0; }
12026 if eval $compile; then
12027 echo "You have union semun in <sys/sem.h>." >&4
12030 echo "You do not have union semun in <sys/sem.h>." >&4
12033 $rm -f try try.c try.h
12037 : see how to do semctl IPC_STAT
12040 : see whether semctl IPC_STAT can use union semun
12045 # define S_IRUSR S_IREAD
12046 # define S_IWUSR S_IWRITE
12047 # define S_IXUSR S_IEXEC
12049 # define S_IRUSR 0400
12050 # define S_IWUSR 0200
12051 # define S_IXUSR 0100
12053 # define S_IRGRP (S_IRUSR>>3)
12054 # define S_IWGRP (S_IWUSR>>3)
12055 # define S_IXGRP (S_IXUSR>>3)
12056 # define S_IROTH (S_IRUSR>>6)
12057 # define S_IWOTH (S_IWUSR>>6)
12058 # define S_IXOTH (S_IXUSR>>6)
12061 # define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
12062 # define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
12063 # define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
12068 #include <sys/types.h>
12069 #include <sys/ipc.h>
12070 #include <sys/sem.h>
12071 #include <sys/stat.h>
12078 #$d_union_semun HAS_UNION_SEMUN
12081 #ifndef HAS_UNION_SEMUN
12084 struct semid_ds *buf;
12085 unsigned short *array;
12091 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
12092 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
12094 struct semid_ds argbuf;
12097 st = semctl(sem, 0, IPC_STAT, arg);
12101 # endif /* IPC_STAT */
12102 printf("semctl IPC_STAT failed: errno = %d\n", errno);
12104 if (semctl(sem, 0, IPC_RMID, arg) != 0)
12105 # endif /* IPC_RMID */
12106 printf("semctl IPC_RMID failed: errno = %d\n", errno);
12108 #endif /* IPC_PRIVATE && ... */
12109 printf("semget failed: errno = %d\n", errno);
12115 if eval $compile; then
12118 semun) val="$define" ;;
12124 case "$d_semctl_semun" in
12126 echo "You can use union semun for semctl IPC_STAT." >&4
12129 *) echo "You cannot use union semun for semctl IPC_STAT." >&4
12134 : see whether semctl IPC_STAT can use struct semid_ds pointer
12135 $cat > try.c <<'END'
12136 #include <sys/types.h>
12137 #include <sys/ipc.h>
12138 #include <sys/sem.h>
12139 #include <sys/stat.h>
12147 struct semid_ds arg;
12150 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
12151 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
12154 st = semctl(sem, 0, IPC_STAT, &arg);
12156 printf("semid_ds\n");
12158 # endif /* IPC_STAT */
12159 printf("semctl IPC_STAT failed: errno = %d\n", errno);
12161 if (semctl(sem, 0, IPC_RMID, &arg) != 0)
12162 # endif /* IPC_RMID */
12163 printf("semctl IPC_RMID failed: errno = %d\n", errno);
12165 #endif /* IPC_PRIVATE && ... */
12166 printf("semget failed: errno = %d\n", errno);
12173 if eval $compile; then
12176 semid_ds) val="$define" ;;
12180 set d_semctl_semid_ds
12182 case "$d_semctl_semid_ds" in
12184 echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4
12186 *) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
12193 # We do not have the full sem*(2) library, so assume we can not
12199 set d_semctl_semid_ds
12204 : see if sendmsg exists
12205 set sendmsg d_sendmsg
12208 : see if setegid exists
12209 set setegid d_setegid
12212 : see if seteuid exists
12213 set seteuid d_seteuid
12216 : see if setgrent exists
12217 set setgrent d_setgrent
12220 : see if sethostent exists
12221 set sethostent d_sethent
12224 : see if setitimer exists
12225 set setitimer d_setitimer
12228 : see if setlinebuf exists
12229 set setlinebuf d_setlinebuf
12232 : see if setlocale exists
12233 set setlocale d_setlocale
12236 : see if setnetent exists
12237 set setnetent d_setnent
12240 : see if setprotoent exists
12241 set setprotoent d_setpent
12244 : see if setpgid exists
12245 set setpgid d_setpgid
12248 : see if setpgrp2 exists
12249 set setpgrp2 d_setpgrp2
12252 : see if setpriority exists
12253 set setpriority d_setprior
12256 : see if setproctitle exists
12257 set setproctitle d_setproctitle
12260 : see if setpwent exists
12261 set setpwent d_setpwent
12264 : see if setregid exists
12265 set setregid d_setregid
12267 set setresgid d_setresgid
12270 : see if setreuid exists
12271 set setreuid d_setreuid
12273 set setresuid d_setresuid
12276 : see if setrgid exists
12277 set setrgid d_setrgid
12280 : see if setruid exists
12281 set setruid d_setruid
12284 : see if setservent exists
12285 set setservent d_setsent
12288 : see if setsid exists
12289 set setsid d_setsid
12292 : see if setvbuf exists
12293 set setvbuf d_setvbuf
12296 : see if sfio.h is available
12301 : see if sfio library is available
12312 : Ok, but do we want to use it.
12316 true|$define|[yY]*) dflt='y';;
12319 echo "$package can use the sfio library, but it is experimental."
12320 case "$useperlio" in
12322 echo "For sfio also the PerlIO abstraction layer is needed."
12323 echo "Earlier you said you wouldn't want that."
12326 rp="You seem to have sfio available, do you want to try using it?"
12329 y|Y) echo "Ok, turning on both sfio and PerlIO, then."
12330 useperlio="$define"
12333 *) echo "Ok, avoiding sfio this time. I'll use stdio instead."
12338 *) case "$usesfio" in
12339 true|$define|[yY]*)
12340 echo "Sorry, cannot find sfio on this machine." >&4
12341 echo "Ignoring your setting of usesfio=$usesfio." >&4
12350 $define) usesfio='true';;
12351 *) usesfio='false';;
12355 *) : Remove sfio from list of libraries to use
12358 echo "Removing unneeded -lsfio from library list" >&4
12359 set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
12362 echo "libs = $libs" >&4
12369 : see if shmctl exists
12370 set shmctl d_shmctl
12373 : see if shmget exists
12374 set shmget d_shmget
12377 : see if shmat exists
12380 : see what shmat returns
12383 $cat >shmat.c <<'END'
12384 #include <sys/shm.h>
12387 if $cc $ccflags -c shmat.c >/dev/null 2>&1; then
12392 echo "and it returns ($shmattype)." >&4
12393 : see if a prototype for shmat is available
12394 xxx=`./findhdr sys/shm.h`
12395 $cppstdin $cppflags $cppminus < $xxx > shmat.c 2>/dev/null
12396 if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
12407 set d_shmatprototype
12410 : see if shmdt exists
12414 : see how much of the 'shm*(2)' library is present.
12417 case "$d_shmctl$d_shmget$d_shmat$d_shmdt" in
12418 *"$undef"*) h_shm=false;;
12422 case "`ipcs 2>&1`" in
12423 "SVID shared memory"*"not configured"*)
12424 echo "Your $osname does not have the shm*(2) configured." >&4
12427 set shmctl d_shmctl
12429 set shmget d_shmget
12439 : we could also check for sys/ipc.h ...
12440 if $h_shm && $test `./findhdr sys/shm.h`; then
12441 echo "You have the full shm*(2) library." >&4
12444 echo "You don't have the full shm*(2) library." >&4
12451 : see if we have sigaction
12452 if set sigaction val -f d_sigaction; eval $csym; $val; then
12453 echo 'sigaction() found.' >&4
12454 $cat > try.c <<'EOP'
12456 #include <sys/types.h>
12457 #include <signal.h>
12460 struct sigaction act, oact;
12462 oact.sa_handler = 0;
12463 /* so that act and oact are used */
12464 exit(act.sa_flags == 0 && oact.sa_handler == 0);
12468 if eval $compile_ok; then
12471 echo "But you don't seem to have a useable struct sigaction." >&4
12475 echo 'sigaction NOT found.' >&4
12478 set d_sigaction; eval $setvar
12479 $rm -f try try$_o try.c
12481 : see if sigprocmask exists
12482 set sigprocmask d_sigprocmask
12485 : see if sigsetjmp exists
12487 case "$d_sigsetjmp" in
12489 $cat >try.c <<'EOP'
12490 #include <setjmp.h>
12495 if (sigsetjmp(env,1))
12498 siglongjmp(env, 1);
12503 if eval $compile; then
12504 if $run ./try >/dev/null 2>&1; then
12505 echo "POSIX sigsetjmp found." >&4
12509 Uh-Oh! You have POSIX sigsetjmp and siglongjmp, but they do not work properly!!
12515 echo "sigsetjmp not found." >&4
12519 *) val="$d_sigsetjmp"
12520 case "$d_sigsetjmp" in
12521 $define) echo "POSIX sigsetjmp found." >&4;;
12522 $undef) echo "sigsetjmp not found." >&4;;
12530 : see if sockatmark exists
12531 set sockatmark d_sockatmark
12534 : see if prototype for sockatmark is available
12536 set d_sockatmarkproto sockatmark $d_socket sys/socket.h
12539 : see if socks5_init exists
12540 set socks5_init d_socks5_init
12543 : see if prototype for setresgid is available
12545 set d_sresgproto setresgid $i_unistd unistd.h
12548 : see if prototype for setresuid is available
12550 set d_sresuproto setresuid $i_unistd unistd.h
12553 : see if sys/stat.h is available
12554 set sys/stat.h i_sysstat
12558 : see if stat knows about block sizes
12560 echo "Checking to see if your struct stat has st_blocks field..." >&4
12561 set d_statblks stat st_blocks $i_sysstat sys/stat.h
12565 : see if this is a sys/vfs.h system
12566 set sys/vfs.h i_sysvfs
12570 : see if this is a sys/statfs.h system
12571 set sys/statfs.h i_sysstatfs
12576 echo "Checking to see if your system supports struct statfs..." >&4
12577 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
12579 case "$d_statfs_s" in
12580 "$define") echo "Yes, it does." ;;
12581 *) echo "No, it doesn't." ;;
12586 : see if struct statfs knows about f_flags
12587 case "$d_statfs_s" in
12590 echo "Checking to see if your struct statfs has f_flags field..." >&4
12591 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
12595 set d_statfs_f_flags
12599 case "$d_statfs_f_flags" in
12600 "$define") echo "Yes, it does." ;;
12601 *) echo "No, it doesn't." ;;
12604 : see if _ptr and _cnt from stdio act std
12607 if $contains '_lbfsize' `./findhdr stdio.h` >/dev/null 2>&1 ; then
12608 echo "(Looks like you have stdio.h from BSD.)"
12609 case "$stdio_ptr" in
12610 '') stdio_ptr='((fp)->_p)'
12613 *) ptr_lval=$d_stdio_ptr_lval;;
12615 case "$stdio_cnt" in
12616 '') stdio_cnt='((fp)->_r)'
12619 *) cnt_lval=$d_stdio_cnt_lval;;
12621 case "$stdio_base" in
12622 '') stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)';;
12624 case "$stdio_bufsiz" in
12625 '') stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)';;
12627 elif $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then
12628 echo "(Looks like you have stdio.h from Linux.)"
12629 case "$stdio_ptr" in
12630 '') stdio_ptr='((fp)->_IO_read_ptr)'
12633 *) ptr_lval=$d_stdio_ptr_lval;;
12635 case "$stdio_cnt" in
12636 '') stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
12639 *) cnt_lval=$d_stdio_cnt_lval;;
12641 case "$stdio_base" in
12642 '') stdio_base='((fp)->_IO_read_base)';;
12644 case "$stdio_bufsiz" in
12645 '') stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)';;
12648 case "$stdio_ptr" in
12649 '') stdio_ptr='((fp)->_ptr)'
12652 *) ptr_lval=$d_stdio_ptr_lval;;
12654 case "$stdio_cnt" in
12655 '') stdio_cnt='((fp)->_cnt)'
12658 *) cnt_lval=$d_stdio_cnt_lval;;
12660 case "$stdio_base" in
12661 '') stdio_base='((fp)->_base)';;
12663 case "$stdio_bufsiz" in
12664 '') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';;
12668 : test whether _ptr and _cnt really work
12669 echo "Checking how std your stdio is..." >&4
12672 #define FILE_ptr(fp) $stdio_ptr
12673 #define FILE_cnt(fp) $stdio_cnt
12675 FILE *fp = fopen("try.c", "r");
12678 18 <= FILE_cnt(fp) &&
12679 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
12687 if eval $compile && $to try.c; then
12688 if $run ./try; then
12689 echo "Your stdio acts pretty std."
12692 echo "Your stdio isn't very std."
12695 echo "Your stdio doesn't appear very std."
12701 : Can _ptr be used as an lvalue?
12702 case "$d_stdstdio$ptr_lval" in
12703 $define$define) val=$define ;;
12706 set d_stdio_ptr_lval
12709 : Can _cnt be used as an lvalue?
12710 case "$d_stdstdio$cnt_lval" in
12711 $define$define) val=$define ;;
12714 set d_stdio_cnt_lval
12718 : test whether setting _ptr sets _cnt as a side effect
12719 d_stdio_ptr_lval_sets_cnt="$undef"
12720 d_stdio_ptr_lval_nochange_cnt="$undef"
12721 case "$d_stdio_ptr_lval$d_stdstdio" in
12723 echo "Checking to see what happens if we set the stdio ptr..." >&4
12726 /* Can we scream? */
12727 /* Eat dust sed :-) */
12728 /* In the buffer space, no one can hear you scream. */
12729 #define FILE_ptr(fp) $stdio_ptr
12730 #define FILE_cnt(fp) $stdio_cnt
12731 #include <sys/types.h>
12733 FILE *fp = fopen("try.c", "r");
12738 puts("Fail even to read");
12741 c = getc(fp); /* Read away the first # */
12743 puts("Fail even to read");
12747 18 <= FILE_cnt(fp) &&
12748 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
12750 puts("Fail even to read");
12753 ptr = (char*) FILE_ptr(fp);
12754 cnt = (size_t)FILE_cnt(fp);
12756 FILE_ptr(fp) += 42;
12758 if ((char*)FILE_ptr(fp) != (ptr + 42)) {
12759 printf("Fail ptr check %p != %p", FILE_ptr(fp), (ptr + 42));
12762 if (FILE_cnt(fp) <= 20) {
12763 printf ("Fail (<20 chars to test)");
12766 if (strncmp(FILE_ptr(fp), "Eat dust sed :-) */\n", 20) != 0) {
12767 puts("Fail compare");
12770 if (cnt == FILE_cnt(fp)) {
12771 puts("Pass_unchanged");
12774 if (FILE_cnt(fp) == (cnt - 42)) {
12775 puts("Pass_changed");
12778 printf("Fail count was %d now %d\n", cnt, FILE_cnt(fp));
12784 if eval $compile && $to try.c; then
12785 case `$run ./try` in
12787 echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
12788 d_stdio_ptr_lval_sets_cnt="$define" ;;
12790 echo "Increasing ptr in your stdio leaves cnt unchanged. Good." >&4
12791 d_stdio_ptr_lval_nochange_cnt="$define" ;;
12793 echo "Increasing ptr in your stdio didn't do exactly what I expected. We'll not be doing that then." >&4 ;;
12795 echo "It appears attempting to set ptr in your stdio is a bad plan." >&4 ;;
12798 echo "It seems we can't set ptr in your stdio. Nevermind." >&4
12804 : see if _base is also standard
12806 case "$d_stdstdio" in
12810 #define FILE_base(fp) $stdio_base
12811 #define FILE_bufsiz(fp) $stdio_bufsiz
12813 FILE *fp = fopen("try.c", "r");
12816 19 <= FILE_bufsiz(fp) &&
12817 strncmp(FILE_base(fp), "#include <stdio.h>\n", 19) == 0
12824 if eval $compile && $to try.c; then
12825 if $run ./try; then
12826 echo "And its _base field acts std."
12829 echo "But its _base field isn't std."
12832 echo "However, it seems to be lacking the _base field."
12841 Checking how to access stdio streams by file descriptor number...
12843 case "$stdio_stream_array" in
12844 '') $cat >try.c <<EOCP
12847 if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
12851 for s in _iob __iob __sF
12853 set try -DSTDIO_STREAM_ARRAY=$s
12854 if eval $compile; then
12855 case "`$run ./try`" in
12856 yes) stdio_stream_array=$s; break ;;
12860 $rm -f try.* try$exe_ext
12862 case "$stdio_stream_array" in
12864 I can't figure out how to access stdio streams by file descriptor number.
12866 d_stdio_stream_array="$undef"
12869 You can access stdio streams by file descriptor number by the $stdio_stream_array array.
12871 d_stdio_stream_array="$define"
12875 : see if strcoll exists
12876 set strcoll d_strcoll
12879 : check for structure copying
12881 echo "Checking to see if your C compiler can copy structs..." >&4
12882 $cat >try.c <<'EOCP'
12892 if $cc -c try.c >/dev/null 2>&1 ; then
12894 echo "Yup, it can."
12897 echo "Nope, it can't."
12903 : see if strerror and/or sys_errlist[] exist
12905 if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then
12906 if set strerror val -f d_strerror; eval $csym; $val; then
12907 echo 'strerror() found.' >&4
12908 d_strerror="$define"
12909 d_strerrm='strerror(e)'
12910 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12911 echo "(You also have sys_errlist[], so we could roll our own strerror.)"
12912 d_syserrlst="$define"
12914 echo "(Since you don't have sys_errlist[], sterror() is welcome.)"
12915 d_syserrlst="$undef"
12917 elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \
12918 $contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
12919 echo 'strerror() found in string header.' >&4
12920 d_strerror="$define"
12921 d_strerrm='strerror(e)'
12922 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12923 echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
12924 d_syserrlst="$define"
12926 echo "(You don't appear to have any sys_errlist[], how can this be?)"
12927 d_syserrlst="$undef"
12929 elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12930 echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
12931 d_strerror="$undef"
12932 d_syserrlst="$define"
12933 d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
12935 echo 'strerror() and sys_errlist[] NOT found.' >&4
12936 d_strerror="$undef"
12937 d_syserrlst="$undef"
12938 d_strerrm='"unknown"'
12942 : see if strftime exists
12943 set strftime d_strftime
12946 : see if strtod exists
12947 set strtod d_strtod
12950 : see if strtol exists
12951 set strtol d_strtol
12954 : see if strtold exists
12955 set strtold d_strtold
12958 : see if strtoll exists
12959 set strtoll d_strtoll
12962 case "$d_longlong-$d_strtoll" in
12965 Checking whether your strtoll() works okay...
12967 $cat >try.c <<'EOCP'
12970 #define strtoll __strtoll
12973 #define strtoll _strtoll
12976 extern long long int strtoll(char *s, char **, int);
12977 static int bad = 0;
12978 int check(char *s, long long ell, int een) {
12981 gll = strtoll(s, 0, 10);
12982 if (!((gll == ell) && (errno == een)))
12986 check(" 1", 1LL, 0);
12987 check(" 0", 0LL, 0);
12988 check("-1", -1LL, 0);
12989 check("-9223372036854775808", -9223372036854775808LL, 0);
12990 check("-9223372036854775808", -9223372036854775808LL, 0);
12991 check(" 9223372036854775807", 9223372036854775807LL, 0);
12992 check("-9223372036854775808", -9223372036854775808LL, 0);
12993 check(" 9223372036854775808", 9223372036854775807LL, ERANGE);
12994 check("-9223372036854775809", -9223372036854775808LL, ERANGE);
13000 if eval $compile; then
13003 ok) echo "Your strtoll() seems to be working okay." ;;
13005 Your strtoll() doesn't seem to be working okay.
13011 echo "(I can't seem to compile the test program--assuming it doesn't)"
13017 : see if strtoq exists
13018 set strtoq d_strtoq
13021 : see if strtoul exists
13022 set strtoul d_strtoul
13025 case "$d_strtoul" in
13028 Checking whether your strtoul() works okay...
13030 $cat >try.c <<'EOCP'
13033 extern unsigned long int strtoul(char *s, char **, int);
13034 static int bad = 0;
13035 void check(char *s, unsigned long eul, int een) {
13038 gul = strtoul(s, 0, 10);
13039 if (!((gul == eul) && (errno == een)))
13043 check(" 1", 1L, 0);
13044 check(" 0", 0L, 0);
13046 case "$longsize" in
13048 $cat >>try.c <<'EOCP'
13049 check("18446744073709551615", 18446744073709551615UL, 0);
13050 check("18446744073709551616", 18446744073709551615UL, ERANGE);
13051 #if 0 /* strtoul() for /^-/ strings is undefined. */
13052 check("-1", 18446744073709551615UL, 0);
13053 check("-18446744073709551614", 2, 0);
13054 check("-18446744073709551615", 1, 0);
13055 check("-18446744073709551616", 18446744073709551615UL, ERANGE);
13056 check("-18446744073709551617", 18446744073709551615UL, ERANGE);
13061 $cat >>try.c <<'EOCP'
13062 check("4294967295", 4294967295UL, 0);
13063 check("4294967296", 4294967295UL, ERANGE);
13064 #if 0 /* strtoul() for /^-/ strings is undefined. */
13065 check("-1", 4294967295UL, 0);
13066 check("-4294967294", 2, 0);
13067 check("-4294967295", 1, 0);
13068 check("-4294967296", 4294967295UL, ERANGE);
13069 check("-4294967297", 4294967295UL, ERANGE);
13074 : Should we write these tests to be more portable by sprintf-ing
13075 : ~0 and then manipulating that char string as input for strtol?
13078 $cat >>try.c <<'EOCP'
13085 if eval $compile; then
13086 case "`$run ./try`" in
13087 ok) echo "Your strtoul() seems to be working okay." ;;
13089 Your strtoul() doesn't seem to be working okay.
13098 : see if strtoull exists
13099 set strtoull d_strtoull
13102 case "$d_longlong-$d_strtoull" in
13105 Checking whether your strtoull() works okay...
13107 $cat >try.c <<'EOCP'
13110 #define strtoull __strtoull
13113 extern unsigned long long int strtoull(char *s, char **, int);
13114 static int bad = 0;
13115 int check(char *s, long long eull, int een) {
13118 gull = strtoull(s, 0, 10);
13119 if (!((gull == eull) && (errno == een)))
13123 check(" 1", 1LL, 0);
13124 check(" 0", 0LL, 0);
13125 check("18446744073709551615", 18446744073709551615ULL, 0);
13126 check("18446744073709551616", 18446744073709551615ULL, ERANGE);
13127 #if 0 /* strtoull() for /^-/ strings is undefined. */
13128 check("-1", 18446744073709551615ULL, 0);
13129 check("-18446744073709551614", 2LL, 0);
13130 check("-18446744073709551615", 1LL, 0);
13131 check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
13132 check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
13139 if eval $compile; then
13140 case "`$run ./try`" in
13141 ok) echo "Your strtoull() seems to be working okay." ;;
13143 Your strtoull() doesn't seem to be working okay.
13145 d_strtoull="$undef"
13152 : see if strtouq exists
13153 set strtouq d_strtouq
13156 case "$d_strtouq" in
13159 Checking whether your strtouq() works okay...
13161 $cat >try.c <<'EOCP'
13164 extern unsigned long long int strtouq(char *s, char **, int);
13165 static int bad = 0;
13166 void check(char *s, unsigned long long eull, int een) {
13167 unsigned long long gull;
13169 gull = strtouq(s, 0, 10);
13170 if (!((gull == eull) && (errno == een)))
13174 check(" 1", 1LL, 0);
13175 check(" 0", 0LL, 0);
13176 check("18446744073709551615", 18446744073709551615ULL, 0);
13177 check("18446744073709551616", 18446744073709551615ULL, ERANGE);
13178 #if 0 /* strtouq() for /^-/ strings is undefined. */
13179 check("-1", 18446744073709551615ULL, 0);
13180 check("-18446744073709551614", 2LL, 0);
13181 check("-18446744073709551615", 1LL, 0);
13182 check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
13183 check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
13191 if eval $compile; then
13192 case "`$run ./try`" in
13193 ok) echo "Your strtouq() seems to be working okay." ;;
13195 Your strtouq() doesn't seem to be working okay.
13204 : see if strxfrm exists
13205 set strxfrm d_strxfrm
13208 : see if symlink exists
13209 set symlink d_symlink
13212 : see if syscall exists
13213 set syscall d_syscall
13216 : see if prototype for syscall is available
13218 set d_syscallproto syscall $i_unistd unistd.h
13221 : see if sysconf exists
13222 set sysconf d_sysconf
13225 : see if system exists
13226 set system d_system
13229 : see if tcgetpgrp exists
13230 set tcgetpgrp d_tcgetpgrp
13233 : see if tcsetpgrp exists
13234 set tcsetpgrp d_tcsetpgrp
13237 : see if prototype for telldir is available
13239 set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
13242 : see if this is a sys/times.h system
13243 set sys/times.h i_systimes
13246 : see if times exists
13248 if set times val -f d_times; eval $csym; $val; then
13249 echo 'times() found.' >&4
13252 case "$i_systimes" in
13253 "$define") inc='sys/times.h';;
13255 rp="What is the type returned by times() on this system?"
13256 set clock_t clocktype long stdio.h sys/types.h $inc
13259 echo 'times() NOT found, hope that will do.' >&4
13264 : see if truncate exists
13265 set truncate d_truncate
13268 : see if tzname[] exists
13270 if set tzname val -a d_tzname; eval $csym; $val; then
13272 echo 'tzname[] found.' >&4
13275 echo 'tzname[] NOT found.' >&4
13281 next|rhapsody|darwin) multiarch="$define" ;;
13283 case "$multiarch" in
13284 ''|[nN]*) multiarch="$undef" ;;
13287 : check for ordering of bytes in a long
13289 case "$usecrosscompile$multiarch" in
13292 You seem to be either cross-compiling or doing a multiarchitecture build,
13293 skipping the byteorder check.
13299 case "$byteorder" in
13302 In the following, larger digits indicate more significance. A big-endian
13303 machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
13304 little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
13305 machines may have weird orders like 3412. A Cray will report 87654321,
13306 an Alpha will report 12345678. If the test program works the default is
13308 I'm now running the test program...
13310 $cat >try.c <<'EOCP'
13317 char c[sizeof(long)];
13320 if (sizeof(long) > 4)
13321 u.l = (0x08070605L << 32) | 0x04030201L;
13324 for (i = 0; i < sizeof(long); i++)
13325 printf("%c", u.c[i]+'0');
13332 if eval $compile && ./try > /dev/null; then
13335 [1-4][1-4][1-4][1-4]|12345678|87654321)
13336 echo "(The test program ran ok.)"
13337 echo "byteorder=$dflt"
13340 ????|????????) echo "(The test program ran ok.)" ;;
13341 *) echo "(The test program didn't run right for some reason.)" ;;
13346 (I can't seem to compile the test program. Guessing big-endian...)
13349 case "$xxx_prompt" in
13351 rp="What is the order of bytes in a long?"
13367 Checking to see whether you can access character data unalignedly...
13371 #define U32 $u32type
13372 #define BYTEORDER $byteorder
13374 #if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
13375 U8 buf[] = "\0\0\0\1\0\0\0\0";
13379 if (sizeof(U32) != 4) {
13380 printf("sizeof(U32) is not 4, but %d\n", sizeof(U32));
13386 for (i = 0; i < 4; i++) {
13387 up = (U32*)(buf + i);
13388 if (! ((*up == 1 << (8*i)) || /* big-endian */
13389 (*up == 1 << (8*(3-i))) /* little-endian */
13393 printf("read failed (%x)\n", *up);
13399 for (i = 0; i < 4; i++) {
13400 up = (U32*)(buf + i);
13402 if (*up != 0xBeef) {
13403 printf("write failed (%x)\n", *up);
13417 if eval $compile_ok; then
13418 echo "(Testing for character data alignment may dump core.)" >&4
13419 $run ./try 2>&1 >/dev/null
13422 You can access character data pretty unalignedly.
13424 d_u32align="$undef"
13427 It seems that you must access character data in an aligned manner.
13429 d_u32align="$define"
13432 $rm -f core core.try.* try.core
13434 rp='Can you access character data at unaligned addresses?'
13438 [yY]*) d_u32align="$undef" ;;
13439 *) d_u32align="$define" ;;
13443 : see if ualarm exists
13444 set ualarm d_ualarm
13447 : see if umask exists
13451 : see if unordered exists
13452 set unordered d_unordered
13455 : see if usleep exists
13456 set usleep d_usleep
13459 : see if prototype for usleep is available
13461 set d_usleepproto usleep $i_unistd unistd.h
13464 : see if ustat exists
13468 : backward compatibility for d_hvfork
13469 if test X$d_hvfork != X; then
13470 d_vfork="$d_hvfork"
13473 : see if there is a vfork
13478 : Ok, but do we want to use it. vfork is reportedly unreliable in
13479 : perl on Solaris 2.x, and probably elsewhere.
13483 case "$usevfork" in
13489 Perl can only use a vfork() that doesn't suffer from strict
13490 restrictions on calling functions or modifying global data in
13491 the child. For example, glibc-2.1 contains such a vfork()
13492 that is unsuitable. If your system provides a proper fork()
13493 call, chances are that you do NOT want perl to use vfork().
13496 rp="Do you still want to use vfork()?"
13501 echo "Ok, we won't use vfork()."
13510 $define) usevfork='true';;
13511 *) usevfork='false';;
13514 : see if closedir exists
13515 set closedir d_closedir
13518 case "$d_closedir" in
13521 echo "Checking whether closedir() returns a status..." >&4
13523 #$i_dirent I_DIRENT /**/
13524 #$i_sysdir I_SYS_DIR /**/
13525 #$i_sysndir I_SYS_NDIR /**/
13526 #$i_systypes I_SYS_TYPES /**/
13528 #if defined(I_SYS_TYPES)
13529 #include <sys/types.h>
13531 #if defined(I_DIRENT)
13532 #include <dirent.h>
13533 #if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
13534 #include <sys/dir.h>
13538 #include <sys/ndir.h>
13542 #include <ndir.h> /* may be wrong in the future */
13544 #include <sys/dir.h>
13549 int main() { return closedir(opendir(".")); }
13552 if eval $compile_ok; then
13553 if $run ./try > /dev/null 2>&1 ; then
13554 echo "Yes, it does."
13557 echo "No, it doesn't."
13561 echo "(I can't seem to compile the test program--assuming it doesn't)"
13569 set d_void_closedir
13572 : see if there is a wait4
13576 : see if waitpid exists
13577 set waitpid d_waitpid
13580 : see if wcstombs exists
13581 set wcstombs d_wcstombs
13584 : see if wctomb exists
13585 set wctomb d_wctomb
13588 : see if writev exists
13589 set writev d_writev
13592 : preserve RCS keywords in files with variable substitution, grrr
13597 Revision='$Revision'
13599 : check for alignment requirements
13601 case "$usecrosscompile$multiarch" in
13604 You seem to be either cross-compiling or doing a multiarchitecture build,
13605 skipping the memory alignment check.
13608 case "$alignbytes" in
13609 '') alignbytes=8 ;;
13613 case "$alignbytes" in
13614 '') echo "Checking alignment constraints..." >&4
13615 if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then
13616 $cat >try.c <<'EOCP'
13617 typedef long double NV;
13620 $cat >try.c <<'EOCP'
13624 $cat >>try.c <<'EOCP'
13632 printf("%d\n", (int)((char *)&try_algn.bar - (char *)&try_algn.foo));
13637 if eval $compile_ok; then
13641 echo "(I can't seem to compile the test program...)"
13644 *) dflt="$alignbytes"
13647 rp="Doubles must be aligned on a how-many-byte boundary?"
13655 : set the base revision
13658 : how do we catenate cpp tokens here?
13660 echo "Checking to see how your cpp does stuff like catenate tokens..." >&4
13661 $cat >cpp_stuff.c <<'EOCP'
13662 #define RCAT(a,b)a/**/b
13663 #define ACAT(a,b)a ## b
13667 $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
13668 if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then
13669 echo "Oh! Smells like ANSI's been here." >&4
13670 echo "We can catify or stringify, separately or together!"
13672 elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then
13673 echo "Ah, yes! The good old days!" >&4
13674 echo "However, in the good old days we don't know how to stringify and"
13675 echo "catify at the same time."
13679 Hmm, I don't seem to be able to catenate tokens with your cpp. You're going
13680 to have to edit the values of CAT[2-5] in config.h...
13682 cpp_stuff="/* Help! How do we handle cpp_stuff? */*/"
13686 : see if this is a db.h system
13692 : Check db version.
13694 echo "Checking Berkeley DB version ..." >&4
13700 #include <sys/types.h>
13703 int main(int argc, char *argv[])
13705 #ifdef DB_VERSION_MAJOR /* DB version >= 2 */
13706 int Major, Minor, Patch ;
13707 unsigned long Version ;
13708 (void)db_version(&Major, &Minor, &Patch) ;
13710 printf("%d %d %d %d %d %d\n",
13711 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
13712 Major, Minor, Patch);
13715 printf("You have Berkeley DB Version 2 or greater.\n");
13717 printf("db.h is from Berkeley DB Version %d.%d.%d\n",
13718 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
13719 printf("libdb is from Berkeley DB Version %d.%d.%d\n",
13720 Major, Minor, Patch) ;
13722 /* check that db.h & libdb are compatible */
13723 if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
13724 printf("db.h and libdb are incompatible.\n") ;
13728 printf("db.h and libdb are compatible.\n") ;
13730 Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
13731 + DB_VERSION_PATCH ;
13733 /* needs to be >= 2.3.4 */
13734 if (Version < 2003004) {
13735 /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
13736 printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
13742 #if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
13747 printf("You have Berkeley DB Version 1.\n");
13748 exit(0); /* DB version < 2: the coast is clear. */
13750 exit(1); /* <db.h> not Berkeley DB? */
13756 if eval $compile_ok && $run ./try; then
13757 echo 'Looks OK.' >&4
13759 db_version_major=$1
13760 db_version_minor=$2
13761 db_version_patch=$3
13763 echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
13767 : Remove db from list of libraries to use
13768 echo "Removing unusable -ldb from library list" >&4
13769 set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'`
13772 echo "libs = $libs" >&4
13782 : Check the return type needed for hash
13784 echo "Checking return type needed for hash for Berkeley DB ..." >&4
13790 #include <sys/types.h>
13793 #ifndef DB_VERSION_MAJOR
13794 u_int32_t hash_cb (ptr, size)
13802 info.hash = hash_cb;
13806 if $cc $ccflags -c try.c >try.out 2>&1 ; then
13807 if $contains warning try.out >>/dev/null 2>&1 ; then
13810 db_hashtype='u_int32_t'
13813 : XXX Maybe we should just give up here.
13814 db_hashtype=u_int32_t
13816 echo "Help: I can't seem to compile the db test program." >&4
13817 echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
13820 echo "Your version of Berkeley DB uses $db_hashtype for hash."
13822 *) db_hashtype=u_int32_t
13827 : Check the return type needed for prefix
13829 echo "Checking return type needed for prefix for Berkeley DB ..." >&4
13835 #include <sys/types.h>
13838 #ifndef DB_VERSION_MAJOR
13839 size_t prefix_cb (key1, key2)
13847 info.prefix = prefix_cb;
13851 if $cc $ccflags -c try.c >try.out 2>&1 ; then
13852 if $contains warning try.out >>/dev/null 2>&1 ; then
13853 db_prefixtype='int'
13855 db_prefixtype='size_t'
13858 db_prefixtype='size_t'
13859 : XXX Maybe we should just give up here.
13861 echo "Help: I can't seem to compile the db test program." >&4
13862 echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
13865 echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
13867 *) db_prefixtype='size_t'
13872 : How can we generate normalized random numbers ?
13874 echo "Looking for a random number function..." >&4
13875 case "$randfunc" in
13877 if set drand48 val -f; eval $csym; $val; then
13879 echo "Good, found drand48()." >&4
13880 elif set random val -f; eval $csym; $val; then
13882 echo "OK, found random()." >&4
13885 echo "Yick, looks like I have to use rand()." >&4
13896 *-Dmy_rand=*|*-Dmy_srand=*)
13897 echo "Removing obsolete -Dmy_rand, -Dmy_srand, and -Drandbits from ccflags." >&4
13898 ccflags="`echo $ccflags | sed -e 's/-Dmy_rand=random/ /'`"
13899 ccflags="`echo $ccflags | sed -e 's/-Dmy_srand=srandom/ /'`"
13900 ccflags="`echo $ccflags | sed -e 's/-Drandbits=[0-9][0-9]*/ /'`"
13904 while $test "$cont"; do
13905 rp="Use which function to generate random numbers?"
13907 if $test "$ans" = "$dflt"; then
13913 if set $ans val -f; eval $csym; $val; then
13917 rp="I cannot find function $ans. Use that name anyway?"
13926 case "$randfunc" in
13928 drand01="drand48()"
13934 case "$randbits" in
13936 echo "Checking to see how many bits your $randfunc() function produces..." >&4
13938 #$i_unistd I_UNISTD
13939 #$i_stdlib I_STDLIB
13942 # include <unistd.h>
13945 # include <stdlib.h>
13950 register unsigned long tmp;
13951 register unsigned long max = 0L;
13953 for (i = 1000; i; i--) {
13954 tmp = (unsigned long) $randfunc();
13955 if (tmp > max) max = tmp;
13957 for (i = 0; max; i++)
13963 if eval $compile_ok; then
13967 echo "(I can't seem to compile the test program...)"
13974 rp="How many bits does your $randfunc() function produce?"
13978 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
13979 seedfunc="s$randfunc"
13980 randseedtype=unsigned
13984 rp="How many bits does your $randfunc() function produce?"
13987 seedfunc="s$randfunc"
13988 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
13989 if set $seedfunc val -f; eval $csym; $val; then
13990 echo "(Using $seedfunc() to seed random generator)"
13992 echo "(Warning: no $seedfunc() to seed random generator)"
13995 randseedtype=unsigned
14003 echo "Determining whether or not we are on an EBCDIC system..." >&4
14004 $cat >try.c <<'EOM'
14007 if ('M'==0xd4) return 0;
14014 if eval $compile_ok; then
14015 if $run ./try; then
14016 echo "You seem to speak EBCDIC." >&4
14019 echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
14022 echo "I'm unable to compile the test program." >&4
14023 echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
14031 Checking how to flush all pending stdio output...
14033 # I only know how to find the first 32 possibly open files on SunOS.
14034 # See also hints/sunos_4_1.sh and util.c --AD
14036 sunos) $echo '#define PERL_FFLUSH_ALL_FOPEN_MAX 32' > try.c ;;
14038 $cat >>try.c <<EOCP
14040 #$i_unistd I_UNISTD
14042 # include <unistd.h>
14044 #$d_sysconf HAS_SYSCONF
14045 #$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY
14046 #ifdef HAS_STDIO_STREAM_ARRAY
14047 # define STDIO_STREAM_ARRAY $stdio_stream_array
14052 p = fopen("try.out", "w");
14056 # ifdef TRY_FPRINTF
14060 #ifdef TRY_FFLUSH_NULL
14063 #ifdef TRY_FFLUSH_ALL
14065 long open_max = -1;
14066 # ifdef PERL_FFLUSH_ALL_FOPEN_MAX
14067 open_max = PERL_FFLUSH_ALL_FOPEN_MAX;
14069 # if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
14070 open_max = sysconf(_SC_OPEN_MAX);
14073 open_max = FOPEN_MAX;
14076 open_max = OPEN_MAX;
14085 # ifdef HAS_STDIO_STREAM_ARRAY
14086 if (open_max > 0) {
14088 for (i = 0; i < open_max; i++)
14089 if (STDIO_STREAM_ARRAY[i]._file >= 0 &&
14090 STDIO_STREAM_ARRAY[i]._file < open_max &&
14091 STDIO_STREAM_ARRAY[i]._flag)
14092 fflush(&STDIO_STREAM_ARRAY[i]);
14100 : first we have to find out how _not_ to flush
14102 if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
14104 set try -DTRY_FPUTC
14105 if eval $compile; then
14106 $run ./try 2>/dev/null
14109 if $test ! -s try.out -a "X$code" = X42; then
14115 set try -DTRY_FPRINTF
14116 if eval $compile; then
14117 $run ./try 2>/dev/null
14120 if $test ! -s try.out -a "X$code" = X42; then
14121 output=-DTRY_FPRINTF
14127 : check for fflush NULL behaviour
14128 case "$fflushNULL" in
14129 '') set try -DTRY_FFLUSH_NULL $output
14130 if eval $compile; then
14131 $run ./try 2>/dev/null
14134 if $test -s try.out -a "X$code" = X42; then
14135 fflushNULL="`$cat try.out`"
14137 if $test "X$code" != X42; then
14139 (If this test failed, don't worry, we'll try another method shortly.)
14144 $rm -f core try.core core.try.*
14145 case "$fflushNULL" in
14147 Your fflush(NULL) works okay for output streams.
14148 Let's see if it clobbers input pipes...
14150 # As of mid-March 2000 all versions of Solaris appear to have a stdio
14151 # bug that improperly flushes the input end of pipes. So we avoid the
14152 # autoflush on fork/system/exec support for now. :-(
14153 $cat >tryp.c <<EOCP
14156 main(int argc, char **argv)
14162 while ((i = getc(stdin)) != -1
14163 && (*bp++ = i) != '\n'
14164 && bp < &buf[1024])
14167 fprintf(stdout, "%s", buf);
14175 fflushNULL="$define"
14177 if eval $compile; then
14179 $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
14180 if cmp tryp.c tryp.out >/dev/null 2>&1; then
14182 fflush(NULL) seems to behave okay with input streams.
14184 fflushNULL="$define"
14187 Ouch, fflush(NULL) clobbers input pipes! We will not use it.
14189 fflushNULL="$undef"
14192 $rm -f core tryp.c tryp.core core.tryp.*
14195 Your fflush(NULL) isn't working (contrary to ANSI C).
14197 fflushNULL="$undef"
14200 Cannot figure out whether your fflush(NULL) works or not.
14201 I'm assuming it doesn't (contrary to ANSI C).
14203 fflushNULL="$undef"
14207 $define|true|[yY]*)
14208 fflushNULL="$define"
14211 fflushNULL="$undef"
14214 : check explicit looping only if NULL did not work, and if the pipe
14215 : bug does not show up on an explicit flush too
14216 case "$fflushNULL" in
14218 $cat >tryp.c <<EOCP
14221 main(int argc, char **argv)
14227 while ((i = getc(stdin)) != -1
14228 && (*bp++ = i) != '\n'
14229 && bp < &buf[1024])
14232 fprintf(stdout, "%s", buf);
14241 if eval $compile; then
14243 $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
14244 if cmp tryp.c tryp.out >/dev/null 2>&1; then
14246 Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
14248 : now check for fflushall behaviour
14249 case "$fflushall" in
14250 '') set try -DTRY_FFLUSH_ALL $output
14251 if eval $compile; then
14253 (Now testing the other method--but note that this also may fail.)
14255 $run ./try 2>/dev/null
14258 if $test -s try.out -a "X$code" = X42; then
14259 fflushall="`$cat try.out`"
14262 $rm -f core try.core core.try.*
14263 case "$fflushall" in
14265 Whew. Flushing explicitly all the stdio streams works.
14267 fflushall="$define"
14270 Sigh. Flushing explicitly all the stdio streams doesn't work.
14275 Cannot figure out whether flushing stdio streams explicitly works or not.
14276 I'm assuming it doesn't.
14282 "$define"|true|[yY]*)
14283 fflushall="$define"
14291 All is futile. Even fflush(stdin) clobbers input pipes!
14298 $rm -f core tryp.c tryp.core core.tryp.*
14300 *) fflushall="$undef"
14304 case "$fflushNULL$fflushall" in
14307 OK, I give up. I cannot figure out how to flush pending stdio output.
14308 We won't be flushing handles at all before fork/exec/popen.
14312 $rm -f try.* try$exe_ext
14314 : Store the full pathname to the ar program for use in the C program
14315 : Respect a hint or command line value for full_ar.
14320 : Store the full pathname to the sed program for use in the C program
14323 : see what type gids are declared as in the kernel
14325 echo "Looking for the type for group ids returned by getgid()."
14326 set gid_t gidtype xxx stdio.h sys/types.h
14330 xxx=`./findhdr sys/user.h`
14331 set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
14333 unsigned) dflt="$1 $2" ;;
14337 *) dflt="$gidtype";;
14340 gid_t) echo "gid_t found." ;;
14341 *) rp="What is the type for group ids returned by getgid()?"
14349 *_t) zzz="$gidtype" ;;
14352 echo "Checking the size of $zzz..." >&4
14354 #include <sys/types.h>
14357 printf("%d\n", (int)sizeof($gidtype));
14362 if eval $compile_ok; then
14366 echo "(I can't execute the test program--guessing $gidsize.)" >&4
14369 echo "Your $zzz is $gidsize bytes long."
14374 echo "(I can't compile the test program--guessing $gidsize.)" >&4
14380 *_t) zzz="$gidtype" ;;
14383 echo "Checking the sign of $zzz..." >&4
14385 #include <sys/types.h>
14396 if eval $compile; then
14400 echo "(I can't execute the test program--guessing unsigned.)" >&4
14404 1) echo "Your $zzz is unsigned." ;;
14405 -1) echo "Your $zzz is signed." ;;
14411 echo "(I can't compile the test program--guessing unsigned.)" >&4
14417 if $test X"$quadtype" != X; then
14419 echo "Checking how to print 64-bit integers..." >&4
14421 if $test X"$sPRId64" = X -a X"$quadtype" = Xint; then
14422 $cat >try.c <<'EOCP'
14423 #include <sys/types.h>
14426 int q = 12345678901;
14427 printf("%ld\n", q);
14431 if eval $compile; then
14435 sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
14436 sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
14437 echo "We will use %d."
14443 if $test X"$sPRId64" = X -a X"$quadtype" = Xlong; then
14444 $cat >try.c <<'EOCP'
14445 #include <sys/types.h>
14448 long q = 12345678901;
14449 printf("%ld\n", q);
14453 if eval $compile; then
14457 sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
14458 sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
14459 echo "We will use %ld."
14465 if $test X"$sPRId64" = X -a X"$i_inttypes" = X"$define" -a X"$quadtype" = Xint64_t; then
14466 $cat >try.c <<'EOCP'
14467 #include <sys/types.h>
14468 #include <inttypes.h>
14471 int64_t q = 12345678901;
14472 printf("%" PRId64 "\n", q);
14476 if eval $compile; then
14480 sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
14481 sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
14482 echo "We will use the C9X style."
14488 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
14490 #include <sys/types.h>
14493 $quadtype q = 12345678901;
14494 printf("%Ld\n", q);
14498 if eval $compile; then
14502 sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
14503 sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
14504 echo "We will use %Ld."
14510 if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
14511 $cat >try.c <<'EOCP'
14512 #include <sys/types.h>
14515 long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
14516 printf("%lld\n", q);
14520 if eval $compile; then
14524 sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
14525 sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
14526 echo "We will use the %lld style."
14532 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
14534 #include <sys/types.h>
14537 $quadtype q = 12345678901;
14538 printf("%qd\n", q);
14542 if eval $compile; then
14546 sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
14547 sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
14548 echo "We will use %qd."
14554 if $test X"$sPRId64" = X; then
14555 echo "Cannot figure out how to print 64-bit integers." >&4
14563 '') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
14564 d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
14566 *) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
14567 d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
14573 $echo "Checking the format strings to be used for Perl's internal types..." >&4
14575 if $test X"$ivsize" = X8; then
14576 ivdformat="$sPRId64"
14577 uvuformat="$sPRIu64"
14578 uvoformat="$sPRIo64"
14579 uvxformat="$sPRIx64"
14580 uvXUformat="$sPRIXU64"
14582 if $test X"$ivsize" = X"$longsize"; then
14589 if $test X"$ivsize" = X"$intsize"; then
14597 if $test X"$ivsize" = X"$shortsize"; then
14608 if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
14609 nveformat="$sPRIeldbl"
14610 nvfformat="$sPRIfldbl"
14611 nvgformat="$sPRIgldbl"
14612 nvEUformat="$sPRIEUldbl"
14613 nvFUformat="$sPRIFUldbl"
14614 nvGUformat="$sPRIGUldbl"
14624 case "$ivdformat" in
14625 '') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4
14632 $echo "Checking the format string to be used for gids..." >&4
14635 -1) if $test X"$gidsize" = X"$ivsize"; then
14636 gidformat="$ivdformat"
14638 if $test X"$gidsize" = X"$longsize"; then
14641 if $test X"$gidsize" = X"$intsize"; then
14644 if $test X"$gidsize" = X"$shortsize"; then
14651 *) if $test X"$gidsize" = X"$uvsize"; then
14652 gidformat="$uvuformat"
14654 if $test X"$gidsize" = X"$longsize"; then
14657 if $test X"$gidsize" = X"$intsize"; then
14660 if $test X"$gidsize" = X"$shortsize"; then
14669 : see if getgroups exists
14670 set getgroups d_getgrps
14673 : see if setgroups exists
14674 set setgroups d_setgrps
14678 : Find type of 2nd arg to 'getgroups()' and 'setgroups()'
14680 case "$d_getgrps$d_setgrps" in
14682 case "$groupstype" in
14683 '') dflt="$gidtype" ;;
14684 *) dflt="$groupstype" ;;
14687 What type of pointer is the second argument to getgroups() and setgroups()?
14688 Usually this is the same as group ids, $gidtype, but not always.
14691 rp='What type pointer is the second argument to getgroups() and setgroups()?'
14695 *) groupstype="$gidtype";;
14699 echo "Checking if your $make program sets \$(MAKE)..." >&4
14700 case "$make_set_make" in
14702 $sed 's/^X //' > testmake.mak << 'EOF'
14704 X @echo 'maketemp="$(MAKE)"'
14706 case "`$make -f testmake.mak 2>/dev/null`" in
14707 *maketemp=*) make_set_make='#' ;;
14708 *) make_set_make="MAKE=$make" ;;
14710 $rm -f testmake.mak
14713 case "$make_set_make" in
14714 '#') echo "Yup, it does.";;
14715 *) echo "Nope, it doesn't.";;
14718 : see what type is used for mode_t
14719 rp="What is the type used for file modes for system calls (e.g. fchmod())?"
14720 set mode_t modetype int stdio.h sys/types.h
14723 : see if stdarg is available
14725 if $test `./findhdr stdarg.h`; then
14726 echo "<stdarg.h> found." >&4
14729 echo "<stdarg.h> NOT found." >&4
14733 : see if varags is available
14735 if $test `./findhdr varargs.h`; then
14736 echo "<varargs.h> found." >&4
14738 echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
14741 : set up the varargs testing programs
14742 $cat > varargs.c <<EOP
14744 #include <stdarg.h>
14747 #include <varargs.h>
14751 int f(char *p, ...)
14765 p = va_arg(ap, char *);
14770 $cat > varargs <<EOP
14772 if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
14781 : now check which varargs header should be included
14786 if `./varargs I_STDARG`; then
14788 elif `./varargs I_VARARGS`; then
14793 if `./varargs I_VARARGS`; then
14800 echo "I could not find the definition for va_dcl... You have problems..." >&4
14801 val="$undef"; set i_stdarg; eval $setvar
14802 val="$undef"; set i_varargs; eval $setvar
14807 case "$i_varhdr" in
14809 val="$define"; set i_stdarg; eval $setvar
14810 val="$undef"; set i_varargs; eval $setvar
14813 val="$undef"; set i_stdarg; eval $setvar
14814 val="$define"; set i_varargs; eval $setvar
14817 echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
14821 : see if we need va_copy
14823 case "$i_stdarg" in
14826 #include <stdarg.h>
14828 #$i_stdlib I_STDLIB
14830 #include <stdlib.h>
14832 #include <signal.h>
14835 ivfprintf(FILE *f, const char *fmt, va_list *valp)
14837 return vfprintf(f, fmt, *valp);
14841 myvfprintf(FILE *f, const char *fmt, va_list val)
14843 return ivfprintf(f, fmt, &val);
14847 myprintf(char *fmt, ...)
14850 va_start(val, fmt);
14851 return myvfprintf(stdout, fmt, val);
14855 main(int ac, char **av)
14857 signal(SIGSEGV, exit);
14859 myprintf("%s%cs all right, then\n", "that", '\'');
14864 if eval $compile && $run ./try 2>&1 >/dev/null; then
14865 case "`$run ./try`" in
14866 "that's all right, then")
14872 yes) echo "It seems that you don't need va_copy()." >&4
14873 need_va_copy="$undef"
14875 *) echo "It seems that va_copy() or similar will be needed." >&4
14876 need_va_copy="$define"
14879 $rm -f try.* core core.* *.core *.core.*
14881 *) echo "You don't have <stdarg.h>, not checking for va_copy()." >&4
14885 : define a fucntion to check prototypes
14886 $cat > protochk <<EOSH
14889 optimize="$optimize"
14891 prototype="$prototype"
14896 $cat >> protochk <<'EOSH'
14901 while test $# -ge 2; do
14903 $define) echo "#include <$2>" >> try.c ;;
14904 literal) echo "$2" >> try.c ;;
14908 test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
14909 cat >> try.c <<'EOCP'
14910 #ifdef CAN_PROTOTYPE
14911 #define _(args) args
14916 echo "$foo" >> try.c
14917 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
14918 $cc $optimize $ccflags -c try.c > /dev/null 2>&1
14924 $eunicefix protochk
14926 : see what type is used for size_t
14927 rp="What is the type used for the length parameter for string functions?"
14928 set size_t sizetype 'unsigned int' stdio.h sys/types.h
14931 : check for type of arguments to gethostbyaddr.
14932 if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
14933 case "$d_gethbyaddr" in
14937 Checking to see what type of arguments are accepted by gethostbyaddr().
14939 hdrs="$define sys/types.h
14940 $d_socket sys/socket.h
14941 $i_niin netinet/in.h
14943 $i_unistd unistd.h"
14944 : The first arg can 'char *' or 'void *'
14945 : The second arg is some of integral type
14946 for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do
14947 for yyy in size_t long int; do
14948 case "$netdb_host_type" in
14949 '') try="extern struct hostent *gethostbyaddr($xxx, $yyy, int);"
14950 if ./protochk "$try" $hdrs; then
14951 echo "Your system accepts $xxx for the first arg."
14952 echo "...and $yyy for the second arg."
14953 netdb_host_type="$xxx"
14954 netdb_hlen_type="$yyy"
14960 : In case none of those worked, prompt the user.
14961 case "$netdb_host_type" in
14962 '') rp='What is the type for the 1st argument to gethostbyaddr?'
14965 netdb_host_type=$ans
14966 rp='What is the type for the 2nd argument to gethostbyaddr?'
14969 netdb_hlen_type=$ans
14973 *) : no gethostbyaddr, so pick harmless defaults
14974 netdb_host_type='char *'
14975 netdb_hlen_type="$sizetype"
14978 # Remove the "const" if needed. -- but then we'll have a
14980 # netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'`
14983 : check for type of argument to gethostbyname.
14984 if test "X$netdb_name_type" = X ; then
14985 case "$d_gethbyname" in
14989 Checking to see what type of argument is accepted by gethostbyname().
14991 hdrs="$define sys/types.h
14992 $d_socket sys/socket.h
14993 $i_niin netinet/in.h
14995 $i_unistd unistd.h"
14996 for xxx in "const char *" "char *"; do
14997 case "$netdb_name_type" in
14998 '') try="extern struct hostent *gethostbyname($xxx);"
14999 if ./protochk "$try" $hdrs; then
15000 echo "Your system accepts $xxx."
15001 netdb_name_type="$xxx"
15006 : In case none of those worked, prompt the user.
15007 case "$netdb_name_type" in
15008 '') rp='What is the type for the 1st argument to gethostbyname?'
15011 netdb_name_type=$ans
15015 *) : no gethostbyname, so pick harmless default
15016 netdb_name_type='char *'
15021 : check for type of 1st argument to getnetbyaddr.
15022 if test "X$netdb_net_type" = X ; then
15023 case "$d_getnbyaddr" in
15027 Checking to see what type of 1st argument is accepted by getnetbyaddr().
15029 hdrs="$define sys/types.h
15030 $d_socket sys/socket.h
15031 $i_niin netinet/in.h
15033 $i_unistd unistd.h"
15034 for xxx in in_addr_t "unsigned long" long "unsigned int" int; do
15035 case "$netdb_net_type" in
15036 '') try="extern struct netent *getnetbyaddr($xxx, int);"
15037 if ./protochk "$try" $hdrs; then
15038 echo "Your system accepts $xxx."
15039 netdb_net_type="$xxx"
15044 : In case none of those worked, prompt the user.
15045 case "$netdb_net_type" in
15046 '') rp='What is the type for the 1st argument to getnetbyaddr?'
15049 netdb_net_type=$ans
15053 *) : no getnetbyaddr, so pick harmless default
15054 netdb_net_type='long'
15058 : locate the preferred pager for this system
15064 [a-zA-Z]:/*) dflt=$pg;;
15068 [a-zA-Z]:/*) dflt=$more;;
15072 [a-zA-Z]:/*) dflt=$less;;
15075 '') dflt=/usr/ucb/more;;
15082 rp='What pager is used on your system?'
15086 : see what type pids are declared as in the kernel
15087 rp="What is the type of process ids on this system?"
15088 set pid_t pidtype int stdio.h sys/types.h
15091 : Find earliest binary compatible site_perl subdirectory perl can use.
15092 case "$bincompat5005" in
15093 "$define") xs_apiversion='5.005' ;;
15094 *) xs_apiversion=$version ;; # The current site_perl version.
15096 : Find earliest pure perl site_perl subdirectory perl can use.
15097 : The versioned directories started at 5.005.
15098 pm_apiversion='5.005'
15100 : see if ar generates random libraries by itself
15102 echo "Checking how to generate random libraries on your machine..." >&4
15103 echo 'int bar1() { return bar2(); }' > bar1.c
15104 echo 'int bar2() { return 2; }' > bar2.c
15105 $cat > foo.c <<'EOP'
15106 int main() { printf("%d\n", bar1()); exit(0); }
15108 $cc $ccflags -c bar1.c >/dev/null 2>&1
15109 $cc $ccflags -c bar2.c >/dev/null 2>&1
15110 $cc $ccflags -c foo.c >/dev/null 2>&1
15111 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
15112 if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
15113 $run ./foobar >/dev/null 2>&1; then
15114 echo "$ar appears to generate random libraries itself."
15117 elif $ar ts bar$_a >/dev/null 2>&1 &&
15118 $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
15119 $run ./foobar >/dev/null 2>&1; then
15120 echo "a table of contents needs to be added with '$ar ts'."
15127 ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
15128 $test -f $ranlib || ranlib=''
15131 if $test -n "$ranlib"; then
15132 echo "your system has '$ranlib'; we'll use that."
15135 echo "your system doesn't seem to support random libraries"
15136 echo "so we'll use lorder and tsort to order the libraries."
15143 : check for type of arguments to select.
15144 case "$selecttype" in
15145 '') case "$d_select" in
15149 Checking to see what type of arguments are accepted by select().
15151 hdrs="$define sys/types.h
15152 $i_systime sys/time.h
15153 $i_sysselct sys/select.h
15154 $d_socket sys/socket.h"
15155 : The first arg can be int, unsigned, or size_t
15156 : The last arg may or may not be 'const'
15158 : void pointer has been seen but using that
15159 : breaks the selectminbits test
15160 for xxx in 'fd_set *' 'int *'; do
15161 for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do
15162 for tmo in 'struct timeval *' 'const struct timeval *'; do
15164 '') try="extern select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
15165 if ./protochk "$try" $hdrs; then
15166 echo "Your system accepts $xxx."
15175 '') rp='What is the type for the 2nd, 3rd, and 4th arguments to select?'
15176 case "$d_fd_set" in
15177 $define) dflt="fd_set *" ;;
15186 *) : no select, so pick a harmless default
15193 : check for the select 'width'
15194 case "$selectminbits" in
15195 '') case "$d_select" in
15199 Checking to see on how many bits at a time your select() operates...
15202 #include <sys/types.h>
15204 #$i_systime I_SYS_TIME
15205 #$i_systimek I_SYS_TIME_KERNEL
15210 # ifdef I_SYS_TIME_KERNEL
15213 # include <sys/time.h>
15214 # ifdef I_SYS_TIME_KERNEL
15218 #$i_sysselct I_SYS_SELECT
15219 #ifdef I_SYS_SELECT
15220 #include <sys/select.h>
15222 #$d_socket HAS_SOCKET
15224 # include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
15228 #define S sizeof(*(b))
15230 #define NBYTES (S * 8 > MINBITS ? S : MINBITS/8)
15231 #define NBITS (NBYTES * 8)
15240 fp = fopen("try.c", "r");
15246 b = ($selecttype)s;
15247 for (i = 0; i < NBITS; i++)
15251 select(fd + 1, b, 0, 0, &t);
15252 for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--);
15253 printf("%d\n", i + 1);
15258 if eval $compile_ok; then
15259 selectminbits=`$run ./try`
15260 case "$selectminbits" in
15262 Cannot figure out on how many bits at a time your select() operates.
15263 I'll play safe and guess it is 32 bits.
15269 *) bits="$selectminbits bits" ;;
15271 echo "Your select() operates on $bits at a time." >&4
15273 rp='What is the minimum number of bits your select() operates on?'
15274 case "$byteorder" in
15275 1234|12345678) dflt=32 ;;
15280 selectminbits="$val"
15284 *) : no select, so pick a harmless default
15291 : Trace out the files included by signal.h, then look for SIGxxx names.
15292 : Remove SIGARRAYSIZE used by HPUX.
15293 : Remove SIGSTKSIZE used by Linux.
15294 : Remove SIGSTKSZ used by Posix.
15295 : Remove SIGTYP void lines used by OS2.
15296 : Some cpps, like os390, dont give the file name anywhere
15297 if [ "X$fieldn" = X ]; then
15298 : Just make some guesses. We check them later.
15299 xxx='/usr/include/signal.h /usr/include/sys/signal.h'
15301 xxx=`echo '#include <signal.h>' |
15302 $cppstdin $cppminus $cppflags 2>/dev/null |
15303 $grep '^[ ]*#.*include' |
15304 $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq`
15306 : Check this list of files to be sure we have parsed the cpp output ok.
15307 : This will also avoid potentially non-existent files, such
15310 for xx in $xxx /dev/null ; do
15311 $test -f "$xx" && xxxfiles="$xxxfiles $xx"
15313 : If we have found no files, at least try signal.h
15314 case "$xxxfiles" in
15315 '') xxxfiles=`./findhdr signal.h` ;;
15318 $1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ {
15319 print substr($2, 4, 20)
15321 $1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ {
15322 print substr($3, 4, 20)
15324 : Append some common names just in case the awk scan failed.
15325 xxx="$xxx ABRT ALRM BUS CANCEL CHLD CLD CONT DIL EMT FPE"
15326 xxx="$xxx FREEZE HUP ILL INT IO IOT KILL LOST LWP PHONE"
15327 xxx="$xxx PIPE POLL PROF PWR QUIT RTMAX RTMIN SEGV STKFLT STOP"
15328 xxx="$xxx SYS TERM THAW TRAP TSTP TTIN TTOU URG USR1 USR2"
15329 xxx="$xxx USR3 USR4 VTALRM WAITING WINCH WIND WINDOW XCPU XFSZ"
15331 : generate a few handy files for later
15332 $cat > signal.c <<'EOCP'
15333 #include <sys/types.h>
15334 #include <signal.h>
15338 /* Strange style to avoid deeply-nested #if/#else/#endif */
15341 # define NSIG (_NSIG)
15347 # define NSIG (SIGMAX+1)
15353 # define NSIG (SIG_MAX+1)
15359 # define NSIG (MAXSIG+1)
15365 # define NSIG (MAX_SIG+1)
15370 # ifdef SIGARRAYSIZE
15371 # define NSIG (SIGARRAYSIZE+1) /* Not sure of the +1 */
15377 # define NSIG (_sys_nsig) /* Solaris 2.5 */
15381 /* Default to some arbitrary number that's big enough to get most
15382 of the common signals.
15388 printf("NSIG %d\n", NSIG);
15394 echo $xxx | $tr ' ' $trnl | $sort | $uniq | $awk '
15396 printf "#ifdef SIG"; printf $1; printf "\n"
15397 printf "printf(\""; printf $1; printf " %%d\\n\",SIG";
15398 printf $1; printf ");\n"
15402 printf "#endif /* JUST_NSIG */\n";
15403 printf "exit(0);\n}\n";
15406 $cat >signal.awk <<'EOP'
15407 BEGIN { ndups = 0 }
15408 $1 ~ /^NSIG$/ { nsig = $2 }
15409 ($1 !~ /^NSIG$/) && (NF == 2) {
15410 if ($2 > maxsig) { maxsig = $2 }
15411 if (sig_name[$2]) {
15412 dup_name[ndups] = $1
15413 dup_num[ndups] = $2
15425 printf("NSIG %d\n", nsig);
15426 for (n = 1; n < nsig; n++) {
15428 printf("%s %d\n", sig_name[n], sig_num[n])
15431 printf("NUM%d %d\n", n, n)
15434 for (n = 0; n < ndups; n++) {
15435 printf("%s %d\n", dup_name[n], dup_num[n])
15439 $cat >signal_cmd <<EOS
15441 if $test -s signal.lst; then
15442 echo "Using your existing signal.lst file"
15447 $cat >>signal_cmd <<'EOS'
15450 if eval $compile_ok; then
15451 $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
15453 echo "(I can't seem be able to compile the whole test program)" >&4
15454 echo "(I'll try it in little pieces.)" >&4
15455 set signal -DJUST_NSIG
15456 if eval $compile_ok; then
15457 $run ./signal$_exe > signal.nsg
15460 echo "I can't seem to figure out how many signals you have." >&4
15461 echo "Guessing 50." >&4
15462 echo 'NSIG 50' > signal.nsg
15464 : Now look at all the signal names, one at a time.
15465 for xx in `echo $xxx | $tr ' ' $trnl | $sort | $uniq`; do
15466 $cat > signal.c <<EOCP
15467 #include <sys/types.h>
15468 #include <signal.h>
15471 printf("$xx %d\n", SIG${xx});
15476 if eval $compile; then
15477 echo "SIG${xx} found."
15478 $run ./signal$_exe >> signal.ls1
15480 echo "SIG${xx} NOT found."
15483 if $test -s signal.ls1; then
15484 $cat signal.nsg signal.ls1 |
15485 $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
15489 if $test -s signal.lst; then
15492 echo "(AAK! I can't compile the test programs -- Guessing)" >&4
15493 echo 'kill -l' >signal
15494 set X `csh -f <signal`
15498 0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;;
15500 echo $@ | $tr ' ' $trnl | \
15501 $awk '{ printf "%s %d\n", $1, ++s; }
15502 END { printf "NSIG %d\n", ++s }' >signal.lst
15504 $rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1
15506 chmod a+x signal_cmd
15507 $eunicefix signal_cmd
15509 : generate list of signal names
15511 case "$sig_name_init" in
15513 *) case "$sig_num_init" in
15514 ''|*,*) doinit=yes ;;
15519 echo "Generating a list of signal names and numbers..." >&4
15521 sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
15522 sig_name=`$awk 'BEGIN { printf "ZERO " }
15523 !/^NSIG/ { printf "%s ", $1 }' signal.lst`
15524 sig_num=`$awk 'BEGIN { printf "0 " }
15525 !/^NSIG/ { printf "%d ", $2 }' signal.lst`
15526 sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
15527 !/^NSIG/ { printf "\"%s\", ", $1 }
15528 END { printf "0\n" }' signal.lst`
15529 sig_num_init=`$awk 'BEGIN { printf "0, " }
15530 !/^NSIG/ { printf "%d, ", $2}
15531 END { printf "0\n"}' signal.lst`
15534 echo "The following $sig_count signals are available:"
15536 echo $sig_name | $awk \
15537 'BEGIN { linelen = 0 }
15539 for (i = 1; i <= NF; i++) {
15540 name = "SIG" $i " "
15541 linelen = linelen + length(name)
15542 if (linelen > 70) {
15544 linelen = length(name)
15550 sig_size=`echo $sig_name | awk '{print NF}'`
15551 $rm -f signal signal.c signal.awk signal.lst signal_cmd
15554 case "$sizetype" in
15555 *_t) zzz="$sizetype" ;;
15556 *) zzz="filesize" ;;
15558 echo "Checking the size of $zzz..." >&4
15560 #include <sys/types.h>
15563 printf("%d\n", (int)sizeof($sizetype));
15568 if eval $compile_ok; then
15572 echo "(I can't execute the test program--guessing $sizesize.)" >&4
15575 echo "Your $zzz size is $sizesize bytes."
15580 echo "(I can't compile the test program--guessing $sizesize.)" >&4
15584 : check for socklen_t
15586 echo "Checking to see if you have socklen_t..." >&4
15588 #include <sys/types.h>
15589 #$d_socket HAS_SOCKET
15591 #include <sys/socket.h>
15593 int main() { socklen_t x = 16; }
15596 if eval $compile; then
15598 echo "You have socklen_t."
15601 echo "You do not have socklen_t."
15602 case "$sizetype" in
15603 size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
15610 : see if this is a socks.h system
15611 set socks.h i_socks
15614 : check for type of the size argument to socket calls
15615 case "$d_socket" in
15619 Checking to see what type is the last argument of accept().
15622 case "$d_socklen_t" in
15623 "$define") yyy="$yyy socklen_t"
15625 yyy="$yyy $sizetype int long unsigned"
15626 for xxx in $yyy; do
15627 case "$socksizetype" in
15628 '') try="extern int accept(int, struct sockaddr *, $xxx *);"
15629 case "$usesocks" in
15631 if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then
15632 echo "Your system accepts '$xxx *' for the last argument of accept()."
15633 socksizetype="$xxx"
15636 *) if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h; then
15637 echo "Your system accepts '$xxx *' for the last argument of accept()."
15638 socksizetype="$xxx"
15645 : In case none of those worked, prompt the user.
15646 case "$socksizetype" in
15647 '') rp='What is the type for socket address structure sizes?'
15654 *) : no sockets, so pick relatively harmless default
15659 : see what type is used for signed size_t
15660 set ssize_t ssizetype int stdio.h sys/types.h
15665 #include <sys/types.h>
15666 #define Size_t $sizetype
15667 #define SSize_t $dflt
15670 if (sizeof(Size_t) == sizeof(SSize_t))
15672 else if (sizeof(Size_t) == sizeof(int))
15681 if eval $compile_ok && $run ./try > /dev/null; then
15682 ssizetype=`$run ./try`
15683 echo "I'll be using $ssizetype for functions returning a byte count." >&4
15686 Help! I can't compile and run the ssize_t test program: please enlighten me!
15687 (This is probably a misconfiguration in your system or libraries, and
15688 you really ought to fix it. Still, I'll try anyway.)
15690 I need a type that is the same size as $sizetype, but is guaranteed to
15691 be signed. Common values are ssize_t, int and long.
15694 rp="What signed type is the same size as $sizetype?"
15700 : see what type of char stdio uses.
15702 echo '#include <stdio.h>' | $cppstdin $cppminus > stdioh
15703 if $contains 'unsigned.*char.*_ptr;' stdioh >/dev/null 2>&1 ; then
15704 echo "Your stdio uses unsigned chars." >&4
15705 stdchar="unsigned char"
15707 echo "Your stdio uses signed chars." >&4
15714 : see if time exists
15716 if test "X$d_time" = X -o X"$timetype" = X; then
15717 if set time val -f d_time; eval $csym; $val; then
15718 echo 'time() found.' >&4
15720 rp="What is the type returned by time() on this system?"
15721 set time_t timetype long stdio.h sys/types.h
15724 echo 'time() not found, hope that will do.' >&4
15732 : see what type uids are declared as in the kernel
15734 echo "Looking for the type for user ids returned by getuid()."
15735 set uid_t uidtype xxx stdio.h sys/types.h
15739 xxx=`./findhdr sys/user.h`
15740 set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
15742 unsigned) dflt="$1 $2" ;;
15746 *) dflt="$uidtype";;
15749 uid_t) echo "uid_t found." ;;
15750 *) rp="What is the type for user ids returned by getuid()?"
15758 *_t) zzz="$uidtype" ;;
15761 echo "Checking the size of $zzz..." >&4
15763 #include <sys/types.h>
15766 printf("%d\n", (int)sizeof($uidtype));
15771 if eval $compile_ok; then
15775 echo "(I can't execute the test program--guessing $uidsize.)" >&4
15778 echo "Your $zzz is $uidsize bytes long."
15783 echo "(I can't compile the test program--guessing $uidsize.)" >&4
15788 *_t) zzz="$uidtype" ;;
15791 echo "Checking the sign of $zzz..." >&4
15793 #include <sys/types.h>
15804 if eval $compile; then
15808 echo "(I can't execute the test program--guessing unsigned.)" >&4
15812 1) echo "Your $zzz is unsigned." ;;
15813 -1) echo "Your $zzz is signed." ;;
15819 echo "(I can't compile the test program--guessing unsigned.)" >&4
15825 $echo "Checking the format string to be used for uids..." >&4
15828 -1) if $test X"$uidsize" = X"$ivsize"; then
15829 uidformat="$ivdformat"
15831 if $test X"$uidsize" = X"$longsize"; then
15834 if $test X"$uidsize" = X"$intsize"; then
15837 if $test X"$uidsize" = X"$shortsize"; then
15844 *) if $test X"$uidsize" = X"$uvsize"; then
15845 uidformat="$uvuformat"
15847 if $test X"$uidsize" = X"$longsize"; then
15850 if $test X"$uidsize" = X"$intsize"; then
15853 if $test X"$uidsize" = X"$shortsize"; then
15862 : determine compiler compiler
15871 if $test -f "$byacc"; then
15873 comp="byacc or $comp"
15875 if $test -f "$bison"; then
15876 comp="$comp or bison -y"
15878 rp="Which compiler compiler ($comp) shall I use?"
15887 echo "(Adding -y option to bison to get yacc-compatible behaviour.)"
15893 : see if fcntl.h is there
15898 : see if we can include fcntl.h
15904 echo "We'll be including <fcntl.h>." >&4
15907 if $h_sysfile; then
15908 echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
15910 echo "We won't be including <fcntl.h>." >&4
15922 : see if this is a fp.h system
15926 : see if this is a fp_class.h system
15927 set fp_class.h i_fp_class
15930 : see if this is a ieeefp.h system
15931 case "$i_ieeefp" in
15932 '' ) set ieeefp.h i_ieeefp
15937 : see if this is a libutil.h system
15938 set libutil.h i_libutil
15941 : see if locale.h is available
15942 set locale.h i_locale
15945 : see if mach cthreads are available
15946 if test "X$usethreads" = "X$define"; then
15947 set mach/cthreads.h i_machcthr
15950 i_machcthr="$undef"
15955 : see if this is a math.h system
15959 : see if this is a mntent.h system
15960 set mntent.h i_mntent
15963 : see if ndbm.h is available
15968 : see if dbm_open exists
15969 set dbm_open d_dbm_open
15971 case "$d_dbm_open" in
15974 echo "We won't be including <ndbm.h>"
15983 : see if net/errno.h is available
15985 set net/errno.h val
15988 : Unfortunately, it causes problems on some systems. Arrgh.
15991 cat > try.c <<'EOM'
15994 #include <net/errno.h>
16000 if $cc $ccflags -c try.c >/dev/null 2>&1; then
16001 echo "We'll be including <net/errno.h>." >&4
16003 echo "We won't be including <net/errno.h>." >&4
16012 : see if netinet/tcp.h is available
16013 set netinet/tcp.h i_netinettcp
16016 : see if this is a poll.h system
16020 : see if this is a prot.h system
16025 $echo "Guessing which symbols your C compiler and preprocessor define..." >&4
16026 $cat <<'EOSH' > Cppsym.know
16027 a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370
16028 AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE
16029 alliant alpha am29000 AM29000 AMD64 amiga AMIGAOS AMIX
16030 ansi ANSI_C_SOURCE apollo ardent ARM32 atarist att386 att3b
16031 BeOS BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4
16032 BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi
16033 bull c cadmus clipper CMU COFF COMPILER_VERSION
16034 concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX
16035 CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
16036 Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD
16037 FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
16039 GNU_SOURCE GNUC GNUC_MINOR GNU_LIBRARY GO32 gould GOULD_PN
16040 H3050R H3050RX hbullx20 hcx host_mips
16041 hp200 hp300 hp700 HP700 hp800 hp9000
16042 hp9000s200 hp9000s300 hp9000s400 hp9000s500
16043 hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE
16044 i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960
16045 IA64 iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
16046 INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1
16047 LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE
16048 LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE
16049 Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
16050 LONGDOUBLE LONGLONG LP64 luna luna88k Lynx
16051 M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF
16052 M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3
16053 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen
16054 MATH_HAS_NO_SIDE_EFFECTS
16055 mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040
16056 mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin
16057 mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT
16058 MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola
16059 mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr
16060 NetBSD news1500 news1700 news1800 news1900 news3700
16061 news700 news800 news900 NeXT NLS nonstopux ns16000 ns32000
16062 ns32016 ns32332 ns32k nsc32000
16063 OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE
16064 pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc
16065 pc532 pdp11 PGC PIC plexus PORTAR posix
16066 POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
16067 POSIX_C_SOURCE POSIX_SOURCE POWER
16068 PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000
16069 riscix riscos RT S390 SA110 scs SCO sequent sgi SGI_SOURCE SH3 sinix
16070 SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE
16071 sony sony_news sonyrisc sparc sparclite spectrum
16072 stardent stdc STDC_EXT stratos sun sun3 sun386
16073 Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5
16074 SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44
16075 SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5
16076 sysV68 sysV88 Tek4132 Tek4300 titan
16077 TM3200 TM5400 TM5600
16078 tower tower32 tower32_200 tower32_600 tower32_700
16079 tower32_800 tower32_850 tss
16080 u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5
16081 ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK
16082 unix UNIX95 UNIX99 unixpc unos
16083 USE_BSD USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE USE_LARGEFILE64
16084 USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2
16085 USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED
16087 Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
16088 XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
16089 XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
16092 # Maybe put other stuff here too.
16093 cat <<EOSH >>Cppsym.know
16096 ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
16097 ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
16098 $cat Cppsym.know > Cppsym.c
16099 $cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | $sort | $uniq > Cppsym.know
16100 $rm -f Cppsym.a Cppsym.b Cppsym.c
16101 cat <<EOSH > Cppsym
16103 if $test \$# -gt 0; then
16104 echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got
16105 if $test -s Cppsym.got; then
16112 $tr " " "$trnl" | ./Cppsym.try
16118 cat <<EOSH > Cppsym.try
16120 cat <<'EOCP' > try.c
16126 cat <<'EOSH' >> Cppsym.try
16128 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
16129 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
16130 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
16131 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
16133 echo 'return 0;}' >> try.c
16135 cat <<EOSH >> Cppsym.try
16137 case "$osname-$gccversion" in
16138 irix-) ccflags="\$ccflags -woff 1178" ;;
16139 os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
16141 $cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
16143 chmod +x Cppsym.try
16144 $eunicefix Cppsym.try
16145 ./Cppsym < Cppsym.know > Cppsym.true
16146 : now check the C compiler for additional symbols
16147 postprocess_cc_v=''
16149 aix) postprocess_cc_v="|$tr , ' '" ;;
16156 for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
16159 -D*) echo "\$i" | $sed 's/^-D//';;
16160 -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';;
16165 postprocess_cc_v=''
16168 ./ccsym > ccsym1.raw
16169 if $test -s ccsym1.raw; then
16170 $sort ccsym1.raw | $uniq >ccsym.raw
16172 mv ccsym1.raw ccsym.raw
16175 $awk '/\=/ { print $0; next }
16176 { print $0"=1" }' ccsym.raw >ccsym.list
16177 $awk '/\=/ { print $0; next }
16178 { print $0"=1" }' Cppsym.true >ccsym.true
16179 $comm -13 ccsym.true ccsym.list >ccsym.own
16180 $comm -12 ccsym.true ccsym.list >ccsym.com
16181 $comm -23 ccsym.true ccsym.list >ccsym.cpp
16183 if $test -z ccsym.raw; then
16184 echo "Your C compiler doesn't seem to define any symbols!" >&4
16186 echo "However, your C preprocessor defines the following symbols:"
16189 cppsymbols=`$cat Cppsym.true`
16190 cppsymbols=`echo $cppsymbols`
16191 cppccsymbols="$cppsymbols"
16193 if $test -s ccsym.com; then
16194 echo "Your C compiler and pre-processor define these symbols:"
16195 $sed -e 's/\(..*\)=.*/\1/' ccsym.com
16198 cppccsymbols=`$cat ccsym.com`
16199 cppccsymbols=`echo $cppccsymbols`
16200 $test "$silent" || sleep 1
16202 if $test -s ccsym.cpp; then
16203 $test "$also" && echo " "
16204 echo "Your C pre-processor ${also}defines the following symbols:"
16205 $sed -e 's/\(..*\)=.*/\1/' ccsym.cpp
16207 cppsymbols=`$cat ccsym.cpp`
16208 cppsymbols=`echo $cppsymbols`
16209 $test "$silent" || sleep 1
16211 if $test -s ccsym.own; then
16212 $test "$also" && echo " "
16213 echo "Your C compiler ${also}defines the following cpp symbols:"
16214 $sed -e 's/\(..*\)=1/\1/' ccsym.own
16215 $sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
16216 ccsymbols=`$cat ccsym.own`
16217 ccsymbols=`echo $ccsymbols`
16218 $test "$silent" || sleep 1
16222 : see if this is a termio system
16226 if $test `./findhdr termios.h`; then
16227 set tcsetattr i_termios
16233 "$define") echo "You have POSIX termios.h... good!" >&4;;
16234 *) if ./Cppsym pyr; then
16235 case "`/bin/universe`" in
16236 ucb) if $test `./findhdr sgtty.h`; then
16238 echo "<sgtty.h> found." >&4
16240 echo "System is pyramid with BSD universe."
16241 echo "<sgtty.h> not found--you could have problems." >&4
16243 *) if $test `./findhdr termio.h`; then
16245 echo "<termio.h> found." >&4
16247 echo "System is pyramid with USG universe."
16248 echo "<termio.h> not found--you could have problems." >&4
16252 if $test `./findhdr termio.h`; then
16253 echo "<termio.h> found." >&4
16255 elif $test `./findhdr sgtty.h`; then
16256 echo "<sgtty.h> found." >&4
16259 echo "Neither <termio.h> nor <sgtty.h> found--you could have problems." >&4
16262 if $test `./findhdr sgtty.h`; then
16263 echo "<sgtty.h> found." >&4
16265 elif $test `./findhdr termio.h`; then
16266 echo "<termio.h> found." >&4
16269 echo "Neither <sgtty.h> nor <termio.h> found--you could have problems." >&4
16273 set i_termio; eval $setvar
16274 val=$val2; set i_sgtty; eval $setvar
16275 val=$val3; set i_termios; eval $setvar
16277 : see if this is a shadow.h system
16278 set shadow.h i_shadow
16281 : see if stddef is available
16282 set stddef.h i_stddef
16285 : see if this is a sunmath.h system
16286 set sunmath.h i_sunmath
16289 : see if sys/access.h is available
16290 set sys/access.h i_sysaccess
16293 : see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl
16294 set sys/filio.h i_sysfilio
16297 if $test `./findhdr sys/ioctl.h`; then
16299 echo '<sys/ioctl.h> found.' >&4
16302 if $test $i_sysfilio = "$define"; then
16303 echo '<sys/ioctl.h> NOT found.' >&4
16305 $test $i_sgtty = "$define" && xxx="sgtty.h"
16306 $test $i_termio = "$define" && xxx="termio.h"
16307 $test $i_termios = "$define" && xxx="termios.h"
16308 echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
16314 : see if socket ioctl defs are in sys/sockio.h
16316 xxx=`./findhdr sys/sockio.h`
16317 if $test "$xxx"; then
16318 if $contains SIOCATMARK $xxx >/dev/null 2>&1; then
16320 echo "You have socket ioctls defined in <sys/sockio.h>." >&4
16323 echo "No socket ioctls found in <sys/sockio.h>." >&4
16328 <sys/sockio.h> not found, assuming socket ioctls are in <sys/ioctl.h>.
16335 : see if this is a syslog.h system
16336 set syslog.h i_syslog
16340 : see if this is a sys/mode.h system
16341 set sys/mode.h i_sysmode
16344 : see if sys/resource.h has to be included
16345 set sys/resource.h i_sysresrc
16348 : see if sys/security.h is available
16349 set sys/security.h i_syssecrt
16352 : see if this is a sys/statvfs.h system
16353 set sys/statvfs.h i_sysstatvfs
16356 : see if this is a sys/un.h system
16357 set sys/un.h i_sysun
16361 : see if this is a sys/utsname.h system
16362 set sys/utsname.h i_sysutsname
16365 : see if this is a syswait system
16366 set sys/wait.h i_syswait
16369 : see if this is a ustat.h system
16370 set ustat.h i_ustat
16373 : see if this is an utime system
16374 set utime.h i_utime
16377 : see if this is a values.h system
16378 set values.h i_values
16381 : see if this is a vfork system
16384 set vfork.h i_vfork
16392 : see if gdbm.h is available
16397 : see if gdbm_open exists
16398 set gdbm_open d_gdbm_open
16400 case "$d_gdbm_open" in
16403 echo "We won't be including <gdbm.h>"
16413 echo "Looking for extensions..." >&4
16414 : If we are using the old config.sh, known_extensions may contain
16415 : old or inaccurate or duplicate values.
16416 known_extensions=''
16417 nonxs_extensions=''
16418 : We do not use find because it might not be available.
16419 : We do not just use MANIFEST because the user may have dropped
16420 : some additional extensions into the source tree and expect them
16423 : Function to recursively find available extensions, ignoring DynaLoader
16424 : NOTE: recursion limit of 10 to prevent runaway in case of symlink madness
16428 DynaLoader|dynaload) ;;
16430 if $test -f $xxx/$xxx.xs; then
16431 known_extensions="$known_extensions $1$xxx";
16432 elif $test -f $xxx/Makefile.PL; then
16433 nonxs_extensions="$nonxs_extensions $1$xxx";
16435 if $test -d $xxx -a $# -lt 10; then
16438 eval $find_extensions;
16450 eval $find_extensions
16451 # Special case: Add in threads/shared since it is not picked up by the
16452 # recursive find above (and adding in general recursive finding breaks
16453 # SDBM_File/sdbm). A.D. 10/25/2001.
16454 known_extensions="$known_extensions threads/shared"
16455 set X $nonxs_extensions
16457 nonxs_extensions="$*"
16458 set X $known_extensions
16460 known_extensions="$*"
16463 : Now see which are supported on this system.
16465 for xxx in $known_extensions ; do
16469 $define) avail_ext="$avail_ext $xxx" ;;
16472 GDBM_File|gdbm_fil)
16474 $define) avail_ext="$avail_ext $xxx" ;;
16477 I18N/Langinfo|i18n_lan)
16478 case "$i_langinfo$d_nl_langinfo" in
16479 $define$define) avail_ext="$avail_ext $xxx" ;;
16482 NDBM_File|ndbm_fil)
16485 case "$osname-$use64bitint" in
16486 cygwin-*|hpux-define)
16488 *-lndbm*) avail_ext="$avail_ext $xxx" ;;
16491 *) avail_ext="$avail_ext $xxx" ;;
16496 ODBM_File|odbm_fil)
16497 case "${i_dbm}${i_rpcsvcdbm}" in
16499 case "$osname-$use64bitint" in
16500 cygwin-*|hpux-define)
16502 *-ldbm*) avail_ext="$avail_ext $xxx" ;;
16505 *) avail_ext="$avail_ext $xxx" ;;
16511 case "$useposix" in
16512 true|define|y) avail_ext="$avail_ext $xxx" ;;
16516 case "$useopcode" in
16517 true|define|y) avail_ext="$avail_ext $xxx" ;;
16521 case "$d_socket" in
16522 true|$define|y) avail_ext="$avail_ext $xxx" ;;
16525 Sys/Syslog|sys/syslog)
16526 : XXX syslog requires socket
16527 case "$d_socket" in
16528 true|$define|y) avail_ext="$avail_ext $xxx" ;;
16532 case "$usethreads" in
16534 case "$useithreads" in
16535 $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
16539 threads|threads/shared)
16540 case "$usethreads" in
16542 case "$useithreads" in
16543 $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
16548 : XXX Do we need a useipcsysv variable here
16549 case "${d_msg}${d_sem}${d_shm}" in
16550 *"${define}"*) avail_ext="$avail_ext $xxx" ;;
16553 *) avail_ext="$avail_ext $xxx"
16562 : Now see which nonxs extensions are supported on this system.
16563 : For now assume all are.
16565 for xxx in $nonxs_extensions ; do
16567 *) nonxs_ext="$nonxs_ext $xxx"
16579 A number of extensions are supplied with $package. You may choose to
16580 compile these extensions for dynamic loading (the default), compile
16581 them into the $package executable (static loading), or not include
16582 them at all. Answer "none" to include no extensions.
16583 Note that DynaLoader is always built and need not be mentioned here.
16586 case "$dynamic_ext" in
16587 '') dflt="$avail_ext" ;;
16588 *) dflt="$dynamic_ext"
16589 # Perhaps we are reusing an old out-of-date config.sh.
16592 if test X"$dynamic_ext" != X"$avail_ext"; then
16594 NOTICE: Your previous config.sh list may be incorrect.
16595 The extensions now available to you are
16597 but the default list from your previous config.sh is
16609 rp="What extensions do you wish to load dynamically?"
16612 none) dynamic_ext=' ' ;;
16613 *) dynamic_ext="$ans" ;;
16616 case "$static_ext" in
16618 : Exclude those already listed in dynamic linking
16620 for xxx in $avail_ext; do
16621 case " $dynamic_ext " in
16623 *) dflt="$dflt $xxx" ;;
16630 *) dflt="$static_ext"
16637 rp="What extensions do you wish to load statically?"
16640 none) static_ext=' ' ;;
16641 *) static_ext="$ans" ;;
16646 A number of extensions are supplied with $package. Answer "none"
16647 to include no extensions.
16648 Note that DynaLoader is always built and need not be mentioned here.
16651 case "$static_ext" in
16652 '') dflt="$avail_ext" ;;
16653 *) dflt="$static_ext"
16654 # Perhaps we are reusing an old out-of-date config.sh.
16657 if test X"$static_ext" != X"$avail_ext"; then
16659 NOTICE: Your previous config.sh list may be incorrect.
16660 The extensions now available to you are
16662 but the default list from your previous config.sh is
16671 : Exclude those that are not xs extensions
16675 rp="What extensions do you wish to include?"
16678 none) static_ext=' ' ;;
16679 *) static_ext="$ans" ;;
16684 set X $dynamic_ext $static_ext $nonxs_ext
16688 : Remove libraries needed only for extensions
16689 : The appropriate ext/Foo/Makefile.PL will add them back in, if necessary.
16690 : The exception is SunOS 4.x, which needs them.
16691 case "${osname}X${osvers}" in
16695 *) case "$usedl" in
16696 $define|true|[yY]*)
16697 set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'`
16701 *) perllibs="$libs"
16707 : Remove build directory name from cppstdin so it can be used from
16708 : either the present location or the final installed location.
16710 : Get out of the UU directory to get correct path name.
16712 case "$cppstdin" in
16714 echo "Stripping down cppstdin path name"
16720 : end of configuration questions
16722 echo "End of configuration questions."
16725 : back to where it started
16726 if test -d ../UU; then
16730 : configuration may be patched via a 'config.arch' file
16731 if $test -f config.arch; then
16732 echo "I see a config.arch file, loading it."
16736 : configuration may be patched via a 'config.over' file
16737 if $test -f config.over; then
16740 rp='I see a config.over file. Do you wish to load it?'
16743 n*) echo "OK, I'll ignore it.";;
16745 echo "Configuration override changes have been loaded."
16750 : in case they want portability, strip down executable paths
16751 case "$d_portable" in
16754 echo "Stripping down executable paths..." >&4
16755 for file in $loclist $trylist; do
16757 eval $file=`basename $temp`
16762 : create config.sh file
16764 echo "Creating config.sh..." >&4
16765 $spitshell <<EOT >config.sh
16768 # This file was produced by running the Configure script. It holds all the
16769 # definitions figured out by Configure. Should you modify one of these values,
16770 # do not forget to propagate your changes by running "Configure -der". You may
16771 # instead choose to run each of the .SH files by yourself, or "Configure -S".
16774 # Package name : $package
16775 # Source directory : $src
16776 # Configuration time: $cf_time
16777 # Configured by : $cf_by
16778 # Target system : $myuname
16788 Revision='$Revision'
16796 alignbytes='$alignbytes'
16797 ansi2knr='$ansi2knr'
16798 aphostname='$aphostname'
16799 api_revision='$api_revision'
16800 api_subversion='$api_subversion'
16801 api_version='$api_version'
16802 api_versionstring='$api_versionstring'
16805 archlibexp='$archlibexp'
16806 archname64='$archname64'
16807 archname='$archname'
16808 archobjs='$archobjs'
16813 bincompat5005='$bincompat5005'
16817 byteorder='$byteorder'
16819 castflags='$castflags'
16822 cccdlflags='$cccdlflags'
16823 ccdlflags='$ccdlflags'
16825 ccflags_uselargefiles='$ccflags_uselargefiles'
16827 ccsymbols='$ccsymbols'
16828 ccversion='$ccversion'
16830 cf_email='$cf_email'
16832 charsize='$charsize'
16836 clocktype='$clocktype'
16838 compress='$compress'
16839 contains='$contains'
16843 cpp_stuff='$cpp_stuff'
16844 cppccsymbols='$cppccsymbols'
16845 cppflags='$cppflags'
16847 cppminus='$cppminus'
16849 cppstdin='$cppstdin'
16850 cppsymbols='$cppsymbols'
16851 cryptlib='$cryptlib'
16853 d_Gconvert='$d_Gconvert'
16854 d_PRIEUldbl='$d_PRIEUldbl'
16855 d_PRIFUldbl='$d_PRIFUldbl'
16856 d_PRIGUldbl='$d_PRIGUldbl'
16857 d_PRIXU64='$d_PRIXU64'
16858 d_PRId64='$d_PRId64'
16859 d_PRIeldbl='$d_PRIeldbl'
16860 d_PRIfldbl='$d_PRIfldbl'
16861 d_PRIgldbl='$d_PRIgldbl'
16862 d_PRIi64='$d_PRIi64'
16863 d_PRIo64='$d_PRIo64'
16864 d_PRIu64='$d_PRIu64'
16865 d_PRIx64='$d_PRIx64'
16866 d_SCNfldbl='$d_SCNfldbl'
16867 d__fwalk='$d__fwalk'
16868 d_access='$d_access'
16869 d_accessx='$d_accessx'
16871 d_archlib='$d_archlib'
16874 d_attribut='$d_attribut'
16877 d_bincompat5005='$d_bincompat5005'
16879 d_bsdgetpgrp='$d_bsdgetpgrp'
16880 d_bsdsetpgrp='$d_bsdsetpgrp'
16882 d_casti32='$d_casti32'
16883 d_castneg='$d_castneg'
16884 d_charvspr='$d_charvspr'
16886 d_chroot='$d_chroot'
16887 d_chsize='$d_chsize'
16889 d_closedir='$d_closedir'
16890 d_cmsghdr_s='$d_cmsghdr_s'
16894 d_cuserid='$d_cuserid'
16895 d_dbl_dig='$d_dbl_dig'
16896 d_dbminitproto='$d_dbminitproto'
16897 d_difftime='$d_difftime'
16899 d_dirnamlen='$d_dirnamlen'
16900 d_dlerror='$d_dlerror'
16901 d_dlopen='$d_dlopen'
16902 d_dlsymun='$d_dlsymun'
16903 d_dosuid='$d_dosuid'
16904 d_drand48proto='$d_drand48proto'
16906 d_eaccess='$d_eaccess'
16907 d_endgrent='$d_endgrent'
16908 d_endhent='$d_endhent'
16909 d_endnent='$d_endnent'
16910 d_endpent='$d_endpent'
16911 d_endpwent='$d_endpwent'
16912 d_endsent='$d_endsent'
16913 d_eofnblk='$d_eofnblk'
16914 d_eunice='$d_eunice'
16915 d_fchdir='$d_fchdir'
16916 d_fchmod='$d_fchmod'
16917 d_fchown='$d_fchown'
16919 d_fcntl_can_lock='$d_fcntl_can_lock'
16920 d_fd_macros='$d_fd_macros'
16921 d_fd_set='$d_fd_set'
16922 d_fds_bits='$d_fds_bits'
16923 d_fgetpos='$d_fgetpos'
16924 d_finite='$d_finite'
16925 d_finitel='$d_finitel'
16926 d_flexfnam='$d_flexfnam'
16928 d_flockproto='$d_flockproto'
16930 d_fp_class='$d_fp_class'
16931 d_fpathconf='$d_fpathconf'
16932 d_fpclass='$d_fpclass'
16933 d_fpclassify='$d_fpclassify'
16934 d_fpclassl='$d_fpclassl'
16935 d_fpos64_t='$d_fpos64_t'
16936 d_frexpl='$d_frexpl'
16937 d_fs_data_s='$d_fs_data_s'
16938 d_fseeko='$d_fseeko'
16939 d_fsetpos='$d_fsetpos'
16940 d_fstatfs='$d_fstatfs'
16941 d_fstatvfs='$d_fstatvfs'
16943 d_ftello='$d_ftello'
16945 d_getcwd='$d_getcwd'
16946 d_getespwnam='$d_getespwnam'
16947 d_getfsstat='$d_getfsstat'
16948 d_getgrent='$d_getgrent'
16949 d_getgrps='$d_getgrps'
16950 d_gethbyaddr='$d_gethbyaddr'
16951 d_gethbyname='$d_gethbyname'
16952 d_gethent='$d_gethent'
16953 d_gethname='$d_gethname'
16954 d_gethostprotos='$d_gethostprotos'
16955 d_getitimer='$d_getitimer'
16956 d_getlogin='$d_getlogin'
16957 d_getmnt='$d_getmnt'
16958 d_getmntent='$d_getmntent'
16959 d_getnbyaddr='$d_getnbyaddr'
16960 d_getnbyname='$d_getnbyname'
16961 d_getnent='$d_getnent'
16962 d_getnetprotos='$d_getnetprotos'
16963 d_getpagsz='$d_getpagsz'
16964 d_getpbyname='$d_getpbyname'
16965 d_getpbynumber='$d_getpbynumber'
16966 d_getpent='$d_getpent'
16967 d_getpgid='$d_getpgid'
16968 d_getpgrp2='$d_getpgrp2'
16969 d_getpgrp='$d_getpgrp'
16970 d_getppid='$d_getppid'
16971 d_getprior='$d_getprior'
16972 d_getprotoprotos='$d_getprotoprotos'
16973 d_getprpwnam='$d_getprpwnam'
16974 d_getpwent='$d_getpwent'
16975 d_getsbyname='$d_getsbyname'
16976 d_getsbyport='$d_getsbyport'
16977 d_getsent='$d_getsent'
16978 d_getservprotos='$d_getservprotos'
16979 d_getspnam='$d_getspnam'
16980 d_gettimeod='$d_gettimeod'
16981 d_gnulibc='$d_gnulibc'
16982 d_grpasswd='$d_grpasswd'
16983 d_hasmntopt='$d_hasmntopt'
16986 d_inetaton='$d_inetaton'
16987 d_int64_t='$d_int64_t'
16988 d_isascii='$d_isascii'
16989 d_isfinite='$d_isfinite'
16992 d_isnanl='$d_isnanl'
16993 d_killpg='$d_killpg'
16994 d_lchown='$d_lchown'
16995 d_ldbl_dig='$d_ldbl_dig'
16997 d_locconv='$d_locconv'
16999 d_longdbl='$d_longdbl'
17000 d_longlong='$d_longlong'
17001 d_lseekproto='$d_lseekproto'
17003 d_madvise='$d_madvise'
17005 d_mbstowcs='$d_mbstowcs'
17006 d_mbtowc='$d_mbtowc'
17007 d_memchr='$d_memchr'
17008 d_memcmp='$d_memcmp'
17009 d_memcpy='$d_memcpy'
17010 d_memmove='$d_memmove'
17011 d_memset='$d_memset'
17013 d_mkdtemp='$d_mkdtemp'
17014 d_mkfifo='$d_mkfifo'
17015 d_mkstemp='$d_mkstemp'
17016 d_mkstemps='$d_mkstemps'
17017 d_mktime='$d_mktime'
17020 d_modfl_pow32_bug='$d_modfl_pow32_bug'
17021 d_mprotect='$d_mprotect'
17023 d_msg_ctrunc='$d_msg_ctrunc'
17024 d_msg_dontroute='$d_msg_dontroute'
17025 d_msg_oob='$d_msg_oob'
17026 d_msg_peek='$d_msg_peek'
17027 d_msg_proxy='$d_msg_proxy'
17028 d_msgctl='$d_msgctl'
17029 d_msgget='$d_msgget'
17030 d_msghdr_s='$d_msghdr_s'
17031 d_msgrcv='$d_msgrcv'
17032 d_msgsnd='$d_msgsnd'
17034 d_munmap='$d_munmap'
17035 d_mymalloc='$d_mymalloc'
17037 d_nl_langinfo='$d_nl_langinfo'
17038 d_nv_preserves_uv='$d_nv_preserves_uv'
17039 d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
17040 d_off64_t='$d_off64_t'
17041 d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
17042 d_oldpthreads='$d_oldpthreads'
17043 d_oldsock='$d_oldsock'
17045 d_pathconf='$d_pathconf'
17047 d_perl_otherlibdirs='$d_perl_otherlibdirs'
17048 d_phostname='$d_phostname'
17051 d_portable='$d_portable'
17052 d_procselfexe='$d_procselfexe'
17053 d_pthread_atfork='$d_pthread_atfork'
17054 d_pthread_yield='$d_pthread_yield'
17056 d_pwchange='$d_pwchange'
17057 d_pwclass='$d_pwclass'
17058 d_pwcomment='$d_pwcomment'
17059 d_pwexpire='$d_pwexpire'
17060 d_pwgecos='$d_pwgecos'
17061 d_pwpasswd='$d_pwpasswd'
17062 d_pwquota='$d_pwquota'
17065 d_readdir='$d_readdir'
17066 d_readlink='$d_readlink'
17068 d_recvmsg='$d_recvmsg'
17069 d_rename='$d_rename'
17070 d_rewinddir='$d_rewinddir'
17072 d_safebcpy='$d_safebcpy'
17073 d_safemcpy='$d_safemcpy'
17074 d_sanemcmp='$d_sanemcmp'
17075 d_sbrkproto='$d_sbrkproto'
17076 d_sched_yield='$d_sched_yield'
17077 d_scm_rights='$d_scm_rights'
17078 d_seekdir='$d_seekdir'
17079 d_select='$d_select'
17081 d_semctl='$d_semctl'
17082 d_semctl_semid_ds='$d_semctl_semid_ds'
17083 d_semctl_semun='$d_semctl_semun'
17084 d_semget='$d_semget'
17086 d_sendmsg='$d_sendmsg'
17087 d_setegid='$d_setegid'
17088 d_seteuid='$d_seteuid'
17089 d_setgrent='$d_setgrent'
17090 d_setgrps='$d_setgrps'
17091 d_sethent='$d_sethent'
17092 d_setitimer='$d_setitimer'
17093 d_setlinebuf='$d_setlinebuf'
17094 d_setlocale='$d_setlocale'
17095 d_setnent='$d_setnent'
17096 d_setpent='$d_setpent'
17097 d_setpgid='$d_setpgid'
17098 d_setpgrp2='$d_setpgrp2'
17099 d_setpgrp='$d_setpgrp'
17100 d_setprior='$d_setprior'
17101 d_setproctitle='$d_setproctitle'
17102 d_setpwent='$d_setpwent'
17103 d_setregid='$d_setregid'
17104 d_setresgid='$d_setresgid'
17105 d_setresuid='$d_setresuid'
17106 d_setreuid='$d_setreuid'
17107 d_setrgid='$d_setrgid'
17108 d_setruid='$d_setruid'
17109 d_setsent='$d_setsent'
17110 d_setsid='$d_setsid'
17111 d_setvbuf='$d_setvbuf'
17115 d_shmatprototype='$d_shmatprototype'
17116 d_shmctl='$d_shmctl'
17118 d_shmget='$d_shmget'
17119 d_sigaction='$d_sigaction'
17120 d_sigprocmask='$d_sigprocmask'
17121 d_sigsetjmp='$d_sigsetjmp'
17122 d_sockatmark='$d_sockatmark'
17123 d_sockatmarkproto='$d_sockatmarkproto'
17124 d_socket='$d_socket'
17125 d_socklen_t='$d_socklen_t'
17126 d_sockpair='$d_sockpair'
17127 d_socks5_init='$d_socks5_init'
17129 d_sresgproto='$d_sresgproto'
17130 d_sresuproto='$d_sresuproto'
17131 d_statblks='$d_statblks'
17132 d_statfs_f_flags='$d_statfs_f_flags'
17133 d_statfs_s='$d_statfs_s'
17134 d_statvfs='$d_statvfs'
17135 d_stdio_cnt_lval='$d_stdio_cnt_lval'
17136 d_stdio_ptr_lval='$d_stdio_ptr_lval'
17137 d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt'
17138 d_stdio_ptr_lval_sets_cnt='$d_stdio_ptr_lval_sets_cnt'
17139 d_stdio_stream_array='$d_stdio_stream_array'
17140 d_stdiobase='$d_stdiobase'
17141 d_stdstdio='$d_stdstdio'
17142 d_strchr='$d_strchr'
17143 d_strcoll='$d_strcoll'
17144 d_strctcpy='$d_strctcpy'
17145 d_strerrm='$d_strerrm'
17146 d_strerror='$d_strerror'
17147 d_strftime='$d_strftime'
17148 d_strtod='$d_strtod'
17149 d_strtol='$d_strtol'
17150 d_strtold='$d_strtold'
17151 d_strtoll='$d_strtoll'
17152 d_strtoq='$d_strtoq'
17153 d_strtoul='$d_strtoul'
17154 d_strtoull='$d_strtoull'
17155 d_strtouq='$d_strtouq'
17156 d_strxfrm='$d_strxfrm'
17157 d_suidsafe='$d_suidsafe'
17158 d_symlink='$d_symlink'
17159 d_syscall='$d_syscall'
17160 d_syscallproto='$d_syscallproto'
17161 d_sysconf='$d_sysconf'
17162 d_sysernlst='$d_sysernlst'
17163 d_syserrlst='$d_syserrlst'
17164 d_system='$d_system'
17165 d_tcgetpgrp='$d_tcgetpgrp'
17166 d_tcsetpgrp='$d_tcsetpgrp'
17167 d_telldir='$d_telldir'
17168 d_telldirproto='$d_telldirproto'
17171 d_truncate='$d_truncate'
17172 d_tzname='$d_tzname'
17173 d_u32align='$d_u32align'
17174 d_ualarm='$d_ualarm'
17177 d_union_semun='$d_union_semun'
17178 d_unordered='$d_unordered'
17179 d_usleep='$d_usleep'
17180 d_usleepproto='$d_usleepproto'
17182 d_vendorarch='$d_vendorarch'
17183 d_vendorbin='$d_vendorbin'
17184 d_vendorlib='$d_vendorlib'
17186 d_void_closedir='$d_void_closedir'
17187 d_voidsig='$d_voidsig'
17188 d_voidtty='$d_voidtty'
17189 d_volatile='$d_volatile'
17190 d_vprintf='$d_vprintf'
17192 d_waitpid='$d_waitpid'
17193 d_wcstombs='$d_wcstombs'
17194 d_wctomb='$d_wctomb'
17195 d_writev='$d_writev'
17198 db_hashtype='$db_hashtype'
17199 db_prefixtype='$db_prefixtype'
17200 db_version_major='$db_version_major'
17201 db_version_minor='$db_version_minor'
17202 db_version_patch='$db_version_patch'
17203 defvoidused='$defvoidused'
17204 direntrytype='$direntrytype'
17207 doublesize='$doublesize'
17209 dynamic_ext='$dynamic_ext'
17215 eunicefix='$eunicefix'
17218 extensions='$extensions'
17220 fflushNULL='$fflushNULL'
17221 fflushall='$fflushall'
17223 firstmakefile='$firstmakefile'
17225 fpossize='$fpossize'
17226 fpostype='$fpostype'
17227 freetype='$freetype'
17230 full_csh='$full_csh'
17231 full_sed='$full_sed'
17232 gccosandvers='$gccosandvers'
17233 gccversion='$gccversion'
17234 gidformat='$gidformat'
17240 groupcat='$groupcat'
17241 groupstype='$groupstype'
17244 h_sysfile='$h_sysfile'
17255 i_arpainet='$i_arpainet'
17256 i_bsdioctl='$i_bsdioctl'
17259 i_dirent='$i_dirent'
17265 i_fp_class='$i_fp_class'
17268 i_ieeefp='$i_ieeefp'
17269 i_inttypes='$i_inttypes'
17270 i_langinfo='$i_langinfo'
17271 i_libutil='$i_libutil'
17272 i_limits='$i_limits'
17273 i_locale='$i_locale'
17274 i_machcthr='$i_machcthr'
17275 i_malloc='$i_malloc'
17277 i_memory='$i_memory'
17278 i_mntent='$i_mntent'
17281 i_neterrno='$i_neterrno'
17282 i_netinettcp='$i_netinettcp'
17286 i_pthread='$i_pthread'
17288 i_rpcsvcdbm='$i_rpcsvcdbm'
17291 i_shadow='$i_shadow'
17293 i_stdarg='$i_stdarg'
17294 i_stddef='$i_stddef'
17295 i_stdlib='$i_stdlib'
17296 i_string='$i_string'
17297 i_sunmath='$i_sunmath'
17298 i_sysaccess='$i_sysaccess'
17299 i_sysdir='$i_sysdir'
17300 i_sysfile='$i_sysfile'
17301 i_sysfilio='$i_sysfilio'
17303 i_sysioctl='$i_sysioctl'
17304 i_syslog='$i_syslog'
17305 i_sysmman='$i_sysmman'
17306 i_sysmode='$i_sysmode'
17307 i_sysmount='$i_sysmount'
17308 i_sysndir='$i_sysndir'
17309 i_sysparam='$i_sysparam'
17310 i_sysresrc='$i_sysresrc'
17311 i_syssecrt='$i_syssecrt'
17312 i_sysselct='$i_sysselct'
17313 i_syssockio='$i_syssockio'
17314 i_sysstat='$i_sysstat'
17315 i_sysstatfs='$i_sysstatfs'
17316 i_sysstatvfs='$i_sysstatvfs'
17317 i_systime='$i_systime'
17318 i_systimek='$i_systimek'
17319 i_systimes='$i_systimes'
17320 i_systypes='$i_systypes'
17321 i_sysuio='$i_sysuio'
17323 i_sysutsname='$i_sysutsname'
17324 i_sysvfs='$i_sysvfs'
17325 i_syswait='$i_syswait'
17326 i_termio='$i_termio'
17327 i_termios='$i_termios'
17329 i_unistd='$i_unistd'
17332 i_values='$i_values'
17333 i_varargs='$i_varargs'
17334 i_varhdr='$i_varhdr'
17336 ignore_versioned_solibs='$ignore_versioned_solibs'
17337 inc_version_list='$inc_version_list'
17338 inc_version_list_init='$inc_version_list_init'
17341 installarchlib='$installarchlib'
17342 installbin='$installbin'
17343 installman1dir='$installman1dir'
17344 installman3dir='$installman3dir'
17345 installprefix='$installprefix'
17346 installprefixexp='$installprefixexp'
17347 installprivlib='$installprivlib'
17348 installscript='$installscript'
17349 installsitearch='$installsitearch'
17350 installsitebin='$installsitebin'
17351 installsitelib='$installsitelib'
17352 installstyle='$installstyle'
17353 installusrbinperl='$installusrbinperl'
17354 installvendorarch='$installvendorarch'
17355 installvendorbin='$installvendorbin'
17356 installvendorlib='$installvendorlib'
17358 issymlink='$issymlink'
17359 ivdformat='$ivdformat'
17362 known_extensions='$known_extensions'
17365 lddlflags='$lddlflags'
17367 ldflags_uselargefiles='$ldflags_uselargefiles'
17368 ldlibpthname='$ldlibpthname'
17375 libsdirs='$libsdirs'
17376 libsfiles='$libsfiles'
17377 libsfound='$libsfound'
17378 libspath='$libspath'
17379 libswanted='$libswanted'
17380 libswanted_uselargefiles='$libswanted_uselargefiles'
17386 locincpth='$locincpth'
17387 loclibpth='$loclibpth'
17388 longdblsize='$longdblsize'
17389 longlongsize='$longlongsize'
17390 longsize='$longsize'
17394 lseeksize='$lseeksize'
17395 lseektype='$lseektype'
17399 make_set_make='$make_set_make'
17400 mallocobj='$mallocobj'
17401 mallocsrc='$mallocsrc'
17402 malloctype='$malloctype'
17404 man1direxp='$man1direxp'
17407 man3direxp='$man3direxp'
17409 mips_type='$mips_type'
17411 mmaptype='$mmaptype'
17412 modetype='$modetype'
17414 multiarch='$multiarch'
17416 myarchname='$myarchname'
17417 mydomain='$mydomain'
17418 myhostname='$myhostname'
17421 need_va_copy='$need_va_copy'
17422 netdb_hlen_type='$netdb_hlen_type'
17423 netdb_host_type='$netdb_host_type'
17424 netdb_name_type='$netdb_name_type'
17425 netdb_net_type='$netdb_net_type'
17428 nm_so_opt='$nm_so_opt'
17429 nonxs_ext='$nonxs_ext'
17431 nvEUformat='$nvEUformat'
17432 nvFUformat='$nvFUformat'
17433 nvGUformat='$nvGUformat'
17434 nveformat='$nveformat'
17435 nvfformat='$nvfformat'
17436 nvgformat='$nvgformat'
17439 o_nonblock='$o_nonblock'
17441 old_pthread_create_joinable='$old_pthread_create_joinable'
17442 optimize='$optimize'
17443 orderlib='$orderlib'
17446 otherlibdirs='$otherlibdirs'
17450 patchlevel='$patchlevel'
17451 path_sep='$path_sep'
17454 perl_patchlevel='$perl_patchlevel'
17455 perladmin='$perladmin'
17456 perllibs='$perllibs'
17457 perlpath='$perlpath'
17459 phostname='$phostname'
17462 pm_apiversion='$pm_apiversion'
17466 prefixexp='$prefixexp'
17468 privlibexp='$privlibexp'
17469 procselfexe='$procselfexe'
17470 prototype='$prototype'
17472 quadkind='$quadkind'
17473 quadtype='$quadtype'
17474 randbits='$randbits'
17475 randfunc='$randfunc'
17476 randseedtype='$randseedtype'
17478 rd_nodata='$rd_nodata'
17479 revision='$revision'
17484 sPRIEUldbl='$sPRIEUldbl'
17485 sPRIFUldbl='$sPRIFUldbl'
17486 sPRIGUldbl='$sPRIGUldbl'
17487 sPRIXU64='$sPRIXU64'
17489 sPRIeldbl='$sPRIeldbl'
17490 sPRIfldbl='$sPRIfldbl'
17491 sPRIgldbl='$sPRIgldbl'
17496 sSCNfldbl='$sSCNfldbl'
17497 sched_yield='$sched_yield'
17498 scriptdir='$scriptdir'
17499 scriptdirexp='$scriptdirexp'
17501 seedfunc='$seedfunc'
17502 selectminbits='$selectminbits'
17503 selecttype='$selecttype'
17504 sendmail='$sendmail'
17507 sharpbang='$sharpbang'
17508 shmattype='$shmattype'
17509 shortsize='$shortsize'
17512 sig_count='$sig_count'
17513 sig_name='$sig_name'
17514 sig_name_init='$sig_name_init'
17516 sig_num_init='$sig_num_init'
17517 sig_size='$sig_size'
17518 signal_t='$signal_t'
17519 sitearch='$sitearch'
17520 sitearchexp='$sitearchexp'
17522 sitebinexp='$sitebinexp'
17524 sitelib_stem='$sitelib_stem'
17525 sitelibexp='$sitelibexp'
17526 siteprefix='$siteprefix'
17527 siteprefixexp='$siteprefixexp'
17528 sizesize='$sizesize'
17529 sizetype='$sizetype'
17533 sockethdr='$sockethdr'
17534 socketlib='$socketlib'
17535 socksizetype='$socksizetype'
17537 spackage='$spackage'
17538 spitshell='$spitshell'
17540 ssizetype='$ssizetype'
17541 startperl='$startperl'
17543 static_ext='$static_ext'
17545 stdio_base='$stdio_base'
17546 stdio_bufsiz='$stdio_bufsiz'
17547 stdio_cnt='$stdio_cnt'
17548 stdio_filbuf='$stdio_filbuf'
17549 stdio_ptr='$stdio_ptr'
17550 stdio_stream_array='$stdio_stream_array'
17553 subversion='$subversion'
17557 targetarch='$targetarch'
17561 timeincl='$timeincl'
17562 timetype='$timetype'
17576 uidformat='$uidformat'
17582 uquadtype='$uquadtype'
17583 use5005threads='$use5005threads'
17584 use64bitall='$use64bitall'
17585 use64bitint='$use64bitint'
17586 usecrosscompile='$usecrosscompile'
17588 useithreads='$useithreads'
17589 uselargefiles='$uselargefiles'
17590 uselongdouble='$uselongdouble'
17591 usemorebits='$usemorebits'
17592 usemultiplicity='$usemultiplicity'
17593 usemymalloc='$usemymalloc'
17595 useopcode='$useopcode'
17596 useperlio='$useperlio'
17597 useposix='$useposix'
17598 usereentrant='$usereentrant'
17600 useshrplib='$useshrplib'
17601 usesocks='$usesocks'
17602 usethreads='$usethreads'
17603 usevendorprefix='$usevendorprefix'
17604 usevfork='$usevfork'
17607 uvXUformat='$uvXUformat'
17608 uvoformat='$uvoformat'
17611 uvuformat='$uvuformat'
17612 uvxformat='$uvxformat'
17613 vendorarch='$vendorarch'
17614 vendorarchexp='$vendorarchexp'
17615 vendorbin='$vendorbin'
17616 vendorbinexp='$vendorbinexp'
17617 vendorlib='$vendorlib'
17618 vendorlib_stem='$vendorlib_stem'
17619 vendorlibexp='$vendorlibexp'
17620 vendorprefix='$vendorprefix'
17621 vendorprefixexp='$vendorprefixexp'
17623 version_patchlevel_string='$version_patchlevel_string'
17624 versiononly='$versiononly'
17626 voidflags='$voidflags'
17628 xs_apiversion='$xs_apiversion'
17630 yaccflags='$yaccflags'
17635 : Add in command line options if available
17636 $test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh
17638 : add special variables
17639 $test -f $src/patchlevel.h && \
17640 awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
17641 echo "PERL_PATCHLEVEL=$perl_patchlevel" >>config.sh
17642 echo "PERL_CONFIG_SH=true" >>config.sh
17644 : propagate old symbols
17645 if $test -f UU/config.sh; then
17646 <UU/config.sh $sort | $uniq >UU/oldconfig.sh
17647 sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\
17648 $sort | $uniq -u >UU/oldsyms
17649 set X `cat UU/oldsyms`
17655 Hmm...You had some extra variables I don't know about...I'll try to keep 'em...
17657 echo "# Variables propagated from previous config.sh file." >>config.sh
17658 for sym in `cat UU/oldsyms`; do
17659 echo " Propagating $hint variable "'$'"$sym..."
17660 eval 'tmp="$'"${sym}"'"'
17662 sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh
17668 : Finish up by extracting the .SH files
17672 echo "Extraction done."
17682 If you'd like to make any changes to the config.sh file before I begin
17683 to configure things, do it as a shell escape now (e.g. !vi config.sh).
17686 rp="Press return or use a shell escape to edit config.sh:"
17691 *) : in case they cannot read
17692 sh 1>&4 -c "$ans";;
17697 : if this fails, just run all the .SH files by hand
17706 if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
17713 Now you need to generate make dependencies by running "$make depend".
17714 You might prefer to run it in background: "$make depend > makedepend.out &"
17715 It can take a while, so you might not want to run it right now.
17720 rp="Run $make depend now?"
17724 $make depend && echo "Now you must run '$make'."
17727 echo "You must run '$make depend' then '$make'."
17730 elif test -f [Mm]akefile; then
17732 echo "Now you must run a $make."
17734 echo "Configure done."
17737 if $test -f Policy.sh; then
17740 If you compile $package on a different machine or from a different object
17741 directory, copy the Policy.sh file from this object directory to the
17742 new one before you run Configure -- this will help you with most of
17743 the policy defaults.
17747 if $test -f config.msg; then
17748 echo "Hmm. I also noted the following information while running:"
17750 $cat config.msg >&4
17753 $rm -f kit*isdone ark*isdone