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 Tue Feb 22 16:38:07 EET 2000 [metaconfig 3.0 PL70]
24 # (with additional metaconfig patches by perlbug@perl.com)
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...
43 true || cat /tmp/c1$$ /tmp/c2$$
44 true || exec sh $0 $argv:q
46 (exit $?0) || cat /tmp/c2$$
47 (exit $?0) || exec sh $0 $argv:q
48 rm -f /tmp/c1$$ /tmp/c2$$
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
73 paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
74 paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
75 paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
76 paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
77 paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
78 paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
79 paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
80 paths="$paths /sbin /usr/sbin /usr/libexec"
86 *) test -d $p && PATH=$PATH$p_$p ;;
93 : shall we be using ksh?
99 if (PATH=.; alias -x) >/dev/null 2>&1; then
102 if test -f /hp-ux -a -f /bin/ksh; then
103 needksh='to avoid sh bug in "here document" expansion'
105 if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then
106 if test X`/usr/bin/uname -v` = X4; then
107 avoidksh="to avoid AIX 4's /bin/sh"
111 if test -f /osf_boot -a -f /usr/sbin/setld; then
112 if test X`/usr/bin/uname -s` = XOSF1; then
113 avoidksh="to avoid Digital UNIX' ksh"
115 unset BIN_SH # if this is 'xpg4' sh will start up ksh
118 case "$inksh/$needksh" in
125 case "$inksh/$avoidksh" in
131 case "$inksh/$needksh-$avoidksh-" in
134 (I see you are using the Korn shell. Some ksh's blow up on $me,
135 mainly on older exotic systems. If yours does, try the Bourne shell instead.)
141 echo "(Feeding myself to $newsh $reason.)"
143 Configure|*/Configure) exec $newsh $0 "$@";;
144 *) exec $newsh Configure "$@";;
149 : if needed set CDPATH to a harmless value that is not chatty
150 : avoid bash 2.02 problems with empty CDPATH.
154 *bash*) CDPATH='.' ;;
159 : Configure runs within the UU subdirectory
160 test -d UU || mkdir UU
450 d_old_pthread_create_joinable=''
451 old_pthread_create_joinable=''
689 inc_version_list_init=''
709 ignore_versioned_solibs=''
870 d_stdio_stream_array=''
871 stdio_stream_array=''
916 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
919 : We must find out about Eunice early
921 if test -f /etc/unixtovms; then
922 eunicefix=/etc/unixtovms
924 if test -f /etc/unixtovms.exe; then
925 eunicefix=/etc/unixtovms.exe
929 : set useposix=false in your hint file to disable the POSIX extension.
931 : set useopcode=false in your hint file to disable the Opcode extension.
933 : Trailing extension. Override this in a hint file, if needed.
935 : Extra object files, if any, needed on this platform.
937 : Possible local include directories to search.
938 : Set locincpth to "" in a hint file to defeat local include searches.
939 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
940 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
942 : no include file wanted by default
946 : change the next line if compiling for Xenix/286 on Xenix/386
947 xlibpth='/usr/lib/386 /lib/386'
948 : Possible local library directories to search.
949 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
950 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
952 : general looking path for locating libraries
953 glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
954 glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
955 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
956 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
957 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
959 : Private path used by Configure to find libraries. Its value
960 : is prepended to libpth. This variable takes care of special
961 : machines, like the mips. Usually, it should be empty.
964 : default library list
966 : some systems want to use only the non-versioned libso:s
967 ignore_versioned_solibs=''
968 : set usemultiplicity on the Configure command line to enable multiplicity.
969 : set usesocks on the Configure command line to enable socks.
970 : set usethreads on the Configure command line to enable threads.
971 : full support for void wanted by default
974 : List of libraries we want.
975 : If anyone needs -lnet, put it in a hint file.
976 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl'
977 libswanted="$libswanted dld ld sun m c cposix posix"
978 libswanted="$libswanted ndir dir crypt sec"
979 libswanted="$libswanted ucb bsd BSD PW x"
980 : We probably want to search /usr/shlib before most other libraries.
981 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
982 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
983 glibpth="/usr/shlib $glibpth"
984 : Do not use vfork unless overridden by a hint file.
987 : Find the basic shell for Bourne shell scripts
991 *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
994 if test -f "$xxx"; then
997 : Build up a list and do a single loop so we can 'break' out.
998 pth=`echo $PATH | sed -e "s/$p_/ /g"`
999 for xxx in sh bash ksh pdksh ash; do
1001 try="$try ${p}/${xxx}"
1005 if test -f "$xxx"; then
1008 elif test -f "$xxx.exe"; then
1019 $me: Fatal Error: I can't find a Bourne Shell anywhere.
1021 Usually it's in /bin/sh. How did you even get this far?
1022 Please contact me (Perl Maintainers) at perlbug@perl.com and
1023 we'll try to straighten this all out.
1029 : see if sh knows # comments
1030 if `$sh -c '#' >/dev/null 2>&1`; then
1034 test -f $xcat || xcat=/usr/bin/cat
1039 if test -s today; then
1042 echo "#! $xcat" > try
1046 if test -s today; then
1054 echo "Your $sh doesn't grok # comments--I will strip them later on."
1057 echo "exec grep -v '^[ ]*#'" >spitshell
1059 $eunicefix spitshell
1060 spitshell=`pwd`/spitshell
1062 echo "I presume that if # doesn't work, #! won't work either!"
1067 : figure out how to guarantee sh startup
1069 '') startsh=${sharpbang}${sh} ;;
1081 : echo "Yup, it does."
1083 echo "Hmm... '$startsh' does not guarantee sh startup..."
1084 echo "You may have to fix up the shell scripts to make sure $sh runs them."
1089 : Save command line options in file UU/cmdline.opt for later use in
1090 : generating config.sh.
1091 cat > cmdline.opt <<EOSH
1092 # Configure command line arguments.
1099 cat >>cmdline.opt <<EOSH
1100 config_arg$argn='$arg'
1102 argn=`expr $argn + 1`
1105 : produce awk script to parse command line options
1106 cat >options.awk <<'EOF'
1108 optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
1110 len = length(optstr);
1111 for (i = 1; i <= len; i++) {
1112 c = substr(optstr, i, 1);
1113 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1124 if (substr(str, 1, 1) != "-") {
1125 printf("'%s'\n", str);
1129 for (i = 2; i <= len; i++) {
1130 c = substr(str, i, 1);
1132 printf("-%s\n", substr(str, i));
1138 printf("'%s'\n", substr(str, i + 1));
1151 : process the command line options
1152 set X `for arg in "$@"; do echo "X$arg"; done |
1153 sed -e s/X// | awk -f options.awk`
1158 : set up default values
1168 rm -f optdef.sh posthint.sh
1169 cat >optdef.sh <<EOS
1175 while test $# -gt 0; do
1177 -d) shift; fastread=yes;;
1178 -e) shift; alldone=cont;;
1182 if test -r "$1"; then
1185 echo "$me: cannot read config file $1." >&2
1190 -h) shift; error=true;;
1191 -r) shift; reuseval=true;;
1192 -s) shift; silent=true; realsilent=true;;
1193 -E) shift; alldone=exit;;
1194 -K) shift; knowitall=true;;
1195 -O) shift; override=true;;
1196 -S) shift; silent=true; extractsh=true;;
1201 echo "$me: use '-U symbol=', not '-D symbol='." >&2
1202 echo "$me: ignoring -D $1" >&2
1205 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1206 *) echo "$1='define'" >> optdef.sh;;
1213 *=) echo "$1" >> optdef.sh;;
1215 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1216 echo "$me: ignoring -U $1" >&2
1218 *) echo "$1='undef'" >> optdef.sh;;
1229 *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1233 zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
1234 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1240 *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1241 yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1242 zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1243 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1244 *) xxx=`echo $yyy|sed 's!:.*!!'`
1245 yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1251 echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
1253 echo "$yyy=''" >> posthint.sh ;;
1258 echo "$yyy='$zzz'" >> posthint.sh ;;
1260 echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
1262 echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
1267 echo "$yyy=$zzz" >> posthint.sh ;;
1268 *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1272 -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1275 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1283 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1284 [-U symbol] [-U symbol=] [-A command:symbol...]
1285 -d : use defaults for all answers.
1286 -e : go on without questioning past the production of config.sh.
1287 -f : specify an alternate default configuration file.
1288 -h : print this help message and exit (with an error status).
1289 -r : reuse C symbols value if possible (skips costly nm extraction).
1290 -s : silent mode, only echoes questions and essential information.
1291 -D : define symbol to have some value:
1292 -D symbol symbol gets the value 'define'
1293 -D symbol=value symbol gets the value 'value'
1294 -E : stop at the end of questions, after having produced config.sh.
1295 -K : do not use unless you know what you are doing.
1296 -O : let -D and -U override definitions from loaded configuration file.
1297 -S : perform variable substitutions on all .SH files (can mix with -f)
1298 -U : undefine symbol:
1299 -U symbol symbol gets the value 'undef'
1300 -U symbol= symbol gets completely empty
1301 -A : manipulate symbol after the platform specific hints have been applied:
1302 -A symbol=value append " "value to symbol
1303 -A append:symbol=value append value to symbol
1304 -A define:symbol=value define symbol to have value
1305 -A clear:symbol define symbol to be ''
1306 -A define:symbol define symbol to be 'define'
1307 -A eval:symbol=value define symbol to be eval of value
1308 -A prepend:symbol=value prepend value to symbol
1309 -A undef:symbol define symbol to be 'undef'
1310 -A undef:symbol= define symbol to be ''
1311 -V : print version number and exit (with a zero status).
1318 case "$fastread$alldone" in
1321 if test ! -t 0; then
1322 echo "Say 'sh Configure', not 'sh <Configure'"
1330 true) exec 1>/dev/null;;
1333 : run the defines and the undefines, if any, but leave the file out there...
1336 : create the posthint manipulation script and leave the file out there...
1341 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1342 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1343 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1344 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1345 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1348 : Some greps do not return status, grrr.
1349 echo "grimblepritz" >grimble
1350 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1352 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1358 : the following should work in any shell
1362 echo "AGH! Grep doesn't return a status. Attempting remedial action."
1363 cat >contains <<'EOSS'
1364 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1369 : Find the path to the source tree
1372 */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1375 *) src=`cd ../$src && pwd` ;;
1388 if test -f $rsrc/Configure && \
1389 $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1391 : found it, so we are ok.
1394 for src in . .. ../.. ../../.. ../../../..; do
1395 if test -f ../$src/Configure && \
1396 $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1407 Sorry, I can't seem to locate the source dir for $package. Please start
1408 Configure with an explicit path -- i.e. /some/path/Configure.
1416 echo "Sources for $package found in \"$src\"." >&4
1420 : script used to extract .SH files with variable substitutions
1421 cat >extract <<'EOS'
1423 echo "Doing variable substitutions on .SH files..."
1424 if test -f $src/MANIFEST; then
1425 set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
1427 echo "(Looking for .SH files under the source directory.)"
1428 set x `(cd $src; find . -name "*.SH" -print)`
1432 0) set x `(cd $src; echo *.SH)`; shift;;
1434 if test ! -f $src/$1; then
1440 while test $name; do
1441 if test ! -d "$name"; then
1442 create="$name $create";
1443 name=`echo $name | sed -e "s|^[^/]*$||"`;
1444 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1449 for file in $create; do
1458 dir=`expr X$file : 'X\(.*\)/'`
1459 file=`expr X$file : 'X.*/\(.*\)'`
1460 (cd $dir && . ./$file)
1470 dir=`expr X$file : 'X\(.*\)/'`
1471 file=`expr X$file : 'X.*/\(.*\)'`
1472 (set x $dir; shift; eval $mkdir_p)
1482 if test -f $src/config_h.SH; then
1483 if test ! -f config.h; then
1484 : oops, they left it out of MANIFEST, probably, so do it anyway.
1490 : extract files and exit if asked to do so
1491 case "$extractsh" in
1493 case "$realsilent" in
1497 case "$config_sh" in
1498 '') config_sh='config.sh';;
1501 echo "Fetching answers from $config_sh..."
1504 test "$override" && . ./optdef.sh
1513 : Eunice requires " " instead of "", can you believe it
1516 echo "Beginning of configuration questions for $package."
1518 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1520 : first determine how to suppress newline on echo command
1522 echo "Checking echo to see how to suppress newlines..."
1523 (echo "hi there\c" ; echo " ") >.echotmp
1524 if $contains c .echotmp >/dev/null 2>&1 ; then
1535 echo $n "The star should be here-->$c"
1539 : Now test for existence of everything in MANIFEST
1541 if test -f $rsrc/MANIFEST; then
1542 echo "First let's make sure your kit is complete. Checking..." >&4
1543 awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1546 for filelist in x??; do
1547 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1549 if test -s missing; then
1553 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1555 You have the option of continuing the configuration process, despite the
1556 distinct possibility that your kit is damaged, by typing 'y'es. If you
1557 do, don't blame me if something goes wrong. I advise you to type 'n'o
1558 and contact the author (perlbug@perl.com).
1561 echo $n "Continue? [n] $c" >&4
1565 echo "Continuing..." >&4
1569 echo "ABORTING..." >&4
1574 echo "Looks good..."
1577 echo "There is no MANIFEST file. I hope your kit is complete !"
1582 : Find the appropriate value for a newline for tr
1583 if test -n "$DJGPP"; then
1586 if test X"$trnl" = X; then
1587 case "`echo foo|tr '\n' x 2>/dev/null`" in
1591 if test X"$trnl" = X; then
1592 case "`echo foo|tr '\012' x 2>/dev/null`" in
1593 foox) trnl='\012' ;;
1596 if test X"$trnl" = X; then
1599 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1605 : compute the number of columns on the terminal for proper question formatting
1610 : set up the echo used in my read
1611 myecho="case \"\$xxxm\" in
1612 '') echo $n \"\$rp $c\" >&4;;
1614 '') echo $n \"[\$xxxm] $c\";;
1616 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1618 echo $n \"[\$xxxm] $c\" >&4
1620 echo $n \"\$rp [\$xxxm] $c\" >&4
1626 : now set up to do reads with possible shell escape and default assignment
1632 case "\$fastread" in
1633 yes) case "\$dflt" in
1636 case "\$silent-\$rp" in
1641 *) case "\$silent" in
1642 true) case "\$rp" in
1647 while expr "X\$ans" : "X!" >/dev/null; do
1651 aok=''; eval "ans=\\"\$answ\\"" && aok=y
1659 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1668 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1673 echo "(OK, I'll run with -d after this question.)" >&4
1676 echo "*** Sorry, \$1 not supported yet." >&4
1686 echo "*** Substitution done -- please confirm."
1688 ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1693 echo "*** Error -- try again."
1700 case "\$ans\$xxxm\$nostick" in
1712 : create .config dir to save info across Configure sessions
1713 test -d ../.config || mkdir ../.config
1714 cat >../.config/README <<EOF
1715 This directory created by Configure to save information that should
1716 persist across sessions for $package.
1718 You may safely delete it if you wish.
1721 : general instructions
1724 user=`(logname) 2>/dev/null`
1726 '') user=`whoami 2>&1`;;
1728 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1731 rp='Would you like to see the instructions?'
1742 This installation shell script will examine your system and ask you questions
1743 to determine how the perl5 package should be installed. If you get
1744 stuck on a question, you may use a ! shell escape to start a subshell or
1745 execute a command. Many of the questions will have default answers in square
1746 brackets; typing carriage return will give you the default.
1748 On some of the questions which ask for file or directory names you are allowed
1749 to use the ~name construct to specify the login directory belonging to "name",
1750 even if you don't have a shell which knows about that. Questions where this is
1751 allowed will be marked "(~name ok)".
1755 dflt='Type carriage return to continue'
1759 The prompter used in this script allows you to use shell variables and
1760 backticks in your answers. You may use $1, $2, etc... to refer to the words
1761 in the default answer, as if the default line was a set of arguments given to a
1762 script shell. This means you may also use $* to repeat the whole default line,
1763 so you do not have to re-type everything to add something to the default.
1765 Everytime there is a substitution, you will have to confirm. If there is an
1766 error (e.g. an unmatched backtick), the default answer will remain unchanged
1767 and you will be prompted again.
1769 If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1770 the questions and use the computed defaults (or the previous answers if there
1771 was already a config.sh file). Type 'Configure -h' for a list of options.
1772 You may also start interactively and then answer '& -d' at any prompt to turn
1773 on the non-interactive behaviour for the remainder of the execution.
1779 Much effort has been expended to ensure that this shell script will run on any
1780 Unix system. If despite that it blows up on yours, your best bet is to edit
1781 Configure and run it again. If you can't run Configure for some reason,
1782 you'll have to generate a config.sh file by hand. Whatever problems you
1783 have, let me (perlbug@perl.com) know how I blew it.
1785 This installation script affects things in two ways:
1787 1) it may do direct variable substitutions on some of the files included
1789 2) it builds a config.h file for inclusion in C programs. You may edit
1790 any of these files as the need arises after running this script.
1792 If you make a mistake on a question, there is no easy way to back up to it
1793 currently. The easiest thing to do is to edit config.sh and rerun all the SH
1794 files. Configure will offer to let you do this before it runs the SH files.
1797 dflt='Type carriage return to continue'
1799 case "$firsttime" in
1800 true) echo $user >>../.config/instruct;;
1804 : find out where common programs are
1806 echo "Locating common programs..." >&4
1819 if test -d \$dir/\$thing; then
1825 for thisthing in \$dir/\$thing; do
1826 : just loop through to pick last item
1828 if test -f \$thisthing; then
1831 elif test -f \$dir/\$thing.exe; then
1832 if test -n "$DJGPP"; then
1833 echo \$dir/\$thing.exe
1835 : on Eunice apparently
1886 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1887 pth="$pth /lib /usr/lib"
1888 for file in $loclist; do
1892 if test -f "$xxx"; then
1895 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1896 xxx=`./loc $file $file $pth`
1899 '') xxx=`./loc $file $file $pth`;;
1900 *) xxx=`./loc $xxx $xxx $pth`;;
1906 echo $file is in $xxx.
1909 echo $file is in $xxx.
1912 echo "I don't know where '$file' is, and my life depends on it." >&4
1913 echo "Go find a public domain implementation or fix your PATH setting!" >&4
1919 echo "Don't worry if any of the following aren't found..."
1921 for file in $trylist; do
1925 if test -f "$xxx"; then
1928 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1929 xxx=`./loc $file $file $pth`
1932 '') xxx=`./loc $file $file $pth`;;
1933 *) xxx=`./loc $xxx $xxx $pth`;;
1939 echo $file is in $xxx.
1942 echo $file is in $xxx.
1945 echo "I don't see $file out there, $say."
1952 echo "Substituting grep for egrep."
1958 echo "Substituting cp for ln."
1964 echo "Hopefully test is built into your sh."
1967 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
1968 echo "Using the test built into your sh."
1976 echo "Hopefully echo is built into your sh."
1981 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
1982 $echo $n "hi there$c" >foo1
1983 echo $n "hi there$c" >foo2
1984 if cmp foo1 foo2 >/dev/null 2>&1; then
1985 echo "They are compatible. In fact, they may be identical."
1992 They are not compatible! You are probably running ksh on a non-USG system.
1993 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
1994 have echo built in and we may have to run some Bourne shell scripts. That
1995 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
1998 $echo $n "The star should be here-->$c"
2005 : determine whether symbolic links are supported
2008 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2009 echo "Symbolic links are supported." >&4
2012 echo "Symbolic links are NOT supported." >&4
2017 : see whether [:lower:] and [:upper:] are supported character classes
2019 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2021 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2025 *) # There is a discontinuity in EBCDIC between 'I' and 'J'
2026 # (0xc9 and 0xd1), therefore that is a nice testing point.
2027 if test "X$up" = X -o "X$low" = X; then
2028 case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
2034 if test "X$up" = X -o "X$low" = X; then
2035 case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
2041 if test "X$up" = X -o "X$low" = X; then
2042 case "`echo IJ | od -x 2>/dev/null`" in
2044 echo "Hey, this might be EBCDIC." >&4
2045 if test "X$up" = X -o "X$low" = X; then
2046 case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
2047 ij) up='[A-IJ-RS-Z]'
2052 if test "X$up" = X -o "X$low" = X; then
2053 case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2063 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2065 echo "Using $up and $low to convert case." >&4
2068 echo "I don't know how to translate letters from upper to lower case." >&4
2069 echo "Your tr is not acting any way I know of." >&4
2073 : set up the translation script tr, must be called with ./tr of course
2077 '[A-Z][a-z]') exec $tr '$up' '$low';;
2078 '[a-z][A-Z]') exec $tr '$low' '$up';;
2085 : Try to determine whether config.sh was made on this system
2086 case "$config_sh" in
2088 myuname=`$uname -a 2>/dev/null`
2089 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2090 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2091 # because the A-Z/a-z are not consecutive.
2092 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2093 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2094 newmyuname="$myuname"
2096 case "$knowitall" in
2098 if test -f ../config.sh; then
2099 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2100 eval "`grep myuname= ../config.sh`"
2102 if test "X$myuname" = "X$newmyuname"; then
2110 : Get old answers from old config file if Configure was run on the
2111 : same system, otherwise use the hints.
2114 if test -f config.sh; then
2116 rp="I see a config.sh file. Shall I use it to set the defaults?"
2119 n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
2120 *) echo "Fetching default answers from your old config.sh file..." >&4
2128 : Older versions did not always set $sh. Catch re-use of such
2137 if test ! -f config.sh; then
2140 First time through, eh? I have some defaults handy for some systems
2141 that need some extra help getting the Configure answers right:
2144 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
2146 : Half the following guesses are probably wrong... If you have better
2147 : tests or hints, please send them to perlbug@perl.com
2148 : The metaconfig authors would also appreciate a copy...
2149 $test -f /irix && osname=irix
2150 $test -f /xenix && osname=sco_xenix
2151 $test -f /dynix && osname=dynix
2152 $test -f /dnix && osname=dnix
2153 $test -f /lynx.os && osname=lynxos
2154 $test -f /unicos && osname=unicos && osvers=`$uname -r`
2155 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2156 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2157 $test -f /bin/mips && /bin/mips && osname=mips
2158 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2159 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2160 $test -d /usr/apollo/bin && osname=apollo
2161 $test -f /etc/saf/_sactab && osname=svr4
2162 $test -d /usr/include/minix && osname=minix
2163 if $test -d /MachTen -o -d /MachTen_Folder; then
2165 if $test -x /sbin/version; then
2166 osvers=`/sbin/version | $awk '{print $2}' |
2167 $sed -e 's/[A-Za-z]$//'`
2168 elif $test -x /usr/etc/version; then
2169 osvers=`/usr/etc/version | $awk '{print $2}' |
2170 $sed -e 's/[A-Za-z]$//'`
2176 $test -f /sys/posix.dll &&
2177 $test -f /usr/bin/what &&
2178 set X `/usr/bin/what /sys/posix.dll` &&
2179 $test "$3" = UWIN &&
2183 if $test -f $uname; then
2191 umips) osname=umips ;;
2194 [23]100) osname=mips ;;
2195 next*) osname=next ;;
2197 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2198 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2201 elif $test -f /etc/kconfig; then
2203 if test "$lns" = "$ln -s"; then
2205 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2207 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2214 if test -n "$DJGPP"; then
2223 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2225 'not found') osvers="$4"."$3" ;;
2226 '<3240'|'<>3240') osvers=3.2.0 ;;
2227 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2228 '=3250'|'>3250') osvers=3.2.5 ;;
2232 bsd386) osname=bsd386
2235 cygwin*) osname=cygwin
2238 *dc.osx) osname=dcosx
2244 domainos) osname=apollo
2250 dynixptx*) osname=dynixptx
2251 osvers=`echo "$4"|sed 's/^v//'`
2253 freebsd) osname=freebsd
2255 genix) osname=genix ;;
2257 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2273 netbsd*) osname=netbsd
2276 news-os) osvers="$3"
2278 4*) osname=newsos4 ;;
2282 next*) osname=next ;;
2283 POSIX-BC | posix-bc ) osname=posix-bc
2286 powerux | power_ux | powermax_os | powermaxos | \
2287 powerunix | power_unix) osname=powerux
2293 solaris) osname=solaris
2295 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2302 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2306 titanos) osname=titanos
2315 ultrix) osname=ultrix
2318 osf1|mls+) case "$5" in
2321 osvers=`echo "$3" | sed 's/^[xvt]//'`
2323 hp*) osname=hp_osf1 ;;
2324 mips) osname=mips_osf1 ;;
2327 unixware) osname=svr5
2333 $2) case "$osname" in
2337 : svr4.x or possibly later
2347 if test -f /stand/boot ; then
2348 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2349 if test -n "$INITPROG" -a -f "$INITPROG"; then
2350 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2351 if test -n "$isesix"; then
2359 *) if test -f /etc/systemid; then
2361 set `echo $3 | $sed 's/\./ /g'` $4
2362 if $test -f $src/hints/sco_$1_$2_$3.sh; then
2364 elif $test -f $src/hints/sco_$1_$2.sh; then
2366 elif $test -f $src/hints/sco_$1.sh; then
2371 '') : Still unknown. Probably a generic Sys V.
2380 *) case "$osname" in
2381 '') : Still unknown. Probably a generic BSD.
2389 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2390 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2391 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
2394 $rm -f UU/kernel.what
2395 elif test -d c:/.; then
2402 : Now look for a hint file osname_osvers, unless one has been
2403 : specified already.
2406 file=`echo "${osname}_${osvers}" | $sed -e 's@\.@_@g' -e 's@_$@@'`
2407 : Also try without trailing minor version numbers.
2408 xfile=`echo $file | $sed -e 's@_[^_]*$@@'`
2409 xxfile=`echo $xfile | $sed -e 's@_[^_]*$@@'`
2410 xxxfile=`echo $xxfile | $sed -e 's@_[^_]*$@@'`
2411 xxxxfile=`echo $xxxfile | $sed -e 's@_[^_]*$@@'`
2414 *) case "$osvers" in
2417 *) if $test -f $src/hints/$file.sh ; then
2419 elif $test -f $src/hints/$xfile.sh ; then
2421 elif $test -f $src/hints/$xxfile.sh ; then
2423 elif $test -f $src/hints/$xxxfile.sh ; then
2425 elif $test -f $src/hints/$xxxxfile.sh ; then
2427 elif $test -f "$src/hints/${osname}.sh" ; then
2436 if $test -f Policy.sh ; then
2439 none) dflt="Policy" ;;
2440 *) dflt="Policy $dflt" ;;
2445 dflt=`echo $hintfile | $sed 's/\.sh$//'`
2449 if $test -f Policy.sh ; then
2452 There's also a Policy hint file available, which should make the
2453 site-specific (policy) questions easier to answer.
2460 You may give one or more space-separated answers, or "none" if appropriate.
2461 A well-behaved OS will have no hints, so answering "none" or just "Policy"
2462 is a good thing. DO NOT give a wrong version or a wrong OS.
2466 rp="Which of these apply, if any?"
2469 for file in $tans; do
2470 if $test X$file = XPolicy -a -f Policy.sh; then
2472 $cat Policy.sh >> UU/config.sh
2473 elif $test -f $src/hints/$file.sh; then
2474 . $src/hints/$file.sh
2475 $cat $src/hints/$file.sh >> UU/config.sh
2476 elif $test X$tans = X -o X$tans = Xnone ; then
2479 : Give one chance to correct a possible typo.
2480 echo "$file.sh does not exist"
2482 rp="hint to use instead?"
2484 for file in $ans; do
2485 if $test -f "$src/hints/$file.sh"; then
2486 . $src/hints/$file.sh
2487 $cat $src/hints/$file.sh >> UU/config.sh
2488 elif $test X$ans = X -o X$ans = Xnone ; then
2491 echo "$file.sh does not exist -- ignored."
2498 : Remember our hint file for later.
2499 if $test -f "$src/hints/$file.sh" ; then
2509 echo "Fetching default answers from $config_sh..." >&4
2513 cp $config_sh config.sh 2>/dev/null
2523 test "$override" && . ./optdef.sh
2524 myuname="$newmyuname"
2526 : Restore computed paths
2527 for file in $loclist $trylist; do
2528 eval $file="\$_$file"
2533 Configure uses the operating system name and version to set some defaults.
2534 The default value is probably right if the name rings a bell. Otherwise,
2535 since spelling matters for me, either accept the default or answer "none"
2542 ''|' '|none) dflt=none ;;
2543 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
2546 *) dflt="$osname" ;;
2548 rp="Operating system name?"
2552 *) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
2558 ''|' '|none) dflt=none ;;
2559 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
2560 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
2562 ''|' ') dflt=none ;;
2567 *) dflt="$osvers" ;;
2569 rp="Operating system version?"
2579 : who configured the system
2580 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
2581 cf_by=`(logname) 2>/dev/null`
2584 cf_by=`(whoami) 2>/dev/null`
2586 "") cf_by=unknown ;;
2590 : set up the script used to warn in case of inconsistency
2597 echo "*** WHOA THERE!!! ***" >&4
2598 echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
2599 rp=" Keep the $hint value?"
2602 y) td=$was; tu=$was;;
2606 : function used to set $1 to $val
2607 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
2609 $define$undef) . ./whoa; eval "$var=\$td";;
2610 $undef$define) . ./whoa; eval "$var=\$tu";;
2611 *) eval "$var=$val";;
2614 case "$usethreads" in
2615 $define|true|[yY]*) dflt='y';;
2620 Perl can be built to take advantage of threads on some systems.
2621 To do so, Configure can be run with -Dusethreads.
2623 Note that threading is a highly experimental feature, and
2624 some known race conditions still remain. If you choose to try
2625 it, be very sure to not actually deploy it for production
2626 purposes. README.threads has more details, and is required
2627 reading if you enable threads.
2629 If this doesn't make any sense to you, just accept the default '$dflt'.
2631 rp='Build a threading Perl?'
2634 y|Y) val="$define" ;;
2640 case "$usethreads" in
2644 As of 5.5.640, Perl has two different internal threading implementations,
2645 the 5.005 version (5005threads) and an interpreter-based version
2646 (ithreads) that has one interpreter per thread. Both are very
2647 experimental. This arrangement exists to help developers work out
2648 which one is better.
2650 If you're a casual user, you probably don't want interpreter-threads
2651 at this time. There doesn't yet exist a way to create threads from
2652 within Perl in this model, i.e., "use Thread;" will NOT work.
2654 : Default to ithreads unless overridden on command line or with
2657 case "$use5005threads" in
2658 $define|true|[yY]*) dflt='n';;
2660 case "$useithreads" in
2661 $undef|false|[nN]*) dflt='n';;
2663 rp='Use interpreter-based ithreads?'
2666 y|Y) val="$define" ;;
2671 : Now set use5005threads to the opposite value.
2672 case "$useithreads" in
2673 $define) val="$undef" ;;
2680 useithreads="$undef"
2681 use5005threads="$undef"
2685 case "$d_oldpthreads" in
2686 '') : Configure tests would be welcome here. For now, assume undef.
2688 *) val="$d_oldpthreads" ;;
2694 case "$usethreads" in
2695 "$define"|true|[yY]*)
2696 : Look for a hint-file generated 'call-back-unit'. If the
2697 : user has specified that a threading perl is to be built,
2698 : we may need to set or change some other defaults.
2699 if $test -f usethreads.cbu; then
2700 echo "Your platform has some specific hints for threaded builds, using them..."
2704 (Your platform doesn't have any specific hints for threaded builds.
2705 Assuming POSIX threads, then.)
2713 Perl can be built so that multiple Perl interpreters can coexist
2714 within the same Perl executable.
2717 case "$useithreads" in
2720 This multiple interpreter support is required for interpreter-based threads.
2724 *) case "$usemultiplicity" in
2725 $define|true|[yY]*) dflt='y';;
2728 echo "If this doesn't make any sense to you, just accept the default '$dflt'."
2729 rp='Build Perl for multiplicity?'
2732 y|Y) val="$define" ;;
2740 : determine where manual pages are on this system
2744 syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
2745 syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
2746 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
2747 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
2748 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
2749 sysman=`./loc . /usr/man/man1 $syspath`
2752 if $test -d "$sysman"; then
2753 echo "System manual is in $sysman." >&4
2755 echo "Could not find manual pages in source form." >&4
2758 : see what memory models we can support
2761 $cat >pdp11.c <<'EOP'
2770 ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1
2771 if $test -f pdp11 && ./pdp11 2>/dev/null; then
2772 dflt='unsplit split'
2774 tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
2777 *) if $test -d /lib/small || $test -d /usr/lib/small; then
2782 if $test -d /lib/medium || $test -d /usr/lib/medium; then
2785 if $test -d /lib/large || $test -d /usr/lib/large; then
2788 if $test -d /lib/huge || $test -d /usr/lib/huge; then
2797 Some systems have different model sizes. On most systems they are called
2798 small, medium, large, and huge. On the PDP11 they are called unsplit and
2799 split. If your system doesn't support different memory models, say "none".
2800 If you wish to force everything to one memory model, say "none" here and
2801 put the appropriate flags later when it asks you for other cc and ld flags.
2802 Venix systems may wish to put "none" and let the compiler figure things out.
2803 (In the following question multiple model names should be space separated.)
2805 The default for most systems is "none".
2808 rp="Which memory models are supported?"
2823 '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
2824 $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
2831 rp="What flag indicates separate I and D space?"
2839 *large*|*small*|*medium*|*huge*)
2846 rp="What flag indicates large model?"
2856 *huge*) case "$huge" in
2860 rp="What flag indicates huge model?"
2870 *medium*) case "$medium" in
2874 rp="What flag indicates medium model?"
2881 *) medium="$large";;
2884 *small*) case "$small" in
2888 rp="What flag indicates small model?"
2899 echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
2902 $rm -f pdp11.* pdp11
2904 : make some quick guesses about what we are up against
2906 $echo $n "Hmm... $c"
2916 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
2917 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
2919 echo "Looks kind of like an OSF/1 system, but we'll see..."
2921 elif test `echo abc | tr a-z A-Z` = Abc ; then
2922 xxx=`./loc addbib blurfl $pth`
2923 if $test -f $xxx; then
2924 echo "Looks kind of like a USG system with BSD features, but we'll see..."
2928 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
2929 echo "Looks kind of like an extended USG system, but we'll see..."
2931 echo "Looks kind of like a USG system, but we'll see..."
2935 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
2936 echo "Looks kind of like a BSD system, but we'll see..."
2940 echo "Looks kind of like a Version 7 system, but we'll see..."
2943 case "$eunicefix" in
2946 There is, however, a strange, musty smell in the air that reminds me of
2947 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
2951 : it so happens the Eunice I know will not run shell scripts in Unix format
2955 echo "Congratulations. You aren't running Eunice."
2959 : Detect OS2. The p_ variable is set above in the Head.U unit.
2964 I have the feeling something is not exactly right, however...don't tell me...
2965 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
2970 if test -f /xenix; then
2971 echo "Actually, this looks more like a XENIX system..."
2976 echo "It's not Xenix..."
2981 if test -f /venix; then
2982 echo "Actually, this looks more like a VENIX system..."
2989 echo "Nor is it Venix..."
2992 chmod +x bsd usg v7 osf1 eunice xenix venix os2
2993 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
2996 : see if we need a special compiler
3004 *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
3005 if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
3019 On some older systems the default C compiler will not resolve multiple global
3020 references that happen to have the same name. On some such systems the "Mcc"
3021 command may be used to force these to be resolved. On other systems a "cc -M"
3022 command is required. (Note that the -M flag on other systems indicates a
3023 memory model to use!) If you have the Gnu C compiler, you might wish to use
3029 rp="Use which C compiler?"
3037 rp="Use which C compiler?"
3041 : Look for a hint-file generated 'call-back-unit'. Now that the
3042 : user has specified the compiler, we may need to set or change some
3044 if $test -f cc.cbu; then
3048 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3049 $cat >gccvers.c <<EOM
3054 printf("%s\n", __VERSION__);
3056 printf("%s\n", "1");
3062 if $cc $ldflags -o gccvers gccvers.c; then
3063 gccversion=`./gccvers`
3064 case "$gccversion" in
3065 '') echo "You are not using GNU cc." ;;
3066 *) echo "You are using GNU cc $gccversion."
3071 echo "*** WHOA THERE!!! ***" >&4
3072 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3073 case "$knowitall" in
3075 echo " You'd better start hunting for one and let me know about it." >&4
3081 case "$gccversion" in
3082 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3085 : decide how portable to be. Allow command line overrides.
3086 case "$d_portable" in
3088 *) d_portable="$define" ;;
3091 : set up shell script to do ~ expansion
3097 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3100 if $test -f /bin/csh; then
3101 /bin/csh -f -c "glob \$1"
3106 name=\`$expr x\$1 : '..\([^/]*\)'\`
3107 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3108 if $test ! -d "\$dir"; then
3110 echo "\$me: can't locate home directory for: \$name" >&2
3115 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3131 : now set up to get a file name
3135 cat <<'EOSC' >>getfile
3151 expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
3152 fn=`echo $fn | sed 's/(.*)//'`
3158 loc_file=`expr $fn : '.*:\(.*\)'`
3159 fn=`expr $fn : '\(.*\):.*'`
3167 */*) fullpath=true;;
3176 *e*) exp_file=true;;
3179 *p*) nopath_ok=true;;
3184 *d*) type='Directory';;
3185 *l*) type='Locate';;
3190 Locate) what='File';;
3195 case "$d_portable" in
3203 while test "$type"; do
3208 true) rp="$rp (~name ok)";;
3211 if test -f UU/getfile.ok && \
3212 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3231 value=`UU/filexp $ans`
3234 if test "$ans" != "$value"; then
3235 echo "(That expands to $value on this system.)"
3249 /*) value="$ansexp" ;;
3254 echo "I shall only accept a full path name, as in /bin/ls." >&4
3255 echo "Use a ! shell escape if you wish to check pathnames." >&4
3258 echo "Please give a full path name, starting with slash." >&4
3261 echo "Note that using ~name is ok provided it expands well." >&4
3274 for fp in $gfpth; do
3275 if test "X$fp" = X.; then
3280 if test -f "$pf"; then
3282 elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3284 echo "($value is not a plain file, but that's ok.)"
3287 if test X"$type" = X; then
3294 for fp in $gfpth; do
3295 if test "X$fp" = X.; then
3300 if test -d "$pf"; then
3308 if test -d "$ansexp"; then
3309 echo "(Looking for $loc_file in directory $value.)"
3310 value="$value/$loc_file"
3311 ansexp="$ansexp/$loc_file"
3313 if test -f "$ansexp"; then
3316 case "$nopath_ok" in
3317 true) case "$value" in
3319 *) echo "Assuming $value will be in people's path."
3335 if test "$fastread" = yes; then
3340 rp="$what $value doesn't exist. Use that name anyway?"
3359 test "X$gfpthkeep" != Xy && gfpth=""
3362 : What should the include directory be ?
3364 $echo $n "Hmm... $c"
3368 if $test -f /bin/mips && /bin/mips; then
3369 echo "Looks like a MIPS system..."
3370 $cat >usr.c <<'EOCP'
3371 #ifdef SYSTYPE_BSD43
3375 if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3376 dflt='/bsd43/usr/include'
3380 mips_type='System V'
3382 $rm -f usr.c usr.out
3383 echo "and you're compiling with the $mips_type compiler and libraries."
3387 echo "Doesn't look like a MIPS system."
3397 case "$xxx_prompt" in
3400 rp='Where are the include files you want to use?'
3408 : see how we invoke the C preprocessor
3410 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3411 cat <<'EOT' >testcpp.c
3417 if test ! -f cppstdin; then
3418 if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3419 # AIX cc -E doesn't show the absolute headerfile
3420 # locations but we'll cheat by using the -M flag.
3421 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
3423 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3426 echo "Keeping your $hint cppstdin wrapper."
3429 wrapper=`pwd`/cppstdin
3433 if $test "X$cppstdin" != "X" && \
3434 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3435 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3437 echo "You used to use $cppstdin $cppminus so we'll use that again."
3439 '') echo "But let's see if we can live without a wrapper..." ;;
3441 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3442 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3444 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3447 echo "(However, $cpprun $cpplast does not work, let's see...)"
3455 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3462 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3463 $cc -E <testcpp.c >testcpp.out 2>&1; \
3464 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3465 echo "Yup, it does."
3468 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3469 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3470 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3471 echo "Yup, it does."
3474 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3475 $cc -P <testcpp.c >testcpp.out 2>&1; \
3476 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3477 echo "Yipee, that works!"
3480 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3481 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3482 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3483 echo "At long last!"
3486 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3487 $cpp <testcpp.c >testcpp.out 2>&1; \
3488 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3492 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3493 $cpp - <testcpp.c >testcpp.out 2>&1; \
3494 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3495 echo "Hooray, it works! I was beginning to wonder."
3498 elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3499 $wrapper <testcpp.c >testcpp.out 2>&1; \
3500 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3506 rp="No dice. I can't find a C preprocessor. Name one:"
3510 $x_cpp <testcpp.c >testcpp.out 2>&1
3511 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3512 echo "OK, that will do." >&4
3514 echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
3529 echo "Perhaps can we force $cc -E using a wrapper..."
3530 if $wrapper <testcpp.c >testcpp.out 2>&1; \
3531 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3537 echo "Nope, we'll have to live without it..."
3551 "$wrapper"|'cppstdin') ;;
3552 *) $rm -f $wrapper;;
3554 $rm -f testcpp.c testcpp.out
3556 : Set private lib path
3559 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
3564 '') dlist="$loclibpth $plibpth $glibpth";;
3565 *) dlist="$libpth";;
3568 : Now check and see which directories actually exist, avoiding duplicates
3572 if $test -d $xxx; then
3575 *) libpth="$libpth $xxx";;
3581 Some systems have incompatible or broken versions of libraries. Among
3582 the directories listed in the question below, please remove any you
3583 know not to be holding relevant libraries, and add any that are needed.
3584 Say "none" for none.
3595 rp="Directories to use for library searches?"
3602 : compute shared library extension
3605 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
3615 On some systems, shared libraries may be available. Answer 'none' if
3616 you want to suppress searching of shared libraries for the remainder
3617 of this configuration.
3620 rp='What is the file extension used for shared libraries?'
3624 : Define several unixisms.
3625 : Hints files or command line option can be used to override them.
3626 : The convoluted testing is in case hints files set either the old
3629 '') case "$exe_ext" in
3631 *) _exe="$exe_ext" ;;
3636 '') case "$lib_ext" in
3643 '') case "$obj_ext" in
3650 '') case "$path_sep" in
3661 : Which makefile gets called first. This is used by make depend.
3662 case "$firstmakefile" in
3663 '') firstmakefile='makefile';;
3667 $define|true|[yY]*) dflt='y';;
3672 Perl can be built to use the SOCKS proxy protocol library. To do so,
3673 Configure must be run with -Dusesocks.
3675 If this doesn't make any sense to you, just accept the default '$dflt'.
3677 rp='Build Perl for SOCKS?'
3680 y|Y) val="$define" ;;
3686 : Looking for optional libraries
3688 echo "Checking for optional libraries..." >&4
3693 case "$libswanted" in
3694 '') libswanted='c_s';;
3698 libswanted="$libswanted socks5 socks5_sh"
3704 for thislib in $libswanted; do
3705 for thisdir in $libpth; do
3707 if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
3708 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
3709 $test -f "$xxx" && eval $libscheck
3710 $test -f "$xxx" && libstyle=shared
3712 if test ! -f "$xxx"; then
3713 xxx=$thisdir/lib$thislib.$so
3714 $test -f "$xxx" && eval $libscheck
3715 $test -f "$xxx" && libstyle=shared
3717 if test ! -f "$xxx"; then
3718 xxx=$thisdir/lib$thislib$_a
3719 $test -f "$xxx" && eval $libscheck
3720 $test -f "$xxx" && libstyle=static
3722 if test ! -f "$xxx"; then
3723 xxx=$thisdir/$thislib$_a
3724 $test -f "$xxx" && eval $libscheck
3725 $test -f "$xxx" && libstyle=static
3727 if test ! -f "$xxx"; then
3728 xxx=$thisdir/lib${thislib}_s$_a
3729 $test -f "$xxx" && eval $libscheck
3730 $test -f "$xxx" && libstyle=static
3732 if test ! -f "$xxx"; then
3733 xxx=$thisdir/Slib$thislib$_a
3734 $test -f "$xxx" && eval $libscheck
3735 $test -f "$xxx" && libstyle=static
3737 if $test -f "$xxx"; then
3739 shared) echo "Found -l$thislib (shared)." ;;
3740 static) echo "Found -l$thislib." ;;
3741 *) echo "Found -l$thislib ($libstyle)." ;;
3745 *) dflt="$dflt -l$thislib"
3746 libsfound="$libsfound $xxx"
3748 libsfiles="$libsfiles $yyy"
3749 yyy=`echo $xxx|sed "s@/$yyy\\$@@"`
3750 case " $libsdirs " in
3752 *) libsdirs="$libsdirs $yyy" ;;
3759 if $test ! -f "$xxx"; then
3760 echo "No -l$thislib."
3771 ' '|'') dflt='none';;
3776 In order to compile $package on your machine, a number of libraries
3777 are usually needed. Include any other special libraries here as well.
3778 Say "none" for none. The default list is almost always right.
3782 rp="What libraries to use?"
3789 : determine optimization, if desired, or use for debug flag also
3791 ' '|$undef) dflt='none';;
3793 *) dflt="$optimize";;
3797 By default, $package compiles with the -O flag to use the optimizer.
3798 Alternately, you might want to use the symbolic debugger, which uses
3799 the -g flag (on traditional Unix systems). Either flag can be
3800 specified here. To use neither flag, specify the word "none".
3803 rp="What optimizer/debugger flag should be used?"
3807 'none') optimize=" ";;
3811 : We will not override a previous value, but we might want to
3812 : augment a hint file
3814 default|recommended)
3815 case "$gccversion" in
3816 1*) dflt='-fpcc-struct-return' ;;
3819 *-g*) dflt="$dflt -DDEBUGGING";;
3821 case "$gccversion" in
3822 2*) if test -d /etc/conf/kconfig.d &&
3823 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
3829 case "$gccversion" in
3833 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
3834 echo 'int main(void) { return 0; }' > gcctest.c
3835 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
3836 echo "Yes, it does." 2>&1
3839 echo "Leaving current flags $ccflags alone." 2>&1
3841 *) dflt="$dflt -fno-strict-aliasing" ;;
3844 echo "Nope, it doesn't, but that's ok." 2>&1
3851 case "$mips_type" in
3852 *BSD*|'') inclwanted="$locincpth $usrinc";;
3853 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
3855 for thisincl in $inclwanted; do
3856 if $test -d $thisincl; then
3857 if $test x$thisincl != x$usrinc; then
3860 *) dflt="$dflt -I$thisincl";;
3866 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
3868 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
3876 *) dflt="$dflt -D$2";;
3880 set signal.h LANGUAGE_C; eval $inctest
3884 ccflags="$ccflags -DSOCKS"
3889 default|recommended) dflt="$ccflags $dflt" ;;
3890 *) dflt="$ccflags";;
3898 Your C compiler may want other flags. For this question you should include
3899 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
3900 but you should NOT include libraries or ld flags like -lwhatever. If you
3901 want $package to honor its debug switch, you should include -DDEBUGGING here.
3902 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
3904 To use no flags, specify the word "none".
3910 rp="Any additional cc flags?"
3917 : the following weeds options from ccflags that are of no interest to cpp
3919 case "$gccversion" in
3920 1*) cppflags="$cppflags -D__GNUC__"
3922 case "$mips_type" in
3924 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
3930 echo "Let me guess what the preprocessor flags are..." >&4
3944 *) ftry="$previous $flag";;
3946 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
3947 >cpp1.out 2>/dev/null && \
3948 $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
3949 >cpp2.out 2>/dev/null && \
3950 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
3951 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
3953 cppflags="$cppflags $ftry"
3963 *-*) echo "They appear to be: $cppflags";;
3965 $rm -f cpp.c cpp?.out
3969 : flags used in final linking phase
3971 '') if ./venix; then
3977 *-posix*) dflt="$dflt -posix" ;;
3980 *) dflt="$ldflags";;
3983 : Try to guess additional flags to pick up local libraries.
3984 for thislibdir in $libpth; do
3985 case " $loclibpth " in
3988 *"-L$thislibdir "*) ;;
3989 *) dflt="$dflt -L$thislibdir" ;;
4001 Your C linker may need flags. For this question you should
4002 include -L/whatever and any other flags used by the C linker, but you
4003 should NOT include libraries like -lwhatever.
4005 Make sure you include the appropriate -L/path flags if your C linker
4006 does not normally search all of the directories you specified above,
4009 To use no flags, specify the word "none".
4013 rp="Any additional ld flags (NOT including libraries)?"
4019 rmlist="$rmlist pdp11"
4023 echo "Checking your choice of C compiler and flags for coherency..." >&4
4024 $cat > try.c <<'EOF'
4026 int main() { printf("Ok\n"); exit(0); }
4028 set X $cc $optimize $ccflags -o try $ldflags try.c $libs
4030 $cat >try.msg <<'EOM'
4031 I've tried to compile and run the following simple program:
4034 $cat try.c >> try.msg
4036 $cat >> try.msg <<EOM
4043 and I got the following output:
4047 if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
4048 if sh -c './try' >>try.msg 2>&1; then
4052 *) echo 'The program compiled OK, but produced no output.' >> try.msg
4055 cat >> try.msg <<'EOQS'
4056 If $libs contains -lsfio, and sfio is mis-configured, then it
4057 sometimes (apparently) runs and exits with a 0 status, but with no
4058 output! It may have to do with sfio's use of _exit vs. exit.
4061 rp="You have a big problem. Shall I abort Configure"
4068 echo "The program compiled OK, but exited with status $?." >>try.msg
4069 rp="You have a problem. Shall I abort Configure"
4073 echo "I can't compile the test program." >>try.msg
4074 rp="You have a BIG problem. Shall I abort Configure"
4080 case "$knowitall" in
4082 echo "(The supplied flags or libraries might be incorrect.)"
4090 *) echo "Ok. Stopping Configure." >&4
4095 n) echo "OK, that should do.";;
4097 $rm -f try try.* core
4099 : define an is-a-typedef? function
4100 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4102 "") inclist="sys/types.h";;
4104 eval "varval=\$$var";
4108 for inc in $inclist; do
4109 echo "#include <$inc>" >>temp.c;
4111 echo "#ifdef $type" >> temp.c;
4112 echo "printf(\"We have $type\");" >> temp.c;
4113 echo "#endif" >> temp.c;
4114 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4115 if $contains $type temp.E >/dev/null 2>&1; then
4121 *) eval "$var=\$varval";;
4124 : define an is-a-typedef? function that prompts if the type is not available.
4125 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4127 "") inclist="sys/types.h";;
4129 eval "varval=\$$var";
4133 for inc in $inclist; do
4134 echo "#include <$inc>" >>temp.c;
4136 echo "#ifdef $type" >> temp.c;
4137 echo "printf(\"We have $type\");" >> temp.c;
4138 echo "#endif" >> temp.c;
4139 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4141 echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
4142 if $contains $type temp.E >/dev/null 2>&1; then
4143 echo "$type found." >&4;
4146 echo "$type NOT found." >&4;
4152 *) eval "$var=\$varval";;
4155 : define a shorthand compile call
4159 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
4160 : define a shorthand compile call for compilations that should be ok.
4164 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
4166 : check for lengths of integral types
4170 echo "Checking to see how big your integers are..." >&4
4171 $cat >intsize.c <<'EOCP'
4175 printf("intsize=%d;\n", (int)sizeof(int));
4176 printf("longsize=%d;\n", (int)sizeof(long));
4177 printf("shortsize=%d;\n", (int)sizeof(short));
4182 if eval $compile_ok && ./intsize > /dev/null; then
4184 echo "Your integers are $intsize bytes long."
4185 echo "Your long integers are $longsize bytes long."
4186 echo "Your short integers are $shortsize bytes long."
4190 Help! I can't compile and run the intsize test program: please enlighten me!
4191 (This is probably a misconfiguration in your system or libraries, and
4192 you really ought to fix it. Still, I'll try anyway.)
4196 rp="What is the size of an integer (in bytes)?"
4200 rp="What is the size of a long integer (in bytes)?"
4204 rp="What is the size of a short integer (in bytes)?"
4210 $rm -f intsize intsize.*
4212 : see what type lseek is declared as in the kernel
4213 rp="What is the type used for lseek's offset on this system?"
4214 set off_t lseektype long stdio.h sys/types.h
4218 $echo $n "Checking to see how big your file offsets are...$c" >&4
4220 #include <sys/types.h>
4224 printf("%d\n", (int)sizeof($lseektype));
4229 if eval $compile_ok; then
4231 $echo " $lseeksize bytes." >&4
4235 echo "(I can't seem to compile the test program. Guessing...)"
4236 rp="What is the size of your file offsets (in bytes)?"
4242 : see what type file positions are declared as in the library
4243 rp="What is the type for file position used by fsetpos()?"
4244 set fpos_t fpostype long stdio.h sys/types.h
4249 *_t) zzz="$fpostype" ;;
4252 $echo $n "Checking the size of $zzz...$c" >&4
4254 #include <sys/types.h>
4257 printf("%d\n", (int)sizeof($fpostype));
4262 if eval $compile_ok; then
4267 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4270 echo " $fpossize bytes." >&4
4276 echo "(I can't compile the test program. Guessing...)" >&4
4277 rp="What is the size of your file positions (in bytes)?"
4284 case "$lseeksize:$fpossize" in
4287 You can have files larger than 2 gigabytes.
4290 *) case "$uselargefiles" in
4291 "$undef"|false|[nN]*) dflt='n' ;;
4296 Perl can be built to understand large files (files larger than 2 gigabytes)
4297 on some systems. To do so, Configure can be run with -Duselargefiles.
4299 If this doesn't make any sense to you, just accept the default '$dflt'.
4301 rp='Try to understand large files, if available?'
4304 y|Y) val="$define" ;;
4311 case "$uselargefiles" in
4313 : Look for a hint-file generated 'call-back-unit'. If the
4314 : user has specified that a large files perl is to be built,
4315 : we may need to set or change some other defaults.
4316 if $test -f uselfs.cbu; then
4317 echo "Your platform has some specific hints for large file builds, using them..."
4320 $echo $n "Rechecking to see how big your file offsets are...$c" >&4
4322 #include <sys/types.h>
4326 printf("%d\n", (int)sizeof($lseektype));
4331 if eval $compile_ok; then
4333 $echo " $lseeksize bytes." >&4
4337 echo "(I can't seem to compile the test program. Guessing...)"
4338 rp="What is the size of your file offsets (in bytes)?"
4343 *_t) zzz="$fpostype" ;;
4346 $echo $n "Rechecking the size of $zzz...$c" >&4
4348 #include <sys/types.h>
4351 printf("%d\n", (int)sizeof($fpostype));
4356 if eval $compile_ok; then
4361 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4364 echo " $fpossize bytes."
4370 echo "(I can't compile the test program. Guessing...)" >&4
4371 rp="What is the size of your file positions (in bytes)?"
4381 case "$usemorebits" in
4382 "$define"|true|[yY]*)
4384 uselongdouble="$define"
4385 usemorebits="$define"
4387 *) usemorebits="$undef"
4392 case "$intsize:$longsize" in
4395 You have natively 64-bit integers.
4399 *) case "$ccflags" in
4400 *-DUSE_64_BITS*|*-DUSE_LONG_LONG*) use64bits="$define";;
4401 *) case "$uselonglong" in
4402 $define|true|[yY]*) use64bits="$define";;
4406 case "$use64bits" in
4407 $define|true|[yY]*) dflt='y';;
4412 Perl can be built to take advantage of 64-bit integer types
4413 on some systems. To do so, Configure can be run with -Duse64bits.
4415 If this doesn't make any sense to you, just accept the default '$dflt'.
4417 rp='Try to use 64-bit integers, if available?'
4420 [yY]*) val="$define" ;;
4428 case "$archname64" in
4429 '') archname64='' ;; # not a typo
4432 case "$use64bits" in
4433 "$define"|true|[yY]*)
4434 : Look for a hint-file generated 'call-back-unit'. If the
4435 : user has specified that a 64-bit perl is to be built,
4436 : we may need to set or change some other defaults.
4437 if $test -f use64bits.cbu; then
4438 echo "Your platform has some specific hints for 64-bit builds, using them..."
4442 (Your platform doesn't have any specific hints for 64-bit builds.)
4444 case "$intsize:$longsize" in
4446 (This is probably okay, as your system is a natively 64-bit system.)
4450 case "$gccversion" in
4452 *) case "$ccflags" in
4455 But since you seem to be using gcc, I will now add -DUSE_64_BITS
4456 to the compilation flags to get long longs.
4458 ccflags="$ccflags -DUSE_64_BITS"
4467 : determine the architecture name
4469 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
4470 tarch=`arch`"-$osname"
4471 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
4472 if uname -m > tmparch 2>&1 ; then
4473 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
4474 -e 's/$/'"-$osname/" tmparch`
4482 case "$myarchname" in
4485 echo "(Your architecture name used to be $myarchname.)"
4492 *) dflt="$archname";;
4494 rp='What is your architecture name'
4497 case "$usethreads" in
4499 echo "Threads selected." >&4
4501 *-thread*) echo "...and architecture name already has -thread." >&4
4503 *) archname="$archname-thread"
4504 echo "...setting architecture name to $archname." >&4
4509 case "$usemultiplicity" in
4511 echo "Multiplicity selected." >&4
4513 *-multi*) echo "...and architecture name already has -multi." >&4
4515 *) archname="$archname-multi"
4516 echo "...setting architecture name to $archname." >&4
4521 case "$use64bits" in
4523 case "$archname64" in
4528 *-$archname64*) echo "...and architecture name already has $archname64." >&4
4530 *) archname="$archname-$archname64"
4531 echo "...setting architecture name to $archname." >&4
4538 : determine root of directory hierarchy where package will be installed.
4541 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
4549 By default, $package will be installed in $dflt/bin, manual pages
4550 under $dflt/man, etc..., i.e. with $dflt as prefix for all
4551 installation directories. Typically this is something like /usr/local.
4552 If you wish to have binaries under /usr/bin but other parts of the
4553 installation under /usr/local, that's ok: you will be prompted
4554 separately for each of the installation directories, the prefix being
4555 only used to set the defaults.
4559 rp='Installation prefix to use?'
4567 *) oldprefix="$prefix";;
4577 $define|true) afs=true ;;
4578 $undef|false) afs=false ;;
4579 *) if test -d /afs; then
4587 echo "AFS may be running... I'll be extra cautious then..." >&4
4589 echo "AFS does not seem to be running..." >&4
4592 : determine installation prefix for where package is to be installed.
4596 Since you are running AFS, I need to distinguish the directory in which
4597 files will reside from the directory in which they are installed (and from
4598 which they are presumably copied to the former directory by occult means).
4601 case "$installprefix" in
4602 '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
4603 *) dflt="$installprefix";;
4608 In some special cases, particularly when building $package for distribution,
4609 it is convenient to distinguish between the directory in which files should
4610 be installed from the directory ($prefix) in which they
4611 will eventually reside. For most users, these two directories are the same.
4614 case "$installprefix" in
4616 *) dflt=$installprefix;;
4620 rp='What installation prefix should I use for installing files?'
4622 installprefix="$ans"
4623 installprefixexp="$ansexp"
4625 : set the prefixit variable, to compute a suitable default value
4626 prefixit='case "$3" in
4628 case "$oldprefix" in
4629 "") eval "$1=\"\$$2\"";;
4636 ""|" ") eval "$1=\"\$$2\"";;
4642 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
4644 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
4645 /*-$oldprefix/*|\~*-$oldprefix/*)
4646 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
4647 *) eval "$1=\"\$$2\"";;
4651 : set the base revision
4655 : get the patchlevel
4657 echo "Getting the current patchlevel..." >&4
4658 if $test -r $rsrc/patchlevel.h;then
4659 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
4660 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4661 api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
4662 api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
4663 api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4671 $echo $n "(You have $package" $c
4674 *) $echo $n " $baserev" $c ;;
4676 $echo $n " patchlevel $patchlevel" $c
4677 test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
4681 : XXX Should be a Configure test for double-dots in filenames.
4682 version=`echo $baserev $patchlevel $subversion | \
4683 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4684 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4685 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4688 version=`echo $baserev $patchlevel $subversion | \
4689 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4690 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4691 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4694 : Special case the 5.005_xx maintenance series, which used 5.005
4695 : without any subversion label as a subdirectory in $sitelib
4696 if test "${api_revision}${api_version}${api_subversion}" = "550"; then
4697 api_versionstring='5.005'
4700 : determine installation style
4701 : For now, try to deduce it from prefix unless it is already set.
4702 : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
4703 case "$installstyle" in
4704 '') case "$prefix" in
4705 *perl*) dflt='lib';;
4706 *) dflt='lib/perl5' ;;
4709 *) dflt='lib/perl5' ;;
4711 : Probably not worth prompting for this since we prompt for all
4712 : the directories individually, and the prompt would be too long and
4716 : determine where private library files go
4717 : Usual default is /usr/local/lib/perl5/$version.
4718 : Also allow things like /opt/perl/lib/$version, since
4719 : /opt/perl/lib/perl5... would be redundant.
4720 : The default "style" setting is made in installstyle.U
4721 case "$installstyle" in
4722 *lib/perl5*) set dflt privlib lib/$package/$version ;;
4723 *) set dflt privlib lib/$version ;;
4728 There are some auxiliary files for $package that need to be put into a
4729 private library directory that is accessible by everyone.
4733 rp='Pathname where the private library files will reside?'
4736 privlibexp="$ansexp"
4737 : Change installation prefix, if necessary.
4738 if $test X"$prefix" != X"$installprefix"; then
4739 installprivlib=`echo $privlibexp | sed "s#^$prefix#$installprefix#"`
4741 installprivlib="$privlibexp"
4744 : set the prefixup variable, to restore leading tilda escape
4745 prefixup='case "$prefixexp" in
4747 *) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";;
4750 : determine where public architecture dependent libraries go
4753 : privlib default is /usr/local/lib/$package/$version
4754 : archlib default is /usr/local/lib/$package/$version/$archname
4755 : privlib may have an optional trailing /share.
4756 tdflt=`echo $privlib | $sed 's,/share$,,'`
4757 tdflt=$tdflt/$archname
4766 $spackage contains architecture-dependent library files. If you are
4767 sharing libraries in a heterogeneous environment, you might store
4768 these files in a separate location. Otherwise, you can just include
4769 them with the rest of the public library files.
4773 rp='Where do you want to put the public architecture-dependent libraries?'
4776 archlibexp="$ansexp"
4777 if $test X"$archlib" = X"$privlib"; then
4782 : Change installation prefix, if necessary.
4783 if $test X"$prefix" != X"$installprefix"; then
4784 installarchlib=`echo $archlibexp | sed "s#^$prefix#$installprefix#"`
4786 installarchlib="$archlibexp"
4790 : Binary compatibility with 5.005 is not possible for builds
4791 : with advanced features
4792 case "$usethreads$usemultiplicity" in
4794 bincompat5005="$undef"
4795 d_bincompat5005="$undef"
4799 Perl 5.006 can be compiled for binary compatibility with 5.005.
4800 If you decide to do so, you will be able to continue using most
4801 of the extensions that were compiled for Perl 5.005.
4804 case "$bincompat5005$d_bincompat5005" in
4805 *"$undef"*) dflt=n ;;
4808 rp='Binary compatibility with Perl 5.005?'
4811 y*) val="$define" ;;
4816 case "$d_bincompat5005" in
4818 bincompat5005="$define"
4820 *) bincompat5005="$undef"
4821 d_bincompat5005="$undef"
4828 : see if setuid scripts can be secure
4831 Some kernels have a bug that prevents setuid #! scripts from being
4832 secure. Some sites have disabled setuid #! scripts because of this.
4834 First let's decide if your kernel supports secure setuid #! scripts.
4835 (If setuid #! scripts would be secure but have been disabled anyway,
4836 don't say that they are secure if asked.)
4841 if $test -d /dev/fd; then
4842 echo "#!$ls" >reflect
4843 chmod +x,u+s reflect
4844 ./reflect >flect 2>&1
4845 if $contains "/dev/fd" flect >/dev/null; then
4846 echo "Congratulations, your kernel has secure setuid scripts!" >&4
4850 If you are not sure if they are secure, I can check but I'll need a
4851 username and password different from the one you are using right now.
4852 If you don't have such a username or don't want me to test, simply
4856 rp='Other username to test security of setuid scripts with?'
4861 case "$d_suidsafe" in
4862 '') echo "I'll assume setuid scripts are *not* secure." >&4
4865 echo "Well, the $hint value is *not* secure." >&4
4867 *) echo "Well, the $hint value *is* secure." >&4
4872 $rm -f reflect flect
4873 echo "#!$ls" >reflect
4874 chmod +x,u+s reflect
4877 echo '"su" will (probably) prompt you for '"$ans's password."
4878 su $ans -c './reflect >flect'
4879 if $contains "/dev/fd" flect >/dev/null; then
4880 echo "Okay, it looks like setuid scripts are secure." >&4
4883 echo "I don't think setuid scripts are secure." >&4
4888 rp='Does your kernel have *secure* setuid scripts?'
4891 [yY]*) val="$define";;
4896 echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
4897 echo "(That's for file descriptors, not floppy disks.)"
4903 $rm -f reflect flect
4905 : now see if they want to do setuid emulation
4908 case "$d_suidsafe" in
4911 echo "No need to emulate SUID scripts since they are secure here." >& 4
4915 Some systems have disabled setuid scripts, especially systems where
4916 setuid scripts cannot be secure. On systems where setuid scripts have
4917 been disabled, the setuid/setgid bits on scripts are currently
4918 useless. It is possible for $package to detect those bits and emulate
4919 setuid/setgid in a secure fashion. This emulation will only work if
4920 setuid scripts have been disabled in your kernel.
4924 "$define") dflt=y ;;
4927 rp="Do you want to do setuid/setgid emulation?"
4930 [yY]*) val="$define";;
4938 : determine filename position in cpp output
4940 echo "Computing filename position in cpp output for #include directives..." >&4
4941 echo '#include <stdio.h>' > foo.c
4944 $cppstdin $cppflags $cppminus <foo.c 2>/dev/null | \
4945 $grep '^[ ]*#.*stdio\.h' | \
4946 while read cline; do
4949 while $test \$# -gt 0; do
4950 if $test -r \`echo \$1 | $tr -d '"'\`; then
4955 pos=\`expr \$pos + 1\`
4967 *) pos="${fieldn}th";;
4969 echo "Your cpp writes the filename in the $pos field of the line."
4971 : locate header file
4976 for usrincdir in $usrinc
4978 if test -f \$usrincdir/\$wanted; then
4979 echo "\$usrincdir/\$wanted"
4983 awkprg='{ print \$$fieldn }'
4984 echo "#include <\$wanted>" > foo\$\$.c
4985 $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
4986 $grep "^[ ]*#.*\$wanted" | \
4987 while read cline; do
4988 name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
4990 *[/\\\\]\$wanted) echo "\$name"; exit 1;;
4991 *[\\\\/]\$wanted) echo "\$name"; exit 1;;
4996 # status = 0: grep returned 0 lines, case statement not executed
4997 # status = 1: headerfile found
4998 # status = 2: while loop executed, no headerfile found
5002 if test \$status -eq 1; then
5009 : define an alternate in-header-list? function
5010 inhdr='echo " "; td=$define; tu=$undef; yyy=$@;
5011 cont=true; xxf="echo \"<\$1> found.\" >&4";
5012 case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";;
5013 *) xxnf="echo \"<\$1> NOT found, ...\" >&4";;
5015 case $# in 4) instead=instead;; *) instead="at last";; esac;
5016 while $test "$cont"; do
5018 var=$2; eval "was=\$$2";
5019 if $test "$xxx" && $test -r "$xxx";
5021 eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
5024 eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
5025 set $yyy; shift; shift; yyy=$@;
5026 case $# in 0) cont="";;
5027 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
5028 xxnf="echo \"and I did not find <\$1> either.\" >&4";;
5029 *) xxf="echo \"but I found <\$1\> instead.\" >&4";
5030 xxnf="echo \"there is no <\$1>, ...\" >&4";;
5034 do set $yyy; var=$2; eval "was=\$$2";
5035 eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu";
5036 set $yyy; shift; shift; yyy=$@;
5039 : see if this is a malloc.h system
5040 set malloc.h i_malloc
5043 : see if stdlib is available
5044 set stdlib.h i_stdlib
5047 : determine which malloc to compile in
5049 case "$usemymalloc" in
5050 ''|[yY]*|true|$define) dflt='y' ;;
5053 rp="Do you wish to attempt to use the malloc that comes with $package?"
5059 mallocsrc='malloc.c'
5060 mallocobj="malloc$_o"
5061 d_mymalloc="$define"
5064 : Remove malloc from list of libraries to use
5065 echo "Removing unneeded -lmalloc from library list" >&4
5066 set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
5069 echo "libs = $libs" >&4
5081 : compute the return types of malloc and free
5083 $cat >malloc.c <<END
5087 #include <sys/types.h>
5101 case "$malloctype" in
5103 if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then
5110 echo "Your system wants malloc to return '$malloctype', it would seem." >&4
5114 if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then
5121 echo "Your system uses $freetype free(), it would seem." >&4
5125 The installation process will also create a directory for
5126 vendor-supplied add-ons. Vendors who supply perl with their system
5127 may find it convenient to place all vendor-supplied files in this
5128 directory rather than in the main distribution directory. This will
5129 ease upgrades between binary-compatible maintenance versions of perl.
5131 Of course you may also use these directories in whatever way you see
5132 fit. For example, you might use them to access modules shared over a
5133 company-wide network.
5135 The default answer should be fine for most people.
5136 This causes further questions about vendor add-ons to be skipped
5137 and no vendor-specific directories will be configured for perl.
5140 rp='Do you want to configure vendor-specific add-on directories?'
5141 case "$usevendorprefix" in
5142 define|true|[yY]*) dflt=y ;;
5148 rp='Installation prefix to use for vendor-supplied add-ons?'
5149 case "$vendorprefix" in
5151 *) dflt=$vendorprefix ;;
5155 case "$vendorprefix" in
5159 *) oldvendorprefix="$prefix";;
5163 usevendorprefix="$define"
5165 vendorprefixexp="$ansexp"
5167 *) usevendorprefix="$undef"
5173 case "$vendorprefix" in
5174 '') d_vendorlib="$undef"
5178 *) d_vendorlib="$define"
5179 : determine where vendor-supplied modules go.
5180 : Usual default is /usr/local/lib/perl5/vendor_perl/$version
5181 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
5182 case "$installstyle" in
5183 *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
5184 *) dflt=$vendorprefix/lib/vendor_$prog/$version ;;
5187 rp='Pathname for the vendor-supplied library files?'
5190 vendorlibexp="$ansexp"
5191 : Change installation prefix, if necessary.
5192 if $test X"$prefix" != X"$installprefix"; then
5193 installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
5195 installvendorlib="$vendorlibexp"
5200 : Cruising for prototypes
5202 echo "Checking out function prototypes..." >&4
5203 $cat >prototype.c <<'EOCP'
5204 int main(int argc, char *argv[]) {
5207 if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
5208 echo "Your C compiler appears to support function prototypes."
5211 echo "Your C compiler doesn't seem to understand function prototypes."
5218 case "$prototype" in
5220 *) ansi2knr='ansi2knr'
5225 This version of $package can only be compiled by a compiler that
5226 understands function prototypes. Unfortunately, your C compiler
5228 doesn't seem to understand them. Sorry about that.
5230 If GNU cc is available for your system, perhaps you could try that instead.
5232 Eventually, we hope to support building Perl with pre-ANSI compilers.
5233 If you would like to help in that effort, please contact <perlbug@perl.org>.
5235 Aborting Configure now.
5241 : determine where public executables go
5246 rp='Pathname where the public executables will reside?'
5248 if $test "X$ansexp" != "X$binexp"; then
5253 : Change installation prefix, if necessary.
5254 : XXX Bug? -- ignores Configure -Dinstallprefix setting.
5255 if $test X"$prefix" != X"$installprefix"; then
5256 installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"`
5258 installbin="$binexp"
5263 After $package is installed, you may wish to install various
5264 add-on modules and utilities. Typically, these add-ons will
5265 be installed under $prefix with the rest
5266 of this package. However, you may wish to install such add-ons
5267 elsewhere under a different prefix.
5269 If you do not wish to put everything under a single prefix, that's
5270 ok. You will be prompted for the individual locations; this siteprefix
5271 is only used to suggest the defaults.
5273 The default should be fine for most people.
5277 rp='Installation prefix to use for add-on modules and utilities?'
5278 : XXX Here might be another good place for an installstyle setting.
5279 case "$siteprefix" in
5281 *) dflt=$siteprefix ;;
5285 case "$siteprefix" in
5290 *) oldsiteprefix="$prefix";;
5295 siteprefixexp="$ansexp"
5297 : determine where site specific libraries go.
5298 : Usual default is /usr/local/lib/perl5/site_perl/$version
5299 : The default "style" setting is made in installstyle.U
5300 : XXX No longer works with Prefixit stuff.
5301 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
5302 case "$installstyle" in
5303 *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
5304 *) dflt=$siteprefix/lib/site_$prog/$version ;;
5308 The installation process will create a directory for
5309 site-specific extensions and modules. Most users find it convenient
5310 to place all site-specific files in this directory rather than in the
5311 main distribution directory.
5315 rp='Pathname for the site-specific library files?'
5318 sitelibexp="$ansexp"
5319 : Change installation prefix, if necessary.
5320 if $test X"$prefix" != X"$installprefix"; then
5321 installsitelib=`echo $sitelibexp | sed "s#^$prefix#$installprefix#"`
5323 installsitelib="$sitelibexp"
5326 : Determine list of previous versions to include in @INC
5327 $cat > getverlist <<EOPL
5330 \$api_versionstring = "$api_versionstring";
5331 \$version = "$version";
5332 \$sitelib = "$sitelib";
5333 \$archname = "$archname";
5335 $cat >> getverlist <<'EOPL'
5336 # Can't have leading @ because metaconfig interprets it as a command!
5337 ;@inc_version_list=();
5338 $stem=dirname($sitelib);
5339 # Redo to do opendir/readdir?
5342 ;@candidates = glob("5.*");
5348 # XXX ToDo: These comparisons must be reworked when two-digit
5349 # subversions come along, so that 5.7.10 compares as greater than
5350 # 5.7.3! By that time, hope that 5.6.x is sufficiently
5351 # widespread that we can use the built-in version vectors rather
5352 # than reinventing them here. For 5.6.0, however, we must
5353 # assume this script will likely be run by 5.005_0x. --AD 1/2000.
5354 foreach $d (@candidates) {
5355 if ($d lt $version) {
5356 if ($d ge $api_versionstring) {
5357 unshift(@inc_version_list, "$d/$archname", $d);
5359 elsif ($d ge "5.005") {
5360 unshift(@inc_version_list, $d);
5364 # Skip newer version. I.e. don't look in
5365 # 5.7.0 if we're installing 5.6.1.
5369 if (@inc_version_list) {
5370 print join(' ', @inc_version_list);
5373 # Blank space to preserve value for next Configure run.
5378 case "$inc_version_list" in
5379 '') if test -x $perl; then
5380 dflt=`$perl getverlist`
5385 $undef) dflt='none' ;;
5386 *) dflt="$inc_version_list" ;;
5390 In order to ease the process of upgrading, this version of perl
5391 can be configured to use modules built and installed with earlier
5392 versions of perl that were installed under $prefix. Specify here
5393 the list of earlier versions that this version of perl should check.
5394 If Configure detected no earlier versions of perl installed under
5395 $prefix, then the list will be empty. Answer 'none' to tell perl
5396 to not search earlier versions.
5398 The default should almost always be sensible, so if you're not sure,
5399 just accept the default.
5402 rp='List of earlier versions to include in @INC?'
5405 [Nn]one) inc_version_list=' ' ;;
5406 *) inc_version_list="$ans" ;;
5408 case "$inc_version_list" in
5410 inc_version_list_init='0';;
5411 *) inc_version_list_init=`echo $inc_version_list |
5412 $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'`
5417 : determine whether to install perl also as /usr/bin/perl
5420 if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
5422 Many scripts expect to perl to be installed as /usr/bin/perl.
5423 I can install the perl you are about to compile also as /usr/bin/perl
5424 (in addition to $installbin/perl).
5426 case "$installusrbinperl" in
5427 "$undef"|[nN]*) dflt='n';;
5430 rp="Do you want to install perl as /usr/bin/perl?"
5433 [yY]*) val="$define";;
5439 set installusrbinperl
5443 echo "Checking for GNU C Library..." >&4
5444 cat >gnulibc.c <<EOM
5456 if eval $compile_ok && ./gnulibc; then
5458 echo "You are using the GNU C Library"
5461 echo "You are not using the GNU C Library"
5467 : see if nm is to be used to determine whether a symbol is defined or not
5471 case "$d_gnulibc" in
5474 echo "nm probably won't work on the GNU C Library." >&4
5480 if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then
5482 echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4
5483 echo "'nm' won't be sufficient on this sytem." >&4
5489 '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null`
5490 if $test $dflt -gt 20; then
5500 true|$define) dflt=y;;
5507 I can use $nm to extract the symbols from your C libraries. This
5508 is a time consuming task which may generate huge output on the disk (up
5509 to 3 megabytes) but that should make the symbols extraction faster. The
5510 alternative is to skip the 'nm' extraction part and to compile a small
5511 test program instead to determine whether each symbol is present. If
5512 you have a fast C compiler and/or if your 'nm' output cannot be parsed,
5513 this may be the best solution.
5515 You probably shouldn't let me use 'nm' if you are using the GNU C Library.
5518 rp="Shall I use $nm to extract C symbols from the libraries?"
5521 [Nn]*) usenm=false;;
5530 : nm options which may be necessary
5532 '') if $test -f /mach_boot; then
5534 elif $test -d /usr/ccs/lib; then
5535 nm_opt='-p' # Solaris (and SunOS?)
5536 elif $test -f /dgux; then
5538 elif $test -f /lib64/rld; then
5539 nm_opt='-p' # 64-bit Irix
5545 : nm options which may be necessary for shared libraries but illegal
5546 : for archive libraries. Thank you, Linux.
5547 case "$nm_so_opt" in
5548 '') case "$myuname" in
5550 if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
5551 nm_so_opt='--dynamic'
5560 : get list of predefined functions in a handy place
5565 *-lc_s*) libc=`./loc libc_s$_a $libc $libpth`
5572 *) for thislib in $libs; do
5575 : Handle C library specially below.
5578 thislib=`echo $thislib | $sed -e 's/^-l//'`
5579 if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
5581 elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
5583 elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then
5585 elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then
5587 elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
5589 elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
5591 elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then
5596 libnames="$libnames $try"
5598 *) libnames="$libnames $thislib" ;;
5607 for xxx in $libpth; do
5608 $test -r $1 || set $xxx/libc.$so
5609 : The messy sed command sorts on library version numbers.
5611 set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \
5612 tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e '
5614 s/[0-9][0-9]*/0000&/g
5615 s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g
5618 sort | $sed -e 's/^.* //'`
5621 $test -r $1 || set /usr/ccs/lib/libc.$so
5622 $test -r $1 || set /lib/libsys_s$_a
5628 if $test -r "$1"; then
5629 echo "Your (shared) C library seems to be in $1."
5631 elif $test -r /lib/libc && $test -r /lib/clib; then
5632 echo "Your C library seems to be in both /lib/clib and /lib/libc."
5634 libc='/lib/clib /lib/libc'
5635 if $test -r /lib/syslib; then
5636 echo "(Your math library is in /lib/syslib.)"
5637 libc="$libc /lib/syslib"
5639 elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
5640 echo "Your C library seems to be in $libc, as you said before."
5641 elif $test -r $incpath/usr/lib/libc$_a; then
5642 libc=$incpath/usr/lib/libc$_a;
5643 echo "Your C library seems to be in $libc. That's fine."
5644 elif $test -r /lib/libc$_a; then
5646 echo "Your C library seems to be in $libc. You're normal."
5648 if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then
5650 elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
5651 libnames="$libnames "`./loc clib blurfl/dyick $libpth`
5652 elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
5654 elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
5656 elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
5659 tans=`./loc Llibc$_a blurfl/dyick $xlibpth`
5661 if $test -r "$tans"; then
5662 echo "Your C library seems to be in $tans, of all places."
5668 if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
5672 If the guess above is wrong (which it might be if you're using a strange
5673 compiler, or your machine supports multiple models), you can override it here.
5678 echo $libpth | tr ' ' $trnl | sort | uniq > libpath
5680 I can't seem to find your C library. I've looked in the following places:
5683 $sed 's/^/ /' libpath
5686 None of these seems to contain your C library. I need to get its name...
5691 rp='Where is your C library?'
5696 echo $libc $libnames | tr ' ' $trnl | sort | uniq > libnames
5697 set X `cat libnames`
5700 case $# in 1) xxx=file; esac
5701 echo "Extracting names from the following $xxx for later perusal:" >&4
5703 $sed 's/^/ /' libnames >&4
5705 $echo $n "This may take a while...$c" >&4
5709 *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
5710 *) $nm $nm_opt $file 2>/dev/null;;
5715 $grep fprintf libc.tmp > libc.ptf
5716 xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
5717 xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
5719 if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\
5721 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5723 elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
5725 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5727 elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
5729 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5731 elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
5733 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5735 elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
5737 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5739 elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
5741 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5743 elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
5744 -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\
5746 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5748 elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
5750 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5752 elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
5754 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5756 elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\
5758 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5760 elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
5762 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5764 elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
5766 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5768 elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
5770 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5772 elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\
5774 $contains '^fprintf$' libc.list >/dev/null 2>&1; then
5777 $nm -p $* 2>/dev/null >libc.tmp
5778 $grep fprintf libc.tmp > libc.ptf
5779 if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
5780 eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
5786 echo "$nm didn't seem to work right. Trying $ar instead..." >&4
5788 if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then
5789 for thisname in $libnames $libc; do
5790 $ar t $thisname >>libc.tmp
5792 $sed -e "s/\\$_o\$//" < libc.tmp > libc.list
5794 elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then
5795 # Repeat libc to extract forwarders to DLL entries too
5796 for thisname in $libnames $libc; do
5797 $ar tv $thisname >>libc.tmp
5798 # Revision 50 of EMX has bug in $ar.
5799 # it will not extract forwarders to DLL entries
5800 # Use emximp which will extract exactly them.
5801 emximp -o tmp.imp $thisname \
5803 $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
5804 < tmp.imp >>libc.tmp
5807 $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list
5810 echo "$ar didn't seem to work right." >&4
5811 echo "Maybe this is a Cray...trying bld instead..." >&4
5812 if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list
5814 for thisname in $libnames; do
5816 $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
5817 $ar t $thisname >>libc.tmp
5821 echo "That didn't work either. Giving up." >&4
5828 if $test -f /lib/syscalls.exp; then
5830 echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
5831 $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
5835 $rm -f libnames libpath
5837 : see if dld is available
5841 : is a C symbol defined?
5844 -v) tf=libc.tmp; tc=""; tdc="";;
5845 -a) tf=libc.tmp; tc="[0]"; tdc="[]";;
5846 *) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";;
5849 case "$reuseval-$4" in
5851 true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
5857 if $contains $tlook $tf >/dev/null 2>&1;
5862 echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c;
5863 if $cc $optimize $ccflags $ldflags -o t t.c $libs >/dev/null 2>&1;
5871 $define) tval=true;;
5877 : define an is-in-libc? function
5878 inlibc='echo " "; td=$define; tu=$undef;
5879 sym=$1; var=$2; eval "was=\$$2";
5881 case "$reuseval$was" in
5891 echo "$sym() found." >&4;
5892 case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";;
5894 echo "$sym() NOT found." >&4;
5895 case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";;
5899 $define) echo "$sym() found." >&4;;
5900 *) echo "$sym() NOT found." >&4;;
5904 : see if dlopen exists
5911 : determine which dynamic loading, if any, to compile in
5913 dldir="ext/DynaLoader"
5926 $define) dflt='y' ;;
5929 $define) dflt='y' ;;
5931 : Does a dl_xxx.xs file exist for this operating system
5932 $test -f $rsrc/$dldir/dl_${osname}.xs && dflt='y'
5935 rp="Do you wish to use dynamic loading?"
5942 if $test -f $rsrc/$dldir/dl_${osname}.xs ; then
5943 dflt="$dldir/dl_${osname}.xs"
5944 elif $test "$d_dlopen" = "$define" ; then
5945 dflt="$dldir/dl_dlopen.xs"
5946 elif $test "$i_dld" = "$define" ; then
5947 dflt="$dldir/dl_dld.xs"
5952 *) dflt="$dldir/$dlsrc"
5955 echo "The following dynamic loading files are available:"
5956 : Can not go over to $dldir because getfile has path hard-coded in.
5957 tdir=`pwd`; cd $rsrc; $ls -C $dldir/dl*.xs; cd $tdir
5958 rp="Source file to use for dynamic loading"
5964 dlsrc=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@'`
5968 Some systems may require passing special flags to $cc -c to
5969 compile modules that will be used to create a shared library.
5970 To use no flags, say "none".
5973 case "$cccdlflags" in
5974 '') case "$gccversion" in
5975 '') case "$osname" in
5977 next) dflt='none' ;;
5978 irix*) dflt='-KPIC' ;;
5979 svr4*|esix*|solaris) dflt='-KPIC' ;;
5980 sunos) dflt='-pic' ;;
5984 *) case "$osname" in
5985 svr4*|esix*|solaris) dflt='-fPIC' ;;
5990 *) dflt="$cccdlflags" ;;
5992 rp="Any special flags to pass to $cc -c to compile shared library modules?"
5995 none) cccdlflags=' ' ;;
5996 *) cccdlflags="$ans" ;;
6001 Some systems use ld to create libraries that can be dynamically loaded,
6002 while other systems (such as those using ELF) use $cc.
6006 '') $cat >try.c <<'EOM'
6007 /* Test for whether ELF binaries are produced */
6012 int i = open("a.out",O_RDONLY);
6015 if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
6016 exit(0); /* succeed (yes, it's ELF) */
6021 if $cc $ccflags try.c >/dev/null 2>&1 && ./a.out; then
6023 You appear to have ELF support. I'll use $cc to build dynamic libraries.
6027 echo "I'll use ld to build dynamic libraries."
6036 rp="What command should be used to create dynamic libraries?"
6042 Some systems may require passing special flags to $ld to create a
6043 library that can be dynamically loaded. If your ld flags include
6044 -L/other/path options to locate libraries outside your loader's normal
6045 search path, you may need to specify those -L options here as well. To
6046 use no flags, say "none".
6049 case "$lddlflags" in
6050 '') case "$osname" in
6051 beos) dflt='-nostart' ;;
6052 hpux) dflt='-b +vnocompatwarnings' ;;
6053 linux|irix*) dflt='-shared' ;;
6054 next) dflt='none' ;;
6055 solaris) dflt='-G' ;;
6056 sunos) dflt='-assert nodefinitions' ;;
6057 svr4*|esix*) dflt="-G $ldflags" ;;
6061 *) dflt="$lddlflags" ;;
6064 : Try to guess additional flags to pick up local libraries.
6065 : Be careful not to append to a plain 'none'
6069 for thisflag in $ldflags; do
6074 *) dflt="$dflt $thisflag" ;;
6081 ''|' ') dflt='none' ;;
6084 rp="Any special flags to pass to $ld to create a dynamically loaded library?"
6087 none) lddlflags=' ' ;;
6088 *) lddlflags="$ans" ;;
6093 Some systems may require passing special flags to $cc to indicate that
6094 the resulting executable will use dynamic linking. To use no flags,
6098 case "$ccdlflags" in
6099 '') case "$osname" in
6100 hpux) dflt='-Wl,-E' ;;
6101 linux) dflt='-rdynamic' ;;
6102 next) dflt='none' ;;
6103 sunos) dflt='none' ;;
6107 *) dflt="$ccdlflags" ;;
6109 rp="Any special flags to pass to $cc to use dynamic linking?"
6112 none) ccdlflags=' ' ;;
6113 *) ccdlflags="$ans" ;;
6127 # No dynamic loading being used, so don't bother even to prompt.
6130 *) case "$useshrplib" in
6131 '') case "$osname" in
6132 svr4*|dgux|dynixptx|esix|powerux|beos|cygwin*)
6134 also='Building a shared libperl is required for dynamic loading to work on your system.'
6139 also='Building a shared libperl is needed for MAB support.'
6157 The perl executable is normally obtained by linking perlmain.c with
6158 libperl${_a}, any static extensions (usually just DynaLoader), and
6159 any other libraries needed on this system (such as -lm, etc.). Since
6160 your system supports dynamic loading, it is probably possible to build
6161 a shared libperl.$so. If you will have more than one executable linked
6162 to libperl.$so, this will significantly reduce the size of each
6163 executable, but it may have a noticeable affect on performance. The
6164 default is probably sensible for your system.
6168 rp="Build a shared libperl.$so (y/n)"
6172 useshrplib='true' ;;
6173 *) useshrplib='false' ;;
6178 case "$useshrplib" in
6182 # Figure out a good name for libperl.so. Since it gets stored in
6183 # a version-specific architecture-dependent library, the version
6184 # number isn't really that important, except for making cc/ld happy.
6186 # A name such as libperl.so.3.1
6187 majmin="libperl.$so.$patchlevel.$subversion"
6188 # A name such as libperl.so.301
6189 majonly=`echo $patchlevel $subversion |
6190 $awk '{printf "%d%02d", $1, $2}'`
6191 majonly=libperl.$so.$majonly
6192 # I'd prefer to keep the os-specific stuff here to a minimum, and
6193 # rely on figuring it out from the naming of libc.
6194 case "${osname}${osvers}" in
6197 # XXX How handle the --version stuff for MAB?
6199 linux*) # ld won't link with a bare -lperl otherwise.
6202 cygwin*) # include version
6203 dflt=`echo libperl$version | sed -e 's/\./_/g'`$lib_ext
6205 *) # Try to guess based on whether libc has major.minor.
6207 *libc.$so.[0-9]*.[0-9]*) dflt=$majmin ;;
6208 *libc.$so.[0-9]*) dflt=$majonly ;;
6209 *) dflt=libperl.$so ;;
6219 I need to select a good name for the shared libperl. If your system uses
6220 library names with major and minor numbers, then you might want something
6221 like $majmin. Alternatively, if your system uses a single version
6222 number for shared libraries, then you might want to use $majonly.
6223 Or, your system might be quite happy with a simple libperl.$so.
6225 Since the shared libperl will get installed into a version-specific
6226 architecture-dependent directory, the version number of the shared perl
6227 library probably isn't important, so the default should be o.k.
6230 rp='What name do you want to give to the shared libperl?'
6233 echo "Ok, I'll use $libperl"
6236 libperl="libperl${_a}"
6240 # Detect old use of shrpdir via undocumented Configure -Dshrpdir
6244 WARNING: Use of the shrpdir variable for the installation location of
6245 the shared $libperl is not supported. It was never documented and
6246 will not work in this version. Let me (perlbug@perl.com)
6247 know of any problems this may cause.
6253 But your current setting of $shrpdir is
6254 the default anyway, so it's harmless.
6259 Further, your current attempted setting of $shrpdir
6260 conflicts with the value of $archlibexp/CORE
6261 that installperl will use.
6268 # How will the perl executable find the installed shared $libperl?
6269 # Add $xxx to ccdlflags.
6270 # If we can't figure out a command-line option, use $shrpenv to
6271 # set env LD_RUN_PATH. The main perl makefile uses this.
6272 shrpdir=$archlibexp/CORE
6275 if "$useshrplib"; then
6278 # We'll set it in Makefile.SH...
6284 xxx="-Wl,-R$shrpdir"
6286 linux|irix*|dec_osf)
6287 xxx="-Wl,-rpath,$shrpdir"
6290 # next doesn't like the default...
6293 # beos doesn't like the default, either.
6296 # hpux doesn't like the default, either.
6297 tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
6300 tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
6306 # Only add $xxx if it isn't already in ccdlflags.
6307 case " $ccdlflags " in
6309 *) ccdlflags="$ccdlflags $xxx"
6312 Adding $xxx to the flags
6313 passed to $ld so that the perl executable will find the
6314 installed shared $libperl.
6322 # Fix ccdlflags in AIX for building external extensions.
6323 # (For building Perl itself bare -bE:perl.exp is needed,
6324 # Makefile.SH takes care of this.)
6326 aix) ccdlflags="$ccdlflags -bE:$installarchlib/CORE/perl.exp" ;;
6328 # Respect a hint or command-line value.
6330 '') shrpenv="$tmp_shrpenv" ;;
6332 case "$ldlibpthname" in
6333 '') ldlibpthname=LD_LIBRARY_PATH ;;
6334 none) ldlibpthname='' ;;
6337 : determine where manual pages go
6338 set man1dir man1dir none
6342 $spackage has manual pages available in source form.
6346 echo "However, you don't have nroff, so they're probably useless to you."
6348 '') man1dir="none";;
6351 echo "If you don't want the manual sources installed, answer 'none'."
6356 lookpath="$prefixexp/man/man1 $prefixexp/man/l_man/man1"
6357 lookpath="$lookpath $prefixexp/man/p_man/man1"
6358 lookpath="$lookpath $prefixexp/man/u_man/man1"
6359 lookpath="$lookpath $prefixexp/man/man.1"
6361 */?_man*) dflt=`./loc . $prefixexp/l_man/man1 $lookpath` ;;
6362 *) dflt=`./loc . $prefixexp/man/man1 $lookpath` ;;
6372 rp="Where do the main $spackage manual pages (source) go?"
6374 if $test "X$man1direxp" != "X$ansexp"; then
6378 man1direxp="$ansexp"
6384 : Change installation prefix, if necessary.
6385 if $test X"$prefix" != X"$installprefix"; then
6386 installman1dir=`echo $man1direxp | $sed "s#^$prefix#$installprefix#"`
6388 installman1dir="$man1direxp"
6391 : What suffix to use on installed man pages
6398 rp="What suffix should be used for the main $spackage man pages?"
6400 '') case "$man1dir" in
6414 *) dflt="$man1ext";;
6421 : see if we can have long filenames
6423 rmlist="$rmlist /tmp/cf$$"
6424 $test -d /tmp/cf$$ || mkdir /tmp/cf$$
6425 first=123456789abcdef
6426 second=/tmp/cf$$/$first
6427 $rm -f $first $second
6428 if (echo hi >$first) 2>/dev/null; then
6429 if $test -f 123456789abcde; then
6430 echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4
6433 if (echo hi >$second) 2>/dev/null; then
6434 if $test -f /tmp/cf$$/123456789abcde; then
6436 That's peculiar... You can have filenames longer than 14 characters, but only
6437 on some of the filesystems. Maybe you are using NFS. Anyway, to avoid problems
6438 I shall consider your system cannot support long filenames at all.
6442 echo 'You can have filenames longer than 14 characters.' >&4
6447 How confusing! Some of your filesystems are sane enough to allow filenames
6448 longer than 14 characters but some others like /tmp can't even think about them.
6449 So, for now on, I shall assume your kernel does not allow them at all.
6456 You can't have filenames longer than 14 chars. You can't even think about them!
6462 $rm -rf /tmp/cf$$ 123456789abcde*
6464 : determine where library module manual pages go
6465 set man3dir man3dir none
6469 $spackage has manual pages for many of the library modules.
6475 However, you don't have nroff, so they're probably useless to you.
6478 '') man3dir="none";;
6482 case "$d_flexfnam" in
6485 However, your system can't handle the long file names like File::Basename.3.
6488 '') man3dir="none";;
6492 echo "If you don't want the manual sources installed, answer 'none'."
6493 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
6495 '') dflt=`echo $man1dir | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
6496 if $test -d "$privlib/man/man3"; then
6499 WARNING: Previous versions of perl installed man3 pages into
6500 $privlib/man/man3. This version will suggest a
6501 new default of $dflt.
6505 rp='Do you wish to preserve the old behavior?(y/n)'
6508 y*) dflt="$privlib/man/man3" ;;
6514 *) dflt="$man3dir" ;;
6518 rp="Where do the $package library man pages (source) go?"
6521 man3direxp="$ansexp"
6527 : Change installation prefix, if necessary.
6528 if $test X"$prefix" != X"$installprefix"; then
6529 installman3dir=`echo $man3direxp | $sed "s#^$prefix#$installprefix#"`
6531 installman3dir="$man3direxp"
6534 : What suffix to use on installed man pages
6540 rp="What suffix should be used for the $package library man pages?"
6542 '') case "$man3dir" in
6556 *) dflt="$man3ext";;
6563 : see if we have to deal with yellow pages, now NIS.
6564 if $test -d /usr/etc/yp || $test -d /etc/yp; then
6565 if $test -f /usr/etc/nibindd; then
6567 echo "I'm fairly confident you're on a NeXT."
6569 rp='Do you get the hosts file via NetInfo?'
6578 y*) hostcat='nidump hosts .';;
6579 *) case "$hostcat" in
6580 nidump*) hostcat='';;
6590 '') if $contains '^\+' /etc/passwd >/dev/null 2>&1; then
6598 rp='Are you getting the hosts file via yellow pages?'
6601 y*) hostcat='ypcat hosts';;
6602 *) hostcat='cat /etc/hosts';;
6608 '') test -f /etc/hosts && hostcat='cat /etc/hosts';;
6611 '') test -f /etc/group && groupcat='cat /etc/group';;
6614 '') test -f /etc/passwd && passcat='cat /etc/passwd';;
6617 : now get the host name
6619 echo "Figuring out host name..." >&4
6620 case "$myhostname" in
6622 echo 'Maybe "hostname" will work...'
6623 if tans=`sh -c hostname 2>&1` ; then
6631 if $test "$cont"; then
6633 echo 'Oh, dear. Maybe "/etc/systemid" is the key...'
6634 if tans=`cat /etc/systemid 2>&1` ; then
6636 phostname='cat /etc/systemid'
6637 echo "Whadyaknow. Xenix always was a bit strange..."
6640 elif $test -r /etc/systemid; then
6641 echo "(What is a non-Xenix system doing with /etc/systemid?)"
6644 if $test "$cont"; then
6645 echo 'No, maybe "uuname -l" will work...'
6646 if tans=`sh -c 'uuname -l' 2>&1` ; then
6648 phostname='uuname -l'
6650 echo 'Strange. Maybe "uname -n" will work...'
6651 if tans=`sh -c 'uname -n' 2>&1` ; then
6653 phostname='uname -n'
6655 echo 'Oh well, maybe I can mine it out of whoami.h...'
6656 if tans=`sh -c $contains' sysname $usrinc/whoami.h' 2>&1` ; then
6657 myhostname=`echo "$tans" | $sed 's/^.*"\(.*\)"/\1/'`
6658 phostname="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' <$usrinc/whoami.h"
6660 case "$myhostname" in
6661 '') echo "Does this machine have an identity crisis or something?"
6664 echo "Well, you said $myhostname before..."
6665 phostname='echo $myhostname';;
6671 : you do not want to know about this
6676 if $test "$myhostname" ; then
6678 rp='Your host name appears to be "'$myhostname'".'" Right?"
6686 : bad guess or no guess
6687 while $test "X$myhostname" = X ; do
6689 rp="Please type the (one word) name of your host:"
6694 : translate upper to lower if necessary
6695 case "$myhostname" in
6697 echo "(Normalizing case in your host name)"
6698 myhostname=`echo $myhostname | ./tr '[A-Z]' '[a-z]'`
6702 case "$myhostname" in
6704 dflt=`expr "X$myhostname" : "X[^.]*\(\..*\)"`
6705 myhostname=`expr "X$myhostname" : "X\([^.]*\)\."`
6706 echo "(Trimming domain name from host name--host name is now $myhostname)"
6708 *) case "$mydomain" in
6711 test "X$hostcat" = "Xypcat hosts" &&
6712 ypmatch "$myhostname" hosts 2>/dev/null |\
6713 $sed -e 's/[ ]*#.*//; s/$/ /' > hosts && \
6716 test "X$hostcat" != "X" &&
6717 $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
6718 /[ ]$myhostname[ . ]/p" > hosts
6721 $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ }
6722 END { print sum }" hosts` = x1 || tmp_re="[ ]"
6723 dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
6724 hosts | $sort | $uniq | \
6725 $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
6726 case `$echo X$dflt` in
6727 X*\ *) echo "(Several hosts in /etc/hosts matched hostname)"
6730 X.) echo "(You do not have fully-qualified names in /etc/hosts)"
6735 tans=`./loc resolv.conf X /etc /usr/etc`
6736 if $test -f "$tans"; then
6737 echo "(Attempting domain name extraction from $tans)"
6738 dflt=.`$sed -n -e 's/ / /g' \
6739 -e 's/^search *\([^ ]*\).*/\1/p' $tans \
6740 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
6742 .) dflt=.`$sed -n -e 's/ / /g' \
6743 -e 's/^domain *\([^ ]*\).*/\1/p' $tans \
6744 | ./tr '[A-Z]' '[a-z]' 2>/dev/null`
6751 .) echo "(No help from resolv.conf either -- attempting clever guess)"
6752 dflt=.`sh -c domainname 2>/dev/null`
6755 .nis.*|.yp.*|.main.*) dflt=`echo $dflt | $sed -e 's/^\.[^.]*//'`;;
6760 .) echo "(Lost all hope -- silly guess then)"
6766 *) dflt="$mydomain";;
6770 rp="What is your domain name?"
6780 : translate upper to lower if necessary
6783 echo "(Normalizing case in your domain name)"
6784 mydomain=`echo $mydomain | ./tr '[A-Z]' '[a-z]'`
6788 : a little sanity check here
6789 case "$phostname" in
6792 case `$phostname | ./tr '[A-Z]' '[a-z]'` in
6793 $myhostname$mydomain|$myhostname) ;;
6795 case "$phostname" in
6797 echo "(That doesn't agree with your whoami.h file, by the way.)"
6800 echo "(That doesn't agree with your $phostname command, by the way.)"
6810 I need to get your e-mail address in Internet format if possible, i.e.
6811 something like user@host.domain. Please answer accurately since I have
6812 no easy means to double check it. The default value provided below
6813 is most probably close to reality but may not be valid from outside
6814 your organization...
6818 while test "$cont"; do
6820 '') dflt="$cf_by@$myhostname$mydomain";;
6821 *) dflt="$cf_email";;
6823 rp='What is your e-mail address?'
6829 rp='Address does not look like an Internet one. Use it anyway?'
6845 If you or somebody else will be maintaining perl at your site, please
6846 fill in the correct e-mail address here so that they may be contacted
6847 if necessary. Currently, the "perlbug" program included with perl
6848 will send mail to this address in addition to perlbug@perl.com. You may
6849 enter "none" for no administrator.
6852 case "$perladmin" in
6853 '') dflt="$cf_email";;
6854 *) dflt="$perladmin";;
6856 rp='Perl administrator e-mail address'
6860 : figure out how to guarantee perl startup
6861 case "$startperl" in
6863 case "$sharpbang" in
6867 I can use the #! construct to start perl on your system. This will
6868 make startup of perl scripts faster, but may cause problems if you
6869 want to share those scripts and perl is not in a standard place
6870 ($binexp/perl) on all your platforms. The alternative is to force
6871 a shell by starting the script with a single ':' character.
6875 rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
6878 none) startperl=": # use perl";;
6879 *) startperl="#!$ans"
6880 if $test 30 -lt `echo "$ans" | wc -c`; then
6883 WARNING: Some systems limit the #! command to 32 characters.
6884 If you experience difficulty running Perl scripts with #!, try
6885 installing Perl in a directory with a shorter pathname.
6891 *) startperl=": # use perl"
6896 echo "I'll use $startperl to start perl scripts."
6898 : figure best path for perl in scripts
6901 perlpath="$binexp/perl"
6902 case "$startperl" in
6907 I will use the "eval 'exec'" idiom to start Perl on your system.
6908 I can use the full path of your Perl binary for this purpose, but
6909 doing so may cause problems if you want to share those scripts and
6910 Perl is not always in a standard place ($binexp/perl).
6914 rp="What path shall I use in \"eval 'exec'\"?"
6921 case "$startperl" in
6923 *) echo "I'll use $perlpath in \"eval 'exec'\"" ;;
6926 : determine where public executable scripts go
6927 set scriptdir scriptdir
6929 case "$scriptdir" in
6932 : guess some guesses
6933 $test -d /usr/share/scripts && dflt=/usr/share/scripts
6934 $test -d /usr/share/bin && dflt=/usr/share/bin
6935 $test -d /usr/local/script && dflt=/usr/local/script
6936 $test -d /usr/local/scripts && dflt=/usr/local/scripts
6937 $test -d $prefixexp/script && dflt=$prefixexp/script
6941 *) dflt="$scriptdir"
6946 Some installations have a separate directory just for executable scripts so
6947 that they can mount it across multiple architectures but keep the scripts in
6948 one spot. You might, for example, have a subdirectory of /usr/share for this.
6949 Or you might just lump your scripts in with all your other executables.
6953 rp='Where do you keep publicly executable scripts?'
6955 if $test "X$ansexp" != "X$scriptdirexp"; then
6959 scriptdirexp="$ansexp"
6960 : Change installation prefix, if necessary.
6961 if $test X"$prefix" != X"$installprefix"; then
6962 installscript=`echo $scriptdirexp | sed "s#^$prefix#$installprefix#"`
6964 installscript="$scriptdirexp"
6967 : determine where site specific architecture-dependent libraries go.
6968 : sitelib default is /usr/local/lib/perl5/site_perl/$version
6969 : sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
6970 : sitelib may have an optional trailing /share.
6971 tdflt=`echo $sitelib | $sed 's,/share$,,'`
6972 tdflt="$tdflt/$archname"
6973 set sitearch sitearch none
6976 '') dflt="$tdflt" ;;
6977 *) dflt="$sitearch" ;;
6981 The installation process will also create a directory for
6982 architecture-dependent site-specific extensions and modules.
6986 rp='Pathname for the site-specific architecture-dependent library files?'
6989 sitearchexp="$ansexp"
6990 : Change installation prefix, if necessary.
6991 if $test X"$prefix" != X"$installprefix"; then
6992 installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
6994 installsitearch="$sitearchexp"
6997 : determine where add-on public executables go
6999 '') dflt=$siteprefix/bin ;;
7003 rp='Pathname where the add-on public executables should be installed?'
7006 sitebinexp="$ansexp"
7007 : Change installation prefix, if necessary.
7008 if $test X"$prefix" != X"$installprefix"; then
7009 installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"`
7011 installsitebin="$sitebinexp"
7014 : see if sqrtl exists
7019 *-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
7022 case "$uselongdouble" in
7023 $define|true|[yY]*) dflt='y';;
7028 Perl can be built to take advantage of long doubles which
7029 (if available) may give more accuracy and range for floating point numbers.
7031 If this doesn't make any sense to you, just accept the default '$dflt'.
7033 rp='Try to use long doubles if available?'
7036 y|Y) val="$define" ;;
7042 case "$uselongdouble" in
7043 true|[yY]*) uselongdouble="$define" ;;
7046 case "$uselongdouble" in
7048 : Look for a hint-file generated 'call-back-unit'. If the
7049 : user has specified that long doubles should be used,
7050 : we may need to set or change some other defaults.
7051 if $test -f uselongdouble.cbu; then
7052 echo "Your platform has some specific hints for long doubles, using them..."
7053 . ./uselongdouble.cbu
7056 (Your platform doesn't have any specific hints for long doubles.)
7062 case "$uselongdouble:$d_sqrtl" in
7066 You requested the use of long doubles but you do not seem to have
7067 the mathematic functions for long doubles. I'm disabling the use
7070 uselongdouble=$undef
7074 case "$useperlio" in
7075 $define|true|[yY]*) dflt='y';;
7080 Previous version of $package used the standard IO mechanisms as defined
7081 in <stdio.h>. Versions 5.003_02 and later of perl allow alternate IO
7082 mechanisms via a "PerlIO" abstraction, but the stdio mechanism is still
7083 the default. This abstraction layer can use AT&T's sfio (if you already
7084 have sfio installed) or regular stdio. Using PerlIO with sfio may cause
7085 problems with some extension modules. Using PerlIO with stdio is safe,
7086 but it is slower than plain stdio and therefore is not the default.
7088 If this doesn't make any sense to you, just accept the default '$dflt'.
7090 rp='Use the experimental PerlIO abstraction layer?'
7097 echo "Ok, doing things the stdio way"
7104 case "$vendorprefix" in
7105 '') d_vendorbin="$undef"
7109 *) d_vendorbin="$define"
7110 : determine where vendor-supplied executables go.
7111 dflt=$vendorprefix/bin
7113 rp='Pathname for the vendor-supplied executables directory?'
7116 vendorbinexp="$ansexp"
7117 : Change installation prefix, if necessary.
7118 if $test X"$prefix" != X"$installprefix"; then
7119 installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
7121 installvendorbin="$vendorbinexp"
7126 : check for length of double
7128 case "$doublesize" in
7130 $echo $n "Checking to see how big your double precision numbers are...$c" >&4
7131 $cat >try.c <<'EOCP'
7135 printf("%d\n", (int)sizeof(double));
7140 if eval $compile_ok; then
7142 $echo " $doublesize bytes." >&4
7145 echo "(I can't seem to compile the test program. Guessing...)"
7146 rp="What is the size of a double precision number (in bytes)?"
7154 : check for long doubles
7156 $echo $n "Checking to see if your system supports long double..." $c >&4
7157 echo 'int main() { long double x = 7.0; }' > try.c
7159 if eval $compile; then
7161 echo " Yes, it does." >&4
7164 echo " No, it doesn't." >&4
7170 : check for length of long double
7171 case "${d_longdbl}${longdblsize}" in
7174 $echo $n "Checking to see how big your long doubles are..." $c >&4
7175 $cat >try.c <<'EOCP'
7179 printf("%d\n", sizeof(long double));
7184 if eval $compile; then
7185 longdblsize=`./try$exe_ext`
7186 $echo " $longdblsize bytes." >&4
7190 echo "(I can't seem to compile the test program. Guessing...)" >&4
7191 rp="What is the size of a long double (in bytes)?"
7195 if $test "X$doublesize" = "X$longdblsize"; then
7196 echo "(That isn't any different from an ordinary double.)"
7202 : Check how to convert floats to strings.
7203 if test "X$d_Gconvert" = X; then
7205 echo "Checking for an efficient way to convert floats to strings."
7208 #define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
7209 char *myname = "gconvert";
7212 #define Gconvert(x,n,t,b) gcvt((x),(n),(b))
7213 char *myname = "gcvt";
7216 #define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
7217 char *myname = "qgcvt";
7218 #define DOUBLETYPE long double
7221 #define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
7222 char *myname = "sprintf";
7226 #define DOUBLETYPE double
7231 #define I_STDLIB $i_stdlib
7237 checkit(expect, got)
7241 if (strcmp(expect, got)) {
7242 printf("%s oddity: Expected %s, got %s\n",
7243 myname, expect, got);
7253 /* This must be 1st test on (which?) platform */
7254 /* Alan Burlison <AlanBurlsin@unn.unisys.com> */
7255 Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
7256 checkit("0.1", buf);
7258 Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
7261 Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
7264 Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
7267 /* Some Linux gcvt's give 1.e+5 here. */
7268 Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
7269 checkit("100000", buf);
7271 /* Some Linux gcvt's give -1.e+5 here. */
7272 Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
7273 checkit("-100000", buf);
7278 case "$d_Gconvert" in
7279 gconvert*) xxx_list='gconvert gcvt sprintf' ;;
7280 gcvt*) xxx_list='gcvt gconvert sprintf' ;;
7281 sprintf*) xxx_list='sprintf gconvert gcvt' ;;
7282 *) xxx_list='gconvert gcvt sprintf' ;;
7285 case "$d_longdbl$uselongdouble" in
7286 definedefine) xxx_list="`echo $xxx_list|sed 's/gcvt/qgcvt gcvt/'`" ;;
7289 for xxx_convert in $xxx_list; do
7290 echo "Trying $xxx_convert..."
7292 set try -DTRY_$xxx_convert
7293 if eval $compile; then
7294 echo "$xxx_convert() found." >&4
7296 echo "I'll use $xxx_convert to convert floats into a string." >&4
7299 echo "...But $xxx_convert didn't work as I expected."
7302 echo "$xxx_convert NOT found." >&4
7306 case "$xxx_convert" in
7307 gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
7308 gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
7309 qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
7310 *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
7316 if $test X"$d_longdbl" = X"$define"; then
7318 echo "Checking how to print long doubles..." >&4
7320 if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then
7321 $cat >try.c <<'EOCP'
7322 #include <sys/types.h>
7326 printf("%.3f\n", d);
7330 if eval $compile; then
7334 sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
7335 sPRIFldbl='"F"'; sPRIGldbl='"G"'; sPRIEldbl='"E"';
7336 echo "We will use %f."
7342 if $test X"$sPRIfldbl" = X; then
7343 $cat >try.c <<'EOCP'
7344 #include <sys/types.h>
7347 long double d = 123.456;
7348 printf("%.3llf\n", d);
7352 if eval $compile; then
7356 sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
7357 sPRIFldbl='"llF"'; sPRIGldbl='"llG"'; sPRIEldbl='"llE"';
7358 echo "We will use %llf."
7364 if $test X"$sPRIfldbl" = X; then
7365 $cat >try.c <<'EOCP'
7366 #include <sys/types.h>
7369 long double d = 123.456;
7370 printf("%.3Lf\n", d);
7374 if eval $compile; then
7378 sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
7379 sPRIFldbl='"LF"'; sPRIGldbl='"LG"'; sPRIEldbl='"LE"';
7380 echo "We will use %Lf."
7386 if $test X"$sPRIfldbl" = X; then
7387 $cat >try.c <<'EOCP'
7388 #include <sys/types.h>
7391 long double d = 123.456;
7392 printf("%.3lf\n", d);
7396 if eval $compile; then
7400 sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
7401 sPRIFldbl='"lF"'; sPRIGldbl='"lG"'; sPRIEldbl='"lE"';
7402 echo "We will use %lf."
7408 if $test X"$sPRIfldbl" = X; then
7409 echo "Cannot figure out how to print long doubles." >&4
7416 case "$sPRIfldbl" in
7417 '') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
7418 d_PRIFldbl="$undef"; d_PRIGldbl="$undef"; d_PRIEldbl="$undef";
7420 *) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
7421 d_PRIFldbl="$define"; d_PRIGldbl="$define"; d_PRIEldbl="$define";
7425 : Initialize h_fcntl
7428 : Initialize h_sysfile
7431 : access call always available on UNIX
7435 : locate the flags for 'access()'
7439 $cat >access.c <<'EOCP'
7440 #include <sys/types.h>
7445 #include <sys/file.h>
7454 : check sys/file.h first, no particular reason here
7455 if $test `./findhdr sys/file.h` && \
7456 $cc $cppflags -DI_SYS_FILE -o access access.c >/dev/null 2>&1 ; then
7458 echo "<sys/file.h> defines the *_OK access constants." >&4
7459 elif $test `./findhdr fcntl.h` && \
7460 $cc $cppflags -DI_FCNTL -o access access.c >/dev/null 2>&1 ; then
7462 echo "<fcntl.h> defines the *_OK access constants." >&4
7463 elif $test `./findhdr unistd.h` && \
7464 $cc $cppflags -DI_UNISTD -o access access.c >/dev/null 2>&1 ; then
7465 echo "<unistd.h> defines the *_OK access constants." >&4
7467 echo "I can't find the four *_OK access constants--I'll use mine." >&4
7473 : see if accessx exists
7474 set accessx d_accessx
7477 : see if alarm exists
7481 : see if atolf exists
7485 : see if atoll exists
7489 : Look for GNU-cc style attribute checking
7491 echo "Checking whether your compiler can handle __attribute__ ..." >&4
7492 $cat >attrib.c <<'EOCP'
7494 void croak (char* pat,...) __attribute__((format(printf,1,2),noreturn));
7496 if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
7497 if $contains 'warning' attrib.out >/dev/null 2>&1; then
7498 echo "Your C compiler doesn't fully support __attribute__."
7501 echo "Your C compiler supports __attribute__."
7505 echo "Your C compiler doesn't seem to understand __attribute__ at all."
7512 : see if bcmp exists
7516 : see if bcopy exists
7520 : see if this is a unistd.h system
7521 set unistd.h i_unistd
7524 : see if getpgrp exists
7525 set getpgrp d_getpgrp
7528 case "$d_getpgrp" in
7531 echo "Checking to see which flavor of getpgrp is in use..."
7534 #include <sys/types.h>
7536 # include <unistd.h>
7540 if (getuid() == 0) {
7541 printf("(I see you are running Configure as super-user...)\n");
7545 if (getpgrp(1) == 0)
7554 if $cc -DTRY_BSD_PGRP $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
7555 echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
7557 elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
7558 echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
7561 echo "I can't seem to compile and run the test program."
7563 xxx="a USG one, i.e. you use getpgrp()."
7565 # SVR4 systems can appear rather BSD-ish.
7568 xxx="a BSD one, i.e. you use getpgrp(pid)."
7572 xxx="probably a USG one, i.e. you use getpgrp()."
7577 echo "Assuming your getpgrp is $xxx" >&4
7586 : see if setpgrp exists
7587 set setpgrp d_setpgrp
7590 case "$d_setpgrp" in
7593 echo "Checking to see which flavor of setpgrp is in use..."
7596 #include <sys/types.h>
7598 # include <unistd.h>
7602 if (getuid() == 0) {
7603 printf("(I see you are running Configure as super-user...)\n");
7607 if (-1 == setpgrp(1, 1))
7610 if (setpgrp() != -1)
7616 if $cc -DTRY_BSD_PGRP $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
7617 echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
7619 elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
7620 echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
7623 echo "(I can't seem to compile and run the test program.)"
7625 xxx="a USG one, i.e. you use setpgrp()."
7627 # SVR4 systems can appear rather BSD-ish.
7630 xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)."
7634 xxx="probably a USG one, i.e. you use setpgrp()."
7639 echo "Assuming your setpgrp is $xxx" >&4
7647 : see if bzero exists
7651 : see if signal is declared as pointer to function returning int or void
7653 xxx=`./findhdr signal.h`
7654 $test "$xxx" && $cppstdin $cppminus $cppflags < $xxx >$$.tmp 2>/dev/null
7655 if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
7656 echo "You have int (*signal())() instead of void." >&4
7658 elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
7659 echo "You have void (*signal())()." >&4
7661 elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then
7662 echo "You have int (*signal())() instead of void." >&4
7664 elif $contains 'void.*\*.*sig' $$.tmp >/dev/null 2>&1 ; then
7665 echo "You have void (*signal())()." >&4
7668 case "$d_voidsig" in
7670 echo "I can't determine whether signal handler returns void or int..." >&4
7672 rp="What type does your signal handler return?"
7679 echo "As you already told me, signal handler returns void." >&4
7682 *) echo "As you already told me, signal handler returns int." >&4
7689 case "$d_voidsig" in
7690 "$define") signal_t="void";;
7695 : check for ability to cast large floats to 32-bit ints.
7697 echo 'Checking whether your C compiler can cast large floats to int32.' >&4
7698 if $test "$intsize" -ge 4; then
7705 #include <sys/types.h>
7707 $signal_t blech(s) int s; { exit(3); }
7714 signal(SIGFPE, blech);
7716 /* Don't let compiler optimize the test away. Store the number
7717 in a writable string for gcc to pass to sscanf under HP/UX.
7719 sprintf(str, "2147483647");
7720 sscanf(str, "%lf", &f); /* f = (double) 0x7fffffff; */
7724 /* x86 processors will probably give 0x8000 0000, which is a
7725 sign change. We don't want that. We want to mimic SPARC
7726 behavior here, which is to preserve the sign and give
7729 if (i32 != ($xxx) f)
7735 if eval $compile_ok; then
7739 echo "(I can't seem to compile the test program--assuming it can't)"
7747 echo "Nope, it can't."
7754 : check for ability to cast negative floats to unsigned
7756 echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
7759 #include <sys/types.h>
7761 $signal_t blech(s) int s; { exit(7); }
7762 $signal_t blech_in_list(s) int s; { exit(4); }
7763 unsigned long dummy_long(p) unsigned long p; { return p; }
7764 unsigned int dummy_int(p) unsigned int p; { return p; }
7765 unsigned short dummy_short(p) unsigned short p; { return p; }
7769 unsigned long along;
7771 unsigned short ashort;
7775 /* Frustrate gcc-2.7.2's optimizer which failed this test with
7776 a direct f = -123. assignment. gcc-2.8.0 reportedly
7777 optimized the whole file away
7779 /* Store the number in a writable string for gcc to pass to
7782 sprintf(str, "-123");
7783 sscanf(str, "%lf", &f); /* f = -123.; */
7785 signal(SIGFPE, blech);
7786 along = (unsigned long)f;
7787 aint = (unsigned int)f;
7788 ashort = (unsigned short)f;
7789 if (along != (unsigned long)-123)
7791 if (aint != (unsigned int)-123)
7793 if (ashort != (unsigned short)-123)
7795 sprintf(str, "1073741824.");
7796 sscanf(str, "%lf", &f); /* f = (double)0x40000000; */
7799 along = (unsigned long)f;
7800 if (along != 0x80000000)
7804 along = (unsigned long)f;
7805 if (along != 0x7fffffff)
7809 along = (unsigned long)f;
7810 if (along != 0x80000001)
7814 signal(SIGFPE, blech_in_list);
7815 sprintf(str, "123.");
7816 sscanf(str, "%lf", &f); /* f = 123.; */
7817 along = dummy_long((unsigned long)f);
7818 aint = dummy_int((unsigned int)f);
7819 ashort = dummy_short((unsigned short)f);
7820 if (along != (unsigned long)123)
7822 if (aint != (unsigned int)123)
7824 if (ashort != (unsigned short)123)
7831 if eval $compile_ok; then
7835 echo "(I can't seem to compile the test program--assuming it can't)"
7838 case "$castflags" in
7843 echo "Nope, it can't."
7850 : see if vprintf exists
7852 if set vprintf val -f d_vprintf; eval $csym; $val; then
7853 echo 'vprintf() found.' >&4
7855 $cat >vprintf.c <<'EOF'
7856 #include <varargs.h>
7858 int main() { xxx("foo"); }
7867 exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
7871 if eval $compile && ./vprintf; then
7872 echo "Your vsprintf() returns (int)." >&4
7875 echo "Your vsprintf() returns (char*)." >&4
7879 echo 'vprintf() NOT found.' >&4
7889 : see if chown exists
7893 : see if chroot exists
7897 : see if chsize exists
7901 : check for const keyword
7903 echo 'Checking to see if your C compiler knows about "const"...' >&4
7904 $cat >const.c <<'EOCP'
7905 typedef struct spug { int drokk; } spug;
7912 if $cc -c $ccflags const.c >/dev/null 2>&1 ; then
7914 echo "Yup, it does."
7917 echo "Nope, it doesn't."
7922 : see if crypt exists
7924 if set crypt val -f d_crypt; eval $csym; $val; then
7925 echo 'crypt() found.' >&4
7929 cryptlib=`./loc Slibcrypt$_a "" $xlibpth`
7930 if $test -z "$cryptlib"; then
7931 cryptlib=`./loc Mlibcrypt$_a "" $xlibpth`
7935 if $test -z "$cryptlib"; then
7936 cryptlib=`./loc Llibcrypt$_a "" $xlibpth`
7940 if $test -z "$cryptlib"; then
7941 cryptlib=`./loc libcrypt$_a "" $libpth`
7945 if $test -z "$cryptlib"; then
7946 echo 'crypt() NOT found.' >&4
7955 : get csh whereabouts
7957 'csh') val="$undef" ;;
7962 : Respect a hint or command line value for full_csh.
7964 '') full_csh=$csh ;;
7967 : see if cuserid exists
7968 set cuserid d_cuserid
7971 : see if this is a limits.h system
7972 set limits.h i_limits
7975 : see if this is a float.h system
7979 : See if number of significant digits in a double precision number is known
7981 $cat >dbl_dig.c <<EOM
7991 printf("Contains DBL_DIG");
7994 $cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null
7995 if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then
7996 echo "DBL_DIG found." >&4
7999 echo "DBL_DIG NOT found." >&4
8006 : see if difftime exists
8007 set difftime d_difftime
8010 : see if this is a dirent system
8012 if xinc=`./findhdr dirent.h`; $test "$xinc"; then
8014 echo "<dirent.h> found." >&4
8017 if xinc=`./findhdr sys/dir.h`; $test "$xinc"; then
8018 echo "<sys/dir.h> found." >&4
8021 xinc=`./findhdr sys/ndir.h`
8023 echo "<dirent.h> NOT found." >&4
8028 : Look for type of directory structure.
8030 $cppstdin $cppflags $cppminus < "$xinc" > try.c
8032 case "$direntrytype" in
8035 $define) guess1='struct dirent' ;;
8036 *) guess1='struct direct' ;;
8039 *) guess1="$direntrytype"
8044 'struct dirent') guess2='struct direct' ;;
8045 *) guess2='struct dirent' ;;
8048 if $contains "$guess1" try.c >/dev/null 2>&1; then
8049 direntrytype="$guess1"
8050 echo "Your directory entries are $direntrytype." >&4
8051 elif $contains "$guess2" try.c >/dev/null 2>&1; then
8052 direntrytype="$guess2"
8053 echo "Your directory entries seem to be $direntrytype." >&4
8055 echo "I don't recognize your system's directory entries." >&4
8056 rp="What type is used for directory entries on this system?"
8064 : see if the directory entry stores field length
8066 $cppstdin $cppflags $cppminus < "$xinc" > try.c
8067 if $contains 'd_namlen' try.c >/dev/null 2>&1; then
8068 echo "Good, your directory entry keeps length information in d_namlen." >&4
8071 echo "Your directory entry does not know about the d_namlen field." >&4
8078 : see if dlerror exists
8081 set dlerror d_dlerror
8085 : see if dlfcn is available
8093 On a few systems, the dynamically loaded modules that perl generates and uses
8094 will need a different extension than shared libs. The default will probably
8102 rp='What is the extension of dynamically loaded modules'
8111 : Check if dlsym need a leading underscore
8117 echo "Checking whether your dlsym() needs a leading underscore ..." >&4
8118 $cat >dyna.c <<'EOM'
8127 #include <dlfcn.h> /* the dynamic linker include file for Sunos/Solaris */
8129 #include <sys/types.h>
8143 int mode = RTLD_LAZY ;
8145 handle = dlopen("./dyna.$dlext", mode) ;
8146 if (handle == NULL) {
8151 symbol = dlsym(handle, "fred") ;
8152 if (symbol == NULL) {
8153 /* try putting a leading underscore */
8154 symbol = dlsym(handle, "_fred") ;
8155 if (symbol == NULL) {
8168 : Call the object file tmp-dyna.o in case dlext=o.
8169 if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
8170 mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
8171 $ld $lddlflags -o dyna.$dlext tmp-dyna${_o} > /dev/null 2>&1 &&
8172 $cc $ccflags -o fred $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then
8175 1) echo "Test program failed using dlopen." >&4
8176 echo "Perhaps you should not use dynamic loading." >&4;;
8177 2) echo "Test program failed using dlsym." >&4
8178 echo "Perhaps you should not use dynamic loading." >&4;;
8179 3) echo "dlsym needs a leading underscore" >&4
8181 4) echo "dlsym doesn't need a leading underscore." >&4;;
8184 echo "I can't compile and run the test program." >&4
8185 echo "I'm guessing that dlsym doesn't need a leading underscore." >&4
8190 $rm -f fred fred.? dyna.$dlext dyna.? tmp-dyna.?
8195 hasproto='varname=$1; func=$2; shift; shift;
8196 while $test $# -ge 2; do
8198 $define) echo "#include <$2>";;
8202 $cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
8203 if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
8204 echo "$func() prototype found.";
8207 echo "$func() prototype NOT found.";
8212 $rm -f try.c tryout.c'
8214 : see if prototype for drand48 is available
8216 set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h
8219 : see if dup2 exists
8223 : see if eaccess exists
8224 set eaccess d_eaccess
8227 : see if endgrent exists
8228 set endgrent d_endgrent
8231 : see if endhostent exists
8232 set endhostent d_endhent
8235 : see if endnetent exists
8236 set endnetent d_endnent
8239 : see if endprotoent exists
8240 set endprotoent d_endpent
8243 : see if endpwent exists
8244 set endpwent d_endpwent
8247 : see if endservent exists
8248 set endservent d_endsent
8251 : see if endspent exists
8252 set endspent d_endspent
8255 : Locate the flags for 'open()'
8257 $cat >open3.c <<'EOCP'
8258 #include <sys/types.h>
8263 #include <sys/file.h>
8274 : check sys/file.h first to get FREAD on Sun
8275 if $test `./findhdr sys/file.h` && \
8276 set open3 -DI_SYS_FILE && eval $compile; then
8278 echo "<sys/file.h> defines the O_* constants..." >&4
8280 echo "and you have the 3 argument form of open()." >&4
8283 echo "but not the 3 argument form of open(). Oh, well." >&4
8286 elif $test `./findhdr fcntl.h` && \
8287 set open3 -DI_FCNTL && eval $compile; then
8289 echo "<fcntl.h> defines the O_* constants..." >&4
8291 echo "and you have the 3 argument form of open()." >&4
8294 echo "but not the 3 argument form of open(). Oh, well." >&4
8299 echo "I can't find the O_* constant definitions! You got problems." >&4
8305 : see which of string.h or strings.h is needed
8307 strings=`./findhdr string.h`
8308 if $test "$strings" && $test -r "$strings"; then
8309 echo "Using <string.h> instead of <strings.h>." >&4
8313 strings=`./findhdr strings.h`
8314 if $test "$strings" && $test -r "$strings"; then
8315 echo "Using <strings.h> instead of <string.h>." >&4
8317 echo "No string header found -- You'll surely have problems." >&4
8323 "$undef") strings=`./findhdr strings.h`;;
8324 *) strings=`./findhdr string.h`;;
8327 : check for non-blocking I/O stuff
8328 case "$h_sysfile" in
8329 true) echo "#include <sys/file.h>" > head.c;;
8332 true) echo "#include <fcntl.h>" > head.c;;
8333 *) echo "#include <sys/fcntl.h>" > head.c;;
8338 echo "Figuring out the flag used by open() for non-blocking I/O..." >&4
8339 case "$o_nonblock" in
8342 $cat >>try.c <<'EOCP'
8346 printf("O_NONBLOCK\n");
8350 printf("O_NDELAY\n");
8354 printf("FNDELAY\n");
8361 if eval $compile_ok; then
8363 case "$o_nonblock" in
8364 '') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
8365 *) echo "Seems like we can use $o_nonblock.";;
8368 echo "(I can't compile the test program; pray O_NONBLOCK is right!)"
8371 *) echo "Using $hint value $o_nonblock.";;
8373 $rm -f try try.* .out core
8376 echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4
8382 #include <sys/types.h>
8385 #define MY_O_NONBLOCK $o_nonblock
8386 #ifndef errno /* XXX need better Configure test */
8396 #include <strings.h>
8398 $signal_t blech(x) int x; { exit(3); }
8400 $cat >> try.c <<'EOCP'
8408 pipe(pd); /* Down: child -> parent */
8409 pipe(pu); /* Up: parent -> child */
8412 close(pd[1]); /* Parent reads from pd[0] */
8413 close(pu[0]); /* Parent writes (blocking) to pu[1] */
8414 if (-1 == fcntl(pd[0], F_SETFL, MY_O_NONBLOCK))
8416 signal(SIGALRM, blech);
8418 if ((ret = read(pd[0], buf, 1)) > 0) /* Nothing to read! */
8420 sprintf(string, "%d\n", ret);
8421 write(2, string, strlen(string));
8424 if (errno == EAGAIN) {
8430 if (errno == EWOULDBLOCK)
8431 printf("EWOULDBLOCK\n");
8434 write(pu[1], buf, 1); /* Unblocks child, tell it to close our pipe */
8435 sleep(2); /* Give it time to close our pipe */
8437 ret = read(pd[0], buf, 1); /* Should read EOF */
8439 sprintf(string, "%d\n", ret);
8440 write(3, string, strlen(string));
8444 close(pd[0]); /* We write to pd[1] */
8445 close(pu[1]); /* We read from pu[0] */
8446 read(pu[0], buf, 1); /* Wait for parent to signal us we may continue */
8447 close(pd[1]); /* Pipe pd is now fully closed! */
8448 exit(0); /* Bye bye, thank you for playing! */
8452 if eval $compile_ok; then
8453 echo "$startsh" >mtry
8454 echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
8456 ./mtry >/dev/null 2>&1
8458 0) eagain=`$cat try.out`;;
8459 1) echo "Could not perform non-blocking setting!";;
8460 2) echo "I did a successful read() for something that was not there!";;
8461 3) echo "Hmm... non-blocking I/O does not seem to be working!";;
8462 *) echo "Something terribly wrong happened during testing.";;
8464 rd_nodata=`$cat try.ret`
8465 echo "A read() system call with no data present returns $rd_nodata."
8466 case "$rd_nodata" in
8469 echo "(That's peculiar, fixing that to be -1.)"
8475 echo "Forcing errno EAGAIN on read() with no data available."
8479 echo "Your read() sets errno to $eagain when no data is available."
8482 status=`$cat try.err`
8484 0) echo "And it correctly returns 0 to signal EOF.";;
8485 -1) echo "But it also returns -1 to signal EOF, so be careful!";;
8486 *) echo "However, your read() returns '$status' on EOF??";;
8489 if test "$status" = "$rd_nodata"; then
8490 echo "WARNING: you can't distinguish between EOF and no data!"
8494 echo "I can't compile the test program--assuming errno EAGAIN will do."
8501 echo "Using $hint value $eagain."
8502 echo "Your read() returns $rd_nodata when no data is present."
8503 case "$d_eofnblk" in
8504 "$define") echo "And you can see EOF because read() returns 0.";;
8505 "$undef") echo "But you can't see EOF status from read() returned value.";;
8507 echo "(Assuming you can't see EOF status from read anyway.)"
8513 $rm -f try try.* .out core head.c mtry
8515 : see if fchmod exists
8519 : see if fchown exists
8523 : see if this is an fcntl system
8527 hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift;
8528 while $test $# -ge 2; do
8530 $define) echo "#include <$2>";;
8534 echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c;
8536 if eval $compile; then
8547 : see whether socket exists
8549 $echo $n "Hmm... $c" >&4
8550 if set socket val -f d_socket; eval $csym; $val; then
8551 echo "Looks like you have Berkeley networking support." >&4
8553 if set setsockopt val -f; eval $csym; $val; then
8556 echo "...but it uses the old BSD 4.1c interface, rather than 4.2." >&4
8560 if $contains socklib libc.list >/dev/null 2>&1; then
8561 echo "Looks like you have Berkeley networking support." >&4
8563 : we will have to assume that it supports the 4.2 BSD interface
8566 echo "You don't have Berkeley networking in libc$_a..." >&4
8567 if test "X$d_socket" = "X$define"; then
8568 echo "...but you seem to believe that you have sockets." >&4
8570 for net in net socket
8572 if test -f /usr/lib/lib$net$_a; then
8573 ( ($nm $nm_opt /usr/lib/lib$net$_a | eval $nm_extract) || \
8574 $ar t /usr/lib/lib$net$_a) 2>/dev/null >> libc.list
8575 if $contains socket libc.list >/dev/null 2>&1; then
8580 echo "...but the Wollongong group seems to have hacked it in." >&4
8581 sockethdr="-I/usr/netinclude"
8584 echo "Found Berkeley sockets interface in lib$net." >& 4
8585 if $contains setsockopt libc.list >/dev/null 2>&1; then
8588 echo "...using the old BSD 4.1c interface, rather than 4.2." >&4
8595 if test "X$d_socket" != "X$define"; then
8596 echo "or anywhere else I see." >&4
8604 : see if socketpair exists
8605 set socketpair d_sockpair
8610 echo "Checking the availability of certain socket constants..." >& 4
8611 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do
8612 enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'`
8614 #include <sys/types.h>
8615 #include <sys/socket.h>
8621 set try; if eval $compile; then
8624 set d_${enum}; eval $setvar
8628 : see if sys/select.h has to be included
8629 set sys/select.h i_sysselct
8632 : see if we should include time.h, sys/time.h, or both
8634 if test "X$timeincl" = X; then
8635 echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
8636 $echo $n "I'm now running the test program...$c"
8637 $cat >try.c <<'EOCP'
8638 #include <sys/types.h>
8643 #ifdef SYSTIMEKERNEL
8646 #include <sys/time.h>
8649 #include <sys/select.h>
8658 struct timezone tzp;
8660 if (foo.tm_sec == foo.tm_sec)
8663 if (bar.tv_sec == bar.tv_sec)
8670 for s_timezone in '-DS_TIMEZONE' ''; do
8672 for s_timeval in '-DS_TIMEVAL' ''; do
8673 for i_systimek in '' '-DSYSTIMEKERNEL'; do
8674 for i_time in '' '-DI_TIME'; do
8675 for i_systime in '-DI_SYSTIME' ''; do
8678 set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
8679 if eval $compile; then
8680 set X $i_time $i_systime $i_systimek $sysselect $s_timeval
8684 $echo $n "Succeeded with $flags$c"
8696 *SYSTIMEKERNEL*) i_systimek="$define"
8697 timeincl=`./findhdr sys/time.h`
8698 echo "We'll include <sys/time.h> with KERNEL defined." >&4;;
8699 *) i_systimek="$undef";;
8702 *I_TIME*) i_time="$define"
8703 timeincl=`./findhdr time.h`" $timeincl"
8704 echo "We'll include <time.h>." >&4;;
8705 *) i_time="$undef";;
8708 *I_SYSTIME*) i_systime="$define"
8709 timeincl=`./findhdr sys/time.h`" $timeincl"
8710 echo "We'll include <sys/time.h>." >&4;;
8711 *) i_systime="$undef";;
8716 : check for fd_set items
8719 Checking to see how well your C compiler handles fd_set and friends ...
8721 $cat >fd_set.c <<EOCP
8722 #$i_systime I_SYS_TIME
8723 #$i_sysselct I_SYS_SELECT
8724 #$d_socket HAS_SOCKET
8725 #include <sys/types.h>
8727 #include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
8730 #include <sys/time.h>
8733 #include <sys/select.h>
8742 #if defined(FD_SET) && defined(FD_CLR) && defined(FD_ISSET) && defined(FD_ZERO)
8749 set fd_set -DTRYBITS
8750 if eval $compile; then
8751 d_fds_bits="$define"
8753 echo "Well, your system knows about the normal fd_set typedef..." >&4
8755 echo "and you have the normal fd_set macros (just as I'd expect)." >&4
8756 d_fd_macros="$define"
8759 but not the normal fd_set macros! Gaaack! I'll have to cover for you.
8761 d_fd_macros="$undef"
8765 Hmm, your compiler has some difficulty with fd_set. Checking further...
8768 if eval $compile; then
8771 echo "Well, your system has some sort of fd_set available..." >&4
8773 echo "and you have the normal fd_set macros." >&4
8774 d_fd_macros="$define"
8777 but not the normal fd_set macros! Gross! More work for me...
8779 d_fd_macros="$undef"
8782 echo "Well, you got zip. That's OK, I can roll my own fd_set stuff." >&4
8785 d_fd_macros="$undef"
8790 : see if fgetpos exists
8791 set fgetpos d_fgetpos
8794 : see if flock exists
8798 : see if fork exists
8802 : see if pathconf exists
8803 set pathconf d_pathconf
8806 : see if fpathconf exists
8807 set fpathconf d_fpathconf
8813 echo "Checking to see if your system supports off64_t..." >&4
8815 #include <sys/types.h>
8817 int main() { off64_t x = 7; }'
8820 if eval $compile; then
8822 echo "Yes, it does."
8825 echo "No, it doesn't."
8826 case "$lseeksize" in
8827 8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
8834 : check for fpos64_t
8836 echo "Checking to see if your system supports fpos64_t..." >&4
8838 #include <sys/stdio.h>
8839 int main() { fpos64_t x x = 7; }'
8842 if eval $compile; then
8844 echo "Yes, it does."
8847 echo "No, it doesn't."
8849 8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
8856 hasstruct='varname=$1; struct=$2; shift; shift;
8857 while $test $# -ge 2; do
8859 $define) echo "#include <$2>";;
8863 echo "int main () { struct $struct foo; }" >> try.c;
8865 if eval $compile; then
8874 : see if this is a sys/param system
8875 set sys/param.h i_sysparam
8878 : see if this is a sys/mount.h system
8879 set sys/mount.h i_sysmount
8882 : see if sys/types.h has to be included
8883 set sys/types.h i_systypes
8888 echo "Checking to see if your system supports struct fs_data..." >&4
8889 set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
8891 case "$d_fs_data_s" in
8892 "$define") echo "Yes, it does." ;;
8893 *) echo "No, it doesn't." ;;
8896 : see if fseeko exists
8900 8) echo "(Your long is 64 bits, so you could use fseek.)" ;;
8903 : see if fsetpos exists
8904 set fsetpos d_fsetpos
8908 : see if fstatfs exists
8909 set fstatfs d_fstatfs
8913 : see if statvfs exists
8914 set statvfs d_statvfs
8917 : see if fstatvfs exists
8918 set fstatvfs d_fstatvfs
8922 : see if ftello exists
8926 8) echo "(Your long is 64 bits, so you could use ftell.)" ;;
8929 : see if getcwd exists
8933 : see if getgrent exists
8934 set getgrent d_getgrent
8937 : see if gethostbyaddr exists
8938 set gethostbyaddr d_gethbyaddr
8941 : see if gethostbyname exists
8942 set gethostbyname d_gethbyname
8945 : see if gethostent exists
8946 set gethostent d_gethent
8949 : see how we will look up host name
8952 if set gethostname val -f d_gethname; eval $csym; $val; then
8953 echo 'gethostname() found.' >&4
8954 d_gethname="$define"
8957 if set uname val -f d_uname; eval $csym; $val; then
8960 uname() was found, but you're running xenix, and older versions of xenix
8961 have a broken uname(). If you don't really know whether your xenix is old
8962 enough to have a broken system call, use the default answer.
8969 rp='Is your uname() broken?'
8972 n*) d_uname="$define"; call=uname;;
8975 echo 'uname() found.' >&4
8982 case "$d_gethname" in
8983 '') d_gethname="$undef";;
8986 '') d_uname="$undef";;
8988 case "$d_uname$d_gethname" in
8993 Every now and then someone has a $call() that lies about the hostname
8994 but can't be fixed for political or economic reasons. If you wish, I can
8995 pretend $call() isn't there and maybe compute hostname at run-time
8996 thanks to the '$phostname' command.
8999 rp="Shall I ignore $call() from now on?"
9002 y*) d_uname="$undef" d_gethname="$undef"; $echo $n "Okay...$c";;
9005 case "$phostname" in
9007 *) case "$aphostname" in
9013 file=`./loc $file $file $pth`
9014 aphostname=`echo $file $*`
9019 case "$d_uname$d_gethname" in
9022 case "$phostname" in
9024 echo "There will be no way for $package to get your hostname." >&4;;
9026 echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4
9030 case "$d_phostname" in
9031 '') d_phostname="$undef";;
9034 : see if this is a netdb.h system
9038 : see if prototypes for various gethostxxx netdb.h functions are available
9040 set d_gethostprotos gethostent $i_netdb netdb.h
9043 : see if getlogin exists
9044 set getlogin d_getlogin
9047 : see if getmnt exists
9051 : see if getmntent exists
9052 set getmntent d_getmntent
9055 : see if getnetbyaddr exists
9056 set getnetbyaddr d_getnbyaddr
9059 : see if getnetbyname exists
9060 set getnetbyname d_getnbyname
9063 : see if getnetent exists
9064 set getnetent d_getnent
9067 : see if prototypes for various getnetxxx netdb.h functions are available
9069 set d_getnetprotos getnetent $i_netdb netdb.h
9073 : see if getprotobyname exists
9074 set getprotobyname d_getpbyname
9077 : see if getprotobynumber exists
9078 set getprotobynumber d_getpbynumber
9081 : see if getprotoent exists
9082 set getprotoent d_getpent
9085 : see if getpgid exists
9086 set getpgid d_getpgid
9089 : see if getpgrp2 exists
9090 set getpgrp2 d_getpgrp2
9093 : see if getppid exists
9094 set getppid d_getppid
9097 : see if getpriority exists
9098 set getpriority d_getprior
9101 : see if prototypes for various getprotoxxx netdb.h functions are available
9103 set d_getprotoprotos getprotoent $i_netdb netdb.h
9106 : see if getpwent exists
9107 set getpwent d_getpwent
9111 : see if getservbyname exists
9112 set getservbyname d_getsbyname
9115 : see if getservbyport exists
9116 set getservbyport d_getsbyport
9119 : see if getservent exists
9120 set getservent d_getsent
9123 : see if prototypes for various getservxxx netdb.h functions are available
9125 set d_getservprotos getservent $i_netdb netdb.h
9128 : see if getspent exists
9129 set getspent d_getspent
9132 : see if getspnam exists
9133 set getspnam d_getspnam
9136 : see if gettimeofday or ftime exists
9137 set gettimeofday d_gettimeod
9139 case "$d_gettimeod" in
9145 val="$undef"; set d_ftime; eval $setvar
9148 case "$d_gettimeod$d_ftime" in
9151 echo 'No ftime() nor gettimeofday() -- timing may be less accurate.' >&4
9155 : see if this is an grp system
9161 xxx=`./findhdr grp.h`
9162 $cppstdin $cppflags $cppminus < $xxx >$$.h
9164 if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then
9176 set d_grpasswd; eval $setvar
9180 : see if hasmntopt exists
9181 set hasmntopt d_hasmntopt
9184 : see if this is a netinet/in.h or sys/in.h system
9185 set netinet/in.h i_niin sys/in.h i_sysin
9188 : see if arpa/inet.h has to be included
9189 set arpa/inet.h i_arpainet
9192 : see if htonl --and friends-- exists
9197 : Maybe they are macros.
9202 #include <sys/types.h>
9203 #$i_niin I_NETINET_IN
9205 #$i_arpainet I_ARPA_INET
9207 #include <netinet/in.h>
9213 #include <arpa/inet.h>
9216 printf("Defined as a macro.");
9219 $cppstdin $cppflags $cppminus < htonl.c >htonl.E 2>/dev/null
9220 if $contains 'Defined as a macro' htonl.E >/dev/null 2>&1; then
9222 echo "But it seems to be defined as a macro." >&4
9230 : see if iconv exists
9236 if set index val -f; eval $csym; $val; then
9237 if set strchr val -f d_strchr; eval $csym; $val; then
9238 if $contains strchr "$strings" >/dev/null 2>&1 ; then
9241 echo "strchr() found." >&4
9245 echo "index() found." >&4
9250 echo "index() found." >&4
9253 if set strchr val -f d_strchr; eval $csym; $val; then
9256 echo "strchr() found." >&4
9258 echo "No index() or strchr() found!" >&4
9263 set d_strchr; eval $setvar
9265 set d_index; eval $setvar
9267 : check whether inet_aton exists
9268 set inet_aton d_inetaton
9271 : see if inttypes.h is available
9272 : we want a real compile instead of Inhdr because some systems
9273 : have an inttypes.h which includes non-existent headers
9276 #include <inttypes.h>
9278 static int32_t foo32 = 0x12345678;
9282 if eval $compile; then
9283 echo "<inttypes.h> found." >&4
9286 echo "<inttypes.h> NOT found." >&4
9295 $echo $n "Checking to see if your system supports int64_t...$c" >&4
9297 #include <sys/types.h>
9298 #$i_inttypes I_INTTYPES
9300 #include <inttypes.h>
9302 int main() { int64_t x = 7; }
9305 if eval $compile; then
9307 echo " Yes, it does." >&4
9310 echo " No, it doesn't." >&4
9318 $cat >isascii.c <<'EOCP'
9330 if eval $compile; then
9331 echo "isascii() found." >&4
9334 echo "isascii() NOT found." >&4
9341 : see if killpg exists
9345 : see if lchown exists
9347 $cat > try.c <<'EOCP'
9348 /* System header to define __stub macros and hopefully few prototypes,
9349 which can conflict with char lchown(); below. */
9351 /* Override any gcc2 internal prototype to avoid an error. */
9352 /* We use char because int might match the return type of a gcc2
9353 builtin and then its argument prototype would still apply. */
9356 /* The GNU C library defines this for functions which it implements
9357 to always fail with ENOSYS. Some functions are actually named
9358 something starting with __ and the normal name is an alias. */
9359 #if defined (__stub_lchown) || defined (__stub___lchown)
9367 if eval $compile; then
9368 $echo "lchown() found." >&4
9371 $echo "lchown() NOT found." >&4
9377 : See if number of significant digits in a double precision number is known
9379 $cat >ldbl_dig.c <<EOM
9389 printf("Contains LDBL_DIG");
9392 $cppstdin $cppflags $cppminus < ldbl_dig.c >ldbl_dig.E 2>/dev/null
9393 if $contains 'LDBL_DIG' ldbl_dig.E >/dev/null 2>&1; then
9394 echo "LDBL_DIG found." >&4
9397 echo "LDBL_DIG NOT found." >&4
9404 : see if link exists
9408 : see if localeconv exists
9409 set localeconv d_locconv
9412 : see if lockf exists
9416 : check for long long
9418 $echo $n "Checking to see if your system supports long long..." $c >&4
9419 echo 'int main() { long long x = 7; return 0; }' > try.c
9421 if eval $compile; then
9423 echo " Yes, it does." >&4
9426 echo " No, it doesn't." >&4
9432 : check for length of long long
9433 case "${d_longlong}${longlongsize}" in
9436 $echo $n "Checking to see how big your long longs are..." $c >&4
9437 $cat >try.c <<'EOCP'
9441 printf("%d\n", (int)sizeof(long long));
9446 if eval $compile_ok; then
9447 longlongsize=`./try$exe_ext`
9448 $echo " $longlongsize bytes." >&4
9452 echo "(I can't seem to compile the test program. Guessing...)"
9453 rp="What is the size of a long long (in bytes)?"
9457 if $test "X$longsize" = "X$longlongsize"; then
9458 echo "(That isn't any different from an ordinary long.)"
9464 : see if lstat exists
9468 : see if mblen exists
9472 : see if mbstowcs exists
9473 set mbstowcs d_mbstowcs
9476 : see if mbtowc exists
9480 : see if memchr exists
9484 : see if memcmp exists
9488 : see if memcpy exists
9492 : see if memmove exists
9493 set memmove d_memmove
9496 : see if memset exists
9500 : see if mkdir exists
9504 : see if mkdtemp exists
9505 set mkdtemp d_mkdtemp
9508 : see if mkfifo exists
9512 : see if mkstemp exists
9513 set mkstemp d_mkstemp
9516 : see if mkstemps exists
9517 set mkstemps d_mkstemps
9520 : see if mktime exists
9524 : see if this is a sys/mman.h system
9525 set sys/mman.h i_sysmman
9528 : see if mmap exists
9531 : see what shmat returns
9532 : default to something harmless
9534 case "$i_sysmman$d_mmap" in
9536 $cat >mmap.c <<'END'
9537 #include <sys/mman.h>
9540 if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
9545 echo "and it returns ($mmaptype)." >&4
9551 : see if mprotect exists
9552 set mprotect d_mprotect
9555 : see if msgctl exists
9559 : see if msgget exists
9563 : see if msgsnd exists
9567 : see if msgrcv exists
9571 : see how much of the 'msg*(2)' library is present.
9574 case "$d_msgctl$d_msgget$d_msgsnd$d_msgrcv" in
9575 *"$undef"*) h_msg=false;;
9579 case "`ipcs 2>&1`" in
9580 "SVID messages"*"not configured"*)
9581 echo "Your $osname does not have the msg*(2) configured." >&4
9596 : we could also check for sys/ipc.h ...
9597 if $h_msg && $test `./findhdr sys/msg.h`; then
9598 echo "You have the full msg*(2) library." >&4
9601 echo "You don't have the full msg*(2) library." >&4
9607 : see if msync exists
9611 : see if munmap exists
9615 : see if nice exists
9621 echo "Checking which 64-bit integer type we could use..." >&4
9627 val='"unsigned int"'
9632 *) case "$longsize" in
9636 val='"unsigned long"'
9641 *) case "$d_longlong:$longlongsize" in
9646 val='"unsigned long long"'
9651 *) case "$d_int64t" in
9670 '') echo "Alas, no 64-bit integer types in sight." >&4
9673 *) if test X"$use64bits" = Xdefine -o X"$longsize" = X8; then
9678 echo "We $verb use '$quadtype' for 64-bit integers." >&4
9683 : check for length of character
9687 echo "Checking to see how big your characters are (hey, you never know)..." >&4
9688 $cat >try.c <<'EOCP'
9692 printf("%d\n", (int)sizeof(char));
9697 if eval $compile_ok; then
9701 echo "(I can't seem to compile the test program. Guessing...)"
9708 rp="What is the size of a character (in bytes)?"
9715 $echo "Choosing the C types to be used for Perl's internal types..." >&4
9717 case "$use64bits:$d_quad:$quadtype" in
9725 uvtype="unsigned long"
9731 case "$uselongdouble:$d_longdbl" in
9733 nvtype="long double"
9741 $echo "(IV will be "$ivtype", $ivsize bytes)"
9742 $echo "(UV will be "$uvtype", $uvsize bytes)"
9743 $echo "(NV will be "$nvtype", $nvsize bytes)"
9746 #$i_inttypes I_INTTYPES
9748 #include <inttypes.h>
9753 int8_t i = INT8_MAX;
9754 uint8_t u = UINT8_MAX;
9758 int16_t i = INT16_MAX;
9759 uint16_t i = UINT16_MAX;
9760 printf("int16_t\n");
9763 int32_t i = INT32_MAX;
9764 uint32_t u = UINT32_MAX;
9765 printf("int32_t\n");
9771 '') case "$charsize" in
9773 u8type="unsigned char"
9782 if eval $compile; then
9783 case "`./try$exe_ext`" in
9784 int8_t) i8type=int8_t
9794 '') if $test $charsize -ge 1; then
9796 u8type="unsigned char"
9804 '') case "$shortsize" in
9806 u16type="unsigned short"
9815 if eval $compile; then
9816 case "`./try$exe_ext`" in
9828 '') if $test $shortsize -ge 2; then
9830 u16type="unsigned short"
9838 '') case "$longsize" in
9840 u32type="unsigned long"
9844 *) case "$intsize" in
9846 u32type="unsigned int"
9857 if eval $compile; then
9858 case "`./try$exe_ext`" in
9870 '') if $test $intsize -ge 4; then
9872 u32type="unsigned int"
9880 '') case "$d_quad:$quadtype" in
9883 u64type="$uquadtype"
9891 $echo "Checking whether your NVs can preserve your UVs..." >&4
9895 $uvtype k = ($uvtype)~0, l;
9901 printf("preserve\n");
9906 if eval $compile; then
9907 case "`./try$exe_ext`" in
9908 preserve) d_nv_preserves_uv="$define" ;;
9911 case "$d_nv_preserves_uv" in
9912 $define) $echo "Yes, they can." 2>&1 ;;
9913 *) $echo "No, they can't." 2>&1
9914 d_nv_preserves_uv="$undef"
9920 : see if POSIX threads are available
9921 set pthread.h i_pthread
9927 : how to create joinable pthreads
9928 if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
9930 echo "Checking what constant to use for creating joinable pthreads..." >&4
9931 $cat >try.c <<'EOCP'
9932 #include <pthread.h>
9934 int detachstate = JOINABLE;
9937 set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
9938 if eval $compile; then
9939 echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
9940 val="$undef" # Yes, undef.
9941 set d_old_pthread_create_joinable
9944 set old_pthread_create_joinable
9947 set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
9948 if eval $compile; then
9949 echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
9951 set d_old_pthread_create_joinable
9953 val=PTHREAD_CREATE_UNDETACHED
9954 set old_pthread_create_joinable
9957 set try -DJOINABLE=__UNDETACHED
9958 if eval $compile; then
9959 echo "You seem to use __UNDETACHED." >&4
9961 set d_old_pthread_create_joinable
9964 set old_pthread_create_joinable
9967 echo "Egads, nothing obvious found. Guessing that you use 0." >&4
9969 set d_old_pthread_create_joinable
9972 set old_pthread_create_joinable
9979 d_old_pthread_create_joinable="$undef"
9980 old_pthread_create_joinable=""
9983 : see if pause exists
9987 : see if pipe exists
9991 : see if poll exists
9996 : see whether the various POSIXish _yields exist
9998 #include <pthread.h>
10004 #ifdef PTHREAD_YIELD
10007 #ifdef PTHREAD_YIELD_NULL
10008 pthread_yield(NULL);
10014 : see if sched_yield exists
10015 set try -DSCHED_YIELD
10016 if eval $compile; then
10018 sched_yield='sched_yield()'
10022 case "$usethreads" in
10025 $define) echo 'sched_yield() found.' >&4 ;;
10026 *) echo 'sched_yield() NOT found.' >&4 ;;
10032 : see if pthread_yield exists
10033 set try -DPTHREAD_YIELD
10034 if eval $compile; then
10036 case "$sched_yield" in
10037 '') sched_yield='pthread_yield()' ;;
10040 set try -DPTHREAD_YIELD_NULL
10041 if eval $compile; then
10043 case "$sched_yield" in
10044 '') sched_yield='pthread_yield(NULL)' ;;
10050 case "$usethreads" in
10053 $define) echo 'pthread_yield() found.' >&4 ;;
10054 *) echo 'pthread_yield() NOT found.' >&4 ;;
10058 set d_pthread_yield
10061 case "$sched_yield" in
10062 '') sched_yield=undef ;;
10067 : see if this is a pwd.h system
10073 xxx=`./findhdr pwd.h`
10074 $cppstdin $cppflags $cppminus < $xxx >$$.h
10076 if $contains 'pw_quota' $$.h >/dev/null 2>&1; then
10084 if $contains 'pw_age' $$.h >/dev/null 2>&1; then
10092 if $contains 'pw_change' $$.h >/dev/null 2>&1; then
10100 if $contains 'pw_class' $$.h >/dev/null 2>&1; then
10108 if $contains 'pw_expire' $$.h >/dev/null 2>&1; then
10116 if $contains 'pw_comment' $$.h >/dev/null 2>&1; then
10124 if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
10132 if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
10144 set d_pwquota; eval $setvar
10145 set d_pwage; eval $setvar
10146 set d_pwchange; eval $setvar
10147 set d_pwclass; eval $setvar
10148 set d_pwexpire; eval $setvar
10149 set d_pwcomment; eval $setvar
10150 set d_pwgecos; eval $setvar
10151 set d_pwpasswd; eval $setvar
10155 : see if readdir and friends exist
10156 set readdir d_readdir
10158 set seekdir d_seekdir
10160 set telldir d_telldir
10162 set rewinddir d_rewinddir
10165 : see if readlink exists
10166 set readlink d_readlink
10169 : see if rename exists
10170 set rename d_rename
10173 : see if rmdir exists
10177 : see if memory.h is available.
10182 : See if it conflicts with string.h
10188 $cppstdin $cppflags $cppminus < $strings > mem.h
10189 if $contains 'memcpy' mem.h >/dev/null 2>&1; then
10191 echo "We won't be including <memory.h>."
10201 : can bcopy handle overlapping blocks?
10206 echo "Checking to see if your bcopy() can do overlapping copies..." >&4
10208 #$i_memory I_MEMORY
10209 #$i_stdlib I_STDLIB
10210 #$i_string I_STRING
10211 #$i_unistd I_UNISTD
10213 $cat >>try.c <<'EOCP'
10216 # include <memory.h>
10219 # include <stdlib.h>
10222 # include <string.h>
10224 # include <strings.h>
10227 # include <unistd.h> /* Needed for NetBSD */
10231 char buf[128], abc[128];
10237 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
10239 for (align = 7; align >= 0; align--) {
10240 for (len = 36; len; len--) {
10242 bcopy(abc, b, len);
10243 for (off = 1; off <= len; off++) {
10244 bcopy(b, b+off, len);
10245 bcopy(b+off, b, len);
10246 if (bcmp(b, abc, len))
10255 if eval $compile_ok; then
10256 if ./try 2>/dev/null; then
10257 echo "Yes, it can."
10260 echo "It can't, sorry."
10261 case "$d_memmove" in
10262 "$define") echo "But that's Ok since you have memmove()." ;;
10266 echo "(I can't compile the test program, so we'll assume not...)"
10267 case "$d_memmove" in
10268 "$define") echo "But that's Ok since you have memmove()." ;;
10273 $rm -f try.* try core
10277 : can memcpy handle overlapping blocks?
10279 case "$d_memcpy" in
10282 echo "Checking to see if your memcpy() can do overlapping copies..." >&4
10284 #$i_memory I_MEMORY
10285 #$i_stdlib I_STDLIB
10286 #$i_string I_STRING
10287 #$i_unistd I_UNISTD
10289 $cat >>try.c <<'EOCP'
10292 # include <memory.h>
10295 # include <stdlib.h>
10298 # include <string.h>
10300 # include <strings.h>
10303 # include <unistd.h> /* Needed for NetBSD */
10307 char buf[128], abc[128];
10313 /* Copy "abcde..." string to char abc[] so that gcc doesn't
10314 try to store the string in read-only memory. */
10315 memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36);
10317 for (align = 7; align >= 0; align--) {
10318 for (len = 36; len; len--) {
10320 memcpy(b, abc, len);
10321 for (off = 1; off <= len; off++) {
10322 memcpy(b+off, b, len);
10323 memcpy(b, b+off, len);
10324 if (memcmp(b, abc, len))
10333 if eval $compile_ok; then
10334 if ./try 2>/dev/null; then
10335 echo "Yes, it can."
10338 echo "It can't, sorry."
10339 case "$d_memmove" in
10340 "$define") echo "But that's Ok since you have memmove()." ;;
10344 echo "(I can't compile the test program, so we'll assume not...)"
10345 case "$d_memmove" in
10346 "$define") echo "But that's Ok since you have memmove()." ;;
10351 $rm -f try.* try core
10355 : can memcmp be trusted to compare relative magnitude?
10357 case "$d_memcmp" in
10360 echo "Checking if your memcmp() can compare relative magnitude..." >&4
10362 #$i_memory I_MEMORY
10363 #$i_stdlib I_STDLIB
10364 #$i_string I_STRING
10365 #$i_unistd I_UNISTD
10367 $cat >>try.c <<'EOCP'
10370 # include <memory.h>
10373 # include <stdlib.h>
10376 # include <string.h>
10378 # include <strings.h>
10381 # include <unistd.h> /* Needed for NetBSD */
10387 if ((a < b) && memcmp(&a, &b, 1) < 0)
10393 if eval $compile_ok; then
10394 if ./try 2>/dev/null; then
10395 echo "Yes, it can."
10398 echo "No, it can't (it uses signed chars)."
10401 echo "(I can't compile the test program, so we'll assume not...)"
10405 $rm -f try.* try core
10409 : see if select exists
10410 set select d_select
10413 : see if semctl exists
10414 set semctl d_semctl
10417 : see if semget exists
10418 set semget d_semget
10421 : see if semop exists
10425 : see how much of the 'sem*(2)' library is present.
10428 case "$d_semctl$d_semget$d_semop" in
10429 *"$undef"*) h_sem=false;;
10433 case "`ipcs 2>&1`" in
10434 "SVID messages"*"not configured"*)
10435 echo "Your $osname does not have the sem*(2) configured." >&4
10438 set semctl d_semctl
10440 set semget d_semget
10448 : we could also check for sys/ipc.h ...
10449 if $h_sem && $test `./findhdr sys/sem.h`; then
10450 echo "You have the full sem*(2) library." >&4
10453 echo "You don't have the full sem*(2) library." >&4
10459 : see whether sys/sem.h defines union semun
10461 $cat > try.c <<'END'
10462 #include <sys/types.h>
10463 #include <sys/ipc.h>
10464 #include <sys/sem.h>
10465 int main () { union semun semun; semun.buf = 0; }
10468 if eval $compile; then
10469 echo "You have union semun in <sys/sem.h>." >&4
10472 echo "You do not have union semun in <sys/sem.h>." >&4
10475 $rm -f try try.c try.h
10479 : see how to do semctl IPC_STAT
10482 : see whether semctl IPC_STAT can use union semun
10487 # define S_IRUSR S_IREAD
10488 # define S_IWUSR S_IWRITE
10489 # define S_IXUSR S_IEXEC
10491 # define S_IRUSR 0400
10492 # define S_IWUSR 0200
10493 # define S_IXUSR 0100
10495 # define S_IRGRP (S_IRUSR>>3)
10496 # define S_IWGRP (S_IWUSR>>3)
10497 # define S_IXGRP (S_IXUSR>>3)
10498 # define S_IROTH (S_IRUSR>>6)
10499 # define S_IWOTH (S_IWUSR>>6)
10500 # define S_IXOTH (S_IXUSR>>6)
10503 # define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
10504 # define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
10505 # define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
10510 #include <sys/types.h>
10511 #include <sys/ipc.h>
10512 #include <sys/sem.h>
10513 #include <sys/stat.h>
10520 #$d_union_semun HAS_UNION_SEMUN
10523 #ifndef HAS_UNION_SEMUN
10526 struct semid_ds *buf;
10527 unsigned short *array;
10533 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
10534 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
10536 struct semid_ds argbuf;
10539 st = semctl(sem, 0, IPC_STAT, arg);
10543 # endif /* IPC_STAT */
10544 printf("semctl IPC_STAT failed: errno = %d\n", errno);
10546 if (semctl(sem, 0, IPC_RMID, arg) != 0)
10547 # endif /* IPC_RMID */
10548 printf("semctl IPC_RMID failed: errno = %d\n", errno);
10550 #endif /* IPC_PRIVATE && ... */
10551 printf("semget failed: errno = %d\n", errno);
10557 if eval $compile; then
10560 semun) val="$define" ;;
10566 case "$d_semctl_semun" in
10568 echo "You can use union semun for semctl IPC_STAT." >&4
10571 *) echo "You cannot use union semun for semctl IPC_STAT." >&4
10576 : see whether semctl IPC_STAT can use struct semid_ds pointer
10577 $cat > try.c <<'END'
10578 #include <sys/types.h>
10579 #include <sys/ipc.h>
10580 #include <sys/sem.h>
10581 #include <sys/stat.h>
10589 struct semid_ds arg;
10592 #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
10593 sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
10596 st = semctl(sem, 0, IPC_STAT, &arg);
10598 printf("semid_ds\n");
10600 # endif /* IPC_STAT */
10601 printf("semctl IPC_STAT failed: errno = %d\n", errno);
10603 if (semctl(sem, 0, IPC_RMID, &arg) != 0)
10604 # endif /* IPC_RMID */
10605 printf("semctl IPC_RMID failed: errno = %d\n", errno);
10607 #endif /* IPC_PRIVATE && ... */
10608 printf("semget failed: errno = %d\n", errno);
10615 if eval $compile; then
10618 semid_ds) val="$define" ;;
10622 set d_semctl_semid_ds
10624 case "$d_semctl_semid_ds" in
10626 echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4
10628 *) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
10635 # We do not have the full sem*(2) library, so assume we can not
10641 set d_semctl_semid_ds
10646 : see if setegid exists
10647 set setegid d_setegid
10650 : see if seteuid exists
10651 set seteuid d_seteuid
10654 : see if setgrent exists
10655 set setgrent d_setgrent
10658 : see if sethostent exists
10659 set sethostent d_sethent
10662 : see if setlinebuf exists
10663 set setlinebuf d_setlinebuf
10666 : see if setlocale exists
10667 set setlocale d_setlocale
10670 : see if setnetent exists
10671 set setnetent d_setnent
10674 : see if setprotoent exists
10675 set setprotoent d_setpent
10678 : see if setpgid exists
10679 set setpgid d_setpgid
10682 : see if setpgrp2 exists
10683 set setpgrp2 d_setpgrp2
10686 : see if setpriority exists
10687 set setpriority d_setprior
10690 : see if setpwent exists
10691 set setpwent d_setpwent
10694 : see if setregid exists
10695 set setregid d_setregid
10697 set setresgid d_setresgid
10700 : see if setreuid exists
10701 set setreuid d_setreuid
10703 set setresuid d_setresuid
10706 : see if setrgid exists
10707 set setrgid d_setrgid
10710 : see if setruid exists
10711 set setruid d_setruid
10714 : see if setservent exists
10715 set setservent d_setsent
10718 : see if setsid exists
10719 set setsid d_setsid
10722 : see if setspent exists
10723 set setspent d_setspent
10726 : see if setvbuf exists
10727 set setvbuf d_setvbuf
10730 : see if sfio.h is available
10735 : see if sfio library is available
10746 : Ok, but do we want to use it.
10750 true|$define|[yY]*) dflt='y';;
10753 echo "$package can use the sfio library, but it is experimental."
10754 rp="You seem to have sfio available, do you want to try using it?"
10758 *) echo "Ok, avoiding sfio this time. I'll use stdio instead."
10760 : Remove sfio from list of libraries to use
10761 set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
10764 echo "libs = $libs" >&4
10768 *) case "$usesfio" in
10769 true|$define|[yY]*)
10770 echo "Sorry, cannot find sfio on this machine" >&4
10771 echo "Ignoring your setting of usesfio=$usesfio" >&4
10779 $define) usesfio='true';;
10780 *) usesfio='false';;
10783 : see if shmctl exists
10784 set shmctl d_shmctl
10787 : see if shmget exists
10788 set shmget d_shmget
10791 : see if shmat exists
10794 : see what shmat returns
10797 $cat >shmat.c <<'END'
10798 #include <sys/shm.h>
10801 if $cc $ccflags -c shmat.c >/dev/null 2>&1; then
10806 echo "and it returns ($shmattype)." >&4
10807 : see if a prototype for shmat is available
10808 xxx=`./findhdr sys/shm.h`
10809 $cppstdin $cppflags $cppminus < $xxx > shmat.c 2>/dev/null
10810 if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
10821 set d_shmatprototype
10824 : see if shmdt exists
10828 : see how much of the 'shm*(2)' library is present.
10831 case "$d_shmctl$d_shmget$d_shmat$d_shmdt" in
10832 *"$undef"*) h_shm=false;;
10836 case "`ipcs 2>&1`" in
10837 "SVID shared memory"*"not configured"*)
10838 echo "Your $osname does not have the shm*(2) configured." >&4
10841 set shmctl d_shmctl
10843 set shmget d_shmget
10853 : we could also check for sys/ipc.h ...
10854 if $h_shm && $test `./findhdr sys/shm.h`; then
10855 echo "You have the full shm*(2) library." >&4
10858 echo "You don't have the full shm*(2) library." >&4
10865 : see if we have sigaction
10866 if set sigaction val -f d_sigaction; eval $csym; $val; then
10867 echo 'sigaction() found.' >&4
10868 $cat > try.c <<'EOP'
10870 #include <sys/types.h>
10871 #include <signal.h>
10874 struct sigaction act, oact;
10876 oact.sa_handler = 0;
10877 /* so that act and oact are used */
10878 exit(act.sa_flags == 0 && oact.sa_handler == 0);
10882 if eval $compile_ok; then
10885 echo "But you don't seem to have a useable struct sigaction." >&4
10889 echo 'sigaction NOT found.' >&4
10892 set d_sigaction; eval $setvar
10893 $rm -f try try$_o try.c
10895 : see if sigsetjmp exists
10897 case "$d_sigsetjmp" in
10899 $cat >try.c <<'EOP'
10900 #include <setjmp.h>
10905 if (sigsetjmp(env,1))
10908 siglongjmp(env, 1);
10913 if eval $compile; then
10914 if ./try >/dev/null 2>&1; then
10915 echo "POSIX sigsetjmp found." >&4
10919 Uh-Oh! You have POSIX sigsetjmp and siglongjmp, but they do not work properly!!
10925 echo "sigsetjmp not found." >&4
10929 *) val="$d_sigsetjmp"
10930 case "$d_sigsetjmp" in
10931 $define) echo "POSIX sigsetjmp found." >&4;;
10932 $undef) echo "sigsetjmp not found." >&4;;
10940 : see if sys/stat.h is available
10941 set sys/stat.h i_sysstat
10945 : see if stat knows about block sizes
10947 echo "Checking to see if your struct stat has st_blocks field..." >&4
10948 set d_statblks stat st_blocks $i_sysstat sys/stat.h
10952 : see if this is a sys/vfs.h system
10953 set sys/vfs.h i_sysvfs
10957 : see if this is a sys/statfs.h system
10958 set sys/statfs.h i_sysstatfs
10963 echo "Checking to see if your system supports struct statfs..." >&4
10964 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
10966 case "$d_statfs_s" in
10967 "$define") echo "Yes, it does." ;;
10968 *) echo "No, it doesn't." ;;
10973 : see if struct statfs knows about f_flags
10974 case "$d_statfs_s" in
10977 echo "Checking to see if your struct statfs has f_flags field..." >&4
10978 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
10982 set d_statfs_f_flags
10986 case "$d_statfs_f_flags" in
10987 "$define") echo "Yes, it does." ;;
10988 *) echo "No, it doesn't." ;;
10991 : see if _ptr and _cnt from stdio act std
10993 if $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then
10994 echo "(Looks like you have stdio.h from Linux.)"
10995 case "$stdio_ptr" in
10996 '') stdio_ptr='((fp)->_IO_read_ptr)'
10999 *) ptr_lval=$d_stdio_ptr_lval;;
11001 case "$stdio_cnt" in
11002 '') stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
11005 *) cnt_lval=$d_stdio_cnt_lval;;
11007 case "$stdio_base" in
11008 '') stdio_base='((fp)->_IO_read_base)';;
11010 case "$stdio_bufsiz" in
11011 '') stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)';;
11014 case "$stdio_ptr" in
11015 '') stdio_ptr='((fp)->_ptr)'
11018 *) ptr_lval=$d_stdio_ptr_lval;;
11020 case "$stdio_cnt" in
11021 '') stdio_cnt='((fp)->_cnt)'
11024 *) cnt_lval=$d_stdio_cnt_lval;;
11026 case "$stdio_base" in
11027 '') stdio_base='((fp)->_base)';;
11029 case "$stdio_bufsiz" in
11030 '') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';;
11033 : test whether _ptr and _cnt really work
11034 echo "Checking how std your stdio is..." >&4
11037 #define FILE_ptr(fp) $stdio_ptr
11038 #define FILE_cnt(fp) $stdio_cnt
11040 FILE *fp = fopen("try.c", "r");
11043 18 <= FILE_cnt(fp) &&
11044 strncmp(FILE_ptr(fp), "include <stdio.h>\n", 18) == 0
11052 if eval $compile; then
11054 echo "Your stdio acts pretty std."
11057 echo "Your stdio isn't very std."
11060 echo "Your stdio doesn't appear very std."
11066 : Can _ptr be used as an lvalue?
11067 case "$d_stdstdio$ptr_lval" in
11068 $define$define) val=$define ;;
11071 set d_stdio_ptr_lval
11074 : Can _cnt be used as an lvalue?
11075 case "$d_stdstdio$cnt_lval" in
11076 $define$define) val=$define ;;
11079 set d_stdio_cnt_lval
11082 : see if _base is also standard
11084 case "$d_stdstdio" in
11088 #define FILE_base(fp) $stdio_base
11089 #define FILE_bufsiz(fp) $stdio_bufsiz
11091 FILE *fp = fopen("try.c", "r");
11094 19 <= FILE_bufsiz(fp) &&
11095 strncmp(FILE_base(fp), "#include <stdio.h>\n", 19) == 0
11102 if eval $compile; then
11104 echo "And its _base field acts std."
11107 echo "But its _base field isn't std."
11110 echo "However, it seems to be lacking the _base field."
11119 Checking how to access stdio streams by file descriptor number...
11121 case "$stdio_stream_array" in
11122 '') $cat >try.c <<EOCP
11125 if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
11129 for s in _iob __iob __sF
11131 set try -DSTDIO_STREAM_ARRAY=$s
11132 if eval $compile; then
11133 case "`./try$exe_ext`" in
11134 yes) stdio_stream_array=$s; break ;;
11138 $rm -f try.* try$exe_ext
11140 case "$stdio_stream_array" in
11142 I can't figure out how to access stdio streams by file descriptor number.
11144 d_stdio_stream_array="$undef"
11147 You can access stdio streams by file descriptor number by the $stdio_stream_array array.
11149 d_stdio_stream_array="$define"
11153 : see if strcoll exists
11154 set strcoll d_strcoll
11157 : check for structure copying
11159 echo "Checking to see if your C compiler can copy structs..." >&4
11160 $cat >try.c <<'EOCP'
11170 if $cc -c try.c >/dev/null 2>&1 ; then
11172 echo "Yup, it can."
11175 echo "Nope, it can't."
11181 : see if strerror and/or sys_errlist[] exist
11183 if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then
11184 if set strerror val -f d_strerror; eval $csym; $val; then
11185 echo 'strerror() found.' >&4
11186 d_strerror="$define"
11187 d_strerrm='strerror(e)'
11188 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
11189 echo "(You also have sys_errlist[], so we could roll our own strerror.)"
11190 d_syserrlst="$define"
11192 echo "(Since you don't have sys_errlist[], sterror() is welcome.)"
11193 d_syserrlst="$undef"
11195 elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \
11196 $contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
11197 echo 'strerror() found in string header.' >&4
11198 d_strerror="$define"
11199 d_strerrm='strerror(e)'
11200 if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
11201 echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
11202 d_syserrlst="$define"
11204 echo "(You don't appear to have any sys_errlist[], how can this be?)"
11205 d_syserrlst="$undef"
11207 elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then
11208 echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
11209 d_strerror="$undef"
11210 d_syserrlst="$define"
11211 d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
11213 echo 'strerror() and sys_errlist[] NOT found.' >&4
11214 d_strerror="$undef"
11215 d_syserrlst="$undef"
11216 d_strerrm='"unknown"'
11220 : see if strtod exists
11221 set strtod d_strtod
11224 : see if strtol exists
11225 set strtol d_strtol
11228 : see if strtold exists
11229 set strtold d_strtold
11232 : see if strtoll exists
11233 set strtoll d_strtoll
11236 : see if strtoul exists
11237 set strtoul d_strtoul
11240 : see if strtoull exists
11241 set strtoull d_strtoull
11244 : see if strtouq exists
11245 set strtouq d_strtouq
11248 : see if strxfrm exists
11249 set strxfrm d_strxfrm
11252 : see if symlink exists
11253 set symlink d_symlink
11256 : see if syscall exists
11257 set syscall d_syscall
11260 : see if sysconf exists
11261 set sysconf d_sysconf
11264 : see if system exists
11265 set system d_system
11268 : see if tcgetpgrp exists
11269 set tcgetpgrp d_tcgetpgrp
11272 : see if tcsetpgrp exists
11273 set tcsetpgrp d_tcsetpgrp
11276 : see if prototype for telldir is available
11278 set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
11281 : see if this is a sys/times.h system
11282 set sys/times.h i_systimes
11285 : see if times exists
11287 if set times val -f d_times; eval $csym; $val; then
11288 echo 'times() found.' >&4
11291 case "$i_systimes" in
11292 "$define") inc='sys/times.h';;
11294 rp="What is the type returned by times() on this system?"
11295 set clock_t clocktype long stdio.h sys/types.h $inc
11298 echo 'times() NOT found, hope that will do.' >&4
11303 : see if truncate exists
11304 set truncate d_truncate
11307 : see if tzname[] exists
11309 if set tzname val -a d_tzname; eval $csym; $val; then
11311 echo 'tzname[] found.' >&4
11314 echo 'tzname[] NOT found.' >&4
11319 : see if umask exists
11323 : see if ustat exists
11327 : backward compatibility for d_hvfork
11328 if test X$d_hvfork != X; then
11329 d_vfork="$d_hvfork"
11332 : see if there is a vfork
11337 : Ok, but do we want to use it. vfork is reportedly unreliable in
11338 : perl on Solaris 2.x, and probably elsewhere.
11342 case "$usevfork" in
11348 Perl can only use a vfork() that doesn't suffer from strict
11349 restrictions on calling functions or modifying global data in
11350 the child. For example, glibc-2.1 contains such a vfork()
11351 that is unsuitable. If your system provides a proper fork()
11352 call, chances are that you do NOT want perl to use vfork().
11355 rp="Do you still want to use vfork()?"
11360 echo "Ok, we won't use vfork()."
11369 $define) usevfork='true';;
11370 *) usevfork='false';;
11373 : see if this is an sysdir system
11374 set sys/dir.h i_sysdir
11377 : see if this is an sysndir system
11378 set sys/ndir.h i_sysndir
11381 : see if closedir exists
11382 set closedir d_closedir
11385 case "$d_closedir" in
11388 echo "Checking whether closedir() returns a status..." >&4
11389 cat > closedir.c <<EOM
11390 #$i_dirent I_DIRENT /**/
11391 #$i_sysdir I_SYS_DIR /**/
11392 #$i_sysndir I_SYS_NDIR /**/
11393 #$i_systypes I_SYS_TYPES /**/
11395 #if defined(I_SYS_TYPES)
11396 #include <sys/types.h>
11398 #if defined(I_DIRENT)
11399 #include <dirent.h>
11400 #if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
11401 #include <sys/dir.h>
11405 #include <sys/ndir.h>
11409 #include <ndir.h> /* may be wrong in the future */
11411 #include <sys/dir.h>
11416 int main() { return closedir(opendir(".")); }
11419 if eval $compile_ok; then
11420 if ./closedir > /dev/null 2>&1 ; then
11421 echo "Yes, it does."
11424 echo "No, it doesn't."
11428 echo "(I can't seem to compile the test program--assuming it doesn't)"
11436 set d_void_closedir
11439 : check for volatile keyword
11441 echo 'Checking to see if your C compiler knows about "volatile"...' >&4
11442 $cat >try.c <<'EOCP'
11445 typedef struct _goo_struct goo_struct;
11446 goo_struct * volatile goo = ((goo_struct *)0);
11447 struct _goo_struct {
11452 typedef unsigned short foo_t;
11453 char *volatile foo;
11455 volatile foo_t blech;
11459 if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
11461 echo "Yup, it does."
11464 echo "Nope, it doesn't."
11470 : see if there is a wait4
11474 : see if waitpid exists
11475 set waitpid d_waitpid
11478 : see if wcstombs exists
11479 set wcstombs d_wcstombs
11482 : see if wctomb exists
11483 set wctomb d_wctomb
11486 : preserve RCS keywords in files with variable substitution, grrr
11491 Revision='$Revision'
11493 case "$crosscompile" in
11494 ''|[nN]*) crosscompile="$undef" ;;
11498 next|rhapsody) multiarch="$define" ;;
11500 case "$multiarch" in
11501 ''|[nN]*) multiarch="$undef" ;;
11504 : check for alignment requirements
11506 case "$crosscompile$multiarch" in
11509 You seem to be either cross-compiling or doing a multiarchitecture build,
11510 skipping the memory alignment check.
11513 case "$alignbytes" in
11514 '') alignbytes=8 ;;
11518 case "$alignbytes" in
11519 '') echo "Checking alignment constraints..." >&4
11520 if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then
11521 $cat >try.c <<'EOCP'
11522 typedef long double NV;
11525 $cat >try.c <<'EOCP'
11529 $cat >>try.c <<'EOCP'
11537 printf("%d\n", (int)((char *)&try_algn.bar - (char *)&try_algn.foo));
11542 if eval $compile_ok; then
11546 echo "(I can't seem to compile the test program...)"
11549 *) dflt="$alignbytes"
11552 rp="Doubles must be aligned on a how-many-byte boundary?"
11560 : check for ordering of bytes in a long
11562 case "$crosscompile$multiarch" in
11565 You seem to be either cross-compiling or doing a multiarchitecture build,
11566 skipping the byteorder check.
11572 case "$byteorder" in
11575 In the following, larger digits indicate more significance. A big-endian
11576 machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
11577 little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
11578 machines may have weird orders like 3412. A Cray will report 87654321,
11579 an Alpha will report 12345678. If the test program works the default is
11581 I'm now running the test program...
11583 $cat >try.c <<'EOCP'
11590 char c[sizeof(long)];
11593 if (sizeof(long) > 4)
11594 u.l = (0x08070605L << 32) | 0x04030201L;
11597 for (i = 0; i < sizeof(long); i++)
11598 printf("%c", u.c[i]+'0');
11605 if eval $compile && ./try > /dev/null; then
11608 [1-4][1-4][1-4][1-4]|12345678|87654321)
11609 echo "(The test program ran ok.)"
11610 echo "byteorder=$dflt"
11613 ????|????????) echo "(The test program ran ok.)" ;;
11614 *) echo "(The test program didn't run right for some reason.)" ;;
11619 (I can't seem to compile the test program. Guessing big-endian...)
11622 case "$xxx_prompt" in
11624 rp="What is the order of bytes in a long?"
11638 : how do we catenate cpp tokens here?
11640 echo "Checking to see how your cpp does stuff like catenate tokens..." >&4
11641 $cat >cpp_stuff.c <<'EOCP'
11642 #define RCAT(a,b)a/**/b
11643 #define ACAT(a,b)a ## b
11647 $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
11648 if $contains 'Circus' cpp_stuff.out >/dev/null 2>&1; then
11649 echo "Oh! Smells like ANSI's been here." >&4
11650 echo "We can catify or stringify, separately or together!"
11652 elif $contains 'Reiser' cpp_stuff.out >/dev/null 2>&1; then
11653 echo "Ah, yes! The good old days!" >&4
11654 echo "However, in the good old days we don't know how to stringify and"
11655 echo "catify at the same time."
11659 Hmm, I don't seem to be able to catenate tokens with your cpp. You're going
11660 to have to edit the values of CAT[2-5] in config.h...
11662 cpp_stuff="/* Help! How do we handle cpp_stuff? */*/"
11666 : see if this is a db.h system
11672 : Check db version.
11674 echo "Checking Berkeley DB version ..." >&4
11680 #include <sys/types.h>
11685 #ifdef DB_VERSION_MAJOR /* DB version >= 2 */
11686 int Major, Minor, Patch ;
11687 unsigned long Version ;
11688 (void)db_version(&Major, &Minor, &Patch) ;
11689 printf("You have Berkeley DB Version 2 or greater\n");
11691 printf("db.h is from Berkeley DB Version %d.%d.%d\n",
11692 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
11693 printf("libdb is from Berkeley DB Version %d.%d.%d\n",
11694 Major, Minor, Patch) ;
11696 /* check that db.h & libdb are compatible */
11697 if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
11698 printf("db.h and libdb are incompatible\n") ;
11702 printf("db.h and libdb are compatible\n") ;
11704 Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000
11705 + DB_VERSION_PATCH ;
11707 /* needs to be >= 2.3.4 */
11708 if (Version < 2003004) {
11709 /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
11710 printf("but Perl needs Berkeley DB 2.3.4 or greater\n") ;
11716 #if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
11717 printf("You have Berkeley DB Version 1\n");
11718 exit(0); /* DB version < 2: the coast is clear. */
11720 exit(1); /* <db.h> not Berkeley DB? */
11726 if eval $compile_ok && ./try; then
11727 echo 'Looks OK.' >&4
11729 echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
11733 : Remove db from list of libraries to use
11734 echo "Removing unusable -ldb from library list" >&4
11735 set `echo X $libs | $sed -e 's/-ldb / /' -e 's/-ldb$//'`
11738 echo "libs = $libs" >&4
11748 : Check the return type needed for hash
11750 echo "Checking return type needed for hash for Berkeley DB ..." >&4
11756 #include <sys/types.h>
11759 #ifndef DB_VERSION_MAJOR
11760 u_int32_t hash_cb (ptr, size)
11768 info.hash = hash_cb;
11772 if $cc $ccflags -c try.c >try.out 2>&1 ; then
11773 if $contains warning try.out >>/dev/null 2>&1 ; then
11776 db_hashtype='u_int32_t'
11779 : XXX Maybe we should just give up here.
11780 db_hashtype=u_int32_t
11782 echo "Help: I can't seem to compile the db test program." >&4
11783 echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
11786 echo "Your version of Berkeley DB uses $db_hashtype for hash."
11788 *) db_hashtype=u_int32_t
11793 : Check the return type needed for prefix
11795 echo "Checking return type needed for prefix for Berkeley DB ..." >&4
11801 #include <sys/types.h>
11804 #ifndef DB_VERSION_MAJOR
11805 size_t prefix_cb (key1, key2)
11813 info.prefix = prefix_cb;
11817 if $cc $ccflags -c try.c >try.out 2>&1 ; then
11818 if $contains warning try.out >>/dev/null 2>&1 ; then
11819 db_prefixtype='int'
11821 db_prefixtype='size_t'
11824 db_prefixtype='size_t'
11825 : XXX Maybe we should just give up here.
11827 echo "Help: I can't seem to compile the db test program." >&4
11828 echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
11831 echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
11833 *) db_prefixtype='size_t'
11837 : check for void type
11839 echo "Checking to see how well your C compiler groks the void type..." >&4
11840 case "$voidflags" in
11842 $cat >try.c <<'EOCP'
11848 extern void moo(); /* function returning void */
11849 void (*goo)(); /* ptr to func returning void */
11851 void *hue; /* generic ptr */
11864 int main() { sub(); }
11866 if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
11867 voidflags=$defvoidused
11868 echo "Good. It appears to support void to the level $package wants.">&4
11869 if $contains warning .out >/dev/null 2>&1; then
11870 echo "However, you might get some warnings that look like this:"
11874 echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
11875 if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
11876 echo "It supports 1..."
11877 if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
11878 echo "It also supports 2..."
11879 if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
11881 echo "And it supports 4 but not 8 definitely."
11883 echo "It doesn't support 4..."
11884 if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
11886 echo "But it supports 8."
11889 echo "Neither does it support 8."
11893 echo "It does not support 2..."
11894 if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
11896 echo "But it supports 4 and 8."
11898 if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
11900 echo "And it supports 4 but has not heard about 8."
11902 echo "However it supports 8 but not 4."
11907 echo "There is no support at all for void."
11912 case "$voidflags" in
11914 *) $cat >&4 <<'EOM'
11915 Support flag bits are:
11916 1: basic void declarations.
11917 2: arrays of pointers to functions returning void.
11918 4: operations between pointers to and addresses of void functions.
11919 8: generic void pointers.
11922 rp="Your void support flags add up to what?"
11930 : How can we generate normalized random numbers ?
11932 echo "Looking for a random number function..." >&4
11933 case "$randfunc" in
11935 if set drand48 val -f; eval $csym; $val; then
11937 echo "Good, found drand48()." >&4
11938 elif set random val -f; eval $csym; $val; then
11940 echo "OK, found random()." >&4
11943 echo "Yick, looks like I have to use rand()." >&4
11954 *-Dmy_rand=*|*-Dmy_srand=*)
11955 echo "Removing obsolete -Dmy_rand, -Dmy_srand, and -Drandbits from ccflags." >&4
11956 ccflags="`echo $ccflags | sed -e 's/-Dmy_rand=random/ /'`"
11957 ccflags="`echo $ccflags | sed -e 's/-Dmy_srand=srandom/ /'`"
11958 ccflags="`echo $ccflags | sed -e 's/-Drandbits=[0-9][0-9]*/ /'`"
11962 while $test "$cont"; do
11963 rp="Use which function to generate random numbers?"
11965 if $test "$ans" = "$dflt"; then
11971 if set $ans val -f; eval $csym; $val; then
11975 rp="I cannot find function $ans. Use that name anyway?"
11984 case "$randfunc" in
11986 drand01="drand48()"
11992 case "$randbits" in
11994 echo "Checking to see how many bits your $randfunc() function produces..." >&4
11996 #$i_unistd I_UNISTD
11997 #$i_stdlib I_STDLIB
12000 # include <unistd.h>
12003 # include <stdlib.h>
12008 register unsigned long tmp;
12009 register unsigned long max = 0L;
12011 for (i = 1000; i; i--) {
12012 tmp = (unsigned long) $randfunc();
12013 if (tmp > max) max = tmp;
12015 for (i = 0; max; i++)
12021 if eval $compile_ok; then
12025 echo "(I can't seem to compile the test program...)"
12032 rp="How many bits does your $randfunc() function produce?"
12036 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
12037 seedfunc="s$randfunc"
12038 randseedtype=unsigned
12042 rp="How many bits does your $randfunc() function produce?"
12045 seedfunc="s$randfunc"
12046 drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
12047 if set $seedfunc val -f; eval $csym; $val; then
12048 echo "(Using $seedfunc() to seed random generator)"
12050 echo "(Warning: no $seedfunc() to seed random generator)"
12053 randseedtype=unsigned
12061 echo "Determining whether or not we are on an EBCDIC system..." >&4
12062 $cat >tebcdic.c <<'EOM'
12065 if ('M'==0xd4) return 0;
12072 if eval $compile_ok; then
12074 echo "You have EBCDIC." >&4
12077 echo "Nope, no EBCDIC, probably ASCII or some ISO Latin." >&4
12080 echo "I'm unable to compile the test program." >&4
12081 echo "I'll assume ASCII or some ISO Latin." >&4
12083 $rm -f tebcdic.c tebcdic
12089 Checking how to flush all pending stdio output...
12091 # I only know how to find the first 32 possibly open files on SunOS.
12092 # See also hints/sunos_4_1.sh and util.c --AD
12094 sunos) $echo '#define PERL_FFLUSH_ALL_FOPEN_MAX 32' > try.c ;;
12096 $cat >>try.c <<EOCP
12098 #$i_unistd I_UNISTD
12100 # include <unistd.h>
12102 #$d_sysconf HAS_SYSCONF
12103 #$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY
12104 #ifdef HAS_STDIO_STREAM_ARRAY
12105 # define STDIO_STREAM_ARRAY $stdio_stream_array
12108 FILE* p = fopen("try.out", "w");
12112 # ifdef TRY_FPRINTF
12116 #ifdef TRY_FFLUSH_NULL
12119 #ifdef TRY_FFLUSH_ALL
12121 long open_max = -1;
12122 # ifdef PERL_FFLUSH_ALL_FOPEN_MAX
12123 open_max = PERL_FFLUSH_ALL_FOPEN_MAX;
12125 # if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
12126 open_max = sysconf(_SC_OPEN_MAX);
12129 open_max = FOPEN_MAX;
12132 open_max = OPEN_MAX;
12141 # ifdef HAS_STDIO_STREAM_ARRAY
12142 if (open_max > 0) {
12144 for (i = 0; i < open_max; i++)
12145 if (STDIO_STREAM_ARRAY[i]._file >= 0 &&
12146 STDIO_STREAM_ARRAY[i]._file < open_max &&
12147 STDIO_STREAM_ARRAY[i]._flag)
12148 fflush(&STDIO_STREAM_ARRAY[i]);
12156 : first we have to find out how _not_ to flush
12157 if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
12159 set try -DTRY_FPUTC
12160 if eval $compile; then
12162 ./try$exe_ext 2>/dev/null
12163 if $test ! -s try.out -a "X$?" = X42; then
12169 set try -DTRY_FPRINTF
12171 if eval $compile; then
12173 ./try$exe_ext 2>/dev/null
12174 if $test ! -s try.out -a "X$?" = X42; then
12175 output=-DTRY_FPRINTF
12181 : check for fflush NULL behaviour
12182 case "$fflushNULL" in
12183 '') set try -DTRY_FFLUSH_NULL $output
12184 if eval $compile; then
12186 ./try$exe_ext 2>/dev/null
12188 if $test -s try.out -a "X$code" = X42; then
12189 fflushNULL="`$cat try.out`"
12191 if $test "X$code" != X42; then
12193 (If this test failed, don't worry, we'll try another method shortly.)
12198 $rm -f core try.core core.try.*
12199 case "$fflushNULL" in
12201 Your fflush(NULL) works okay.
12203 fflushNULL="$define"
12206 Your fflush(NULL) isn't working (contrary to ANSI C).
12208 fflushNULL="$undef"
12211 Cannot figure out whether your fflush(NULL) works or not.
12212 I'm assuming it doesn't (contrary to ANSI C).
12214 fflushNULL="$undef"
12218 $define|true|[yY]*)
12219 fflushNULL="$define"
12222 fflushNULL="$undef"
12225 : check explicit looping only if NULL did not work
12226 case "$fflushNULL" in
12228 : check for fflush all behaviour
12229 case "$fflushall" in
12230 '') set try -DTRY_FFLUSH_ALL $output
12231 if eval $compile; then
12233 (Now testing the other method--but note that also this may fail.)
12236 ./try$exe_ext 2>/dev/null
12237 if $test -s try.out -a "X$?" = X42; then
12238 fflushall="`$cat try.out`"
12241 $rm -f core try.core core.try.*
12242 case "$fflushall" in
12244 Whew. Flushing explicitly all the stdio streams works.
12246 fflushall="$define"
12249 Sigh. Flushing explicitly all the stdio streams doesn't work.
12254 Cannot figure out whether flushing stdio streams explicitly works or not.
12255 I'm assuming it doesn't.
12261 "$define"|true|[yY]*)
12262 fflushall="$define"
12269 *) fflushall="$undef"
12272 case "$fflushNULL$fflushall" in
12275 I cannot figure out how to flush pending stdio output.
12279 $rm -f try.* try$exe_ext
12281 : Store the full pathname to the ar program for use in the C program
12282 : Respect a hint or command line value for full_ar.
12287 : Store the full pathname to the sed program for use in the C program
12290 : see what type gids are declared as in the kernel
12292 echo "Looking for the type for group ids returned by getgid()."
12293 set gid_t gidtype xxx stdio.h sys/types.h
12297 xxx=`./findhdr sys/user.h`
12298 set `grep 'groups\[NGROUPS\];' "$xxx" 2>/dev/null` unsigned short
12300 unsigned) dflt="$1 $2" ;;
12304 *) dflt="$gidtype";;
12307 gid_t) echo "gid_t found." ;;
12308 *) rp="What is the type for group ids returned by getgid()?"
12316 *_t) zzz="$gidtype" ;;
12319 echo "Checking the size of $zzz..." >&4
12321 #include <sys/types.h>
12324 printf("%d\n", (int)sizeof($gidtype));
12329 if eval $compile_ok; then
12333 echo "(I can't execute the test program--guessing $gidsize.)" >&4
12336 echo "Your $zzz size is $gidsize bytes."
12341 echo "(I can't compile the test program--guessing $gidsize.)" >&4
12347 *_t) zzz="$gidtype" ;;
12350 echo "Checking the sign of $zzz..." >&4
12352 #include <sys/types.h>
12363 if eval $compile; then
12367 echo "(I can't execute the test program--guessing unsigned.)" >&4
12371 1) echo "Your $zzz is unsigned." ;;
12372 -1) echo "Your $zzz is signed." ;;
12378 echo "(I can't compile the test program--guessing unsigned.)" >&4
12384 if $test X"$quadtype" != X; then
12386 echo "Checking how to print 64-bit integers..." >&4
12388 if $test X"$sPRId64" = X -a X"$quadtype" = Xint; then
12389 $cat >try.c <<'EOCP'
12390 #include <sys/types.h>
12393 int q = 12345678901;
12394 printf("%ld\n", q);
12398 if eval $compile; then
12399 yyy=`./try$exe_ext`
12402 sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
12403 sPRIo64='"o"'; sPRIx64='"x"'; sPRIX64='"X"';
12404 echo "We will use %d."
12410 if $test X"$sPRId64" = X -a X"$quadtype" = Xlong; then
12411 $cat >try.c <<'EOCP'
12412 #include <sys/types.h>
12415 long q = 12345678901;
12416 printf("%ld\n", q);
12420 if eval $compile; then
12421 yyy=`./try$exe_ext`
12424 sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
12425 sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIX64='"lX"';
12426 echo "We will use %ld."
12432 if $test X"$sPRId64" = X -a X"$i_inttypes" = X"$define" -a X"$quadtype" = Xint64_t; then
12433 $cat >try.c <<'EOCP'
12434 #include <sys/types.h>
12435 #include <inttypes.h>
12438 int64_t q = 12345678901;
12439 printf("%" PRId64 "\n", q);
12443 if eval $compile; then
12444 yyy=`./try$exe_ext`
12447 sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
12448 sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIX64=PRIX64;
12449 echo "We will use the C9X style."
12455 if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
12456 $cat >try.c <<'EOCP'
12457 #include <sys/types.h>
12460 long long q = 12345678901LL; /* AIX cc requires the LL prefix. */
12461 printf("%lld\n", q);
12465 if eval $compile; then
12466 yyy=`./try$exe_ext`
12469 sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
12470 sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIX64='"llX"';
12471 echo "We will use the %lld style."
12477 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
12479 #include <sys/types.h>
12482 $quadtype q = 12345678901;
12483 printf("%Ld\n", q);
12487 if eval $compile; then
12488 yyy=`./try$exe_ext`
12491 sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
12492 sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIX64='"LX"';
12493 echo "We will use %Ld."
12499 if $test X"$sPRId64" = X -a X"$quadtype" != X; then
12501 #include <sys/types.h>
12504 $quadtype q = 12345678901;
12505 printf("%qd\n", q);
12509 if eval $compile; then
12510 yyy=`./try$exe_ext`
12513 sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
12514 sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIX64='"qX"';
12515 echo "We will use %qd."
12521 if $test X"$sPRId64" = X; then
12522 echo "Cannot figure out how to print 64-bit integers." >&4
12530 '') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
12531 d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIX64="$undef";
12533 *) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
12534 d_PRIo64="$define"; d_PRIx64="$define"; d_PRIX64="$define";
12540 $echo "Checking the format strings to be used for Perl's internal types..." >&4
12542 if $test X"$ivsize" = X8; then
12543 ivdformat="$sPRId64"
12544 uvuformat="$sPRIu64"
12545 uvoformat="$sPRIo64"
12546 uvxformat="$sPRIx64"
12548 if $test X"$ivsize" = X"$longsize"; then
12554 if $test X"$ivsize" = X"$intsize"; then
12561 if $test X"$ivsize" = X"$shortsize"; then
12571 case "$ivdformat" in
12572 '') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4
12579 $echo "Checking the format string to be used for gids..." >&4
12582 -1) if $test X"$gidsize" = X"$ivsize"; then
12583 gidformat="$ivdformat"
12585 if $test X"$gidsize" = X"$longsize"; then
12588 if $test X"$gidsize" = X"$intsize"; then
12591 if $test X"$gidsize" = X"$shortsize"; then
12598 *) if $test X"$gidsize" = X"$uvsize"; then
12599 gidformat="$uvuformat"
12601 if $test X"$gidsize" = X"$longsize"; then
12604 if $test X"$gidsize" = X"$intsize"; then
12607 if $test X"$gidsize" = X"$shortsize"; then
12616 : see if getgroups exists
12617 set getgroups d_getgrps
12620 : see if setgroups exists
12621 set setgroups d_setgrps
12625 : Find type of 2nd arg to 'getgroups()' and 'setgroups()'
12627 case "$d_getgrps$d_setgrps" in
12629 case "$groupstype" in
12630 '') dflt="$gidtype" ;;
12631 *) dflt="$groupstype" ;;
12634 What type of pointer is the second argument to getgroups() and setgroups()?
12635 Usually this is the same as group ids, $gidtype, but not always.
12638 rp='What type pointer is the second argument to getgroups() and setgroups()?'
12642 *) groupstype="$gidtype";;
12646 echo "Checking if your $make program sets \$(MAKE)..." >&4
12647 case "$make_set_make" in
12649 $sed 's/^X //' > testmake.mak << 'EOF'
12651 X @echo 'maketemp="$(MAKE)"'
12653 case "`$make -f testmake.mak 2>/dev/null`" in
12654 *maketemp=*) make_set_make='#' ;;
12655 *) make_set_make="MAKE=$make" ;;
12657 $rm -f testmake.mak
12660 case "$make_set_make" in
12661 '#') echo "Yup, it does.";;
12662 *) echo "Nope, it doesn't.";;
12665 : see what type is used for mode_t
12666 rp="What is the type used for file modes for system calls (e.g. fchmod())?"
12667 set mode_t modetype int stdio.h sys/types.h
12670 : define a fucntion to check prototypes
12671 $cat > protochk <<EOSH
12674 optimize="$optimize"
12676 prototype="$prototype"
12681 $cat >> protochk <<'EOSH'
12686 while test $# -ge 2; do
12688 $define) echo "#include <$2>" >> try.c ;;
12689 literal) echo "$2" >> try.c ;;
12693 test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
12694 cat >> try.c <<'EOCP'
12695 #ifdef CAN_PROTOTYPE
12696 #define _(args) args
12701 echo "$foo" >> try.c
12702 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
12703 $cc $optimize $ccflags -c try.c > /dev/null 2>&1
12709 $eunicefix protochk
12711 : see what type is used for size_t
12712 rp="What is the type used for the length parameter for string functions?"
12713 set size_t sizetype 'unsigned int' stdio.h sys/types.h
12716 : check for type of arguments to gethostbyaddr.
12717 if test "X$netdb_host_type" = X -o "X$netdb_hlen_type" = X; then
12718 case "$d_gethbyaddr" in
12722 Checking to see what type of arguments are accepted by gethostbyaddr().
12724 hdrs="$define sys/types.h
12725 $d_socket sys/socket.h
12726 $i_niin netinet/in.h
12728 $i_unistd unistd.h"
12729 : The first arg can 'char *' or 'void *'
12730 : The second arg is some of integral type
12731 for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do
12732 for yyy in size_t long int; do
12733 case "$netdb_host_type" in
12734 '') try="extern struct hostent *gethostbyaddr($xxx, $yyy, int);"
12735 if ./protochk "$try" $hdrs; then
12736 echo "Your system accepts $xxx for the first arg."
12737 echo "...and $yyy for the second arg."
12738 netdb_host_type="$xxx"
12739 netdb_hlen_type="$yyy"
12745 : In case none of those worked, prompt the user.
12746 case "$netdb_host_type" in
12747 '') rp='What is the type for the 1st argument to gethostbyaddr?'
12750 netdb_host_type=$ans
12751 rp='What is the type for the 2nd argument to gethostbyaddr?'
12754 netdb_hlen_type=$ans
12758 *) : no gethostbyaddr, so pick harmless defaults
12759 netdb_host_type='char *'
12760 netdb_hlen_type="$sizetype"
12763 # Remove the "const" if needed. -- but then we'll have a
12765 # netdb_host_type=`echo "$netdb_host_type" | sed 's/^const //'`
12768 : check for type of argument to gethostbyname.
12769 if test "X$netdb_name_type" = X ; then
12770 case "$d_gethbyname" in
12774 Checking to see what type of argument is accepted by gethostbyname().
12776 hdrs="$define sys/types.h
12777 $d_socket sys/socket.h
12778 $i_niin netinet/in.h
12780 $i_unistd unistd.h"
12781 for xxx in "const char *" "char *"; do
12782 case "$netdb_name_type" in
12783 '') try="extern struct hostent *gethostbyname($xxx);"
12784 if ./protochk "$try" $hdrs; then
12785 echo "Your system accepts $xxx."
12786 netdb_name_type="$xxx"
12791 : In case none of those worked, prompt the user.
12792 case "$netdb_name_type" in
12793 '') rp='What is the type for the 1st argument to gethostbyname?'
12796 netdb_name_type=$ans
12800 *) : no gethostbyname, so pick harmless default
12801 netdb_name_type='char *'
12806 : check for type of 1st argument to getnetbyaddr.
12807 if test "X$netdb_net_type" = X ; then
12808 case "$d_getnbyaddr" in
12812 Checking to see what type of 1st argument is accepted by getnetbyaddr().
12814 hdrs="$define sys/types.h
12815 $d_socket sys/socket.h
12816 $i_niin netinet/in.h
12818 $i_unistd unistd.h"
12819 for xxx in in_addr_t "unsigned long" long "unsigned int" int; do
12820 case "$netdb_net_type" in
12821 '') try="extern struct netent *getnetbyaddr($xxx, int);"
12822 if ./protochk "$try" $hdrs; then
12823 echo "Your system accepts $xxx."
12824 netdb_net_type="$xxx"
12829 : In case none of those worked, prompt the user.
12830 case "$netdb_net_type" in
12831 '') rp='What is the type for the 1st argument to getnetbyaddr?'
12834 netdb_net_type=$ans
12838 *) : no getnetbyaddr, so pick harmless default
12839 netdb_net_type='long'
12843 : locate the preferred pager for this system
12857 '') dflt=/usr/ucb/more;;
12864 rp='What pager is used on your system?'
12868 : see what type pids are declared as in the kernel
12869 rp="What is the type of process ids on this system?"
12870 set pid_t pidtype int stdio.h sys/types.h
12873 : Find earliest binary compatible site_perl subdirectory perl can use.
12874 case "$bincompat5005" in
12875 "$define") xs_apiversion='5.005' ;;
12876 *) xs_apiversion=$version ;; # The current site_perl version.
12878 : Find earliest pure perl site_perl subdirectory perl can use.
12879 : The versioned directories started at 5.005.
12880 pm_apiversion='5.005'
12882 : check for length of pointer
12886 $echo $n "Checking to see how big your pointers are...$c" >&4
12887 if test "$voidflags" -gt 7; then
12888 echo '#define VOID_PTR char *' > try.c
12890 echo '#define VOID_PTR void *' > try.c
12892 $cat >>try.c <<'EOCP'
12896 printf("%d\n", (int)sizeof(VOID_PTR));
12901 if eval $compile_ok; then
12903 $echo " $ptrsize bytes." >&4
12906 echo "(I can't seem to compile the test program. Guessing...)" >&4
12907 rp="What is the size of a pointer (in bytes)?"
12915 : see if ar generates random libraries by itself
12917 echo "Checking how to generate random libraries on your machine..." >&4
12918 echo 'int bar1() { return bar2(); }' > bar1.c
12919 echo 'int bar2() { return 2; }' > bar2.c
12920 $cat > foo.c <<'EOP'
12921 int main() { printf("%d\n", bar1()); exit(0); }
12923 $cc $ccflags -c bar1.c >/dev/null 2>&1
12924 $cc $ccflags -c bar2.c >/dev/null 2>&1
12925 $cc $ccflags -c foo.c >/dev/null 2>&1
12926 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
12927 if $cc $ccflags $ldflags -o foobar foo$_o bar$_a $libs > /dev/null 2>&1 &&
12928 ./foobar >/dev/null 2>&1; then
12929 echo "$ar appears to generate random libraries itself."
12932 elif $ar ts bar$_a >/dev/null 2>&1 &&
12933 $cc $ccflags $ldflags -o foobar foo$_o bar$_a $libs > /dev/null 2>&1 &&
12934 ./foobar >/dev/null 2>&1; then
12935 echo "a table of contents needs to be added with '$ar ts'."
12942 ranlib=`./loc ranlib X /usr/bin /bin /usr/local/bin`
12943 $test -f $ranlib || ranlib=''
12946 if $test -n "$ranlib"; then
12947 echo "your system has '$ranlib'; we'll use that."
12950 echo "your system doesn't seem to support random libraries"
12951 echo "so we'll use lorder and tsort to order the libraries."
12958 : check for type of arguments to select.
12959 case "$selecttype" in
12960 '') case "$d_select" in
12964 Checking to see what type of arguments are accepted by select().
12966 hdrs="$define sys/types.h
12967 $i_systime sys/time.h
12968 $i_sysselct sys/select.h
12969 $d_socket sys/socket.h"
12970 : The first arg can be int, unsigned, or size_t
12971 : The last arg may or may not be 'const'
12973 : void pointer has been seen but using that
12974 : breaks the selectminbits test
12975 for xxx in 'fd_set *' 'int *'; do
12976 for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do
12977 for tmo in 'struct timeval *' 'const struct timeval *'; do
12979 '') try="extern select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
12980 if ./protochk "$try" $hdrs; then
12981 echo "Your system accepts $xxx."
12990 '') rp='What is the type for the 2nd, 3rd, and 4th arguments to select?'
12991 case "$d_fd_set" in
12992 $define) dflt="fd_set *" ;;
13001 *) : no select, so pick a harmless default
13008 : check for the select 'width'
13009 case "$selectminbits" in
13010 '') case "$d_select" in
13014 Checking to see on how many bits at a time your select() operates...
13017 #include <sys/types.h>
13019 #$i_systime I_SYS_TIME
13020 #$i_systimek I_SYS_TIME_KERNEL
13025 # ifdef I_SYS_TIME_KERNEL
13028 # include <sys/time.h>
13029 # ifdef I_SYS_TIME_KERNEL
13033 #$i_sysselct I_SYS_SELECT
13034 #ifdef I_SYS_SELECT
13035 #include <sys/select.h>
13037 #$d_socket HAS_SOCKET
13039 # include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
13043 #define S sizeof(*(b))
13045 #define NBYTES (S * 8 > MINBITS ? S : MINBITS/8)
13046 #define NBITS (NBYTES * 8)
13055 fp = fopen("try.c", "r");
13061 b = ($selecttype)s;
13062 for (i = 0; i < NBITS; i++)
13066 select(fd + 1, b, 0, 0, &t);
13067 for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--);
13068 printf("%d\n", i + 1);
13073 if eval $compile_ok; then
13074 selectminbits=`./try`
13075 case "$selectminbits" in
13077 Cannot figure out on how many bits at a time your select() operates.
13078 I'll play safe and guess it is 32 bits.
13084 *) bits="$selectminbits bits" ;;
13086 echo "Your select() operates on $bits at a time." >&4
13088 rp='What is the minimum number of bits your select() operates on?'
13089 case "$byteorder" in
13090 1234|12345678) dflt=32 ;;
13095 selectminbits="$val"
13099 *) : no select, so pick a harmless default
13106 : Trace out the files included by signal.h, then look for SIGxxx names.
13107 : Remove SIGARRAYSIZE used by HPUX.
13108 : Remove SIGSTKSIZE used by Linux.
13109 : Remove SIGSTKSZ used by Posix.
13110 : Remove SIGTYP void lines used by OS2.
13111 : Some cpps, like os390, dont give the file name anywhere
13112 if [ "X$fieldn" = X ]; then
13113 : Just make some guesses. We check them later.
13114 xxx='/usr/include/signal.h /usr/include/sys/signal.h'
13116 xxx=`echo '#include <signal.h>' |
13117 $cppstdin $cppminus $cppflags 2>/dev/null |
13118 $grep '^[ ]*#.*include' |
13119 $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sort | $uniq`
13121 : Check this list of files to be sure we have parsed the cpp output ok.
13122 : This will also avoid potentially non-existent files, such
13125 for xx in $xxx /dev/null ; do
13126 $test -f "$xx" && xxxfiles="$xxxfiles $xx"
13128 : If we have found no files, at least try signal.h
13129 case "$xxxfiles" in
13130 '') xxxfiles=`./findhdr signal.h` ;;
13133 $1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ {
13134 print substr($2, 4, 20)
13136 $1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ {
13137 print substr($3, 4, 20)
13139 : Append some common names just in case the awk scan failed.
13140 xxx="$xxx ABRT ALRM BUS CANCEL CHLD CLD CONT DIL EMT FPE"
13141 xxx="$xxx FREEZE HUP ILL INT IO IOT KILL LOST LWP PHONE"
13142 xxx="$xxx PIPE POLL PROF PWR QUIT RTMAX RTMIN SEGV STKFLT STOP"
13143 xxx="$xxx SYS TERM THAW TRAP TSTP TTIN TTOU URG USR1 USR2"
13144 xxx="$xxx USR3 USR4 VTALRM WAITING WINCH WIND WINDOW XCPU XFSZ"
13146 : generate a few handy files for later
13147 $cat > signal.c <<'EOCP'
13148 #include <sys/types.h>
13149 #include <signal.h>
13153 /* Strange style to avoid deeply-nested #if/#else/#endif */
13156 # define NSIG (_NSIG)
13162 # define NSIG (SIGMAX+1)
13168 # define NSIG (SIG_MAX+1)
13174 # define NSIG (MAXSIG+1)
13180 # define NSIG (MAX_SIG+1)
13185 # ifdef SIGARRAYSIZE
13186 # define NSIG (SIGARRAYSIZE+1) /* Not sure of the +1 */
13192 # define NSIG (_sys_nsig) /* Solaris 2.5 */
13196 /* Default to some arbitrary number that's big enough to get most
13197 of the common signals.
13203 printf("NSIG %d\n", NSIG);
13209 echo $xxx | $tr ' ' $trnl | $sort | $uniq | $awk '
13211 printf "#ifdef SIG"; printf $1; printf "\n"
13212 printf "printf(\""; printf $1; printf " %%d\\n\",SIG";
13213 printf $1; printf ");\n"
13217 printf "#endif /* JUST_NSIG */\n";
13218 printf "exit(0);\n}\n";
13221 $cat >signal.awk <<'EOP'
13222 BEGIN { ndups = 0 }
13223 $1 ~ /^NSIG$/ { nsig = $2 }
13224 ($1 !~ /^NSIG$/) && (NF == 2) {
13225 if ($2 > maxsig) { maxsig = $2 }
13226 if (sig_name[$2]) {
13227 dup_name[ndups] = $1
13228 dup_num[ndups] = $2
13240 printf("NSIG %d\n", nsig);
13241 for (n = 1; n < nsig; n++) {
13243 printf("%s %d\n", sig_name[n], sig_num[n])
13246 printf("NUM%d %d\n", n, n)
13249 for (n = 0; n < ndups; n++) {
13250 printf("%s %d\n", dup_name[n], dup_num[n])
13254 $cat >signal_cmd <<EOS
13256 if $test -s signal.lst; then
13257 echo "Using your existing signal.lst file"
13262 $cat >>signal_cmd <<'EOS'
13265 if eval $compile_ok; then
13266 ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
13268 echo "(I can't seem be able to compile the whole test program)" >&4
13269 echo "(I'll try it in little pieces.)" >&4
13270 set signal -DJUST_NSIG
13271 if eval $compile_ok; then
13272 ./signal$_exe > signal.nsg
13275 echo "I can't seem to figure out how many signals you have." >&4
13276 echo "Guessing 50." >&4
13277 echo 'NSIG 50' > signal.nsg
13279 : Now look at all the signal names, one at a time.
13280 for xx in `echo $xxx | $tr ' ' $trnl | $sort | $uniq`; do
13281 $cat > signal.c <<EOCP
13282 #include <sys/types.h>
13283 #include <signal.h>
13286 printf("$xx %d\n", SIG${xx});
13291 if eval $compile; then
13292 echo "SIG${xx} found."
13293 ./signal$_exe >> signal.ls1
13295 echo "SIG${xx} NOT found."
13298 if $test -s signal.ls1; then
13299 $cat signal.nsg signal.ls1 |
13300 $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
13304 if $test -s signal.lst; then
13307 echo "(AAK! I can't compile the test programs -- Guessing)" >&4
13308 echo 'kill -l' >signal
13309 set X `csh -f <signal`
13313 0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;;
13315 echo $@ | $tr ' ' $trnl | \
13316 $awk '{ printf "%s %d\n", $1, ++s; }
13317 END { printf "NSIG %d\n", ++s }' >signal.lst
13319 $rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1
13321 chmod a+x signal_cmd
13322 $eunicefix signal_cmd
13324 : generate list of signal names
13326 case "$sig_name_init" in
13328 *) case "$sig_num_init" in
13329 ''|*,*) doinit=yes ;;
13334 echo "Generating a list of signal names and numbers..." >&4
13336 sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
13337 sig_name=`$awk 'BEGIN { printf "ZERO " }
13338 !/^NSIG/ { printf "%s ", $1 }' signal.lst`
13339 sig_num=`$awk 'BEGIN { printf "0 " }
13340 !/^NSIG/ { printf "%d ", $2 }' signal.lst`
13341 sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
13342 !/^NSIG/ { printf "\"%s\", ", $1 }
13343 END { printf "0\n" }' signal.lst`
13344 sig_num_init=`$awk 'BEGIN { printf "0, " }
13345 !/^NSIG/ { printf "%d, ", $2}
13346 END { printf "0\n"}' signal.lst`
13349 echo "The following $sig_count signals are available:"
13351 echo $sig_name | $awk \
13352 'BEGIN { linelen = 0 }
13354 for (i = 1; i <= NF; i++) {
13355 name = "SIG" $i " "
13356 linelen = linelen + length(name)
13357 if (linelen > 70) {
13359 linelen = length(name)
13365 $rm -f signal signal.c signal.awk signal.lst signal_cmd
13367 : see what type is used for signed size_t
13368 set ssize_t ssizetype int stdio.h sys/types.h
13371 $cat > ssize.c <<EOM
13373 #include <sys/types.h>
13374 #define Size_t $sizetype
13375 #define SSize_t $dflt
13378 if (sizeof(Size_t) == sizeof(SSize_t))
13380 else if (sizeof(Size_t) == sizeof(int))
13389 if eval $compile_ok && ./ssize > /dev/null; then
13390 ssizetype=`./ssize`
13391 echo "I'll be using $ssizetype for functions returning a byte count." >&4
13394 Help! I can't compile and run the ssize_t test program: please enlighten me!
13395 (This is probably a misconfiguration in your system or libraries, and
13396 you really ought to fix it. Still, I'll try anyway.)
13398 I need a type that is the same size as $sizetype, but is guaranteed to
13399 be signed. Common values are ssize_t, int and long.
13402 rp="What signed type is the same size as $sizetype?"
13406 $rm -f ssize ssize.*
13408 : see what type of char stdio uses.
13410 if $contains 'unsigned.*char.*_ptr;' `./findhdr stdio.h` >/dev/null 2>&1 ; then
13411 echo "Your stdio uses unsigned chars." >&4
13412 stdchar="unsigned char"
13414 echo "Your stdio uses signed chars." >&4
13418 : see if time exists
13420 if test "X$d_time" = X -o X"$timetype" = X; then
13421 if set time val -f d_time; eval $csym; $val; then
13422 echo 'time() found.' >&4
13424 rp="What is the type returned by time() on this system?"
13425 set time_t timetype long stdio.h sys/types.h
13428 echo 'time() not found, hope that will do.' >&4
13436 : see what type uids are declared as in the kernel
13438 echo "Looking for the type for user ids returned by getuid()."
13439 set uid_t uidtype xxx stdio.h sys/types.h
13443 xxx=`./findhdr sys/user.h`
13444 set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
13446 unsigned) dflt="$1 $2" ;;
13450 *) dflt="$uidtype";;
13453 uid_t) echo "uid_t found." ;;
13454 *) rp="What is the type for user ids returned by getuid()?"
13462 *_t) zzz="$uidtype" ;;
13465 echo "Checking the size of $zzz..." >&4
13467 #include <sys/types.h>
13470 printf("%d\n", (int)sizeof($uidtype));
13475 if eval $compile_ok; then
13479 echo "(I can't execute the test program--guessing $uidsize.)" >&4
13482 echo "Your $zzz size is $uidsize bytes."
13487 echo "(I can't compile the test program--guessing $uidsize.)" >&4
13492 *_t) zzz="$uidtype" ;;
13495 echo "Checking the sign of $zzz..." >&4
13497 #include <sys/types.h>
13508 if eval $compile; then
13512 echo "(I can't execute the test program--guessing unsigned.)" >&4
13516 1) echo "Your $zzz is unsigned." ;;
13517 -1) echo "Your $zzz is signed." ;;
13523 echo "(I can't compile the test program--guessing unsigned.)" >&4
13529 $echo "Checking the format string to be used for uids..." >&4
13532 -1) if $test X"$uidsize" = X"$ivsize"; then
13533 uidformat="$ivdformat"
13535 if $test X"$uidsize" = X"$longsize"; then
13538 if $test X"$uidsize" = X"$intsize"; then
13541 if $test X"$uidsize" = X"$shortsize"; then
13548 *) if $test X"$uidsize" = X"$uvsize"; then
13549 uidformat="$uvuformat"
13551 if $test X"$uidsize" = X"$longsize"; then
13554 if $test X"$uidsize" = X"$intsize"; then
13557 if $test X"$uidsize" = X"$shortsize"; then
13566 : see if dbm.h is available
13567 : see if dbmclose exists
13568 set dbmclose d_dbmclose
13571 case "$d_dbmclose" in
13581 *) set rpcsvc/dbm.h i_rpcsvcdbm
13586 *) echo "We won't be including <dbm.h>"
13596 : see if this is a sys/file.h system
13601 : do we need to include sys/file.h ?
13605 if $h_sysfile; then
13607 echo "We'll be including <sys/file.h>." >&4
13610 echo "We won't be including <sys/file.h>." >&4
13620 : see if fcntl.h is there
13625 : see if we can include fcntl.h
13631 echo "We'll be including <fcntl.h>." >&4
13634 if $h_sysfile; then
13635 echo "We don't need to include <fcntl.h> if we include <sys/file.h>." >&4
13637 echo "We won't be including <fcntl.h>." >&4
13649 : see if this is a iconv.h system
13650 set iconv.h i_iconv
13653 : see if locale.h is available
13654 set locale.h i_locale
13657 : see if mach cthreads are available
13658 if test "X$usethreads" = "X$define"; then
13659 set mach/cthreads.h i_machcthr
13662 i_machcthr="$undef"
13667 : see if this is a math.h system
13671 : see if this is a mntent.h system
13672 set mntent.h i_mntent
13675 : see if ndbm.h is available
13680 : see if dbm_open exists
13681 set dbm_open d_dbm_open
13683 case "$d_dbm_open" in
13686 echo "We won't be including <ndbm.h>"
13695 : see if net/errno.h is available
13697 set net/errno.h val
13700 : Unfortunately, it causes problems on some systems. Arrgh.
13703 cat > try.c <<'EOM'
13706 #include <net/errno.h>
13712 if $cc $ccflags -c try.c >/dev/null 2>&1; then
13713 echo "We'll be including <net/errno.h>." >&4
13715 echo "We won't be including <net/errno.h>." >&4
13724 : see if netinet/tcp.h is available
13725 set netinet/tcp.h i_netinettcp
13728 : see if this is a poll.h system
13733 $echo "Guessing which symbols your C compiler and preprocessor define..." >&4
13734 $cat <<'EOSH' > Cppsym.know
13735 a29k ABI64 aegis AES_SOURCE AIX AIX32 AIX370
13736 AIX41 AIX42 AIX43 AIX_SOURCE aixpc ALL_SOURCE
13737 alliant alpha am29000 AM29000 amiga AMIGAOS AMIX
13738 ansi ANSI_C_SOURCE apollo ardent atarist att386 att3b BeOS
13739 BIG_ENDIAN BIT_MSF bsd BSD bsd43 bsd4_2 bsd4_3 BSD4_3 bsd4_4
13740 BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi
13741 bull c cadmus clipper CMU COFF COMPILER_VERSION
13742 concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX
13743 CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO
13744 Dynix DynixPTX ELF encore EPI EXTENSIONS FILE_OFFSET_BITS
13745 FreeBSD GCC_NEW_VARARGS gcos gcx gimpel
13746 GNU_SOURCE GNUC GNUC_MINOR GO32 gould GOULD_PN
13747 H3050R H3050RX hbullx20 hcx host_mips
13748 hp200 hp300 hp700 HP700 hp800 hp9000
13749 hp9000s200 hp9000s300 hp9000s400 hp9000s500
13750 hp9000s700 hp9000s800 hp9k8 hp_osf hppa hpux HPUX_SOURCE
13751 i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960
13752 iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
13753 INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1
13754 LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE
13755 LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE
13756 Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
13757 LONGDOUBLE LONGLONG LP64 luna luna88k Lynx
13758 M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF
13759 M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3
13760 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX MACH machine MachTen
13761 MATH_HAS_NO_SIDE_EFFECTS
13762 mc300 mc500 mc68000 mc68010 mc68020 mc68030 mc68040
13763 mc68060 mc68k mc68k32 mc700 mc88000 mc88100 merlin
13764 mert MiNT mips MIPS_FPSET MIPS_ISA MIPS_SIM MIPS_SZINT
13765 MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola
13766 mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr
13767 NetBSD news1500 news1700 news1800 news1900 news3700
13768 news700 news800 news900 NeXT NLS ns16000 ns32000
13769 ns32016 ns32332 ns32k nsc32000
13770 OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE
13771 pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc
13772 pc532 pdp11 PGC PIC plexus PORTAR posix
13773 POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
13774 POSIX_C_SOURCE POSIX_SOURCE POWER
13775 PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000
13776 riscix riscos RT scs SCO sequent sgi SGI_SOURCE sinix
13777 SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE
13778 sony sony_news sonyrisc sparc sparclite spectrum
13779 stardent stdc STDC_EXT stratos sun sun3 sun386
13780 Sun386i svr3 svr4 SVR4_2 SVR4_SOURCE svr5
13781 SX system SYSTYPE_BSD SYSTYPE_BSD43 SYSTYPE_BSD44
13782 SYSTYPE_SVR4 SYSTYPE_SVR5 SYSTYPE_SYSV SYSV SYSV3 SYSV4 SYSV5
13783 sysV68 sysV88 Tek4132 Tek4300 titan
13784 tower tower32 tower32_200 tower32_600 tower32_700
13785 tower32_800 tower32_850 tss
13786 u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5
13787 ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK
13788 unix UNIX95 UNIX99 unixpc unos USGr4 USGr4_2
13789 Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286
13790 XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED
13791 XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED
13794 # Maybe put other stuff here too.
13795 cat <<EOSH >>Cppsym.know
13798 ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
13799 ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
13800 $cat Cppsym.a Cppsym.b | $tr ' ' $trnl | sort | uniq > Cppsym.know
13801 $rm -f Cppsym.a Cppsym.b
13802 cat <<EOSH > Cppsym
13804 if $test \$# -gt 0; then
13805 echo \$* | $tr " " "$trnl" | ./Cppsym.try > Cppsym.got
13806 if $test -s Cppsym.got; then
13813 $tr " " "$trnl" | ./Cppsym.try
13819 cat <<EOSH > Cppsym.try
13821 cat <<'EOCP' > try.c
13827 cat <<'EOSH' >> Cppsym.try
13829 printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", %s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
13830 printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", _%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
13831 printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", __%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
13832 printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", __%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1
13836 cat <<EOSH >> Cppsym.try
13838 optimize="$optimize"
13843 $cc $optimize $ccflags $ldflags -o try try.c $libs && ./try$exe_ext
13845 chmod +x Cppsym.try
13846 $eunicefix Cppsym.try
13847 ./Cppsym < Cppsym.know > Cppsym.true
13848 : now check the C compiler for additional symbols
13849 postprocess_cc_v=''
13851 aix) postprocess_cc_v="|$tr , ' '" ;;
13858 for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
13861 -D*) echo "\$i" | $sed 's/^-D//';;
13862 -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';;
13867 postprocess_cc_v=''
13870 ./ccsym > ccsym1.raw
13871 if $test -s ccsym1.raw; then
13872 $sort ccsym1.raw | $uniq >ccsym.raw
13874 mv ccsym1.raw ccsym.raw
13877 $awk '/\=/ { print $0; next }
13878 { print $0"=1" }' ccsym.raw >ccsym.list
13879 $awk '/\=/ { print $0; next }
13880 { print $0"=1" }' Cppsym.true >ccsym.true
13881 $comm -13 ccsym.true ccsym.list >ccsym.own
13882 $comm -12 ccsym.true ccsym.list >ccsym.com
13883 $comm -23 ccsym.true ccsym.list >ccsym.cpp
13885 if $test -z ccsym.raw; then
13886 echo "Your C compiler doesn't seem to define any symbols!" >&4
13888 echo "However, your C preprocessor defines the following symbols:"
13891 cppsymbols=`$cat Cppsym.true`
13892 cppsymbols=`echo $cppsymbols`
13893 cppccsymbols="$cppsymbols"
13895 if $test -s ccsym.com; then
13896 echo "Your C compiler and pre-processor define these symbols:"
13897 $sed -e 's/\(.*\)=.*/\1/' ccsym.com
13900 cppccsymbols=`$cat ccsym.com`
13901 cppccsymbols=`echo $cppccsymbols`
13902 $test "$silent" || sleep 1
13904 if $test -s ccsym.cpp; then
13905 $test "$also" && echo " "
13906 echo "Your C pre-processor ${also}defines the following symbols:"
13907 $sed -e 's/\(.*\)=.*/\1/' ccsym.cpp
13909 cppsymbols=`$cat ccsym.cpp`
13910 cppsymbols=`echo $cppsymbols`
13911 $test "$silent" || sleep 1
13913 if $test -s ccsym.own; then
13914 $test "$also" && echo " "
13915 echo "Your C compiler ${also}defines the following cpp symbols:"
13916 $sed -e 's/\(.*\)=1/\1/' ccsym.own
13917 $sed -e 's/\(.*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
13918 ccsymbols=`$cat ccsym.own`
13919 ccsymbols=`echo $ccsymbols`
13920 $test "$silent" || sleep 1
13925 : see if this is a termio system
13929 if $test `./findhdr termios.h`; then
13930 set tcsetattr i_termios
13936 "$define") echo "You have POSIX termios.h... good!" >&4;;
13937 *) if ./Cppsym pyr; then
13938 case "`/bin/universe`" in
13939 ucb) if $test `./findhdr sgtty.h`; then
13941 echo "<sgtty.h> found." >&4
13943 echo "System is pyramid with BSD universe."
13944 echo "<sgtty.h> not found--you could have problems." >&4
13946 *) if $test `./findhdr termio.h`; then
13948 echo "<termio.h> found." >&4
13950 echo "System is pyramid with USG universe."
13951 echo "<termio.h> not found--you could have problems." >&4
13955 if $test `./findhdr termio.h`; then
13956 echo "<termio.h> found." >&4
13958 elif $test `./findhdr sgtty.h`; then
13959 echo "<sgtty.h> found." >&4
13962 echo "Neither <termio.h> nor <sgtty.h> found--you could have problems." >&4
13965 if $test `./findhdr sgtty.h`; then
13966 echo "<sgtty.h> found." >&4
13968 elif $test `./findhdr termio.h`; then
13969 echo "<termio.h> found." >&4
13972 echo "Neither <sgtty.h> nor <termio.h> found--you could have problems." >&4
13976 set i_termio; eval $setvar
13977 val=$val2; set i_sgtty; eval $setvar
13978 val=$val3; set i_termios; eval $setvar
13980 : see if this is a shadow.h system
13981 set shadow.h i_shadow
13984 : see if this is a socks.h system
13985 set socks.h i_socks
13988 : see if stdarg is available
13990 if $test `./findhdr stdarg.h`; then
13991 echo "<stdarg.h> found." >&4
13994 echo "<stdarg.h> NOT found." >&4
13998 : see if varags is available
14000 if $test `./findhdr varargs.h`; then
14001 echo "<varargs.h> found." >&4
14003 echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
14006 : set up the varargs testing programs
14007 $cat > varargs.c <<EOP
14009 #include <stdarg.h>
14012 #include <varargs.h>
14016 int f(char *p, ...)
14030 p = va_arg(ap, char *);
14035 $cat > varargs <<EOP
14037 if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
14046 : now check which varargs header should be included
14051 if `./varargs I_STDARG`; then
14053 elif `./varargs I_VARARGS`; then
14058 if `./varargs I_VARARGS`; then
14065 echo "I could not find the definition for va_dcl... You have problems..." >&4
14066 val="$undef"; set i_stdarg; eval $setvar
14067 val="$undef"; set i_varargs; eval $setvar
14072 case "$i_varhdr" in
14074 val="$define"; set i_stdarg; eval $setvar
14075 val="$undef"; set i_varargs; eval $setvar
14078 val="$undef"; set i_stdarg; eval $setvar
14079 val="$define"; set i_varargs; eval $setvar
14082 echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
14086 : see if stddef is available
14087 set stddef.h i_stddef
14090 : see if sys/access.h is available
14091 set sys/access.h i_sysaccess
14094 : see if ioctl defs are in sgtty, termio, sys/filio or sys/ioctl
14095 set sys/filio.h i_sysfilio
14098 if $test `./findhdr sys/ioctl.h`; then
14100 echo '<sys/ioctl.h> found.' >&4
14103 if $test $i_sysfilio = "$define"; then
14104 echo '<sys/ioctl.h> NOT found.' >&4
14106 $test $i_sgtty = "$define" && xxx="sgtty.h"
14107 $test $i_termio = "$define" && xxx="termio.h"
14108 $test $i_termios = "$define" && xxx="termios.h"
14109 echo "No <sys/ioctl.h> found, assuming ioctl args are defined in <$xxx>." >&4
14116 : see if this is a syslog.h system
14117 set syslog.h i_syslog
14121 : see if this is a sys/mode.h system
14122 set sys/mode.h i_sysmode
14125 : see if sys/resource.h has to be included
14126 set sys/resource.h i_sysresrc
14129 : see if sys/security.h is available
14130 set sys/security.h i_syssecrt
14133 : see if this is a sys/statvfs.h system
14134 set sys/statvfs.h i_sysstatvfs
14137 : see if this is a sys/uio.h system
14138 set sys/uio.h i_sysuio
14141 : see if this is a sys/un.h system
14142 set sys/un.h i_sysun
14146 : see if this is a sys/utsname.h system
14147 set sys/utsname.h i_sysutsname
14150 : see if this is a syswait system
14151 set sys/wait.h i_syswait
14154 : see if this is a ustat.h system
14155 set ustat.h i_ustat
14158 : see if this is an utime system
14159 set utime.h i_utime
14162 : see if this is a values.h system
14163 set values.h i_values
14166 : see if this is a vfork system
14169 set vfork.h i_vfork
14177 : see if gdbm.h is available
14182 : see if gdbm_open exists
14183 set gdbm_open d_gdbm_open
14185 case "$d_gdbm_open" in
14188 echo "We won't be including <gdbm.h>"
14198 echo "Looking for extensions..." >&4
14199 : If we are using the old config.sh, known_extensions may contain
14200 : old or inaccurate or duplicate values.
14201 known_extensions=''
14202 nonxs_extensions=''
14203 : We do not use find because it might not be available.
14204 : We do not just use MANIFEST because the user may have dropped
14205 : some additional extensions into the source tree and expect them
14208 : Function to recursively find available extensions, ignoring DynaLoader
14209 : NOTE: recursion limit of 10 to prevent runaway in case of symlink madness
14213 DynaLoader|dynaload) ;;
14215 if $test -f $xxx/$xxx.xs; then
14216 known_extensions="$known_extensions $1$xxx";
14217 elif $test -f $xxx/Makefile.PL; then
14218 nonxs_extensions="$nonxs_extensions $1$xxx";
14220 if $test -d $xxx -a $# -lt 10; then
14223 eval $find_extensions;
14235 eval $find_extensions
14236 set X $nonxs_extensions
14238 nonxs_extensions="$*"
14239 set X $known_extensions
14241 known_extensions="$*"
14244 : Now see which are supported on this system.
14246 for xxx in $known_extensions ; do
14250 $define) avail_ext="$avail_ext $xxx" ;;
14253 GDBM_File|gdbm_fil)
14255 $define) avail_ext="$avail_ext $xxx" ;;
14258 NDBM_File|ndbm_fil)
14261 case "$osname-$use64bits" in
14264 *-lndbm*) avail_ext="$avail_ext $xxx" ;;
14267 *) avail_ext="$avail_ext $xxx" ;;
14272 ODBM_File|odbm_fil)
14273 case "${i_dbm}${i_rpcsvcdbm}" in
14275 case "$osname-$use64bits" in
14278 *-ldbm*) avail_ext="$avail_ext $xxx" ;;
14281 *) avail_ext="$avail_ext $xxx" ;;
14287 case "$useposix" in
14288 true|define|y) avail_ext="$avail_ext $xxx" ;;
14292 case "$useopcode" in
14293 true|define|y) avail_ext="$avail_ext $xxx" ;;
14297 case "$d_socket" in
14298 true|$define|y) avail_ext="$avail_ext $xxx" ;;
14302 case "$usethreads" in
14303 true|$define|y) avail_ext="$avail_ext $xxx" ;;
14307 : XXX Do we need a useipcsysv variable here
14308 case "${d_msg}${d_sem}${d_shm}" in
14309 *"${define}"*) avail_ext="$avail_ext $xxx" ;;
14312 *) avail_ext="$avail_ext $xxx"
14321 : Now see which nonxs extensions are supported on this system.
14322 : For now assume all are.
14324 for xxx in $nonxs_extensions ; do
14326 *) nonxs_ext="$nonxs_ext $xxx"
14338 A number of extensions are supplied with $package. You may choose to
14339 compile these extensions for dynamic loading (the default), compile
14340 them into the $package executable (static loading), or not include
14341 them at all. Answer "none" to include no extensions.
14342 Note that DynaLoader is always built and need not be mentioned here.
14345 case "$dynamic_ext" in
14346 '') dflt="$avail_ext" ;;
14347 *) dflt="$dynamic_ext"
14348 # Perhaps we are reusing an old out-of-date config.sh.
14351 if test X"$dynamic_ext" != X"$avail_ext"; then
14353 NOTICE: Your previous config.sh list may be incorrect.
14354 The extensions now available to you are
14356 but the default list from your previous config.sh is
14368 rp="What extensions do you wish to load dynamically?"
14371 none) dynamic_ext=' ' ;;
14372 *) dynamic_ext="$ans" ;;
14375 case "$static_ext" in
14377 : Exclude those already listed in dynamic linking
14379 for xxx in $avail_ext; do
14380 case " $dynamic_ext " in
14382 *) dflt="$dflt $xxx" ;;
14389 *) dflt="$static_ext"
14396 rp="What extensions do you wish to load statically?"
14399 none) static_ext=' ' ;;
14400 *) static_ext="$ans" ;;
14405 A number of extensions are supplied with $package. Answer "none"
14406 to include no extensions.
14407 Note that DynaLoader is always built and need not be mentioned here.
14410 case "$static_ext" in
14411 '') dflt="$avail_ext" ;;
14412 *) dflt="$static_ext"
14413 # Perhaps we are reusing an old out-of-date config.sh.
14416 if test X"$static_ext" != X"$avail_ext"; then
14418 NOTICE: Your previous config.sh list may be incorrect.
14419 The extensions now available to you are
14421 but the default list from your previous config.sh is
14430 : Exclude those that are not xs extensions
14434 rp="What extensions do you wish to include?"
14437 none) static_ext=' ' ;;
14438 *) static_ext="$ans" ;;
14443 set X $dynamic_ext $static_ext $nonxs_ext
14447 : Remove build directory name from cppstdin so it can be used from
14448 : either the present location or the final installed location.
14450 : Get out of the UU directory to get correct path name.
14452 case "$cppstdin" in
14454 echo "Stripping down cppstdin path name"
14460 : end of configuration questions
14462 echo "End of configuration questions."
14465 : back to where it started
14466 if test -d ../UU; then
14470 : configuration may be patched via a 'config.over' file
14471 if $test -f config.over; then
14474 rp='I see a config.over file. Do you wish to load it?'
14477 n*) echo "OK, I'll ignore it.";;
14479 echo "Configuration override changes have been loaded."
14484 : in case they want portability, strip down executable paths
14485 case "$d_portable" in
14488 echo "Stripping down executable paths..." >&4
14489 for file in $loclist $trylist; do
14491 eval $file=`basename $temp`
14496 : create config.sh file
14498 echo "Creating config.sh..." >&4
14499 $spitshell <<EOT >config.sh
14502 # This file was produced by running the Configure script. It holds all the
14503 # definitions figured out by Configure. Should you modify one of these values,
14504 # do not forget to propagate your changes by running "Configure -der". You may
14505 # instead choose to run each of the .SH files by yourself, or "Configure -S".
14508 # Package name : $package
14509 # Source directory : $src
14510 # Configuration time: $cf_time
14511 # Configured by : $cf_by
14512 # Target system : $myuname
14522 Revision='$Revision'
14529 alignbytes='$alignbytes'
14530 ansi2knr='$ansi2knr'
14531 aphostname='$aphostname'
14532 api_revision='$api_revision'
14533 api_subversion='$api_subversion'
14534 api_version='$api_version'
14535 api_versionstring='$api_versionstring'
14538 archlibexp='$archlibexp'
14539 archname64='$archname64'
14540 archname='$archname'
14541 archobjs='$archobjs'
14546 bincompat5005='$bincompat5005'
14550 byteorder='$byteorder'
14552 castflags='$castflags'
14555 cccdlflags='$cccdlflags'
14556 ccdlflags='$ccdlflags'
14558 ccsymbols='$ccsymbols'
14560 cf_email='$cf_email'
14562 charsize='$charsize'
14566 clocktype='$clocktype'
14568 compress='$compress'
14569 contains='$contains'
14573 cpp_stuff='$cpp_stuff'
14574 cppccsymbols='$cppccsymbols'
14575 cppflags='$cppflags'
14577 cppminus='$cppminus'
14579 cppstdin='$cppstdin'
14580 cppsymbols='$cppsymbols'
14581 crosscompile='$crosscompile'
14582 cryptlib='$cryptlib'
14584 d_Gconvert='$d_Gconvert'
14585 d_PRIEldbl='$d_PRIEldbl'
14586 d_PRIFldbl='$d_PRIFldbl'
14587 d_PRIGldbl='$d_PRIGldbl'
14588 d_PRIX64='$d_PRIX64'
14589 d_PRId64='$d_PRId64'
14590 d_PRIeldbl='$d_PRIeldbl'
14591 d_PRIfldbl='$d_PRIfldbl'
14592 d_PRIgldbl='$d_PRIgldbl'
14593 d_PRIi64='$d_PRIi64'
14594 d_PRIo64='$d_PRIo64'
14595 d_PRIu64='$d_PRIu64'
14596 d_PRIx64='$d_PRIx64'
14597 d_access='$d_access'
14598 d_accessx='$d_accessx'
14600 d_archlib='$d_archlib'
14603 d_attribut='$d_attribut'
14606 d_bincompat5005='$d_bincompat5005'
14608 d_bsdgetpgrp='$d_bsdgetpgrp'
14609 d_bsdsetpgrp='$d_bsdsetpgrp'
14611 d_casti32='$d_casti32'
14612 d_castneg='$d_castneg'
14613 d_charvspr='$d_charvspr'
14615 d_chroot='$d_chroot'
14616 d_chsize='$d_chsize'
14617 d_closedir='$d_closedir'
14621 d_cuserid='$d_cuserid'
14622 d_dbl_dig='$d_dbl_dig'
14623 d_difftime='$d_difftime'
14624 d_dirnamlen='$d_dirnamlen'
14625 d_dlerror='$d_dlerror'
14626 d_dlopen='$d_dlopen'
14627 d_dlsymun='$d_dlsymun'
14628 d_dosuid='$d_dosuid'
14629 d_drand48proto='$d_drand48proto'
14631 d_eaccess='$d_eaccess'
14632 d_endgrent='$d_endgrent'
14633 d_endhent='$d_endhent'
14634 d_endnent='$d_endnent'
14635 d_endpent='$d_endpent'
14636 d_endpwent='$d_endpwent'
14637 d_endsent='$d_endsent'
14638 d_endspent='$d_endspent'
14639 d_eofnblk='$d_eofnblk'
14640 d_eunice='$d_eunice'
14641 d_fchmod='$d_fchmod'
14642 d_fchown='$d_fchown'
14644 d_fd_macros='$d_fd_macros'
14645 d_fd_set='$d_fd_set'
14646 d_fds_bits='$d_fds_bits'
14647 d_fgetpos='$d_fgetpos'
14648 d_flexfnam='$d_flexfnam'
14651 d_fpathconf='$d_fpathconf'
14652 d_fpos64_t='$d_fpos64_t'
14653 d_fs_data_s='$d_fs_data_s'
14654 d_fseeko='$d_fseeko'
14655 d_fsetpos='$d_fsetpos'
14656 d_fstatfs='$d_fstatfs'
14657 d_fstatvfs='$d_fstatvfs'
14658 d_ftello='$d_ftello'
14660 d_getcwd='$d_getcwd'
14661 d_getgrent='$d_getgrent'
14662 d_getgrps='$d_getgrps'
14663 d_gethbyaddr='$d_gethbyaddr'
14664 d_gethbyname='$d_gethbyname'
14665 d_gethent='$d_gethent'
14666 d_gethname='$d_gethname'
14667 d_gethostprotos='$d_gethostprotos'
14668 d_getlogin='$d_getlogin'
14669 d_getmnt='$d_getmnt'
14670 d_getmntent='$d_getmntent'
14671 d_getnbyaddr='$d_getnbyaddr'
14672 d_getnbyname='$d_getnbyname'
14673 d_getnent='$d_getnent'
14674 d_getnetprotos='$d_getnetprotos'
14675 d_getpbyname='$d_getpbyname'
14676 d_getpbynumber='$d_getpbynumber'
14677 d_getpent='$d_getpent'
14678 d_getpgid='$d_getpgid'
14679 d_getpgrp2='$d_getpgrp2'
14680 d_getpgrp='$d_getpgrp'
14681 d_getppid='$d_getppid'
14682 d_getprior='$d_getprior'
14683 d_getprotoprotos='$d_getprotoprotos'
14684 d_getpwent='$d_getpwent'
14685 d_getsbyname='$d_getsbyname'
14686 d_getsbyport='$d_getsbyport'
14687 d_getsent='$d_getsent'
14688 d_getservprotos='$d_getservprotos'
14689 d_getspent='$d_getspent'
14690 d_getspnam='$d_getspnam'
14691 d_gettimeod='$d_gettimeod'
14692 d_gnulibc='$d_gnulibc'
14693 d_grpasswd='$d_grpasswd'
14694 d_hasmntopt='$d_hasmntopt'
14698 d_inetaton='$d_inetaton'
14699 d_int64t='$d_int64t'
14700 d_isascii='$d_isascii'
14701 d_killpg='$d_killpg'
14702 d_lchown='$d_lchown'
14703 d_ldbl_dig='$d_ldbl_dig'
14705 d_locconv='$d_locconv'
14707 d_longdbl='$d_longdbl'
14708 d_longlong='$d_longlong'
14711 d_mbstowcs='$d_mbstowcs'
14712 d_mbtowc='$d_mbtowc'
14713 d_memchr='$d_memchr'
14714 d_memcmp='$d_memcmp'
14715 d_memcpy='$d_memcpy'
14716 d_memmove='$d_memmove'
14717 d_memset='$d_memset'
14719 d_mkdtemp='$d_mkdtemp'
14720 d_mkfifo='$d_mkfifo'
14721 d_mkstemp='$d_mkstemp'
14722 d_mkstemps='$d_mkstemps'
14723 d_mktime='$d_mktime'
14725 d_mprotect='$d_mprotect'
14727 d_msg_ctrunc='$d_msg_ctrunc'
14728 d_msg_dontroute='$d_msg_dontroute'
14729 d_msg_oob='$d_msg_oob'
14730 d_msg_peek='$d_msg_peek'
14731 d_msg_proxy='$d_msg_proxy'
14732 d_msgctl='$d_msgctl'
14733 d_msgget='$d_msgget'
14734 d_msgrcv='$d_msgrcv'
14735 d_msgsnd='$d_msgsnd'
14737 d_munmap='$d_munmap'
14738 d_mymalloc='$d_mymalloc'
14740 d_nv_preserves_uv='$d_nv_preserves_uv'
14741 d_off64_t='$d_off64_t'
14742 d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
14743 d_oldpthreads='$d_oldpthreads'
14744 d_oldsock='$d_oldsock'
14746 d_pathconf='$d_pathconf'
14748 d_phostname='$d_phostname'
14751 d_portable='$d_portable'
14752 d_pthread_yield='$d_pthread_yield'
14754 d_pwchange='$d_pwchange'
14755 d_pwclass='$d_pwclass'
14756 d_pwcomment='$d_pwcomment'
14757 d_pwexpire='$d_pwexpire'
14758 d_pwgecos='$d_pwgecos'
14759 d_pwpasswd='$d_pwpasswd'
14760 d_pwquota='$d_pwquota'
14762 d_readdir='$d_readdir'
14763 d_readlink='$d_readlink'
14764 d_rename='$d_rename'
14765 d_rewinddir='$d_rewinddir'
14767 d_safebcpy='$d_safebcpy'
14768 d_safemcpy='$d_safemcpy'
14769 d_sanemcmp='$d_sanemcmp'
14770 d_sched_yield='$d_sched_yield'
14771 d_scm_rights='$d_scm_rights'
14772 d_seekdir='$d_seekdir'
14773 d_select='$d_select'
14775 d_semctl='$d_semctl'
14776 d_semctl_semid_ds='$d_semctl_semid_ds'
14777 d_semctl_semun='$d_semctl_semun'
14778 d_semget='$d_semget'
14780 d_setegid='$d_setegid'
14781 d_seteuid='$d_seteuid'
14782 d_setgrent='$d_setgrent'
14783 d_setgrps='$d_setgrps'
14784 d_sethent='$d_sethent'
14785 d_setlinebuf='$d_setlinebuf'
14786 d_setlocale='$d_setlocale'
14787 d_setnent='$d_setnent'
14788 d_setpent='$d_setpent'
14789 d_setpgid='$d_setpgid'
14790 d_setpgrp2='$d_setpgrp2'
14791 d_setpgrp='$d_setpgrp'
14792 d_setprior='$d_setprior'
14793 d_setpwent='$d_setpwent'
14794 d_setregid='$d_setregid'
14795 d_setresgid='$d_setresgid'
14796 d_setresuid='$d_setresuid'
14797 d_setreuid='$d_setreuid'
14798 d_setrgid='$d_setrgid'
14799 d_setruid='$d_setruid'
14800 d_setsent='$d_setsent'
14801 d_setsid='$d_setsid'
14802 d_setspent='$d_setspent'
14803 d_setvbuf='$d_setvbuf'
14807 d_shmatprototype='$d_shmatprototype'
14808 d_shmctl='$d_shmctl'
14810 d_shmget='$d_shmget'
14811 d_sigaction='$d_sigaction'
14812 d_sigsetjmp='$d_sigsetjmp'
14813 d_socket='$d_socket'
14814 d_sockpair='$d_sockpair'
14816 d_statblks='$d_statblks'
14817 d_statfs_f_flags='$d_statfs_f_flags'
14818 d_statfs_s='$d_statfs_s'
14819 d_statvfs='$d_statvfs'
14820 d_stdio_cnt_lval='$d_stdio_cnt_lval'
14821 d_stdio_ptr_lval='$d_stdio_ptr_lval'
14822 d_stdio_stream_array='$d_stdio_stream_array'
14823 d_stdiobase='$d_stdiobase'
14824 d_stdstdio='$d_stdstdio'
14825 d_strchr='$d_strchr'
14826 d_strcoll='$d_strcoll'
14827 d_strctcpy='$d_strctcpy'
14828 d_strerrm='$d_strerrm'
14829 d_strerror='$d_strerror'
14830 d_strtod='$d_strtod'
14831 d_strtol='$d_strtol'
14832 d_strtold='$d_strtold'
14833 d_strtoll='$d_strtoll'
14834 d_strtoul='$d_strtoul'
14835 d_strtoull='$d_strtoull'
14836 d_strtouq='$d_strtouq'
14837 d_strxfrm='$d_strxfrm'
14838 d_suidsafe='$d_suidsafe'
14839 d_symlink='$d_symlink'
14840 d_syscall='$d_syscall'
14841 d_sysconf='$d_sysconf'
14842 d_sysernlst='$d_sysernlst'
14843 d_syserrlst='$d_syserrlst'
14844 d_system='$d_system'
14845 d_tcgetpgrp='$d_tcgetpgrp'
14846 d_tcsetpgrp='$d_tcsetpgrp'
14847 d_telldir='$d_telldir'
14848 d_telldirproto='$d_telldirproto'
14851 d_truncate='$d_truncate'
14852 d_tzname='$d_tzname'
14855 d_union_semun='$d_union_semun'
14857 d_vendorbin='$d_vendorbin'
14858 d_vendorlib='$d_vendorlib'
14860 d_void_closedir='$d_void_closedir'
14861 d_voidsig='$d_voidsig'
14862 d_voidtty='$d_voidtty'
14863 d_volatile='$d_volatile'
14864 d_vprintf='$d_vprintf'
14866 d_waitpid='$d_waitpid'
14867 d_wcstombs='$d_wcstombs'
14868 d_wctomb='$d_wctomb'
14871 db_hashtype='$db_hashtype'
14872 db_prefixtype='$db_prefixtype'
14873 defvoidused='$defvoidused'
14874 direntrytype='$direntrytype'
14877 doublesize='$doublesize'
14879 dynamic_ext='$dynamic_ext'
14885 eunicefix='$eunicefix'
14888 extensions='$extensions'
14889 fflushNULL='$fflushNULL'
14890 fflushall='$fflushall'
14892 firstmakefile='$firstmakefile'
14894 fpossize='$fpossize'
14895 fpostype='$fpostype'
14896 freetype='$freetype'
14898 full_csh='$full_csh'
14899 full_sed='$full_sed'
14900 gccversion='$gccversion'
14901 gidformat='$gidformat'
14907 groupcat='$groupcat'
14908 groupstype='$groupstype'
14911 h_sysfile='$h_sysfile'
14923 i_arpainet='$i_arpainet'
14924 i_bsdioctl='$i_bsdioctl'
14927 i_dirent='$i_dirent'
14935 i_inttypes='$i_inttypes'
14936 i_limits='$i_limits'
14937 i_locale='$i_locale'
14938 i_machcthr='$i_machcthr'
14939 i_malloc='$i_malloc'
14941 i_memory='$i_memory'
14942 i_mntent='$i_mntent'
14945 i_neterrno='$i_neterrno'
14946 i_netinettcp='$i_netinettcp'
14949 i_pthread='$i_pthread'
14951 i_rpcsvcdbm='$i_rpcsvcdbm'
14954 i_shadow='$i_shadow'
14956 i_stdarg='$i_stdarg'
14957 i_stddef='$i_stddef'
14958 i_stdlib='$i_stdlib'
14959 i_string='$i_string'
14960 i_sysaccess='$i_sysaccess'
14961 i_sysdir='$i_sysdir'
14962 i_sysfile='$i_sysfile'
14963 i_sysfilio='$i_sysfilio'
14965 i_sysioctl='$i_sysioctl'
14966 i_syslog='$i_syslog'
14967 i_sysmman='$i_sysmman'
14968 i_sysmode='$i_sysmode'
14969 i_sysmount='$i_sysmount'
14970 i_sysndir='$i_sysndir'
14971 i_sysparam='$i_sysparam'
14972 i_sysresrc='$i_sysresrc'
14973 i_syssecrt='$i_syssecrt'
14974 i_sysselct='$i_sysselct'
14975 i_syssockio='$i_syssockio'
14976 i_sysstat='$i_sysstat'
14977 i_sysstatfs='$i_sysstatfs'
14978 i_sysstatvfs='$i_sysstatvfs'
14979 i_systime='$i_systime'
14980 i_systimek='$i_systimek'
14981 i_systimes='$i_systimes'
14982 i_systypes='$i_systypes'
14983 i_sysuio='$i_sysuio'
14985 i_sysutsname='$i_sysutsname'
14986 i_sysvfs='$i_sysvfs'
14987 i_syswait='$i_syswait'
14988 i_termio='$i_termio'
14989 i_termios='$i_termios'
14991 i_unistd='$i_unistd'
14994 i_values='$i_values'
14995 i_varargs='$i_varargs'
14996 i_varhdr='$i_varhdr'
14998 ignore_versioned_solibs='$ignore_versioned_solibs'
14999 inc_version_list='$inc_version_list'
15000 inc_version_list_init='$inc_version_list_init'
15003 installarchlib='$installarchlib'
15004 installbin='$installbin'
15005 installman1dir='$installman1dir'
15006 installman3dir='$installman3dir'
15007 installprefix='$installprefix'
15008 installprefixexp='$installprefixexp'
15009 installprivlib='$installprivlib'
15010 installscript='$installscript'
15011 installsitearch='$installsitearch'
15012 installsitebin='$installsitebin'
15013 installsitelib='$installsitelib'
15014 installstyle='$installstyle'
15015 installusrbinperl='$installusrbinperl'
15016 installvendorbin='$installvendorbin'
15017 installvendorlib='$installvendorlib'
15019 ivdformat='$ivdformat'
15022 known_extensions='$known_extensions'
15026 lddlflags='$lddlflags'
15028 ldlibpthname='$ldlibpthname'
15035 libsdirs='$libsdirs'
15036 libsfiles='$libsfiles'
15037 libsfound='$libsfound'
15038 libswanted='$libswanted'
15044 locincpth='$locincpth'
15045 loclibpth='$loclibpth'
15046 longdblsize='$longdblsize'
15047 longlongsize='$longlongsize'
15048 longsize='$longsize'
15052 lseeksize='$lseeksize'
15053 lseektype='$lseektype'
15057 make_set_make='$make_set_make'
15058 mallocobj='$mallocobj'
15059 mallocsrc='$mallocsrc'
15060 malloctype='$malloctype'
15062 man1direxp='$man1direxp'
15065 man3direxp='$man3direxp'
15068 mips_type='$mips_type'
15070 mmaptype='$mmaptype'
15072 modetype='$modetype'
15074 multiarch='$multiarch'
15076 myarchname='$myarchname'
15077 mydomain='$mydomain'
15078 myhostname='$myhostname'
15081 netdb_hlen_type='$netdb_hlen_type'
15082 netdb_host_type='$netdb_host_type'
15083 netdb_name_type='$netdb_name_type'
15084 netdb_net_type='$netdb_net_type'
15087 nm_so_opt='$nm_so_opt'
15088 nonxs_ext='$nonxs_ext'
15092 o_nonblock='$o_nonblock'
15094 old_pthread_create_joinable='$old_pthread_create_joinable'
15095 optimize='$optimize'
15096 orderlib='$orderlib'
15102 patchlevel='$patchlevel'
15103 path_sep='$path_sep'
15105 perladmin='$perladmin'
15106 perlpath='$perlpath'
15108 phostname='$phostname'
15111 pm_apiversion='$pm_apiversion'
15115 prefixexp='$prefixexp'
15117 privlibexp='$privlibexp'
15118 prototype='$prototype'
15120 quadkind='$quadkind'
15121 quadtype='$quadtype'
15122 randbits='$randbits'
15123 randfunc='$randfunc'
15124 randseedtype='$randseedtype'
15126 rd_nodata='$rd_nodata'
15130 sPRIEldbl='$sPRIEldbl'
15131 sPRIFldbl='$sPRIFldbl'
15132 sPRIGldbl='$sPRIGldbl'
15135 sPRIeldbl='$sPRIeldbl'
15136 sPRIfldbl='$sPRIfldbl'
15137 sPRIgldbl='$sPRIgldbl'
15142 sched_yield='$sched_yield'
15143 scriptdir='$scriptdir'
15144 scriptdirexp='$scriptdirexp'
15146 seedfunc='$seedfunc'
15147 selectminbits='$selectminbits'
15148 selecttype='$selecttype'
15149 sendmail='$sendmail'
15152 sharpbang='$sharpbang'
15153 shmattype='$shmattype'
15154 shortsize='$shortsize'
15157 sig_count='$sig_count'
15158 sig_name='$sig_name'
15159 sig_name_init='$sig_name_init'
15161 sig_num_init='$sig_num_init'
15162 signal_t='$signal_t'
15163 sitearch='$sitearch'
15164 sitearchexp='$sitearchexp'
15166 sitebinexp='$sitebinexp'
15168 sitelibexp='$sitelibexp'
15169 siteprefix='$siteprefix'
15170 siteprefixexp='$siteprefixexp'
15171 sizetype='$sizetype'
15176 sockethdr='$sockethdr'
15177 socketlib='$socketlib'
15179 spackage='$spackage'
15180 spitshell='$spitshell'
15183 ssizetype='$ssizetype'
15184 startperl='$startperl'
15186 static_ext='$static_ext'
15188 stdio_base='$stdio_base'
15189 stdio_bufsiz='$stdio_bufsiz'
15190 stdio_cnt='$stdio_cnt'
15191 stdio_filbuf='$stdio_filbuf'
15192 stdio_ptr='$stdio_ptr'
15193 stdio_stream_array='$stdio_stream_array'
15196 subversion='$subversion'
15203 timeincl='$timeincl'
15204 timetype='$timetype'
15217 uidformat='$uidformat'
15223 uquadtype='$uquadtype'
15224 use5005threads='$use5005threads'
15225 use64bits='$use64bits'
15227 useithreads='$useithreads'
15228 uselargefiles='$uselargefiles'
15229 uselongdouble='$uselongdouble'
15230 usemorebits='$usemorebits'
15231 usemultiplicity='$usemultiplicity'
15232 usemymalloc='$usemymalloc'
15234 useopcode='$useopcode'
15235 useperlio='$useperlio'
15236 useposix='$useposix'
15238 useshrplib='$useshrplib'
15239 usesocks='$usesocks'
15240 usethreads='$usethreads'
15241 usevendorprefix='$usevendorprefix'
15242 usevfork='$usevfork'
15245 uvoformat='$uvoformat'
15248 uvuformat='$uvuformat'
15249 uvxformat='$uvxformat'
15250 vendorbin='$vendorbin'
15251 vendorbinexp='$vendorbinexp'
15252 vendorlib='$vendorlib'
15253 vendorlibexp='$vendorlibexp'
15254 vendorprefix='$vendorprefix'
15255 vendorprefixexp='$vendorprefixexp'
15258 voidflags='$voidflags'
15260 xs_apiversion='$xs_apiversion'
15265 : Add in command line options if available
15266 $test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh
15268 : add special variables
15269 $test -f $src/patchlevel.h && \
15270 awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
15271 echo "CONFIGDOTSH=true" >>config.sh
15273 : propagate old symbols
15274 if $test -f UU/config.sh; then
15275 <UU/config.sh sort | uniq >UU/oldconfig.sh
15276 sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\
15277 sort | uniq -u >UU/oldsyms
15278 set X `cat UU/oldsyms`
15284 Hmm...You had some extra variables I don't know about...I'll try to keep 'em...
15286 echo "# Variables propagated from previous config.sh file." >>config.sh
15287 for sym in `cat UU/oldsyms`; do
15288 echo " Propagating $hint variable "'$'"$sym..."
15289 eval 'tmp="$'"${sym}"'"'
15291 sed -e "s/'/'\"'\"'/g" -e "s/^/$sym='/" -e "s/$/'/" >>config.sh
15297 : Finish up by extracting the .SH files
15311 If you'd like to make any changes to the config.sh file before I begin
15312 to configure things, do it as a shell escape now (e.g. !vi config.sh).
15315 rp="Press return or use a shell escape to edit config.sh:"
15320 *) : in case they cannot read
15321 sh 1>&4 -c "$ans";;
15326 : if this fails, just run all the .SH files by hand
15333 if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
15340 Now you need to generate make dependencies by running "$make depend".
15341 You might prefer to run it in background: "$make depend > makedepend.out &"
15342 It can take a while, so you might not want to run it right now.
15347 rp="Run $make depend now?"
15351 $make depend && echo "Now you must run a $make."
15354 echo "You must run '$make depend' then '$make'."
15357 elif test -f [Mm]akefile; then
15359 echo "Now you must run a $make."
15364 if $test -f Policy.sh; then
15367 If you compile $package on a different machine or from a different object
15368 directory, copy the Policy.sh file from this object directory to the
15369 new one before you run Configure -- this will help you with most of
15370 the policy defaults.
15374 if $test -f config.msg; then
15375 echo "Hmm. I also noted the following information while running:"
15377 $cat config.msg >&4
15380 $rm -f kit*isdone ark*isdone