3 # If these # comments don't work, trim them. Don't worry about any other
4 # shell scripts, Configure will trim # comments from them for you.
6 # (If you are trying to port this package to a machine without sh,
7 # I would suggest you have a look at the prototypical config_h.SH file
8 # and edit it to reflect your system. Some packages may include samples
9 # of config.h for certain machines, so you might look for one of those.)
11 # Yes, you may rip this off to use in other distribution packages. This
12 # script belongs to the public domain and cannot be copyrighted.
14 # (Note: this Configure script was generated automatically. Rather than
15 # working with this copy of Configure, you may wish to get metaconfig.
16 # The dist-3.0 package (which contains metaconfig) was posted in
17 # comp.sources.misc and is available on CPAN under authors/id/RAM so
18 # you may fetch it yourself from your nearest archive site.)
21 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
23 # Generated on Fri Nov 23 21:55:36 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"'
11529 if $issymlink /proc/curproc/file ; then
11530 $ls -l /proc/curproc/file > reflect
11531 if $contains /`basename $ls` reflect >/dev/null 2>&1; then
11532 echo "You have BSD-like /proc/curproc/file."
11533 procselfexe='"/proc/curproc/file"'
11544 : see if pthread_atfork exists
11545 set pthread_atfork d_pthread_atfork
11549 : see whether the various POSIXish _yields exist
11551 #include <pthread.h>
11557 #ifdef PTHREAD_YIELD
11560 #ifdef PTHREAD_YIELD_NULL
11561 pthread_yield(NULL);
11567 : see if sched_yield exists
11568 set try -DSCHED_YIELD
11569 if eval $compile; then
11571 sched_yield='sched_yield()'
11575 case "$usethreads" in
11578 $define) echo 'sched_yield() found.' >&4 ;;
11579 *) echo 'sched_yield() NOT found.' >&4 ;;
11585 : see if pthread_yield exists
11586 set try -DPTHREAD_YIELD
11587 if eval $compile; then
11589 case "$sched_yield" in
11590 '') sched_yield='pthread_yield()' ;;
11593 set try -DPTHREAD_YIELD_NULL
11594 if eval $compile; then
11596 case "$sched_yield" in
11597 '') sched_yield='pthread_yield(NULL)' ;;
11603 case "$usethreads" in
11606 $define) echo 'pthread_yield() found.' >&4 ;;
11607 *) echo 'pthread_yield() NOT found.' >&4 ;;
11611 set d_pthread_yield
11614 case "$sched_yield" in
11615 '') sched_yield=undef ;;
11620 : see if this is a pwd.h system
11626 xxx=`./findhdr pwd.h`
11627 $cppstdin $cppflags $cppminus < $xxx >$$.h
11629 if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
11637 if $contains 'pw_age' $$.h >/dev/null 2>&1; then
11645 if $contains 'pw_change' $$.h >/dev/null 2>&1; then
11653 if $contains 'pw_class' $$.h >/dev/null 2>&1; then
11661 if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
11669 if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
11677 if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
11685 if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
11697 set d_pwquota; eval $setvar
11698 set d_pwage; eval $setvar
11699 set d_pwchange; eval $setvar
11700 set d_pwclass; eval $setvar
11701 set d_pwexpire; eval $setvar
11702 set d_pwcomment; eval $setvar
11703 set d_pwgecos; eval $setvar
11704 set d_pwpasswd; eval $setvar
11708 : see if readdir and friends exist
11709 set readdir d_readdir
11711 set seekdir d_seekdir
11713 set telldir d_telldir
11715 set rewinddir d_rewinddir
11718 : see if readv exists
11722 : see if recvmsg exists
11723 set recvmsg d_recvmsg
11726 : see if rename exists
11727 set rename d_rename
11730 : see if rmdir exists
11734 : see if memory.h is available.
11739 : See if it conflicts with string.h
11745 $cppstdin $cppflags $cppminus < $strings > mem.h
11746 if $contains 'memcpy' mem.h >/dev/null 2>&1; then
11748 echo "We won't be including <memory.h>."
11758 : can bcopy handle overlapping blocks?
11761 case "$d_memmove" in
11762 "$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
11763 *) case "$d_bcopy" in
11765 echo "Checking to see if bcopy() can do overlapping copies..." >&4
11767 #$i_memory I_MEMORY
11768 #$i_stdlib I_STDLIB
11769 #$i_string I_STRING
11770 #$i_unistd I_UNISTD
11772 $cat >>try.c <<'EOCP'
11775 # include <memory.h>
11778 # include <stdlib.h>
11781 # include <string.h>
11783 # include <strings.h>
11786 # include <unistd.h> /* Needed for NetBSD */
11790 char buf[128], abc[128];
11796 /* Copy "abcde..." string to char abc[] so that gcc doesn't
11797 try to store the string in read-only memory. */
11798 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
11800 for (align = 7; align >= 0; align--) {
11801 for (len = 36; len; len--) {
11803 bcopy(abc, b, len);
11804 for (off = 1; off <= len; off++) {
11805 bcopy(b, b+off, len);
11806 bcopy(b+off, b, len);
11807 if (bcmp(b, abc, len))
11816 if eval $compile_ok; then
11817 if ./try 2>/dev/null; then
11818 echo "Yes, it can."
11821 echo "It can't, sorry."
11824 echo "(I can't compile the test program, so we'll assume not...)"
11828 $rm -f try.* try core
11834 : can memcpy handle overlapping blocks?
11837 case "$d_memmove" in
11838 "$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
11839 *) case "$d_memcpy" in
11841 echo "Checking to see if memcpy() can do overlapping copies..." >&4
11843 #$i_memory I_MEMORY
11844 #$i_stdlib I_STDLIB
11845 #$i_string I_STRING
11846 #$i_unistd I_UNISTD
11848 $cat >>try.c <<'EOCP'
11851 # include <memory.h>
11854 # include <stdlib.h>
11857 # include <string.h>
11859 # include <strings.h>
11862 # include <unistd.h> /* Needed for NetBSD */
11866 char buf[128], abc[128];
11872 /* Copy "abcde..." string to char abc[] so that gcc doesn't
11873 try to store the string in read-only memory. */
11874 memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36);
11876 for (align = 7; align >= 0; align--) {
11877 for (len = 36; len; len--) {
11879 memcpy(b, abc, len);
11880 for (off = 1; off <= len; off++) {
11881 memcpy(b+off, b, len);
11882 memcpy(b, b+off, len);
11883 if (memcmp(b, abc, len))
11892 if eval $compile_ok; then
11893 if ./try 2>/dev/null; then
11894 echo "Yes, it can."
11897 echo "It can't, sorry."
11900 echo "(I can't compile the test program, so we'll assume not...)"
11904 $rm -f try.* try core
11910 : can memcmp be trusted to compare relative magnitude?
11912 case "$d_memcmp" in
11915 echo "Checking if your memcmp() can compare relative magnitude..." >&4
11917 #$i_memory I_MEMORY
11918 #$i_stdlib I_STDLIB
11919 #$i_string I_STRING
11920 #$i_unistd I_UNISTD
11922 $cat >>try.c <<'EOCP'
11925 # include <memory.h>
11928 # include <stdlib.h>
11931 # include <string.h>
11933 # include <strings.h>
11936 # include <unistd.h> /* Needed for NetBSD */
11942 if ((a < b) && memcmp(&a, &b, 1) < 0)
11948 if eval $compile_ok; then
11949 if $run ./try 2>/dev/null; then
11950 echo "Yes, it can."
11953 echo "No, it can't (it uses signed chars)."
11956 echo "(I can't compile the test program, so we'll assume not...)"
11960 $rm -f try.* try core
11964 : see if prototype for sbrk is available
11966 set d_sbrkproto sbrk $i_unistd unistd.h
11969 : see if select exists
11970 set select d_select
11973 : see if semctl exists
11974 set semctl d_semctl
11977 : see if semget exists
11978 set semget d_semget
11981 : see if semop exists
11985 : see how much of the 'sem*(2)' library is present.
11988 case "$d_semctl$d_semget$d_semop" in
11989 *"$undef"*) h_sem=false;;
11993 case "`ipcs 2>&1`" in
11994 "SVID messages"*"not configured"*)
11995 echo "Your $osname does not have the sem*(2) configured." >&4
11998 set semctl d_semctl
12000 set semget d_semget
12008 : we could also check for sys/ipc.h ...
12009 if $h_sem && $test `./findhdr sys/sem.h`; then
12010 echo "You have the full sem*(2) library." >&4
12013 echo "You don't have the full sem*(2) library." >&4
12019 : see whether sys/sem.h defines union semun
12021 $cat > try.c <<'END'
12022 #include <sys/types.h>
12023 #include <sys/ipc.h>
12024 #include <sys/sem.h>
12025 int main () { union semun semun; semun.buf = 0; }
12028 if eval $compile; then
12029 echo "You have union semun in <sys/sem.h>." >&4
12032 echo "You do not have union semun in <sys/sem.h>." >&4
12035 $rm -f try try.c try.h
12039 : see how to do semctl IPC_STAT
12042 : see whether semctl IPC_STAT can use union semun
12047 # define S_IRUSR S_IREAD
12048 # define S_IWUSR S_IWRITE
12049 # define S_IXUSR S_IEXEC
12051 # define S_IRUSR 0400
12052 # define S_IWUSR 0200
12053 # define S_IXUSR 0100
12055 # define S_IRGRP (S_IRUSR>>3)
12056 # define S_IWGRP (S_IWUSR>>3)
12057 # define S_IXGRP (S_IXUSR>>3)
12058 # define S_IROTH (S_IRUSR>>6)
12059 # define S_IWOTH (S_IWUSR>>6)
12060 # define S_IXOTH (S_IXUSR>>6)
12063 # define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
12064 # define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
12065 # define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
12070 #include <sys/types.h>
12071 #include <sys/ipc.h>
12072 #include <sys/sem.h>
12073 #include <sys/stat.h>
12080 #$d_union_semun HAS_UNION_SEMUN
12083 #ifndef HAS_UNION_SEMUN
12086 struct semid_ds *buf;
12087 unsigned short *array;
12093 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
12094 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
12096 struct semid_ds argbuf;
12099 st = semctl(sem, 0, IPC_STAT, arg);
12103 # endif /* IPC_STAT */
12104 printf("semctl IPC_STAT failed: errno = %d\n", errno);
12106 if (semctl(sem, 0, IPC_RMID, arg) != 0)
12107 # endif /* IPC_RMID */
12108 printf("semctl IPC_RMID failed: errno = %d\n", errno);
12110 #endif /* IPC_PRIVATE && ... */
12111 printf("semget failed: errno = %d\n", errno);
12117 if eval $compile; then
12120 semun) val="$define" ;;
12126 case "$d_semctl_semun" in
12128 echo "You can use union semun for semctl IPC_STAT." >&4
12131 *) echo "You cannot use union semun for semctl IPC_STAT." >&4
12136 : see whether semctl IPC_STAT can use struct semid_ds pointer
12137 $cat > try.c <<'END'
12138 #include <sys/types.h>
12139 #include <sys/ipc.h>
12140 #include <sys/sem.h>
12141 #include <sys/stat.h>
12149 struct semid_ds arg;
12152 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
12153 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
12156 st = semctl(sem, 0, IPC_STAT, &arg);
12158 printf("semid_ds\n");
12160 # endif /* IPC_STAT */
12161 printf("semctl IPC_STAT failed: errno = %d\n", errno);
12163 if (semctl(sem, 0, IPC_RMID, &arg) != 0)
12164 # endif /* IPC_RMID */
12165 printf("semctl IPC_RMID failed: errno = %d\n", errno);
12167 #endif /* IPC_PRIVATE && ... */
12168 printf("semget failed: errno = %d\n", errno);
12175 if eval $compile; then
12178 semid_ds) val="$define" ;;
12182 set d_semctl_semid_ds
12184 case "$d_semctl_semid_ds" in
12186 echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4
12188 *) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
12195 # We do not have the full sem*(2) library, so assume we can not
12201 set d_semctl_semid_ds
12206 : see if sendmsg exists
12207 set sendmsg d_sendmsg
12210 : see if setegid exists
12211 set setegid d_setegid
12214 : see if seteuid exists
12215 set seteuid d_seteuid
12218 : see if setgrent exists
12219 set setgrent d_setgrent
12222 : see if sethostent exists
12223 set sethostent d_sethent
12226 : see if setitimer exists
12227 set setitimer d_setitimer
12230 : see if setlinebuf exists
12231 set setlinebuf d_setlinebuf
12234 : see if setlocale exists
12235 set setlocale d_setlocale
12238 : see if setnetent exists
12239 set setnetent d_setnent
12242 : see if setprotoent exists
12243 set setprotoent d_setpent
12246 : see if setpgid exists
12247 set setpgid d_setpgid
12250 : see if setpgrp2 exists
12251 set setpgrp2 d_setpgrp2
12254 : see if setpriority exists
12255 set setpriority d_setprior
12258 : see if setproctitle exists
12259 set setproctitle d_setproctitle
12262 : see if setpwent exists
12263 set setpwent d_setpwent
12266 : see if setregid exists
12267 set setregid d_setregid
12269 set setresgid d_setresgid
12272 : see if setreuid exists
12273 set setreuid d_setreuid
12275 set setresuid d_setresuid
12278 : see if setrgid exists
12279 set setrgid d_setrgid
12282 : see if setruid exists
12283 set setruid d_setruid
12286 : see if setservent exists
12287 set setservent d_setsent
12290 : see if setsid exists
12291 set setsid d_setsid
12294 : see if setvbuf exists
12295 set setvbuf d_setvbuf
12298 : see if sfio.h is available
12303 : see if sfio library is available
12314 : Ok, but do we want to use it.
12318 true|$define|[yY]*) dflt='y';;
12321 echo "$package can use the sfio library, but it is experimental."
12322 case "$useperlio" in
12324 echo "For sfio also the PerlIO abstraction layer is needed."
12325 echo "Earlier you said you wouldn't want that."
12328 rp="You seem to have sfio available, do you want to try using it?"
12331 y|Y) echo "Ok, turning on both sfio and PerlIO, then."
12332 useperlio="$define"
12335 *) echo "Ok, avoiding sfio this time. I'll use stdio instead."
12340 *) case "$usesfio" in
12341 true|$define|[yY]*)
12342 echo "Sorry, cannot find sfio on this machine." >&4
12343 echo "Ignoring your setting of usesfio=$usesfio." >&4
12352 $define) usesfio='true';;
12353 *) usesfio='false';;
12357 *) : Remove sfio from list of libraries to use
12360 echo "Removing unneeded -lsfio from library list" >&4
12361 set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
12364 echo "libs = $libs" >&4
12371 : see if shmctl exists
12372 set shmctl d_shmctl
12375 : see if shmget exists
12376 set shmget d_shmget
12379 : see if shmat exists
12382 : see what shmat returns
12385 $cat >shmat.c <<'END'
12386 #include <sys/shm.h>
12389 if $cc $ccflags -c shmat.c >/dev/null 2>&1; then
12394 echo "and it returns ($shmattype)." >&4
12395 : see if a prototype for shmat is available
12396 xxx=`./findhdr sys/shm.h`
12397 $cppstdin $cppflags $cppminus < $xxx > shmat.c 2>/dev/null
12398 if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
12409 set d_shmatprototype
12412 : see if shmdt exists
12416 : see how much of the 'shm*(2)' library is present.
12419 case "$d_shmctl$d_shmget$d_shmat$d_shmdt" in
12420 *"$undef"*) h_shm=false;;
12424 case "`ipcs 2>&1`" in
12425 "SVID shared memory"*"not configured"*)
12426 echo "Your $osname does not have the shm*(2) configured." >&4
12429 set shmctl d_shmctl
12431 set shmget d_shmget
12441 : we could also check for sys/ipc.h ...
12442 if $h_shm && $test `./findhdr sys/shm.h`; then
12443 echo "You have the full shm*(2) library." >&4
12446 echo "You don't have the full shm*(2) library." >&4
12453 : see if we have sigaction
12454 if set sigaction val -f d_sigaction; eval $csym; $val; then
12455 echo 'sigaction() found.' >&4
12456 $cat > try.c <<'EOP'
12458 #include <sys/types.h>
12459 #include <signal.h>
12462 struct sigaction act, oact;
12464 oact.sa_handler = 0;
12465 /* so that act and oact are used */
12466 exit(act.sa_flags == 0 && oact.sa_handler == 0);
12470 if eval $compile_ok; then
12473 echo "But you don't seem to have a useable struct sigaction." >&4
12477 echo 'sigaction NOT found.' >&4
12480 set d_sigaction; eval $setvar
12481 $rm -f try try$_o try.c
12483 : see if sigprocmask exists
12484 set sigprocmask d_sigprocmask
12487 : see if sigsetjmp exists
12489 case "$d_sigsetjmp" in
12491 $cat >try.c <<'EOP'
12492 #include <setjmp.h>
12497 if (sigsetjmp(env,1))
12500 siglongjmp(env, 1);
12505 if eval $compile; then
12506 if $run ./try >/dev/null 2>&1; then
12507 echo "POSIX sigsetjmp found." >&4
12511 Uh-Oh! You have POSIX sigsetjmp and siglongjmp, but they do not work properly!!
12517 echo "sigsetjmp not found." >&4
12521 *) val="$d_sigsetjmp"
12522 case "$d_sigsetjmp" in
12523 $define) echo "POSIX sigsetjmp found." >&4;;
12524 $undef) echo "sigsetjmp not found." >&4;;
12532 : see if sockatmark exists
12533 set sockatmark d_sockatmark
12536 : see if prototype for sockatmark is available
12538 set d_sockatmarkproto sockatmark $d_socket sys/socket.h
12541 : see if socks5_init exists
12542 set socks5_init d_socks5_init
12545 : see if prototype for setresgid is available
12547 set d_sresgproto setresgid $i_unistd unistd.h
12550 : see if prototype for setresuid is available
12552 set d_sresuproto setresuid $i_unistd unistd.h
12555 : see if sys/stat.h is available
12556 set sys/stat.h i_sysstat
12560 : see if stat knows about block sizes
12562 echo "Checking to see if your struct stat has st_blocks field..." >&4
12563 set d_statblks stat st_blocks $i_sysstat sys/stat.h
12567 : see if this is a sys/vfs.h system
12568 set sys/vfs.h i_sysvfs
12572 : see if this is a sys/statfs.h system
12573 set sys/statfs.h i_sysstatfs
12578 echo "Checking to see if your system supports struct statfs..." >&4
12579 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
12581 case "$d_statfs_s" in
12582 "$define") echo "Yes, it does." ;;
12583 *) echo "No, it doesn't." ;;
12588 : see if struct statfs knows about f_flags
12589 case "$d_statfs_s" in
12592 echo "Checking to see if your struct statfs has f_flags field..." >&4
12593 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
12597 set d_statfs_f_flags
12601 case "$d_statfs_f_flags" in
12602 "$define") echo "Yes, it does." ;;
12603 *) echo "No, it doesn't." ;;
12606 : see if _ptr and _cnt from stdio act std
12609 if $contains '_lbfsize' `./findhdr stdio.h` >/dev/null 2>&1 ; then
12610 echo "(Looks like you have stdio.h from BSD.)"
12611 case "$stdio_ptr" in
12612 '') stdio_ptr='((fp)->_p)'
12615 *) ptr_lval=$d_stdio_ptr_lval;;
12617 case "$stdio_cnt" in
12618 '') stdio_cnt='((fp)->_r)'
12621 *) cnt_lval=$d_stdio_cnt_lval;;
12623 case "$stdio_base" in
12624 '') stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)';;
12626 case "$stdio_bufsiz" in
12627 '') stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)';;
12629 elif $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then
12630 echo "(Looks like you have stdio.h from Linux.)"
12631 case "$stdio_ptr" in
12632 '') stdio_ptr='((fp)->_IO_read_ptr)'
12635 *) ptr_lval=$d_stdio_ptr_lval;;
12637 case "$stdio_cnt" in
12638 '') stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
12641 *) cnt_lval=$d_stdio_cnt_lval;;
12643 case "$stdio_base" in
12644 '') stdio_base='((fp)->_IO_read_base)';;
12646 case "$stdio_bufsiz" in
12647 '') stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)';;
12650 case "$stdio_ptr" in
12651 '') stdio_ptr='((fp)->_ptr)'
12654 *) ptr_lval=$d_stdio_ptr_lval;;
12656 case "$stdio_cnt" in
12657 '') stdio_cnt='((fp)->_cnt)'
12660 *) cnt_lval=$d_stdio_cnt_lval;;
12662 case "$stdio_base" in
12663 '') stdio_base='((fp)->_base)';;
12665 case "$stdio_bufsiz" in
12666 '') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';;
12670 : test whether _ptr and _cnt really work
12671 echo "Checking how std your stdio is..." >&4
12674 #define FILE_ptr(fp) $stdio_ptr
12675 #define FILE_cnt(fp) $stdio_cnt
12677 FILE *fp = fopen("try.c", "r");
12680 18 <= FILE_cnt(fp) &&
12681 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
12689 if eval $compile && $to try.c; then
12690 if $run ./try; then
12691 echo "Your stdio acts pretty std."
12694 echo "Your stdio isn't very std."
12697 echo "Your stdio doesn't appear very std."
12703 : Can _ptr be used as an lvalue?
12704 case "$d_stdstdio$ptr_lval" in
12705 $define$define) val=$define ;;
12708 set d_stdio_ptr_lval
12711 : Can _cnt be used as an lvalue?
12712 case "$d_stdstdio$cnt_lval" in
12713 $define$define) val=$define ;;
12716 set d_stdio_cnt_lval
12720 : test whether setting _ptr sets _cnt as a side effect
12721 d_stdio_ptr_lval_sets_cnt="$undef"
12722 d_stdio_ptr_lval_nochange_cnt="$undef"
12723 case "$d_stdio_ptr_lval$d_stdstdio" in
12725 echo "Checking to see what happens if we set the stdio ptr..." >&4
12728 /* Can we scream? */
12729 /* Eat dust sed :-) */
12730 /* In the buffer space, no one can hear you scream. */
12731 #define FILE_ptr(fp) $stdio_ptr
12732 #define FILE_cnt(fp) $stdio_cnt
12733 #include <sys/types.h>
12735 FILE *fp = fopen("try.c", "r");
12740 puts("Fail even to read");
12743 c = getc(fp); /* Read away the first # */
12745 puts("Fail even to read");
12749 18 <= FILE_cnt(fp) &&
12750 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
12752 puts("Fail even to read");
12755 ptr = (char*) FILE_ptr(fp);
12756 cnt = (size_t)FILE_cnt(fp);
12758 FILE_ptr(fp) += 42;
12760 if ((char*)FILE_ptr(fp) != (ptr + 42)) {
12761 printf("Fail ptr check %p != %p", FILE_ptr(fp), (ptr + 42));
12764 if (FILE_cnt(fp) <= 20) {
12765 printf ("Fail (<20 chars to test)");
12768 if (strncmp(FILE_ptr(fp), "Eat dust sed :-) */\n", 20) != 0) {
12769 puts("Fail compare");
12772 if (cnt == FILE_cnt(fp)) {
12773 puts("Pass_unchanged");
12776 if (FILE_cnt(fp) == (cnt - 42)) {
12777 puts("Pass_changed");
12780 printf("Fail count was %d now %d\n", cnt, FILE_cnt(fp));
12786 if eval $compile && $to try.c; then
12787 case `$run ./try` in
12789 echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
12790 d_stdio_ptr_lval_sets_cnt="$define" ;;
12792 echo "Increasing ptr in your stdio leaves cnt unchanged. Good." >&4
12793 d_stdio_ptr_lval_nochange_cnt="$define" ;;
12795 echo "Increasing ptr in your stdio didn't do exactly what I expected. We'll not be doing that then." >&4 ;;
12797 echo "It appears attempting to set ptr in your stdio is a bad plan." >&4 ;;
12800 echo "It seems we can't set ptr in your stdio. Nevermind." >&4
12806 : see if _base is also standard
12808 case "$d_stdstdio" in
12812 #define FILE_base(fp) $stdio_base
12813 #define FILE_bufsiz(fp) $stdio_bufsiz
12815 FILE *fp = fopen("try.c", "r");
12818 19 <= FILE_bufsiz(fp) &&
12819 strncmp(FILE_base(fp), "#include <stdio.h>\n", 19) == 0
12826 if eval $compile && $to try.c; then
12827 if $run ./try; then
12828 echo "And its _base field acts std."
12831 echo "But its _base field isn't std."
12834 echo "However, it seems to be lacking the _base field."
12843 Checking how to access stdio streams by file descriptor number...
12845 case "$stdio_stream_array" in
12846 '') $cat >try.c <<EOCP
12849 if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
12853 for s in _iob __iob __sF
12855 set try -DSTDIO_STREAM_ARRAY=$s
12856 if eval $compile; then
12857 case "`$run ./try`" in
12858 yes) stdio_stream_array=$s; break ;;
12862 $rm -f try.* try$exe_ext
12864 case "$stdio_stream_array" in
12866 I can't figure out how to access stdio streams by file descriptor number.
12868 d_stdio_stream_array="$undef"
12871 You can access stdio streams by file descriptor number by the $stdio_stream_array array.
12873 d_stdio_stream_array="$define"
12877 : see if strcoll exists
12878 set strcoll d_strcoll
12881 : check for structure copying
12883 echo "Checking to see if your C compiler can copy structs..." >&4
12884 $cat >try.c <<'EOCP'
12894 if $cc -c try.c >/dev/null 2>&1 ; then
12896 echo "Yup, it can."
12899 echo "Nope, it can't."
12905 : see if strerror and/or sys_errlist[] exist
12907 if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then
12908 if set strerror val -f d_strerror; eval $csym; $val; then
12909 echo 'strerror() found.' >&4
12910 d_strerror="$define"
12911 d_strerrm='strerror(e)'
12912 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12913 echo "(You also have sys_errlist[], so we could roll our own strerror.)"
12914 d_syserrlst="$define"
12916 echo "(Since you don't have sys_errlist[], sterror() is welcome.)"
12917 d_syserrlst="$undef"
12919 elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \
12920 $contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
12921 echo 'strerror() found in string header.' >&4
12922 d_strerror="$define"
12923 d_strerrm='strerror(e)'
12924 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12925 echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
12926 d_syserrlst="$define"
12928 echo "(You don't appear to have any sys_errlist[], how can this be?)"
12929 d_syserrlst="$undef"
12931 elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then
12932 echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
12933 d_strerror="$undef"
12934 d_syserrlst="$define"
12935 d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
12937 echo 'strerror() and sys_errlist[] NOT found.' >&4
12938 d_strerror="$undef"
12939 d_syserrlst="$undef"
12940 d_strerrm='"unknown"'
12944 : see if strftime exists
12945 set strftime d_strftime
12948 : see if strtod exists
12949 set strtod d_strtod
12952 : see if strtol exists
12953 set strtol d_strtol
12956 : see if strtold exists
12957 set strtold d_strtold
12960 : see if strtoll exists
12961 set strtoll d_strtoll
12964 case "$d_longlong-$d_strtoll" in
12967 Checking whether your strtoll() works okay...
12969 $cat >try.c <<'EOCP'
12972 #define strtoll __strtoll
12975 #define strtoll _strtoll
12978 extern long long int strtoll(char *s, char **, int);
12979 static int bad = 0;
12980 int check(char *s, long long ell, int een) {
12983 gll = strtoll(s, 0, 10);
12984 if (!((gll == ell) && (errno == een)))
12988 check(" 1", 1LL, 0);
12989 check(" 0", 0LL, 0);
12990 check("-1", -1LL, 0);
12991 check("-9223372036854775808", -9223372036854775808LL, 0);
12992 check("-9223372036854775808", -9223372036854775808LL, 0);
12993 check(" 9223372036854775807", 9223372036854775807LL, 0);
12994 check("-9223372036854775808", -9223372036854775808LL, 0);
12995 check(" 9223372036854775808", 9223372036854775807LL, ERANGE);
12996 check("-9223372036854775809", -9223372036854775808LL, ERANGE);
13002 if eval $compile; then
13005 ok) echo "Your strtoll() seems to be working okay." ;;
13007 Your strtoll() doesn't seem to be working okay.
13013 echo "(I can't seem to compile the test program--assuming it doesn't)"
13019 : see if strtoq exists
13020 set strtoq d_strtoq
13023 : see if strtoul exists
13024 set strtoul d_strtoul
13027 case "$d_strtoul" in
13030 Checking whether your strtoul() works okay...
13032 $cat >try.c <<'EOCP'
13035 extern unsigned long int strtoul(char *s, char **, int);
13036 static int bad = 0;
13037 void check(char *s, unsigned long eul, int een) {
13040 gul = strtoul(s, 0, 10);
13041 if (!((gul == eul) && (errno == een)))
13045 check(" 1", 1L, 0);
13046 check(" 0", 0L, 0);
13048 case "$longsize" in
13050 $cat >>try.c <<'EOCP'
13051 check("18446744073709551615", 18446744073709551615UL, 0);
13052 check("18446744073709551616", 18446744073709551615UL, ERANGE);
13053 #if 0 /* strtoul() for /^-/ strings is undefined. */
13054 check("-1", 18446744073709551615UL, 0);
13055 check("-18446744073709551614", 2, 0);
13056 check("-18446744073709551615", 1, 0);
13057 check("-18446744073709551616", 18446744073709551615UL, ERANGE);
13058 check("-18446744073709551617", 18446744073709551615UL, ERANGE);
13063 $cat >>try.c <<'EOCP'
13064 check("4294967295", 4294967295UL, 0);
13065 check("4294967296", 4294967295UL, ERANGE);
13066 #if 0 /* strtoul() for /^-/ strings is undefined. */
13067 check("-1", 4294967295UL, 0);
13068 check("-4294967294", 2, 0);
13069 check("-4294967295", 1, 0);
13070 check("-4294967296", 4294967295UL, ERANGE);
13071 check("-4294967297", 4294967295UL, ERANGE);
13076 : Should we write these tests to be more portable by sprintf-ing
13077 : ~0 and then manipulating that char string as input for strtol?
13080 $cat >>try.c <<'EOCP'
13087 if eval $compile; then
13088 case "`$run ./try`" in
13089 ok) echo "Your strtoul() seems to be working okay." ;;
13091 Your strtoul() doesn't seem to be working okay.
13100 : see if strtoull exists
13101 set strtoull d_strtoull
13104 case "$d_longlong-$d_strtoull" in
13107 Checking whether your strtoull() works okay...
13109 $cat >try.c <<'EOCP'
13112 #define strtoull __strtoull
13115 extern unsigned long long int strtoull(char *s, char **, int);
13116 static int bad = 0;
13117 int check(char *s, long long eull, int een) {
13120 gull = strtoull(s, 0, 10);
13121 if (!((gull == eull) && (errno == een)))
13125 check(" 1", 1LL, 0);
13126 check(" 0", 0LL, 0);
13127 check("18446744073709551615", 18446744073709551615ULL, 0);
13128 check("18446744073709551616", 18446744073709551615ULL, ERANGE);
13129 #if 0 /* strtoull() for /^-/ strings is undefined. */
13130 check("-1", 18446744073709551615ULL, 0);
13131 check("-18446744073709551614", 2LL, 0);
13132 check("-18446744073709551615", 1LL, 0);
13133 check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
13134 check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
13141 if eval $compile; then
13142 case "`$run ./try`" in
13143 ok) echo "Your strtoull() seems to be working okay." ;;
13145 Your strtoull() doesn't seem to be working okay.
13147 d_strtoull="$undef"
13154 : see if strtouq exists
13155 set strtouq d_strtouq
13158 case "$d_strtouq" in
13161 Checking whether your strtouq() works okay...
13163 $cat >try.c <<'EOCP'
13166 extern unsigned long long int strtouq(char *s, char **, int);
13167 static int bad = 0;
13168 void check(char *s, unsigned long long eull, int een) {
13169 unsigned long long gull;
13171 gull = strtouq(s, 0, 10);
13172 if (!((gull == eull) && (errno == een)))
13176 check(" 1", 1LL, 0);
13177 check(" 0", 0LL, 0);
13178 check("18446744073709551615", 18446744073709551615ULL, 0);
13179 check("18446744073709551616", 18446744073709551615ULL, ERANGE);
13180 #if 0 /* strtouq() for /^-/ strings is undefined. */
13181 check("-1", 18446744073709551615ULL, 0);
13182 check("-18446744073709551614", 2LL, 0);
13183 check("-18446744073709551615", 1LL, 0);
13184 check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
13185 check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
13193 if eval $compile; then
13194 case "`$run ./try`" in
13195 ok) echo "Your strtouq() seems to be working okay." ;;
13197 Your strtouq() doesn't seem to be working okay.
13206 : see if strxfrm exists
13207 set strxfrm d_strxfrm
13210 : see if symlink exists
13211 set symlink d_symlink
13214 : see if syscall exists
13215 set syscall d_syscall
13218 : see if prototype for syscall is available
13220 set d_syscallproto syscall $i_unistd unistd.h
13223 : see if sysconf exists
13224 set sysconf d_sysconf
13227 : see if system exists
13228 set system d_system
13231 : see if tcgetpgrp exists
13232 set tcgetpgrp d_tcgetpgrp
13235 : see if tcsetpgrp exists
13236 set tcsetpgrp d_tcsetpgrp
13239 : see if prototype for telldir is available
13241 set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
13244 : see if this is a sys/times.h system
13245 set sys/times.h i_systimes
13248 : see if times exists
13250 if set times val -f d_times; eval $csym; $val; then
13251 echo 'times() found.' >&4
13254 case "$i_systimes" in
13255 "$define") inc='sys/times.h';;
13257 rp="What is the type returned by times() on this system?"
13258 set clock_t clocktype long stdio.h sys/types.h $inc
13261 echo 'times() NOT found, hope that will do.' >&4
13266 : see if truncate exists
13267 set truncate d_truncate
13270 : see if tzname[] exists
13272 if set tzname val -a d_tzname; eval $csym; $val; then
13274 echo 'tzname[] found.' >&4
13277 echo 'tzname[] NOT found.' >&4
13283 next|rhapsody|darwin) multiarch="$define" ;;
13285 case "$multiarch" in
13286 ''|[nN]*) multiarch="$undef" ;;
13289 : check for ordering of bytes in a long
13291 case "$usecrosscompile$multiarch" in
13294 You seem to be either cross-compiling or doing a multiarchitecture build,
13295 skipping the byteorder check.
13301 case "$byteorder" in
13304 In the following, larger digits indicate more significance. A big-endian
13305 machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
13306 little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
13307 machines may have weird orders like 3412. A Cray will report 87654321,
13308 an Alpha will report 12345678. If the test program works the default is
13310 I'm now running the test program...
13312 $cat >try.c <<'EOCP'
13319 char c[sizeof(long)];
13322 if (sizeof(long) > 4)
13323 u.l = (0x08070605L << 32) | 0x04030201L;
13326 for (i = 0; i < sizeof(long); i++)
13327 printf("%c", u.c[i]+'0');
13334 if eval $compile && ./try > /dev/null; then
13337 [1-4][1-4][1-4][1-4]|12345678|87654321)
13338 echo "(The test program ran ok.)"
13339 echo "byteorder=$dflt"
13342 ????|????????) echo "(The test program ran ok.)" ;;
13343 *) echo "(The test program didn't run right for some reason.)" ;;
13348 (I can't seem to compile the test program. Guessing big-endian...)
13351 case "$xxx_prompt" in
13353 rp="What is the order of bytes in a long?"
13369 Checking to see whether you can access character data unalignedly...
13373 #define U32 $u32type
13374 #define BYTEORDER $byteorder
13376 #if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
13377 U8 buf[] = "\0\0\0\1\0\0\0\0";
13381 if (sizeof(U32) != 4) {
13382 printf("sizeof(U32) is not 4, but %d\n", sizeof(U32));
13388 for (i = 0; i < 4; i++) {
13389 up = (U32*)(buf + i);
13390 if (! ((*up == 1 << (8*i)) || /* big-endian */
13391 (*up == 1 << (8*(3-i))) /* little-endian */
13395 printf("read failed (%x)\n", *up);
13401 for (i = 0; i < 4; i++) {
13402 up = (U32*)(buf + i);
13404 if (*up != 0xBeef) {
13405 printf("write failed (%x)\n", *up);
13419 if eval $compile_ok; then
13420 echo "(Testing for character data alignment may dump core.)" >&4
13421 $run ./try 2>&1 >/dev/null
13424 You can access character data pretty unalignedly.
13426 d_u32align="$undef"
13429 It seems that you must access character data in an aligned manner.
13431 d_u32align="$define"
13434 $rm -f core core.try.* try.core
13436 rp='Can you access character data at unaligned addresses?'
13440 [yY]*) d_u32align="$undef" ;;
13441 *) d_u32align="$define" ;;
13445 : see if ualarm exists
13446 set ualarm d_ualarm
13449 : see if umask exists
13453 : see if unordered exists
13454 set unordered d_unordered
13457 : see if usleep exists
13458 set usleep d_usleep
13461 : see if prototype for usleep is available
13463 set d_usleepproto usleep $i_unistd unistd.h
13466 : see if ustat exists
13470 : backward compatibility for d_hvfork
13471 if test X$d_hvfork != X; then
13472 d_vfork="$d_hvfork"
13475 : see if there is a vfork
13480 : Ok, but do we want to use it. vfork is reportedly unreliable in
13481 : perl on Solaris 2.x, and probably elsewhere.
13485 case "$usevfork" in
13491 Perl can only use a vfork() that doesn't suffer from strict
13492 restrictions on calling functions or modifying global data in
13493 the child. For example, glibc-2.1 contains such a vfork()
13494 that is unsuitable. If your system provides a proper fork()
13495 call, chances are that you do NOT want perl to use vfork().
13498 rp="Do you still want to use vfork()?"
13503 echo "Ok, we won't use vfork()."
13512 $define) usevfork='true';;
13513 *) usevfork='false';;
13516 : see if closedir exists
13517 set closedir d_closedir
13520 case "$d_closedir" in
13523 echo "Checking whether closedir() returns a status..." >&4
13525 #$i_dirent I_DIRENT /**/
13526 #$i_sysdir I_SYS_DIR /**/
13527 #$i_sysndir I_SYS_NDIR /**/
13528 #$i_systypes I_SYS_TYPES /**/
13530 #if defined(I_SYS_TYPES)
13531 #include <sys/types.h>
13533 #if defined(I_DIRENT)
13534 #include <dirent.h>
13535 #if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
13536 #include <sys/dir.h>
13540 #include <sys/ndir.h>
13544 #include <ndir.h> /* may be wrong in the future */
13546 #include <sys/dir.h>
13551 int main() { return closedir(opendir(".")); }
13554 if eval $compile_ok; then
13555 if $run ./try > /dev/null 2>&1 ; then
13556 echo "Yes, it does."
13559 echo "No, it doesn't."
13563 echo "(I can't seem to compile the test program--assuming it doesn't)"
13571 set d_void_closedir
13574 : see if there is a wait4
13578 : see if waitpid exists
13579 set waitpid d_waitpid
13582 : see if wcstombs exists
13583 set wcstombs d_wcstombs
13586 : see if wctomb exists
13587 set wctomb d_wctomb
13590 : see if writev exists
13591 set writev d_writev
13594 : preserve RCS keywords in files with variable substitution, grrr
13599 Revision='$Revision'
13601 : check for alignment requirements
13603 case "$usecrosscompile$multiarch" in
13606 You seem to be either cross-compiling or doing a multiarchitecture build,
13607 skipping the memory alignment check.
13610 case "$alignbytes" in
13611 '') alignbytes=8 ;;
13615 case "$alignbytes" in
13616 '') echo "Checking alignment constraints..." >&4
13617 if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then
13618 $cat >try.c <<'EOCP'
13619 typedef long double NV;
13622 $cat >try.c <<'EOCP'
13626 $cat >>try.c <<'EOCP'
13634 printf("%d\n", (int)((char *)&try_algn.bar - (char *)&try_algn.foo));
13639 if eval $compile_ok; then
13643 echo "(I can't seem to compile the test program...)"
13646 *) dflt="$alignbytes"
13649 rp="Doubles must be aligned on a how-many-byte boundary?"
13657 : set the base revision
13660 : how do we catenate cpp tokens here?
13662 echo "Checking to see how your cpp does stuff like catenate tokens..." >&4
13663 $cat >cpp_stuff.c <<'EOCP'
13664 #define RCAT(a,b)a/**/b
13665 #define ACAT(a,b)a ## b
13669 $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
13670 if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then
13671 echo "Oh! Smells like ANSI's been here." >&4
13672 echo "We can catify or stringify, separately or together!"
13674 elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then
13675 echo "Ah, yes! The good old days!" >&4
13676 echo "However, in the good old days we don't know how to stringify and"
13677 echo "catify at the same time."
13681 Hmm, I don't seem to be able to catenate tokens with your cpp. You're going
13682 to have to edit the values of CAT[2-5] in config.h...
13684 cpp_stuff="/* Help! How do we handle cpp_stuff? */*/"
13688 : see if this is a db.h system
13694 : Check db version.
13696 echo "Checking Berkeley DB version ..." >&4
13702 #include <sys/types.h>
13705 int main(int argc, char *argv[])
13707 #ifdef DB_VERSION_MAJOR /* DB version >= 2 */
13708 int Major, Minor, Patch ;
13709 unsigned long Version ;
13710 (void)db_version(&Major, &Minor, &Patch) ;
13712 printf("%d %d %d %d %d %d\n",
13713 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
13714 Major, Minor, Patch);
13717 printf("You have Berkeley DB Version 2 or greater.\n");
13719 printf("db.h is from Berkeley DB Version %d.%d.%d\n",
13720 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
13721 printf("libdb is from Berkeley DB Version %d.%d.%d\n",
13722 Major, Minor, Patch) ;
13724 /* check that db.h & libdb are compatible */
13725 if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
13726 printf("db.h and libdb are incompatible.\n") ;
13730 printf("db.h and libdb are compatible.\n") ;
13732 Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
13733 + DB_VERSION_PATCH ;
13735 /* needs to be >= 2.3.4 */
13736 if (Version < 2003004) {
13737 /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
13738 printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
13744 #if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
13749 printf("You have Berkeley DB Version 1.\n");
13750 exit(0); /* DB version < 2: the coast is clear. */
13752 exit(1); /* <db.h> not Berkeley DB? */
13758 if eval $compile_ok && $run ./try; then
13759 echo 'Looks OK.' >&4
13761 db_version_major=$1
13762 db_version_minor=$2
13763 db_version_patch=$3
13765 echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
13769 : Remove db from list of libraries to use
13770 echo "Removing unusable -ldb from library list" >&4
13771 set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'`
13774 echo "libs = $libs" >&4
13784 : Check the return type needed for hash
13786 echo "Checking return type needed for hash for Berkeley DB ..." >&4
13792 #include <sys/types.h>
13795 #ifndef DB_VERSION_MAJOR
13796 u_int32_t hash_cb (ptr, size)
13804 info.hash = hash_cb;
13808 if $cc $ccflags -c try.c >try.out 2>&1 ; then
13809 if $contains warning try.out >>/dev/null 2>&1 ; then
13812 db_hashtype='u_int32_t'
13815 : XXX Maybe we should just give up here.
13816 db_hashtype=u_int32_t
13818 echo "Help: I can't seem to compile the db test program." >&4
13819 echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
13822 echo "Your version of Berkeley DB uses $db_hashtype for hash."
13824 *) db_hashtype=u_int32_t
13829 : Check the return type needed for prefix
13831 echo "Checking return type needed for prefix for Berkeley DB ..." >&4
13837 #include <sys/types.h>
13840 #ifndef DB_VERSION_MAJOR
13841 size_t prefix_cb (key1, key2)
13849 info.prefix = prefix_cb;
13853 if $cc $ccflags -c try.c >try.out 2>&1 ; then
13854 if $contains warning try.out >>/dev/null 2>&1 ; then
13855 db_prefixtype='int'
13857 db_prefixtype='size_t'
13860 db_prefixtype='size_t'
13861 : XXX Maybe we should just give up here.
13863 echo "Help: I can't seem to compile the db test program." >&4
13864 echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
13867 echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
13869 *) db_prefixtype='size_t'
13874 : How can we generate normalized random numbers ?
13876 echo "Looking for a random number function..." >&4
13877 case "$randfunc" in
13879 if set drand48 val -f; eval $csym; $val; then
13881 echo "Good, found drand48()." >&4
13882 elif set random val -f; eval $csym; $val; then
13884 echo "OK, found random()." >&4
13887 echo "Yick, looks like I have to use rand()." >&4
13898 *-Dmy_rand=*|*-Dmy_srand=*)
13899 echo "Removing obsolete -Dmy_rand, -Dmy_srand, and -Drandbits from ccflags." >&4
13900 ccflags="`echo $ccflags | sed -e 's/-Dmy_rand=random/ /'`"
13901 ccflags="`echo $ccflags | sed -e 's/-Dmy_srand=srandom/ /'`"
13902 ccflags="`echo $ccflags | sed -e 's/-Drandbits=[0-9][0-9]*/ /'`"
13906 while $test "$cont"; do
13907 rp="Use which function to generate random numbers?"
13909 if $test "$ans" = "$dflt"; then
13915 if set $ans val -f; eval $csym; $val; then
13919 rp="I cannot find function $ans. Use that name anyway?"
13928 case "$randfunc" in
13930 drand01="drand48()"
13936 case "$randbits" in
13938 echo "Checking to see how many bits your $randfunc() function produces..." >&4
13940 #$i_unistd I_UNISTD
13941 #$i_stdlib I_STDLIB
13944 # include <unistd.h>
13947 # include <stdlib.h>
13952 register unsigned long tmp;
13953 register unsigned long max = 0L;
13955 for (i = 1000; i; i--) {
13956 tmp = (unsigned long) $randfunc();
13957 if (tmp > max) max = tmp;
13959 for (i = 0; max; i++)
13965 if eval $compile_ok; then
13969 echo "(I can't seem to compile the test program...)"
13976 rp="How many bits does your $randfunc() function produce?"
13980 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
13981 seedfunc="s$randfunc"
13982 randseedtype=unsigned
13986 rp="How many bits does your $randfunc() function produce?"
13989 seedfunc="s$randfunc"
13990 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
13991 if set $seedfunc val -f; eval $csym; $val; then
13992 echo "(Using $seedfunc() to seed random generator)"
13994 echo "(Warning: no $seedfunc() to seed random generator)"
13997 randseedtype=unsigned
14005 echo "Determining whether or not we are on an EBCDIC system..." >&4
14006 $cat >try.c <<'EOM'
14009 if ('M'==0xd4) return 0;
14016 if eval $compile_ok; then
14017 if $run ./try; then
14018 echo "You seem to speak EBCDIC." >&4
14021 echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
14024 echo "I'm unable to compile the test program." >&4
14025 echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
14033 Checking how to flush all pending stdio output...
14035 # I only know how to find the first 32 possibly open files on SunOS.
14036 # See also hints/sunos_4_1.sh and util.c --AD
14038 sunos) $echo '#define PERL_FFLUSH_ALL_FOPEN_MAX 32' > try.c ;;
14040 $cat >>try.c <<EOCP
14042 #$i_unistd I_UNISTD
14044 # include <unistd.h>
14046 #$d_sysconf HAS_SYSCONF
14047 #$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY
14048 #ifdef HAS_STDIO_STREAM_ARRAY
14049 # define STDIO_STREAM_ARRAY $stdio_stream_array
14054 p = fopen("try.out", "w");
14058 # ifdef TRY_FPRINTF
14062 #ifdef TRY_FFLUSH_NULL
14065 #ifdef TRY_FFLUSH_ALL
14067 long open_max = -1;
14068 # ifdef PERL_FFLUSH_ALL_FOPEN_MAX
14069 open_max = PERL_FFLUSH_ALL_FOPEN_MAX;
14071 # if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
14072 open_max = sysconf(_SC_OPEN_MAX);
14075 open_max = FOPEN_MAX;
14078 open_max = OPEN_MAX;
14087 # ifdef HAS_STDIO_STREAM_ARRAY
14088 if (open_max > 0) {
14090 for (i = 0; i < open_max; i++)
14091 if (STDIO_STREAM_ARRAY[i]._file >= 0 &&
14092 STDIO_STREAM_ARRAY[i]._file < open_max &&
14093 STDIO_STREAM_ARRAY[i]._flag)
14094 fflush(&STDIO_STREAM_ARRAY[i]);
14102 : first we have to find out how _not_ to flush
14104 if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
14106 set try -DTRY_FPUTC
14107 if eval $compile; then
14108 $run ./try 2>/dev/null
14111 if $test ! -s try.out -a "X$code" = X42; then
14117 set try -DTRY_FPRINTF
14118 if eval $compile; then
14119 $run ./try 2>/dev/null
14122 if $test ! -s try.out -a "X$code" = X42; then
14123 output=-DTRY_FPRINTF
14129 : check for fflush NULL behaviour
14130 case "$fflushNULL" in
14131 '') set try -DTRY_FFLUSH_NULL $output
14132 if eval $compile; then
14133 $run ./try 2>/dev/null
14136 if $test -s try.out -a "X$code" = X42; then
14137 fflushNULL="`$cat try.out`"
14139 if $test "X$code" != X42; then
14141 (If this test failed, don't worry, we'll try another method shortly.)
14146 $rm -f core try.core core.try.*
14147 case "$fflushNULL" in
14149 Your fflush(NULL) works okay for output streams.
14150 Let's see if it clobbers input pipes...
14152 # As of mid-March 2000 all versions of Solaris appear to have a stdio
14153 # bug that improperly flushes the input end of pipes. So we avoid the
14154 # autoflush on fork/system/exec support for now. :-(
14155 $cat >tryp.c <<EOCP
14158 main(int argc, char **argv)
14164 while ((i = getc(stdin)) != -1
14165 && (*bp++ = i) != '\n'
14166 && bp < &buf[1024])
14169 fprintf(stdout, "%s", buf);
14177 fflushNULL="$define"
14179 if eval $compile; then
14181 $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
14182 if cmp tryp.c tryp.out >/dev/null 2>&1; then
14184 fflush(NULL) seems to behave okay with input streams.
14186 fflushNULL="$define"
14189 Ouch, fflush(NULL) clobbers input pipes! We will not use it.
14191 fflushNULL="$undef"
14194 $rm -f core tryp.c tryp.core core.tryp.*
14197 Your fflush(NULL) isn't working (contrary to ANSI C).
14199 fflushNULL="$undef"
14202 Cannot figure out whether your fflush(NULL) works or not.
14203 I'm assuming it doesn't (contrary to ANSI C).
14205 fflushNULL="$undef"
14209 $define|true|[yY]*)
14210 fflushNULL="$define"
14213 fflushNULL="$undef"
14216 : check explicit looping only if NULL did not work, and if the pipe
14217 : bug does not show up on an explicit flush too
14218 case "$fflushNULL" in
14220 $cat >tryp.c <<EOCP
14223 main(int argc, char **argv)
14229 while ((i = getc(stdin)) != -1
14230 && (*bp++ = i) != '\n'
14231 && bp < &buf[1024])
14234 fprintf(stdout, "%s", buf);
14243 if eval $compile; then
14245 $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
14246 if cmp tryp.c tryp.out >/dev/null 2>&1; then
14248 Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
14250 : now check for fflushall behaviour
14251 case "$fflushall" in
14252 '') set try -DTRY_FFLUSH_ALL $output
14253 if eval $compile; then
14255 (Now testing the other method--but note that this also may fail.)
14257 $run ./try 2>/dev/null
14260 if $test -s try.out -a "X$code" = X42; then
14261 fflushall="`$cat try.out`"
14264 $rm -f core try.core core.try.*
14265 case "$fflushall" in
14267 Whew. Flushing explicitly all the stdio streams works.
14269 fflushall="$define"
14272 Sigh. Flushing explicitly all the stdio streams doesn't work.
14277 Cannot figure out whether flushing stdio streams explicitly works or not.
14278 I'm assuming it doesn't.
14284 "$define"|true|[yY]*)
14285 fflushall="$define"
14293 All is futile. Even fflush(stdin) clobbers input pipes!
14300 $rm -f core tryp.c tryp.core core.tryp.*
14302 *) fflushall="$undef"
14306 case "$fflushNULL$fflushall" in
14309 OK, I give up. I cannot figure out how to flush pending stdio output.
14310 We won't be flushing handles at all before fork/exec/popen.
14314 $rm -f try.* try$exe_ext
14316 : Store the full pathname to the ar program for use in the C program
14317 : Respect a hint or command line value for full_ar.
14322 : Store the full pathname to the sed program for use in the C program
14325 : see what type gids are declared as in the kernel
14327 echo "Looking for the type for group ids returned by getgid()."
14328 set gid_t gidtype xxx stdio.h sys/types.h
14332 xxx=`./findhdr sys/user.h`
14333 set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
14335 unsigned) dflt="$1 $2" ;;
14339 *) dflt="$gidtype";;
14342 gid_t) echo "gid_t found." ;;
14343 *) rp="What is the type for group ids returned by getgid()?"
14351 *_t) zzz="$gidtype" ;;
14354 echo "Checking the size of $zzz..." >&4
14356 #include <sys/types.h>
14359 printf("%d\n", (int)sizeof($gidtype));
14364 if eval $compile_ok; then
14368 echo "(I can't execute the test program--guessing $gidsize.)" >&4
14371 echo "Your $zzz is $gidsize bytes long."
14376 echo "(I can't compile the test program--guessing $gidsize.)" >&4
14382 *_t) zzz="$gidtype" ;;
14385 echo "Checking the sign of $zzz..." >&4
14387 #include <sys/types.h>
14398 if eval $compile; then
14402 echo "(I can't execute the test program--guessing unsigned.)" >&4
14406 1) echo "Your $zzz is unsigned." ;;
14407 -1) echo "Your $zzz is signed." ;;
14413 echo "(I can't compile the test program--guessing unsigned.)" >&4
14419 if $test X"$quadtype" != X; then
14421 echo "Checking how to print 64-bit integers..." >&4
14423 if $test X"$sPRId64" = X -a X"$quadtype" = Xint; then
14424 $cat >try.c <<'EOCP'
14425 #include <sys/types.h>
14428 int q = 12345678901;
14429 printf("%ld\n", q);
14433 if eval $compile; then
14437 sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
14438 sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
14439 echo "We will use %d."
14445 if $test X"$sPRId64" = X -a X"$quadtype" = Xlong; then
14446 $cat >try.c <<'EOCP'
14447 #include <sys/types.h>
14450 long q = 12345678901;
14451 printf("%ld\n", q);
14455 if eval $compile; then
14459 sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
14460 sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
14461 echo "We will use %ld."
14467 if $test X"$sPRId64" = X -a X"$i_inttypes" = X"$define" -a X"$quadtype" = Xint64_t; then
14468 $cat >try.c <<'EOCP'
14469 #include <sys/types.h>
14470 #include <inttypes.h>
14473 int64_t q = 12345678901;
14474 printf("%" PRId64 "\n", q);
14478 if eval $compile; then
14482 sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
14483 sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
14484 echo "We will use the C9X style."
14490 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
14492 #include <sys/types.h>
14495 $quadtype q = 12345678901;
14496 printf("%Ld\n", q);
14500 if eval $compile; then
14504 sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
14505 sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
14506 echo "We will use %Ld."
14512 if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
14513 $cat >try.c <<'EOCP'
14514 #include <sys/types.h>
14517 long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
14518 printf("%lld\n", q);
14522 if eval $compile; then
14526 sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
14527 sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
14528 echo "We will use the %lld style."
14534 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
14536 #include <sys/types.h>
14539 $quadtype q = 12345678901;
14540 printf("%qd\n", q);
14544 if eval $compile; then
14548 sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
14549 sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
14550 echo "We will use %qd."
14556 if $test X"$sPRId64" = X; then
14557 echo "Cannot figure out how to print 64-bit integers." >&4
14565 '') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
14566 d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
14568 *) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
14569 d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
14575 $echo "Checking the format strings to be used for Perl's internal types..." >&4
14577 if $test X"$ivsize" = X8; then
14578 ivdformat="$sPRId64"
14579 uvuformat="$sPRIu64"
14580 uvoformat="$sPRIo64"
14581 uvxformat="$sPRIx64"
14582 uvXUformat="$sPRIXU64"
14584 if $test X"$ivsize" = X"$longsize"; then
14591 if $test X"$ivsize" = X"$intsize"; then
14599 if $test X"$ivsize" = X"$shortsize"; then
14610 if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
14611 nveformat="$sPRIeldbl"
14612 nvfformat="$sPRIfldbl"
14613 nvgformat="$sPRIgldbl"
14614 nvEUformat="$sPRIEUldbl"
14615 nvFUformat="$sPRIFUldbl"
14616 nvGUformat="$sPRIGUldbl"
14626 case "$ivdformat" in
14627 '') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4
14634 $echo "Checking the format string to be used for gids..." >&4
14637 -1) if $test X"$gidsize" = X"$ivsize"; then
14638 gidformat="$ivdformat"
14640 if $test X"$gidsize" = X"$longsize"; then
14643 if $test X"$gidsize" = X"$intsize"; then
14646 if $test X"$gidsize" = X"$shortsize"; then
14653 *) if $test X"$gidsize" = X"$uvsize"; then
14654 gidformat="$uvuformat"
14656 if $test X"$gidsize" = X"$longsize"; then
14659 if $test X"$gidsize" = X"$intsize"; then
14662 if $test X"$gidsize" = X"$shortsize"; then
14671 : see if getgroups exists
14672 set getgroups d_getgrps
14675 : see if setgroups exists
14676 set setgroups d_setgrps
14680 : Find type of 2nd arg to 'getgroups()' and 'setgroups()'
14682 case "$d_getgrps$d_setgrps" in
14684 case "$groupstype" in
14685 '') dflt="$gidtype" ;;
14686 *) dflt="$groupstype" ;;
14689 What type of pointer is the second argument to getgroups() and setgroups()?
14690 Usually this is the same as group ids, $gidtype, but not always.
14693 rp='What type pointer is the second argument to getgroups() and setgroups()?'
14697 *) groupstype="$gidtype";;
14701 echo "Checking if your $make program sets \$(MAKE)..." >&4
14702 case "$make_set_make" in
14704 $sed 's/^X //' > testmake.mak << 'EOF'
14706 X @echo 'maketemp="$(MAKE)"'
14708 case "`$make -f testmake.mak 2>/dev/null`" in
14709 *maketemp=*) make_set_make='#' ;;
14710 *) make_set_make="MAKE=$make" ;;
14712 $rm -f testmake.mak
14715 case "$make_set_make" in
14716 '#') echo "Yup, it does.";;
14717 *) echo "Nope, it doesn't.";;
14720 : see what type is used for mode_t
14721 rp="What is the type used for file modes for system calls (e.g. fchmod())?"
14722 set mode_t modetype int stdio.h sys/types.h
14725 : see if stdarg is available
14727 if $test `./findhdr stdarg.h`; then
14728 echo "<stdarg.h> found." >&4
14731 echo "<stdarg.h> NOT found." >&4
14735 : see if varags is available
14737 if $test `./findhdr varargs.h`; then
14738 echo "<varargs.h> found." >&4
14740 echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
14743 : set up the varargs testing programs
14744 $cat > varargs.c <<EOP
14746 #include <stdarg.h>
14749 #include <varargs.h>
14753 int f(char *p, ...)
14767 p = va_arg(ap, char *);
14772 $cat > varargs <<EOP
14774 if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
14783 : now check which varargs header should be included
14788 if `./varargs I_STDARG`; then
14790 elif `./varargs I_VARARGS`; then
14795 if `./varargs I_VARARGS`; then
14802 echo "I could not find the definition for va_dcl... You have problems..." >&4
14803 val="$undef"; set i_stdarg; eval $setvar
14804 val="$undef"; set i_varargs; eval $setvar
14809 case "$i_varhdr" in
14811 val="$define"; set i_stdarg; eval $setvar
14812 val="$undef"; set i_varargs; eval $setvar
14815 val="$undef"; set i_stdarg; eval $setvar
14816 val="$define"; set i_varargs; eval $setvar
14819 echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
14823 : see if we need va_copy
14825 case "$i_stdarg" in
14828 #include <stdarg.h>
14830 #$i_stdlib I_STDLIB
14832 #include <stdlib.h>
14834 #include <signal.h>
14837 ivfprintf(FILE *f, const char *fmt, va_list *valp)
14839 return vfprintf(f, fmt, *valp);
14843 myvfprintf(FILE *f, const char *fmt, va_list val)
14845 return ivfprintf(f, fmt, &val);
14849 myprintf(char *fmt, ...)
14852 va_start(val, fmt);
14853 return myvfprintf(stdout, fmt, val);
14857 main(int ac, char **av)
14859 signal(SIGSEGV, exit);
14861 myprintf("%s%cs all right, then\n", "that", '\'');
14866 if eval $compile && $run ./try 2>&1 >/dev/null; then
14867 case "`$run ./try`" in
14868 "that's all right, then")
14874 yes) echo "It seems that you don't need va_copy()." >&4
14875 need_va_copy="$undef"
14877 *) echo "It seems that va_copy() or similar will be needed." >&4
14878 need_va_copy="$define"
14881 $rm -f try.* core core.* *.core *.core.*
14883 *) echo "You don't have <stdarg.h>, not checking for va_copy()." >&4
14887 : define a fucntion to check prototypes
14888 $cat > protochk <<EOSH
14891 optimize="$optimize"
14893 prototype="$prototype"
14898 $cat >> protochk <<'EOSH'
14903 while test $# -ge 2; do
14905 $define) echo "#include <$2>" >> try.c ;;
14906 literal) echo "$2" >> try.c ;;
14910 test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
14911 cat >> try.c <<'EOCP'
14912 #ifdef CAN_PROTOTYPE
14913 #define _(args) args
14918 echo "$foo" >> try.c
14919 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
14920 $cc $optimize $ccflags -c try.c > /dev/null 2>&1
14926 $eunicefix protochk
14928 : see what type is used for size_t
14929 rp="What is the type used for the length parameter for string functions?"
14930 set size_t sizetype 'unsigned int' stdio.h sys/types.h
14933 : check for type of arguments to gethostbyaddr.
14934 if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
14935 case "$d_gethbyaddr" in
14939 Checking to see what type of arguments are accepted by gethostbyaddr().
14941 hdrs="$define sys/types.h
14942 $d_socket sys/socket.h
14943 $i_niin netinet/in.h
14945 $i_unistd unistd.h"
14946 : The first arg can 'char *' or 'void *'
14947 : The second arg is some of integral type
14948 for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do
14949 for yyy in size_t long int; do
14950 case "$netdb_host_type" in
14951 '') try="extern struct hostent *gethostbyaddr($xxx, $yyy, int);"
14952 if ./protochk "$try" $hdrs; then
14953 echo "Your system accepts $xxx for the first arg."
14954 echo "...and $yyy for the second arg."
14955 netdb_host_type="$xxx"
14956 netdb_hlen_type="$yyy"
14962 : In case none of those worked, prompt the user.
14963 case "$netdb_host_type" in
14964 '') rp='What is the type for the 1st argument to gethostbyaddr?'
14967 netdb_host_type=$ans
14968 rp='What is the type for the 2nd argument to gethostbyaddr?'
14971 netdb_hlen_type=$ans
14975 *) : no gethostbyaddr, so pick harmless defaults
14976 netdb_host_type='char *'
14977 netdb_hlen_type="$sizetype"
14980 # Remove the "const" if needed. -- but then we'll have a
14982 # netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'`
14985 : check for type of argument to gethostbyname.
14986 if test "X$netdb_name_type" = X ; then
14987 case "$d_gethbyname" in
14991 Checking to see what type of argument is accepted by gethostbyname().
14993 hdrs="$define sys/types.h
14994 $d_socket sys/socket.h
14995 $i_niin netinet/in.h
14997 $i_unistd unistd.h"
14998 for xxx in "const char *" "char *"; do
14999 case "$netdb_name_type" in
15000 '') try="extern struct hostent *gethostbyname($xxx);"
15001 if ./protochk "$try" $hdrs; then
15002 echo "Your system accepts $xxx."
15003 netdb_name_type="$xxx"
15008 : In case none of those worked, prompt the user.
15009 case "$netdb_name_type" in
15010 '') rp='What is the type for the 1st argument to gethostbyname?'
15013 netdb_name_type=$ans
15017 *) : no gethostbyname, so pick harmless default
15018 netdb_name_type='char *'
15023 : check for type of 1st argument to getnetbyaddr.
15024 if test "X$netdb_net_type" = X ; then
15025 case "$d_getnbyaddr" in
15029 Checking to see what type of 1st argument is accepted by getnetbyaddr().
15031 hdrs="$define sys/types.h
15032 $d_socket sys/socket.h
15033 $i_niin netinet/in.h
15035 $i_unistd unistd.h"
15036 for xxx in in_addr_t "unsigned long" long "unsigned int" int; do
15037 case "$netdb_net_type" in
15038 '') try="extern struct netent *getnetbyaddr($xxx, int);"
15039 if ./protochk "$try" $hdrs; then
15040 echo "Your system accepts $xxx."
15041 netdb_net_type="$xxx"
15046 : In case none of those worked, prompt the user.
15047 case "$netdb_net_type" in
15048 '') rp='What is the type for the 1st argument to getnetbyaddr?'
15051 netdb_net_type=$ans
15055 *) : no getnetbyaddr, so pick harmless default
15056 netdb_net_type='long'
15060 : locate the preferred pager for this system
15066 [a-zA-Z]:/*) dflt=$pg;;
15070 [a-zA-Z]:/*) dflt=$more;;
15074 [a-zA-Z]:/*) dflt=$less;;
15077 '') dflt=/usr/ucb/more;;
15084 rp='What pager is used on your system?'
15088 : see what type pids are declared as in the kernel
15089 rp="What is the type of process ids on this system?"
15090 set pid_t pidtype int stdio.h sys/types.h
15093 : Find earliest binary compatible site_perl subdirectory perl can use.
15094 case "$bincompat5005" in
15095 "$define") xs_apiversion='5.005' ;;
15096 *) xs_apiversion=$version ;; # The current site_perl version.
15098 : Find earliest pure perl site_perl subdirectory perl can use.
15099 : The versioned directories started at 5.005.
15100 pm_apiversion='5.005'
15102 : see if ar generates random libraries by itself
15104 echo "Checking how to generate random libraries on your machine..." >&4
15105 echo 'int bar1() { return bar2(); }' > bar1.c
15106 echo 'int bar2() { return 2; }' > bar2.c
15107 $cat > foo.c <<'EOP'
15108 int main() { printf("%d\n", bar1()); exit(0); }
15110 $cc $ccflags -c bar1.c >/dev/null 2>&1
15111 $cc $ccflags -c bar2.c >/dev/null 2>&1
15112 $cc $ccflags -c foo.c >/dev/null 2>&1
15113 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
15114 if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
15115 $run ./foobar >/dev/null 2>&1; then
15116 echo "$ar appears to generate random libraries itself."
15119 elif $ar ts bar$_a >/dev/null 2>&1 &&
15120 $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
15121 $run ./foobar >/dev/null 2>&1; then
15122 echo "a table of contents needs to be added with '$ar ts'."
15129 ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
15130 $test -f $ranlib || ranlib=''
15133 if $test -n "$ranlib"; then
15134 echo "your system has '$ranlib'; we'll use that."
15137 echo "your system doesn't seem to support random libraries"
15138 echo "so we'll use lorder and tsort to order the libraries."
15145 : check for type of arguments to select.
15146 case "$selecttype" in
15147 '') case "$d_select" in
15151 Checking to see what type of arguments are accepted by select().
15153 hdrs="$define sys/types.h
15154 $i_systime sys/time.h
15155 $i_sysselct sys/select.h
15156 $d_socket sys/socket.h"
15157 : The first arg can be int, unsigned, or size_t
15158 : The last arg may or may not be 'const'
15160 : void pointer has been seen but using that
15161 : breaks the selectminbits test
15162 for xxx in 'fd_set *' 'int *'; do
15163 for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do
15164 for tmo in 'struct timeval *' 'const struct timeval *'; do
15166 '') try="extern select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
15167 if ./protochk "$try" $hdrs; then
15168 echo "Your system accepts $xxx."
15177 '') rp='What is the type for the 2nd, 3rd, and 4th arguments to select?'
15178 case "$d_fd_set" in
15179 $define) dflt="fd_set *" ;;
15188 *) : no select, so pick a harmless default
15195 : check for the select 'width'
15196 case "$selectminbits" in
15197 '') case "$d_select" in
15201 Checking to see on how many bits at a time your select() operates...
15204 #include <sys/types.h>
15206 #$i_systime I_SYS_TIME
15207 #$i_systimek I_SYS_TIME_KERNEL
15212 # ifdef I_SYS_TIME_KERNEL
15215 # include <sys/time.h>
15216 # ifdef I_SYS_TIME_KERNEL
15220 #$i_sysselct I_SYS_SELECT
15221 #ifdef I_SYS_SELECT
15222 #include <sys/select.h>
15224 #$d_socket HAS_SOCKET
15226 # include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
15230 #define S sizeof(*(b))
15232 #define NBYTES (S * 8 > MINBITS ? S : MINBITS/8)
15233 #define NBITS (NBYTES * 8)
15242 fp = fopen("try.c", "r");
15248 b = ($selecttype)s;
15249 for (i = 0; i < NBITS; i++)
15253 select(fd + 1, b, 0, 0, &t);
15254 for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--);
15255 printf("%d\n", i + 1);
15260 if eval $compile_ok; then
15261 selectminbits=`$run ./try`
15262 case "$selectminbits" in
15264 Cannot figure out on how many bits at a time your select() operates.
15265 I'll play safe and guess it is 32 bits.
15271 *) bits="$selectminbits bits" ;;
15273 echo "Your select() operates on $bits at a time." >&4
15275 rp='What is the minimum number of bits your select() operates on?'
15276 case "$byteorder" in
15277 1234|12345678) dflt=32 ;;
15282 selectminbits="$val"
15286 *) : no select, so pick a harmless default
15293 : Trace out the files included by signal.h, then look for SIGxxx names.
15294 : Remove SIGARRAYSIZE used by HPUX.
15295 : Remove SIGSTKSIZE used by Linux.
15296 : Remove SIGSTKSZ used by Posix.
15297 : Remove SIGTYP void lines used by OS2.
15298 : Some cpps, like os390, dont give the file name anywhere
15299 if [ "X$fieldn" = X ]; then
15300 : Just make some guesses. We check them later.
15301 xxx='/usr/include/signal.h /usr/include/sys/signal.h'
15303 xxx=`echo '#include <signal.h>' |
15304 $cppstdin $cppminus $cppflags 2>/dev/null |
15305 $grep '^[ ]*#.*include' |
15306 $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq`
15308 : Check this list of files to be sure we have parsed the cpp output ok.
15309 : This will also avoid potentially non-existent files, such
15312 for xx in $xxx /dev/null ; do
15313 $test -f "$xx" && xxxfiles="$xxxfiles $xx"
15315 : If we have found no files, at least try signal.h
15316 case "$xxxfiles" in
15317 '') xxxfiles=`./findhdr signal.h` ;;
15320 $1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ {
15321 print substr($2, 4, 20)
15323 $1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ {
15324 print substr($3, 4, 20)
15326 : Append some common names just in case the awk scan failed.
15327 xxx="$xxx ABRT ALRM BUS CANCEL CHLD CLD CONT DIL EMT FPE"
15328 xxx="$xxx FREEZE HUP ILL INT IO IOT KILL LOST LWP PHONE"
15329 xxx="$xxx PIPE POLL PROF PWR QUIT RTMAX RTMIN SEGV STKFLT STOP"
15330 xxx="$xxx SYS TERM THAW TRAP TSTP TTIN TTOU URG USR1 USR2"
15331 xxx="$xxx USR3 USR4 VTALRM WAITING WINCH WIND WINDOW XCPU XFSZ"
15333 : generate a few handy files for later
15334 $cat > signal.c <<'EOCP'
15335 #include <sys/types.h>
15336 #include <signal.h>
15340 /* Strange style to avoid deeply-nested #if/#else/#endif */
15343 # define NSIG (_NSIG)
15349 # define NSIG (SIGMAX+1)
15355 # define NSIG (SIG_MAX+1)
15361 # define NSIG (MAXSIG+1)
15367 # define NSIG (MAX_SIG+1)
15372 # ifdef SIGARRAYSIZE
15373 # define NSIG (SIGARRAYSIZE+1) /* Not sure of the +1 */
15379 # define NSIG (_sys_nsig) /* Solaris 2.5 */
15383 /* Default to some arbitrary number that's big enough to get most
15384 of the common signals.
15390 printf("NSIG %d\n", NSIG);
15396 echo $xxx | $tr ' ' $trnl | $sort | $uniq | $awk '
15398 printf "#ifdef SIG"; printf $1; printf "\n"
15399 printf "printf(\""; printf $1; printf " %%d\\n\",SIG";
15400 printf $1; printf ");\n"
15404 printf "#endif /* JUST_NSIG */\n";
15405 printf "exit(0);\n}\n";
15408 $cat >signal.awk <<'EOP'
15409 BEGIN { ndups = 0 }
15410 $1 ~ /^NSIG$/ { nsig = $2 }
15411 ($1 !~ /^NSIG$/) && (NF == 2) {
15412 if ($2 > maxsig) { maxsig = $2 }
15413 if (sig_name[$2]) {
15414 dup_name[ndups] = $1
15415 dup_num[ndups] = $2
15427 printf("NSIG %d\n", nsig);
15428 for (n = 1; n < nsig; n++) {
15430 printf("%s %d\n", sig_name[n], sig_num[n])
15433 printf("NUM%d %d\n", n, n)
15436 for (n = 0; n < ndups; n++) {
15437 printf("%s %d\n", dup_name[n], dup_num[n])
15441 $cat >signal_cmd <<EOS
15443 if $test -s signal.lst; then
15444 echo "Using your existing signal.lst file"
15449 $cat >>signal_cmd <<'EOS'
15452 if eval $compile_ok; then
15453 $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
15455 echo "(I can't seem be able to compile the whole test program)" >&4
15456 echo "(I'll try it in little pieces.)" >&4
15457 set signal -DJUST_NSIG
15458 if eval $compile_ok; then
15459 $run ./signal$_exe > signal.nsg
15462 echo "I can't seem to figure out how many signals you have." >&4
15463 echo "Guessing 50." >&4
15464 echo 'NSIG 50' > signal.nsg
15466 : Now look at all the signal names, one at a time.
15467 for xx in `echo $xxx | $tr ' ' $trnl | $sort | $uniq`; do
15468 $cat > signal.c <<EOCP
15469 #include <sys/types.h>
15470 #include <signal.h>
15473 printf("$xx %d\n", SIG${xx});
15478 if eval $compile; then
15479 echo "SIG${xx} found."
15480 $run ./signal$_exe >> signal.ls1
15482 echo "SIG${xx} NOT found."
15485 if $test -s signal.ls1; then
15486 $cat signal.nsg signal.ls1 |
15487 $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
15491 if $test -s signal.lst; then
15494 echo "(AAK! I can't compile the test programs -- Guessing)" >&4
15495 echo 'kill -l' >signal
15496 set X `csh -f <signal`
15500 0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;;
15502 echo $@ | $tr ' ' $trnl | \
15503 $awk '{ printf "%s %d\n", $1, ++s; }
15504 END { printf "NSIG %d\n", ++s }' >signal.lst
15506 $rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1
15508 chmod a+x signal_cmd
15509 $eunicefix signal_cmd
15511 : generate list of signal names
15513 case "$sig_name_init" in
15515 *) case "$sig_num_init" in
15516 ''|*,*) doinit=yes ;;
15521 echo "Generating a list of signal names and numbers..." >&4
15523 sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
15524 sig_name=`$awk 'BEGIN { printf "ZERO " }
15525 !/^NSIG/ { printf "%s ", $1 }' signal.lst`
15526 sig_num=`$awk 'BEGIN { printf "0 " }
15527 !/^NSIG/ { printf "%d ", $2 }' signal.lst`
15528 sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
15529 !/^NSIG/ { printf "\"%s\", ", $1 }
15530 END { printf "0\n" }' signal.lst`
15531 sig_num_init=`$awk 'BEGIN { printf "0, " }
15532 !/^NSIG/ { printf "%d, ", $2}
15533 END { printf "0\n"}' signal.lst`
15536 echo "The following $sig_count signals are available:"
15538 echo $sig_name | $awk \
15539 'BEGIN { linelen = 0 }
15541 for (i = 1; i <= NF; i++) {
15542 name = "SIG" $i " "
15543 linelen = linelen + length(name)
15544 if (linelen > 70) {
15546 linelen = length(name)
15552 sig_size=`echo $sig_name | awk '{print NF}'`
15553 $rm -f signal signal.c signal.awk signal.lst signal_cmd
15556 case "$sizetype" in
15557 *_t) zzz="$sizetype" ;;
15558 *) zzz="filesize" ;;
15560 echo "Checking the size of $zzz..." >&4
15562 #include <sys/types.h>
15565 printf("%d\n", (int)sizeof($sizetype));
15570 if eval $compile_ok; then
15574 echo "(I can't execute the test program--guessing $sizesize.)" >&4
15577 echo "Your $zzz size is $sizesize bytes."
15582 echo "(I can't compile the test program--guessing $sizesize.)" >&4
15586 : check for socklen_t
15588 echo "Checking to see if you have socklen_t..." >&4
15590 #include <sys/types.h>
15591 #$d_socket HAS_SOCKET
15593 #include <sys/socket.h>
15595 int main() { socklen_t x = 16; }
15598 if eval $compile; then
15600 echo "You have socklen_t."
15603 echo "You do not have socklen_t."
15604 case "$sizetype" in
15605 size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
15612 : see if this is a socks.h system
15613 set socks.h i_socks
15616 : check for type of the size argument to socket calls
15617 case "$d_socket" in
15621 Checking to see what type is the last argument of accept().
15624 case "$d_socklen_t" in
15625 "$define") yyy="$yyy socklen_t"
15627 yyy="$yyy $sizetype int long unsigned"
15628 for xxx in $yyy; do
15629 case "$socksizetype" in
15630 '') try="extern int accept(int, struct sockaddr *, $xxx *);"
15631 case "$usesocks" in
15633 if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then
15634 echo "Your system accepts '$xxx *' for the last argument of accept()."
15635 socksizetype="$xxx"
15638 *) if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h; then
15639 echo "Your system accepts '$xxx *' for the last argument of accept()."
15640 socksizetype="$xxx"
15647 : In case none of those worked, prompt the user.
15648 case "$socksizetype" in
15649 '') rp='What is the type for socket address structure sizes?'
15656 *) : no sockets, so pick relatively harmless default
15661 : see what type is used for signed size_t
15662 set ssize_t ssizetype int stdio.h sys/types.h
15667 #include <sys/types.h>
15668 #define Size_t $sizetype
15669 #define SSize_t $dflt
15672 if (sizeof(Size_t) == sizeof(SSize_t))
15674 else if (sizeof(Size_t) == sizeof(int))
15683 if eval $compile_ok && $run ./try > /dev/null; then
15684 ssizetype=`$run ./try`
15685 echo "I'll be using $ssizetype for functions returning a byte count." >&4
15688 Help! I can't compile and run the ssize_t test program: please enlighten me!
15689 (This is probably a misconfiguration in your system or libraries, and
15690 you really ought to fix it. Still, I'll try anyway.)
15692 I need a type that is the same size as $sizetype, but is guaranteed to
15693 be signed. Common values are ssize_t, int and long.
15696 rp="What signed type is the same size as $sizetype?"
15702 : see what type of char stdio uses.
15704 echo '#include <stdio.h>' | $cppstdin $cppminus > stdioh
15705 if $contains 'unsigned.*char.*_ptr;' stdioh >/dev/null 2>&1 ; then
15706 echo "Your stdio uses unsigned chars." >&4
15707 stdchar="unsigned char"
15709 echo "Your stdio uses signed chars." >&4
15716 : see if time exists
15718 if test "X$d_time" = X -o X"$timetype" = X; then
15719 if set time val -f d_time; eval $csym; $val; then
15720 echo 'time() found.' >&4
15722 rp="What is the type returned by time() on this system?"
15723 set time_t timetype long stdio.h sys/types.h
15726 echo 'time() not found, hope that will do.' >&4
15734 : see what type uids are declared as in the kernel
15736 echo "Looking for the type for user ids returned by getuid()."
15737 set uid_t uidtype xxx stdio.h sys/types.h
15741 xxx=`./findhdr sys/user.h`
15742 set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
15744 unsigned) dflt="$1 $2" ;;
15748 *) dflt="$uidtype";;
15751 uid_t) echo "uid_t found." ;;
15752 *) rp="What is the type for user ids returned by getuid()?"
15760 *_t) zzz="$uidtype" ;;
15763 echo "Checking the size of $zzz..." >&4
15765 #include <sys/types.h>
15768 printf("%d\n", (int)sizeof($uidtype));
15773 if eval $compile_ok; then
15777 echo "(I can't execute the test program--guessing $uidsize.)" >&4
15780 echo "Your $zzz is $uidsize bytes long."
15785 echo "(I can't compile the test program--guessing $uidsize.)" >&4
15790 *_t) zzz="$uidtype" ;;
15793 echo "Checking the sign of $zzz..." >&4
15795 #include <sys/types.h>
15806 if eval $compile; then
15810 echo "(I can't execute the test program--guessing unsigned.)" >&4
15814 1) echo "Your $zzz is unsigned." ;;
15815 -1) echo "Your $zzz is signed." ;;
15821 echo "(I can't compile the test program--guessing unsigned.)" >&4
15827 $echo "Checking the format string to be used for uids..." >&4
15830 -1) if $test X"$uidsize" = X"$ivsize"; then
15831 uidformat="$ivdformat"
15833 if $test X"$uidsize" = X"$longsize"; then
15836 if $test X"$uidsize" = X"$intsize"; then
15839 if $test X"$uidsize" = X"$shortsize"; then
15846 *) if $test X"$uidsize" = X"$uvsize"; then
15847 uidformat="$uvuformat"
15849 if $test X"$uidsize" = X"$longsize"; then
15852 if $test X"$uidsize" = X"$intsize"; then
15855 if $test X"$uidsize" = X"$shortsize"; then
15864 : determine compiler compiler
15873 if $test -f "$byacc"; then
15875 comp="byacc or $comp"
15877 if $test -f "$bison"; then
15878 comp="$comp or bison -y"
15880 rp="Which compiler compiler ($comp) shall I use?"
15889 echo "(Adding -y option to bison to get yacc-compatible behaviour.)"
15895 : see if fcntl.h is there
15900 : see if we can include fcntl.h
15906 echo "We'll be including <fcntl.h>." >&4
15909 if $h_sysfile; then
15910 echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
15912 echo "We won't be including <fcntl.h>." >&4
15924 : see if this is a fp.h system
15928 : see if this is a fp_class.h system
15929 set fp_class.h i_fp_class
15932 : see if this is a ieeefp.h system
15933 set ieeefp.h i_ieeefp
15936 : see if this is a libutil.h system
15937 set libutil.h i_libutil
15940 : see if locale.h is available
15941 set locale.h i_locale
15944 : see if mach cthreads are available
15945 if test "X$usethreads" = "X$define"; then
15946 set mach/cthreads.h i_machcthr
15949 i_machcthr="$undef"
15954 : see if this is a math.h system
15958 : see if this is a mntent.h system
15959 set mntent.h i_mntent
15962 : see if ndbm.h is available
15967 : see if dbm_open exists
15968 set dbm_open d_dbm_open
15970 case "$d_dbm_open" in
15973 echo "We won't be including <ndbm.h>"
15982 : see if net/errno.h is available
15984 set net/errno.h val
15987 : Unfortunately, it causes problems on some systems. Arrgh.
15990 cat > try.c <<'EOM'
15993 #include <net/errno.h>
15999 if $cc $ccflags -c try.c >/dev/null 2>&1; then
16000 echo "We'll be including <net/errno.h>." >&4
16002 echo "We won't be including <net/errno.h>." >&4
16011 : see if netinet/tcp.h is available
16012 set netinet/tcp.h i_netinettcp
16015 : see if this is a poll.h system
16019 : see if this is a prot.h system
16024 $echo "Guessing which symbols your C compiler and preprocessor define..." >&4
16025 $cat <<'EOSH' > Cppsym.know
16026 a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370
16027 AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE
16028 alliant alpha am29000 AM29000 AMD64 amiga AMIGAOS AMIX
16029 ansi ANSI_C_SOURCE apollo ardent ARM32 atarist att386 att3b
16030 BeOS BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4
16031 BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi
16032 bull c cadmus clipper CMU COFF COMPILER_VERSION
16033 concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX
16034 CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
16035 Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD
16036 FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
16038 GNU_SOURCE GNUC GNUC_MINOR GNU_LIBRARY GO32 gould GOULD_PN
16039 H3050R H3050RX hbullx20 hcx host_mips
16040 hp200 hp300 hp700 HP700 hp800 hp9000
16041 hp9000s200 hp9000s300 hp9000s400 hp9000s500
16042 hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE
16043 i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960
16044 IA64 iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
16045 INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1
16046 LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE
16047 LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE
16048 Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
16049 LONGDOUBLE LONGLONG LP64 luna luna88k Lynx
16050 M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF
16051 M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3
16052 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen
16053 MATH_HAS_NO_SIDE_EFFECTS
16054 mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040
16055 mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin
16056 mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT
16057 MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola
16058 mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr
16059 NetBSD news1500 news1700 news1800 news1900 news3700
16060 news700 news800 news900 NeXT NLS nonstopux ns16000 ns32000
16061 ns32016 ns32332 ns32k nsc32000
16062 OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE
16063 pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc
16064 pc532 pdp11 PGC PIC plexus PORTAR posix
16065 POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
16066 POSIX_C_SOURCE POSIX_SOURCE POWER
16067 PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000
16068 riscix riscos RT S390 SA110 scs SCO sequent sgi SGI_SOURCE SH3 sinix
16069 SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE
16070 sony sony_news sonyrisc sparc sparclite spectrum
16071 stardent stdc STDC_EXT stratos sun sun3 sun386
16072 Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5
16073 SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44
16074 SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5
16075 sysV68 sysV88 Tek4132 Tek4300 titan
16076 TM3200 TM5400 TM5600
16077 tower tower32 tower32_200 tower32_600 tower32_700
16078 tower32_800 tower32_850 tss
16079 u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5
16080 ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK
16081 unix UNIX95 UNIX99 unixpc unos
16082 USE_BSD USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE USE_LARGEFILE64
16083 USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2
16084 USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED
16086 Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
16087 XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
16088 XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
16091 # Maybe put other stuff here too.
16092 cat <<EOSH >>Cppsym.know
16095 ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
16096 ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
16097 $cat Cppsym.know > Cppsym.c
16098 $cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | $sort | $uniq > Cppsym.know
16099 $rm -f Cppsym.a Cppsym.b Cppsym.c
16100 cat <<EOSH > Cppsym
16102 if $test \$# -gt 0; then
16103 echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got
16104 if $test -s Cppsym.got; then
16111 $tr " " "$trnl" | ./Cppsym.try
16117 cat <<EOSH > Cppsym.try
16119 cat <<'EOCP' > try.c
16125 cat <<'EOSH' >> Cppsym.try
16127 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
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
16132 echo 'return 0;}' >> try.c
16134 cat <<EOSH >> Cppsym.try
16136 case "$osname-$gccversion" in
16137 irix-) ccflags="\$ccflags -woff 1178" ;;
16138 os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
16140 $cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
16142 chmod +x Cppsym.try
16143 $eunicefix Cppsym.try
16144 ./Cppsym < Cppsym.know > Cppsym.true
16145 : now check the C compiler for additional symbols
16146 postprocess_cc_v=''
16148 aix) postprocess_cc_v="|$tr , ' '" ;;
16155 for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
16158 -D*) echo "\$i" | $sed 's/^-D//';;
16159 -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';;
16164 postprocess_cc_v=''
16167 ./ccsym > ccsym1.raw
16168 if $test -s ccsym1.raw; then
16169 $sort ccsym1.raw | $uniq >ccsym.raw
16171 mv ccsym1.raw ccsym.raw
16174 $awk '/\=/ { print $0; next }
16175 { print $0"=1" }' ccsym.raw >ccsym.list
16176 $awk '/\=/ { print $0; next }
16177 { print $0"=1" }' Cppsym.true >ccsym.true
16178 $comm -13 ccsym.true ccsym.list >ccsym.own
16179 $comm -12 ccsym.true ccsym.list >ccsym.com
16180 $comm -23 ccsym.true ccsym.list >ccsym.cpp
16182 if $test -z ccsym.raw; then
16183 echo "Your C compiler doesn't seem to define any symbols!" >&4
16185 echo "However, your C preprocessor defines the following symbols:"
16188 cppsymbols=`$cat Cppsym.true`
16189 cppsymbols=`echo $cppsymbols`
16190 cppccsymbols="$cppsymbols"
16192 if $test -s ccsym.com; then
16193 echo "Your C compiler and pre-processor define these symbols:"
16194 $sed -e 's/\(..*\)=.*/\1/' ccsym.com
16197 cppccsymbols=`$cat ccsym.com`
16198 cppccsymbols=`echo $cppccsymbols`
16199 $test "$silent" || sleep 1
16201 if $test -s ccsym.cpp; then
16202 $test "$also" && echo " "
16203 echo "Your C pre-processor ${also}defines the following symbols:"
16204 $sed -e 's/\(..*\)=.*/\1/' ccsym.cpp
16206 cppsymbols=`$cat ccsym.cpp`
16207 cppsymbols=`echo $cppsymbols`
16208 $test "$silent" || sleep 1
16210 if $test -s ccsym.own; then
16211 $test "$also" && echo " "
16212 echo "Your C compiler ${also}defines the following cpp symbols:"
16213 $sed -e 's/\(..*\)=1/\1/' ccsym.own
16214 $sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
16215 ccsymbols=`$cat ccsym.own`
16216 ccsymbols=`echo $ccsymbols`
16217 $test "$silent" || sleep 1
16221 : see if this is a termio system
16225 if $test `./findhdr termios.h`; then
16226 set tcsetattr i_termios
16232 "$define") echo "You have POSIX termios.h... good!" >&4;;
16233 *) if ./Cppsym pyr; then
16234 case "`/bin/universe`" in
16235 ucb) if $test `./findhdr sgtty.h`; then
16237 echo "<sgtty.h> found." >&4
16239 echo "System is pyramid with BSD universe."
16240 echo "<sgtty.h> not found--you could have problems." >&4
16242 *) if $test `./findhdr termio.h`; then
16244 echo "<termio.h> found." >&4
16246 echo "System is pyramid with USG universe."
16247 echo "<termio.h> not found--you could have problems." >&4
16251 if $test `./findhdr termio.h`; then
16252 echo "<termio.h> found." >&4
16254 elif $test `./findhdr sgtty.h`; then
16255 echo "<sgtty.h> found." >&4
16258 echo "Neither <termio.h> nor <sgtty.h> found--you could have problems." >&4
16261 if $test `./findhdr sgtty.h`; then
16262 echo "<sgtty.h> found." >&4
16264 elif $test `./findhdr termio.h`; then
16265 echo "<termio.h> found." >&4
16268 echo "Neither <sgtty.h> nor <termio.h> found--you could have problems." >&4
16272 set i_termio; eval $setvar
16273 val=$val2; set i_sgtty; eval $setvar
16274 val=$val3; set i_termios; eval $setvar
16276 : see if this is a shadow.h system
16277 set shadow.h i_shadow
16280 : see if stddef is available
16281 set stddef.h i_stddef
16284 : see if this is a sunmath.h system
16285 set sunmath.h i_sunmath
16288 : see if sys/access.h is available
16289 set sys/access.h i_sysaccess
16292 : see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl
16293 set sys/filio.h i_sysfilio
16296 if $test `./findhdr sys/ioctl.h`; then
16298 echo '<sys/ioctl.h> found.' >&4
16301 if $test $i_sysfilio = "$define"; then
16302 echo '<sys/ioctl.h> NOT found.' >&4
16304 $test $i_sgtty = "$define" && xxx="sgtty.h"
16305 $test $i_termio = "$define" && xxx="termio.h"
16306 $test $i_termios = "$define" && xxx="termios.h"
16307 echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
16313 : see if socket ioctl defs are in sys/sockio.h
16315 xxx=`./findhdr sys/sockio.h`
16316 if $test "$xxx"; then
16317 if $contains SIOCATMARK $xxx >/dev/null 2>&1; then
16319 echo "You have socket ioctls defined in <sys/sockio.h>." >&4
16322 echo "No socket ioctls found in <sys/sockio.h>." >&4
16327 <sys/sockio.h> not found, assuming socket ioctls are in <sys/ioctl.h>.
16334 : see if this is a syslog.h system
16335 set syslog.h i_syslog
16339 : see if this is a sys/mode.h system
16340 set sys/mode.h i_sysmode
16343 : see if sys/resource.h has to be included
16344 set sys/resource.h i_sysresrc
16347 : see if sys/security.h is available
16348 set sys/security.h i_syssecrt
16351 : see if this is a sys/statvfs.h system
16352 set sys/statvfs.h i_sysstatvfs
16355 : see if this is a sys/un.h system
16356 set sys/un.h i_sysun
16360 : see if this is a sys/utsname.h system
16361 set sys/utsname.h i_sysutsname
16364 : see if this is a syswait system
16365 set sys/wait.h i_syswait
16368 : see if this is a ustat.h system
16369 set ustat.h i_ustat
16372 : see if this is an utime system
16373 set utime.h i_utime
16376 : see if this is a values.h system
16377 set values.h i_values
16380 : see if this is a vfork system
16383 set vfork.h i_vfork
16391 : see if gdbm.h is available
16396 : see if gdbm_open exists
16397 set gdbm_open d_gdbm_open
16399 case "$d_gdbm_open" in
16402 echo "We won't be including <gdbm.h>"
16412 echo "Looking for extensions..." >&4
16413 : If we are using the old config.sh, known_extensions may contain
16414 : old or inaccurate or duplicate values.
16415 known_extensions=''
16416 nonxs_extensions=''
16417 : We do not use find because it might not be available.
16418 : We do not just use MANIFEST because the user may have dropped
16419 : some additional extensions into the source tree and expect them
16422 : Function to recursively find available extensions, ignoring DynaLoader
16423 : NOTE: recursion limit of 10 to prevent runaway in case of symlink madness
16427 DynaLoader|dynaload) ;;
16429 if $test -f $xxx/$xxx.xs; then
16430 known_extensions="$known_extensions $1$xxx";
16431 elif $test -f $xxx/Makefile.PL; then
16432 nonxs_extensions="$nonxs_extensions $1$xxx";
16434 if $test -d $xxx -a $# -lt 10; then
16437 eval $find_extensions;
16449 eval $find_extensions
16450 # Special case: Add in threads/shared since it is not picked up by the
16451 # recursive find above (and adding in general recursive finding breaks
16452 # SDBM_File/sdbm). A.D. 10/25/2001.
16453 known_extensions="$known_extensions threads/shared"
16454 set X $nonxs_extensions
16456 nonxs_extensions="$*"
16457 set X $known_extensions
16459 known_extensions="$*"
16462 : Now see which are supported on this system.
16464 for xxx in $known_extensions ; do
16468 $define) avail_ext="$avail_ext $xxx" ;;
16471 GDBM_File|gdbm_fil)
16473 $define) avail_ext="$avail_ext $xxx" ;;
16476 I18N/Langinfo|i18n_lan)
16477 case "$i_langinfo$d_nl_langinfo" in
16478 $define$define) avail_ext="$avail_ext $xxx" ;;
16481 NDBM_File|ndbm_fil)
16484 case "$osname-$use64bitint" in
16485 cygwin-*|hpux-define)
16487 *-lndbm*) avail_ext="$avail_ext $xxx" ;;
16490 *) avail_ext="$avail_ext $xxx" ;;
16495 ODBM_File|odbm_fil)
16496 case "${i_dbm}${i_rpcsvcdbm}" in
16498 case "$osname-$use64bitint" in
16499 cygwin-*|hpux-define)
16501 *-ldbm*) avail_ext="$avail_ext $xxx" ;;
16504 *) avail_ext="$avail_ext $xxx" ;;
16510 case "$useposix" in
16511 true|define|y) avail_ext="$avail_ext $xxx" ;;
16515 case "$useopcode" in
16516 true|define|y) avail_ext="$avail_ext $xxx" ;;
16520 case "$d_socket" in
16521 true|$define|y) avail_ext="$avail_ext $xxx" ;;
16524 Sys/Syslog|sys/syslog)
16525 : XXX syslog requires socket
16526 case "$d_socket" in
16527 true|$define|y) avail_ext="$avail_ext $xxx" ;;
16531 case "$usethreads" in
16533 case "$useithreads" in
16534 $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
16538 threads|threads/shared)
16539 case "$usethreads" in
16541 case "$useithreads" in
16542 $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
16547 : XXX Do we need a useipcsysv variable here
16548 case "${d_msg}${d_sem}${d_shm}" in
16549 *"${define}"*) avail_ext="$avail_ext $xxx" ;;
16552 *) avail_ext="$avail_ext $xxx"
16561 : Now see which nonxs extensions are supported on this system.
16562 : For now assume all are.
16564 for xxx in $nonxs_extensions ; do
16566 *) nonxs_ext="$nonxs_ext $xxx"
16578 A number of extensions are supplied with $package. You may choose to
16579 compile these extensions for dynamic loading (the default), compile
16580 them into the $package executable (static loading), or not include
16581 them at all. Answer "none" to include no extensions.
16582 Note that DynaLoader is always built and need not be mentioned here.
16585 case "$dynamic_ext" in
16586 '') dflt="$avail_ext" ;;
16587 *) dflt="$dynamic_ext"
16588 # Perhaps we are reusing an old out-of-date config.sh.
16591 if test X"$dynamic_ext" != X"$avail_ext"; then
16593 NOTICE: Your previous config.sh list may be incorrect.
16594 The extensions now available to you are
16596 but the default list from your previous config.sh is
16608 rp="What extensions do you wish to load dynamically?"
16611 none) dynamic_ext=' ' ;;
16612 *) dynamic_ext="$ans" ;;
16615 case "$static_ext" in
16617 : Exclude those already listed in dynamic linking
16619 for xxx in $avail_ext; do
16620 case " $dynamic_ext " in
16622 *) dflt="$dflt $xxx" ;;
16629 *) dflt="$static_ext"
16636 rp="What extensions do you wish to load statically?"
16639 none) static_ext=' ' ;;
16640 *) static_ext="$ans" ;;
16645 A number of extensions are supplied with $package. Answer "none"
16646 to include no extensions.
16647 Note that DynaLoader is always built and need not be mentioned here.
16650 case "$static_ext" in
16651 '') dflt="$avail_ext" ;;
16652 *) dflt="$static_ext"
16653 # Perhaps we are reusing an old out-of-date config.sh.
16656 if test X"$static_ext" != X"$avail_ext"; then
16658 NOTICE: Your previous config.sh list may be incorrect.
16659 The extensions now available to you are
16661 but the default list from your previous config.sh is
16670 : Exclude those that are not xs extensions
16674 rp="What extensions do you wish to include?"
16677 none) static_ext=' ' ;;
16678 *) static_ext="$ans" ;;
16683 set X $dynamic_ext $static_ext $nonxs_ext
16687 : Remove libraries needed only for extensions
16688 : The appropriate ext/Foo/Makefile.PL will add them back in, if necessary.
16689 : The exception is SunOS 4.x, which needs them.
16690 case "${osname}X${osvers}" in
16694 *) case "$usedl" in
16695 $define|true|[yY]*)
16696 set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'`
16700 *) perllibs="$libs"
16706 : Remove build directory name from cppstdin so it can be used from
16707 : either the present location or the final installed location.
16709 : Get out of the UU directory to get correct path name.
16711 case "$cppstdin" in
16713 echo "Stripping down cppstdin path name"
16719 : end of configuration questions
16721 echo "End of configuration questions."
16724 : back to where it started
16725 if test -d ../UU; then
16729 : configuration may be patched via a 'config.arch' file
16730 if $test -f config.arch; then
16731 echo "I see a config.arch file, loading it."
16735 : configuration may be patched via a 'config.over' file
16736 if $test -f config.over; then
16739 rp='I see a config.over file. Do you wish to load it?'
16742 n*) echo "OK, I'll ignore it.";;
16744 echo "Configuration override changes have been loaded."
16749 : in case they want portability, strip down executable paths
16750 case "$d_portable" in
16753 echo "Stripping down executable paths..." >&4
16754 for file in $loclist $trylist; do
16756 eval $file=`basename $temp`
16761 : create config.sh file
16763 echo "Creating config.sh..." >&4
16764 $spitshell <<EOT >config.sh
16767 # This file was produced by running the Configure script. It holds all the
16768 # definitions figured out by Configure. Should you modify one of these values,
16769 # do not forget to propagate your changes by running "Configure -der". You may
16770 # instead choose to run each of the .SH files by yourself, or "Configure -S".
16773 # Package name : $package
16774 # Source directory : $src
16775 # Configuration time: $cf_time
16776 # Configured by : $cf_by
16777 # Target system : $myuname
16787 Revision='$Revision'
16795 alignbytes='$alignbytes'
16796 ansi2knr='$ansi2knr'
16797 aphostname='$aphostname'
16798 api_revision='$api_revision'
16799 api_subversion='$api_subversion'
16800 api_version='$api_version'
16801 api_versionstring='$api_versionstring'
16804 archlibexp='$archlibexp'
16805 archname64='$archname64'
16806 archname='$archname'
16807 archobjs='$archobjs'
16812 bincompat5005='$bincompat5005'
16816 byteorder='$byteorder'
16818 castflags='$castflags'
16821 cccdlflags='$cccdlflags'
16822 ccdlflags='$ccdlflags'
16824 ccflags_uselargefiles='$ccflags_uselargefiles'
16826 ccsymbols='$ccsymbols'
16827 ccversion='$ccversion'
16829 cf_email='$cf_email'
16831 charsize='$charsize'
16835 clocktype='$clocktype'
16837 compress='$compress'
16838 contains='$contains'
16842 cpp_stuff='$cpp_stuff'
16843 cppccsymbols='$cppccsymbols'
16844 cppflags='$cppflags'
16846 cppminus='$cppminus'
16848 cppstdin='$cppstdin'
16849 cppsymbols='$cppsymbols'
16850 cryptlib='$cryptlib'
16852 d_Gconvert='$d_Gconvert'
16853 d_PRIEUldbl='$d_PRIEUldbl'
16854 d_PRIFUldbl='$d_PRIFUldbl'
16855 d_PRIGUldbl='$d_PRIGUldbl'
16856 d_PRIXU64='$d_PRIXU64'
16857 d_PRId64='$d_PRId64'
16858 d_PRIeldbl='$d_PRIeldbl'
16859 d_PRIfldbl='$d_PRIfldbl'
16860 d_PRIgldbl='$d_PRIgldbl'
16861 d_PRIi64='$d_PRIi64'
16862 d_PRIo64='$d_PRIo64'
16863 d_PRIu64='$d_PRIu64'
16864 d_PRIx64='$d_PRIx64'
16865 d_SCNfldbl='$d_SCNfldbl'
16866 d__fwalk='$d__fwalk'
16867 d_access='$d_access'
16868 d_accessx='$d_accessx'
16870 d_archlib='$d_archlib'
16873 d_attribut='$d_attribut'
16876 d_bincompat5005='$d_bincompat5005'
16878 d_bsdgetpgrp='$d_bsdgetpgrp'
16879 d_bsdsetpgrp='$d_bsdsetpgrp'
16881 d_casti32='$d_casti32'
16882 d_castneg='$d_castneg'
16883 d_charvspr='$d_charvspr'
16885 d_chroot='$d_chroot'
16886 d_chsize='$d_chsize'
16888 d_closedir='$d_closedir'
16889 d_cmsghdr_s='$d_cmsghdr_s'
16893 d_cuserid='$d_cuserid'
16894 d_dbl_dig='$d_dbl_dig'
16895 d_dbminitproto='$d_dbminitproto'
16896 d_difftime='$d_difftime'
16898 d_dirnamlen='$d_dirnamlen'
16899 d_dlerror='$d_dlerror'
16900 d_dlopen='$d_dlopen'
16901 d_dlsymun='$d_dlsymun'
16902 d_dosuid='$d_dosuid'
16903 d_drand48proto='$d_drand48proto'
16905 d_eaccess='$d_eaccess'
16906 d_endgrent='$d_endgrent'
16907 d_endhent='$d_endhent'
16908 d_endnent='$d_endnent'
16909 d_endpent='$d_endpent'
16910 d_endpwent='$d_endpwent'
16911 d_endsent='$d_endsent'
16912 d_eofnblk='$d_eofnblk'
16913 d_eunice='$d_eunice'
16914 d_fchdir='$d_fchdir'
16915 d_fchmod='$d_fchmod'
16916 d_fchown='$d_fchown'
16918 d_fcntl_can_lock='$d_fcntl_can_lock'
16919 d_fd_macros='$d_fd_macros'
16920 d_fd_set='$d_fd_set'
16921 d_fds_bits='$d_fds_bits'
16922 d_fgetpos='$d_fgetpos'
16923 d_finite='$d_finite'
16924 d_finitel='$d_finitel'
16925 d_flexfnam='$d_flexfnam'
16927 d_flockproto='$d_flockproto'
16929 d_fp_class='$d_fp_class'
16930 d_fpathconf='$d_fpathconf'
16931 d_fpclass='$d_fpclass'
16932 d_fpclassify='$d_fpclassify'
16933 d_fpclassl='$d_fpclassl'
16934 d_fpos64_t='$d_fpos64_t'
16935 d_frexpl='$d_frexpl'
16936 d_fs_data_s='$d_fs_data_s'
16937 d_fseeko='$d_fseeko'
16938 d_fsetpos='$d_fsetpos'
16939 d_fstatfs='$d_fstatfs'
16940 d_fstatvfs='$d_fstatvfs'
16942 d_ftello='$d_ftello'
16944 d_getcwd='$d_getcwd'
16945 d_getespwnam='$d_getespwnam'
16946 d_getfsstat='$d_getfsstat'
16947 d_getgrent='$d_getgrent'
16948 d_getgrps='$d_getgrps'
16949 d_gethbyaddr='$d_gethbyaddr'
16950 d_gethbyname='$d_gethbyname'
16951 d_gethent='$d_gethent'
16952 d_gethname='$d_gethname'
16953 d_gethostprotos='$d_gethostprotos'
16954 d_getitimer='$d_getitimer'
16955 d_getlogin='$d_getlogin'
16956 d_getmnt='$d_getmnt'
16957 d_getmntent='$d_getmntent'
16958 d_getnbyaddr='$d_getnbyaddr'
16959 d_getnbyname='$d_getnbyname'
16960 d_getnent='$d_getnent'
16961 d_getnetprotos='$d_getnetprotos'
16962 d_getpagsz='$d_getpagsz'
16963 d_getpbyname='$d_getpbyname'
16964 d_getpbynumber='$d_getpbynumber'
16965 d_getpent='$d_getpent'
16966 d_getpgid='$d_getpgid'
16967 d_getpgrp2='$d_getpgrp2'
16968 d_getpgrp='$d_getpgrp'
16969 d_getppid='$d_getppid'
16970 d_getprior='$d_getprior'
16971 d_getprotoprotos='$d_getprotoprotos'
16972 d_getprpwnam='$d_getprpwnam'
16973 d_getpwent='$d_getpwent'
16974 d_getsbyname='$d_getsbyname'
16975 d_getsbyport='$d_getsbyport'
16976 d_getsent='$d_getsent'
16977 d_getservprotos='$d_getservprotos'
16978 d_getspnam='$d_getspnam'
16979 d_gettimeod='$d_gettimeod'
16980 d_gnulibc='$d_gnulibc'
16981 d_grpasswd='$d_grpasswd'
16982 d_hasmntopt='$d_hasmntopt'
16985 d_inetaton='$d_inetaton'
16986 d_int64_t='$d_int64_t'
16987 d_isascii='$d_isascii'
16988 d_isfinite='$d_isfinite'
16991 d_isnanl='$d_isnanl'
16992 d_killpg='$d_killpg'
16993 d_lchown='$d_lchown'
16994 d_ldbl_dig='$d_ldbl_dig'
16996 d_locconv='$d_locconv'
16998 d_longdbl='$d_longdbl'
16999 d_longlong='$d_longlong'
17000 d_lseekproto='$d_lseekproto'
17002 d_madvise='$d_madvise'
17004 d_mbstowcs='$d_mbstowcs'
17005 d_mbtowc='$d_mbtowc'
17006 d_memchr='$d_memchr'
17007 d_memcmp='$d_memcmp'
17008 d_memcpy='$d_memcpy'
17009 d_memmove='$d_memmove'
17010 d_memset='$d_memset'
17012 d_mkdtemp='$d_mkdtemp'
17013 d_mkfifo='$d_mkfifo'
17014 d_mkstemp='$d_mkstemp'
17015 d_mkstemps='$d_mkstemps'
17016 d_mktime='$d_mktime'
17019 d_modfl_pow32_bug='$d_modfl_pow32_bug'
17020 d_mprotect='$d_mprotect'
17022 d_msg_ctrunc='$d_msg_ctrunc'
17023 d_msg_dontroute='$d_msg_dontroute'
17024 d_msg_oob='$d_msg_oob'
17025 d_msg_peek='$d_msg_peek'
17026 d_msg_proxy='$d_msg_proxy'
17027 d_msgctl='$d_msgctl'
17028 d_msgget='$d_msgget'
17029 d_msghdr_s='$d_msghdr_s'
17030 d_msgrcv='$d_msgrcv'
17031 d_msgsnd='$d_msgsnd'
17033 d_munmap='$d_munmap'
17034 d_mymalloc='$d_mymalloc'
17036 d_nl_langinfo='$d_nl_langinfo'
17037 d_nv_preserves_uv='$d_nv_preserves_uv'
17038 d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
17039 d_off64_t='$d_off64_t'
17040 d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
17041 d_oldpthreads='$d_oldpthreads'
17042 d_oldsock='$d_oldsock'
17044 d_pathconf='$d_pathconf'
17046 d_perl_otherlibdirs='$d_perl_otherlibdirs'
17047 d_phostname='$d_phostname'
17050 d_portable='$d_portable'
17051 d_procselfexe='$d_procselfexe'
17052 d_pthread_atfork='$d_pthread_atfork'
17053 d_pthread_yield='$d_pthread_yield'
17055 d_pwchange='$d_pwchange'
17056 d_pwclass='$d_pwclass'
17057 d_pwcomment='$d_pwcomment'
17058 d_pwexpire='$d_pwexpire'
17059 d_pwgecos='$d_pwgecos'
17060 d_pwpasswd='$d_pwpasswd'
17061 d_pwquota='$d_pwquota'
17064 d_readdir='$d_readdir'
17065 d_readlink='$d_readlink'
17067 d_recvmsg='$d_recvmsg'
17068 d_rename='$d_rename'
17069 d_rewinddir='$d_rewinddir'
17071 d_safebcpy='$d_safebcpy'
17072 d_safemcpy='$d_safemcpy'
17073 d_sanemcmp='$d_sanemcmp'
17074 d_sbrkproto='$d_sbrkproto'
17075 d_sched_yield='$d_sched_yield'
17076 d_scm_rights='$d_scm_rights'
17077 d_seekdir='$d_seekdir'
17078 d_select='$d_select'
17080 d_semctl='$d_semctl'
17081 d_semctl_semid_ds='$d_semctl_semid_ds'
17082 d_semctl_semun='$d_semctl_semun'
17083 d_semget='$d_semget'
17085 d_sendmsg='$d_sendmsg'
17086 d_setegid='$d_setegid'
17087 d_seteuid='$d_seteuid'
17088 d_setgrent='$d_setgrent'
17089 d_setgrps='$d_setgrps'
17090 d_sethent='$d_sethent'
17091 d_setitimer='$d_setitimer'
17092 d_setlinebuf='$d_setlinebuf'
17093 d_setlocale='$d_setlocale'
17094 d_setnent='$d_setnent'
17095 d_setpent='$d_setpent'
17096 d_setpgid='$d_setpgid'
17097 d_setpgrp2='$d_setpgrp2'
17098 d_setpgrp='$d_setpgrp'
17099 d_setprior='$d_setprior'
17100 d_setproctitle='$d_setproctitle'
17101 d_setpwent='$d_setpwent'
17102 d_setregid='$d_setregid'
17103 d_setresgid='$d_setresgid'
17104 d_setresuid='$d_setresuid'
17105 d_setreuid='$d_setreuid'
17106 d_setrgid='$d_setrgid'
17107 d_setruid='$d_setruid'
17108 d_setsent='$d_setsent'
17109 d_setsid='$d_setsid'
17110 d_setvbuf='$d_setvbuf'
17114 d_shmatprototype='$d_shmatprototype'
17115 d_shmctl='$d_shmctl'
17117 d_shmget='$d_shmget'
17118 d_sigaction='$d_sigaction'
17119 d_sigprocmask='$d_sigprocmask'
17120 d_sigsetjmp='$d_sigsetjmp'
17121 d_sockatmark='$d_sockatmark'
17122 d_sockatmarkproto='$d_sockatmarkproto'
17123 d_socket='$d_socket'
17124 d_socklen_t='$d_socklen_t'
17125 d_sockpair='$d_sockpair'
17126 d_socks5_init='$d_socks5_init'
17128 d_sresgproto='$d_sresgproto'
17129 d_sresuproto='$d_sresuproto'
17130 d_statblks='$d_statblks'
17131 d_statfs_f_flags='$d_statfs_f_flags'
17132 d_statfs_s='$d_statfs_s'
17133 d_statvfs='$d_statvfs'
17134 d_stdio_cnt_lval='$d_stdio_cnt_lval'
17135 d_stdio_ptr_lval='$d_stdio_ptr_lval'
17136 d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt'
17137 d_stdio_ptr_lval_sets_cnt='$d_stdio_ptr_lval_sets_cnt'
17138 d_stdio_stream_array='$d_stdio_stream_array'
17139 d_stdiobase='$d_stdiobase'
17140 d_stdstdio='$d_stdstdio'
17141 d_strchr='$d_strchr'
17142 d_strcoll='$d_strcoll'
17143 d_strctcpy='$d_strctcpy'
17144 d_strerrm='$d_strerrm'
17145 d_strerror='$d_strerror'
17146 d_strftime='$d_strftime'
17147 d_strtod='$d_strtod'
17148 d_strtol='$d_strtol'
17149 d_strtold='$d_strtold'
17150 d_strtoll='$d_strtoll'
17151 d_strtoq='$d_strtoq'
17152 d_strtoul='$d_strtoul'
17153 d_strtoull='$d_strtoull'
17154 d_strtouq='$d_strtouq'
17155 d_strxfrm='$d_strxfrm'
17156 d_suidsafe='$d_suidsafe'
17157 d_symlink='$d_symlink'
17158 d_syscall='$d_syscall'
17159 d_syscallproto='$d_syscallproto'
17160 d_sysconf='$d_sysconf'
17161 d_sysernlst='$d_sysernlst'
17162 d_syserrlst='$d_syserrlst'
17163 d_system='$d_system'
17164 d_tcgetpgrp='$d_tcgetpgrp'
17165 d_tcsetpgrp='$d_tcsetpgrp'
17166 d_telldir='$d_telldir'
17167 d_telldirproto='$d_telldirproto'
17170 d_truncate='$d_truncate'
17171 d_tzname='$d_tzname'
17172 d_u32align='$d_u32align'
17173 d_ualarm='$d_ualarm'
17176 d_union_semun='$d_union_semun'
17177 d_unordered='$d_unordered'
17178 d_usleep='$d_usleep'
17179 d_usleepproto='$d_usleepproto'
17181 d_vendorarch='$d_vendorarch'
17182 d_vendorbin='$d_vendorbin'
17183 d_vendorlib='$d_vendorlib'
17185 d_void_closedir='$d_void_closedir'
17186 d_voidsig='$d_voidsig'
17187 d_voidtty='$d_voidtty'
17188 d_volatile='$d_volatile'
17189 d_vprintf='$d_vprintf'
17191 d_waitpid='$d_waitpid'
17192 d_wcstombs='$d_wcstombs'
17193 d_wctomb='$d_wctomb'
17194 d_writev='$d_writev'
17197 db_hashtype='$db_hashtype'
17198 db_prefixtype='$db_prefixtype'
17199 db_version_major='$db_version_major'
17200 db_version_minor='$db_version_minor'
17201 db_version_patch='$db_version_patch'
17202 defvoidused='$defvoidused'
17203 direntrytype='$direntrytype'
17206 doublesize='$doublesize'
17208 dynamic_ext='$dynamic_ext'
17214 eunicefix='$eunicefix'
17217 extensions='$extensions'
17219 fflushNULL='$fflushNULL'
17220 fflushall='$fflushall'
17222 firstmakefile='$firstmakefile'
17224 fpossize='$fpossize'
17225 fpostype='$fpostype'
17226 freetype='$freetype'
17229 full_csh='$full_csh'
17230 full_sed='$full_sed'
17231 gccosandvers='$gccosandvers'
17232 gccversion='$gccversion'
17233 gidformat='$gidformat'
17239 groupcat='$groupcat'
17240 groupstype='$groupstype'
17243 h_sysfile='$h_sysfile'
17254 i_arpainet='$i_arpainet'
17255 i_bsdioctl='$i_bsdioctl'
17258 i_dirent='$i_dirent'
17264 i_fp_class='$i_fp_class'
17267 i_ieeefp='$i_ieeefp'
17268 i_inttypes='$i_inttypes'
17269 i_langinfo='$i_langinfo'
17270 i_libutil='$i_libutil'
17271 i_limits='$i_limits'
17272 i_locale='$i_locale'
17273 i_machcthr='$i_machcthr'
17274 i_malloc='$i_malloc'
17276 i_memory='$i_memory'
17277 i_mntent='$i_mntent'
17280 i_neterrno='$i_neterrno'
17281 i_netinettcp='$i_netinettcp'
17285 i_pthread='$i_pthread'
17287 i_rpcsvcdbm='$i_rpcsvcdbm'
17290 i_shadow='$i_shadow'
17292 i_stdarg='$i_stdarg'
17293 i_stddef='$i_stddef'
17294 i_stdlib='$i_stdlib'
17295 i_string='$i_string'
17296 i_sunmath='$i_sunmath'
17297 i_sysaccess='$i_sysaccess'
17298 i_sysdir='$i_sysdir'
17299 i_sysfile='$i_sysfile'
17300 i_sysfilio='$i_sysfilio'
17302 i_sysioctl='$i_sysioctl'
17303 i_syslog='$i_syslog'
17304 i_sysmman='$i_sysmman'
17305 i_sysmode='$i_sysmode'
17306 i_sysmount='$i_sysmount'
17307 i_sysndir='$i_sysndir'
17308 i_sysparam='$i_sysparam'
17309 i_sysresrc='$i_sysresrc'
17310 i_syssecrt='$i_syssecrt'
17311 i_sysselct='$i_sysselct'
17312 i_syssockio='$i_syssockio'
17313 i_sysstat='$i_sysstat'
17314 i_sysstatfs='$i_sysstatfs'
17315 i_sysstatvfs='$i_sysstatvfs'
17316 i_systime='$i_systime'
17317 i_systimek='$i_systimek'
17318 i_systimes='$i_systimes'
17319 i_systypes='$i_systypes'
17320 i_sysuio='$i_sysuio'
17322 i_sysutsname='$i_sysutsname'
17323 i_sysvfs='$i_sysvfs'
17324 i_syswait='$i_syswait'
17325 i_termio='$i_termio'
17326 i_termios='$i_termios'
17328 i_unistd='$i_unistd'
17331 i_values='$i_values'
17332 i_varargs='$i_varargs'
17333 i_varhdr='$i_varhdr'
17335 ignore_versioned_solibs='$ignore_versioned_solibs'
17336 inc_version_list='$inc_version_list'
17337 inc_version_list_init='$inc_version_list_init'
17340 installarchlib='$installarchlib'
17341 installbin='$installbin'
17342 installman1dir='$installman1dir'
17343 installman3dir='$installman3dir'
17344 installprefix='$installprefix'
17345 installprefixexp='$installprefixexp'
17346 installprivlib='$installprivlib'
17347 installscript='$installscript'
17348 installsitearch='$installsitearch'
17349 installsitebin='$installsitebin'
17350 installsitelib='$installsitelib'
17351 installstyle='$installstyle'
17352 installusrbinperl='$installusrbinperl'
17353 installvendorarch='$installvendorarch'
17354 installvendorbin='$installvendorbin'
17355 installvendorlib='$installvendorlib'
17357 issymlink='$issymlink'
17358 ivdformat='$ivdformat'
17361 known_extensions='$known_extensions'
17364 lddlflags='$lddlflags'
17366 ldflags_uselargefiles='$ldflags_uselargefiles'
17367 ldlibpthname='$ldlibpthname'
17374 libsdirs='$libsdirs'
17375 libsfiles='$libsfiles'
17376 libsfound='$libsfound'
17377 libspath='$libspath'
17378 libswanted='$libswanted'
17379 libswanted_uselargefiles='$libswanted_uselargefiles'
17385 locincpth='$locincpth'
17386 loclibpth='$loclibpth'
17387 longdblsize='$longdblsize'
17388 longlongsize='$longlongsize'
17389 longsize='$longsize'
17393 lseeksize='$lseeksize'
17394 lseektype='$lseektype'
17398 make_set_make='$make_set_make'
17399 mallocobj='$mallocobj'
17400 mallocsrc='$mallocsrc'
17401 malloctype='$malloctype'
17403 man1direxp='$man1direxp'
17406 man3direxp='$man3direxp'
17408 mips_type='$mips_type'
17410 mmaptype='$mmaptype'
17411 modetype='$modetype'
17413 multiarch='$multiarch'
17415 myarchname='$myarchname'
17416 mydomain='$mydomain'
17417 myhostname='$myhostname'
17420 need_va_copy='$need_va_copy'
17421 netdb_hlen_type='$netdb_hlen_type'
17422 netdb_host_type='$netdb_host_type'
17423 netdb_name_type='$netdb_name_type'
17424 netdb_net_type='$netdb_net_type'
17427 nm_so_opt='$nm_so_opt'
17428 nonxs_ext='$nonxs_ext'
17430 nvEUformat='$nvEUformat'
17431 nvFUformat='$nvFUformat'
17432 nvGUformat='$nvGUformat'
17433 nveformat='$nveformat'
17434 nvfformat='$nvfformat'
17435 nvgformat='$nvgformat'
17438 o_nonblock='$o_nonblock'
17440 old_pthread_create_joinable='$old_pthread_create_joinable'
17441 optimize='$optimize'
17442 orderlib='$orderlib'
17445 otherlibdirs='$otherlibdirs'
17449 patchlevel='$patchlevel'
17450 path_sep='$path_sep'
17453 perl_patchlevel='$perl_patchlevel'
17454 perladmin='$perladmin'
17455 perllibs='$perllibs'
17456 perlpath='$perlpath'
17458 phostname='$phostname'
17461 pm_apiversion='$pm_apiversion'
17465 prefixexp='$prefixexp'
17467 privlibexp='$privlibexp'
17468 procselfexe='$procselfexe'
17469 prototype='$prototype'
17471 quadkind='$quadkind'
17472 quadtype='$quadtype'
17473 randbits='$randbits'
17474 randfunc='$randfunc'
17475 randseedtype='$randseedtype'
17477 rd_nodata='$rd_nodata'
17478 revision='$revision'
17483 sPRIEUldbl='$sPRIEUldbl'
17484 sPRIFUldbl='$sPRIFUldbl'
17485 sPRIGUldbl='$sPRIGUldbl'
17486 sPRIXU64='$sPRIXU64'
17488 sPRIeldbl='$sPRIeldbl'
17489 sPRIfldbl='$sPRIfldbl'
17490 sPRIgldbl='$sPRIgldbl'
17495 sSCNfldbl='$sSCNfldbl'
17496 sched_yield='$sched_yield'
17497 scriptdir='$scriptdir'
17498 scriptdirexp='$scriptdirexp'
17500 seedfunc='$seedfunc'
17501 selectminbits='$selectminbits'
17502 selecttype='$selecttype'
17503 sendmail='$sendmail'
17506 sharpbang='$sharpbang'
17507 shmattype='$shmattype'
17508 shortsize='$shortsize'
17511 sig_count='$sig_count'
17512 sig_name='$sig_name'
17513 sig_name_init='$sig_name_init'
17515 sig_num_init='$sig_num_init'
17516 sig_size='$sig_size'
17517 signal_t='$signal_t'
17518 sitearch='$sitearch'
17519 sitearchexp='$sitearchexp'
17521 sitebinexp='$sitebinexp'
17523 sitelib_stem='$sitelib_stem'
17524 sitelibexp='$sitelibexp'
17525 siteprefix='$siteprefix'
17526 siteprefixexp='$siteprefixexp'
17527 sizesize='$sizesize'
17528 sizetype='$sizetype'
17532 sockethdr='$sockethdr'
17533 socketlib='$socketlib'
17534 socksizetype='$socksizetype'
17536 spackage='$spackage'
17537 spitshell='$spitshell'
17539 ssizetype='$ssizetype'
17540 startperl='$startperl'
17542 static_ext='$static_ext'
17544 stdio_base='$stdio_base'
17545 stdio_bufsiz='$stdio_bufsiz'
17546 stdio_cnt='$stdio_cnt'
17547 stdio_filbuf='$stdio_filbuf'
17548 stdio_ptr='$stdio_ptr'
17549 stdio_stream_array='$stdio_stream_array'
17552 subversion='$subversion'
17556 targetarch='$targetarch'
17560 timeincl='$timeincl'
17561 timetype='$timetype'
17575 uidformat='$uidformat'
17581 uquadtype='$uquadtype'
17582 use5005threads='$use5005threads'
17583 use64bitall='$use64bitall'
17584 use64bitint='$use64bitint'
17585 usecrosscompile='$usecrosscompile'
17587 useithreads='$useithreads'
17588 uselargefiles='$uselargefiles'
17589 uselongdouble='$uselongdouble'
17590 usemorebits='$usemorebits'
17591 usemultiplicity='$usemultiplicity'
17592 usemymalloc='$usemymalloc'
17594 useopcode='$useopcode'
17595 useperlio='$useperlio'
17596 useposix='$useposix'
17597 usereentrant='$usereentrant'
17599 useshrplib='$useshrplib'
17600 usesocks='$usesocks'
17601 usethreads='$usethreads'
17602 usevendorprefix='$usevendorprefix'
17603 usevfork='$usevfork'
17606 uvXUformat='$uvXUformat'
17607 uvoformat='$uvoformat'
17610 uvuformat='$uvuformat'
17611 uvxformat='$uvxformat'
17612 vendorarch='$vendorarch'
17613 vendorarchexp='$vendorarchexp'
17614 vendorbin='$vendorbin'
17615 vendorbinexp='$vendorbinexp'
17616 vendorlib='$vendorlib'
17617 vendorlib_stem='$vendorlib_stem'
17618 vendorlibexp='$vendorlibexp'
17619 vendorprefix='$vendorprefix'
17620 vendorprefixexp='$vendorprefixexp'
17622 version_patchlevel_string='$version_patchlevel_string'
17623 versiononly='$versiononly'
17625 voidflags='$voidflags'
17627 xs_apiversion='$xs_apiversion'
17629 yaccflags='$yaccflags'
17634 : Add in command line options if available
17635 $test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh
17637 : add special variables
17638 $test -f $src/patchlevel.h && \
17639 awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
17640 echo "PERL_PATCHLEVEL=$perl_patchlevel" >>config.sh
17641 echo "PERL_CONFIG_SH=true" >>config.sh
17643 : propagate old symbols
17644 if $test -f UU/config.sh; then
17645 <UU/config.sh $sort | $uniq >UU/oldconfig.sh
17646 sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\
17647 $sort | $uniq -u >UU/oldsyms
17648 set X `cat UU/oldsyms`
17654 Hmm...You had some extra variables I don't know about...I'll try to keep 'em...
17656 echo "# Variables propagated from previous config.sh file." >>config.sh
17657 for sym in `cat UU/oldsyms`; do
17658 echo " Propagating $hint variable "'$'"$sym..."
17659 eval 'tmp="$'"${sym}"'"'
17661 sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh
17667 : Finish up by extracting the .SH files
17671 echo "Extraction done."
17681 If you'd like to make any changes to the config.sh file before I begin
17682 to configure things, do it as a shell escape now (e.g. !vi config.sh).
17685 rp="Press return or use a shell escape to edit config.sh:"
17690 *) : in case they cannot read
17691 sh 1>&4 -c "$ans";;
17696 : if this fails, just run all the .SH files by hand
17705 if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
17712 Now you need to generate make dependencies by running "$make depend".
17713 You might prefer to run it in background: "$make depend > makedepend.out &"
17714 It can take a while, so you might not want to run it right now.
17719 rp="Run $make depend now?"
17723 $make depend && echo "Now you must run '$make'."
17726 echo "You must run '$make depend' then '$make'."
17729 elif test -f [Mm]akefile; then
17731 echo "Now you must run a $make."
17733 echo "Configure done."
17736 if $test -f Policy.sh; then
17739 If you compile $package on a different machine or from a different object
17740 directory, copy the Policy.sh file from this object directory to the
17741 new one before you run Configure -- this will help you with most of
17742 the policy defaults.
17746 if $test -f config.msg; then
17747 echo "Hmm. I also noted the following information while running:"
17749 $cat config.msg >&4
17752 $rm -f kit*isdone ark*isdone