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 Sat Feb 26 00:48:15 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
454 d_old_pthread_create_joinable=''
455 old_pthread_create_joinable=''
694 inc_version_list_init=''
712 ignore_versioned_solibs=''
877 d_stdio_stream_array=''
878 stdio_stream_array=''
924 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
927 : We must find out about Eunice early
929 if test -f /etc/unixtovms; then
930 eunicefix=/etc/unixtovms
932 if test -f /etc/unixtovms.exe; then
933 eunicefix=/etc/unixtovms.exe
937 : set useposix=false in your hint file to disable the POSIX extension.
939 : set useopcode=false in your hint file to disable the Opcode extension.
941 : Trailing extension. Override this in a hint file, if needed.
943 : Extra object files, if any, needed on this platform.
945 : Possible local include directories to search.
946 : Set locincpth to "" in a hint file to defeat local include searches.
947 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
948 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
950 : no include file wanted by default
954 : change the next line if compiling for Xenix/286 on Xenix/386
955 xlibpth='/usr/lib/386 /lib/386'
956 : Possible local library directories to search.
957 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
958 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
960 : general looking path for locating libraries
961 glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
962 glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
963 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
964 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
965 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
967 : Private path used by Configure to find libraries. Its value
968 : is prepended to libpth. This variable takes care of special
969 : machines, like the mips. Usually, it should be empty.
972 : default library list
974 : some systems want to use only the non-versioned libso:s
975 ignore_versioned_solibs=''
976 : set usemultiplicity on the Configure command line to enable multiplicity.
977 : set usesocks on the Configure command line to enable socks.
978 : set usethreads on the Configure command line to enable threads.
979 : full support for void wanted by default
982 : List of libraries we want.
983 : If anyone needs -lnet, put it in a hint file.
984 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl'
985 libswanted="$libswanted dld ld sun m c cposix posix"
986 libswanted="$libswanted ndir dir crypt sec"
987 libswanted="$libswanted ucb bsd BSD PW x"
988 : We probably want to search /usr/shlib before most other libraries.
989 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
990 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
991 glibpth="/usr/shlib $glibpth"
992 : Do not use vfork unless overridden by a hint file.
995 : Find the basic shell for Bourne shell scripts
999 *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
1002 if test -f "$xxx"; then
1005 : Build up a list and do a single loop so we can 'break' out.
1006 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1007 for xxx in sh bash ksh pdksh ash; do
1009 try="$try ${p}/${xxx}"
1013 if test -f "$xxx"; then
1016 elif test -f "$xxx.exe"; then
1027 $me: Fatal Error: I can't find a Bourne Shell anywhere.
1029 Usually it's in /bin/sh. How did you even get this far?
1030 Please contact me (Perl Maintainers) at perlbug@perl.com and
1031 we'll try to straighten this all out.
1037 : see if sh knows # comments
1038 if `$sh -c '#' >/dev/null 2>&1`; then
1042 test -f $xcat || xcat=/usr/bin/cat
1047 if test -s today; then
1050 echo "#! $xcat" > try
1054 if test -s today; then
1062 echo "Your $sh doesn't grok # comments--I will strip them later on."
1065 echo "exec grep -v '^[ ]*#'" >spitshell
1067 $eunicefix spitshell
1068 spitshell=`pwd`/spitshell
1070 echo "I presume that if # doesn't work, #! won't work either!"
1075 : figure out how to guarantee sh startup
1077 '') startsh=${sharpbang}${sh} ;;
1089 : echo "Yup, it does."
1091 echo "Hmm... '$startsh' does not guarantee sh startup..."
1092 echo "You may have to fix up the shell scripts to make sure $sh runs them."
1097 : Save command line options in file UU/cmdline.opt for later use in
1098 : generating config.sh.
1099 cat > cmdline.opt <<EOSH
1100 # Configure command line arguments.
1107 cat >>cmdline.opt <<EOSH
1108 config_arg$argn='$arg'
1110 argn=`expr $argn + 1`
1113 : produce awk script to parse command line options
1114 cat >options.awk <<'EOF'
1116 optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
1118 len = length(optstr);
1119 for (i = 1; i <= len; i++) {
1120 c = substr(optstr, i, 1);
1121 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1132 if (substr(str, 1, 1) != "-") {
1133 printf("'%s'\n", str);
1137 for (i = 2; i <= len; i++) {
1138 c = substr(str, i, 1);
1140 printf("-%s\n", substr(str, i));
1146 printf("'%s'\n", substr(str, i + 1));
1159 : process the command line options
1160 set X `for arg in "$@"; do echo "X$arg"; done |
1161 sed -e s/X// | awk -f options.awk`
1166 : set up default values
1176 rm -f optdef.sh posthint.sh
1177 cat >optdef.sh <<EOS
1183 while test $# -gt 0; do
1185 -d) shift; fastread=yes;;
1186 -e) shift; alldone=cont;;
1190 if test -r "$1"; then
1193 echo "$me: cannot read config file $1." >&2
1198 -h) shift; error=true;;
1199 -r) shift; reuseval=true;;
1200 -s) shift; silent=true; realsilent=true;;
1201 -E) shift; alldone=exit;;
1202 -K) shift; knowitall=true;;
1203 -O) shift; override=true;;
1204 -S) shift; silent=true; extractsh=true;;
1209 echo "$me: use '-U symbol=', not '-D symbol='." >&2
1210 echo "$me: ignoring -D $1" >&2
1213 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1214 *) echo "$1='define'" >> optdef.sh;;
1221 *=) echo "$1" >> optdef.sh;;
1223 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1224 echo "$me: ignoring -U $1" >&2
1226 *) echo "$1='undef'" >> optdef.sh;;
1237 *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1241 zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
1242 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1248 *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1249 yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1250 zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1251 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1252 *) xxx=`echo $yyy|sed 's!:.*!!'`
1253 yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1259 echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
1261 echo "$yyy=''" >> posthint.sh ;;
1266 echo "$yyy='$zzz'" >> posthint.sh ;;
1268 echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
1270 echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
1275 echo "$yyy=$zzz" >> posthint.sh ;;
1276 *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1280 -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1283 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1291 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1292 [-U symbol] [-U symbol=] [-A command:symbol...]
1293 -d : use defaults for all answers.
1294 -e : go on without questioning past the production of config.sh.
1295 -f : specify an alternate default configuration file.
1296 -h : print this help message and exit (with an error status).
1297 -r : reuse C symbols value if possible (skips costly nm extraction).
1298 -s : silent mode, only echoes questions and essential information.
1299 -D : define symbol to have some value:
1300 -D symbol symbol gets the value 'define'
1301 -D symbol=value symbol gets the value 'value'
1302 -E : stop at the end of questions, after having produced config.sh.
1303 -K : do not use unless you know what you are doing.
1304 -O : let -D and -U override definitions from loaded configuration file.
1305 -S : perform variable substitutions on all .SH files (can mix with -f)
1306 -U : undefine symbol:
1307 -U symbol symbol gets the value 'undef'
1308 -U symbol= symbol gets completely empty
1309 -A : manipulate symbol after the platform specific hints have been applied:
1310 -A symbol=value append " "value to symbol
1311 -A append:symbol=value append value to symbol
1312 -A define:symbol=value define symbol to have value
1313 -A clear:symbol define symbol to be ''
1314 -A define:symbol define symbol to be 'define'
1315 -A eval:symbol=value define symbol to be eval of value
1316 -A prepend:symbol=value prepend value to symbol
1317 -A undef:symbol define symbol to be 'undef'
1318 -A undef:symbol= define symbol to be ''
1319 -V : print version number and exit (with a zero status).
1326 case "$fastread$alldone" in
1329 if test ! -t 0; then
1330 echo "Say 'sh Configure', not 'sh <Configure'"
1338 true) exec 1>/dev/null;;
1341 : run the defines and the undefines, if any, but leave the file out there...
1344 : create the posthint manipulation script and leave the file out there...
1349 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1350 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1351 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1352 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1353 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1356 : Some greps do not return status, grrr.
1357 echo "grimblepritz" >grimble
1358 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1360 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1366 : the following should work in any shell
1370 echo "AGH! Grep doesn't return a status. Attempting remedial action."
1371 cat >contains <<'EOSS'
1372 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1377 : Find the path to the source tree
1380 */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1383 *) src=`cd ../$src && pwd` ;;
1396 if test -f $rsrc/Configure && \
1397 $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1399 : found it, so we are ok.
1402 for src in . .. ../.. ../../.. ../../../..; do
1403 if test -f ../$src/Configure && \
1404 $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1415 Sorry, I can't seem to locate the source dir for $package. Please start
1416 Configure with an explicit path -- i.e. /some/path/Configure.
1424 echo "Sources for $package found in \"$src\"." >&4
1428 : script used to extract .SH files with variable substitutions
1429 cat >extract <<'EOS'
1431 echo "Doing variable substitutions on .SH files..."
1432 if test -f $src/MANIFEST; then
1433 set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
1435 echo "(Looking for .SH files under the source directory.)"
1436 set x `(cd $src; find . -name "*.SH" -print)`
1440 0) set x `(cd $src; echo *.SH)`; shift;;
1442 if test ! -f $src/$1; then
1448 while test $name; do
1449 if test ! -d "$name"; then
1450 create="$name $create";
1451 name=`echo $name | sed -e "s|^[^/]*$||"`;
1452 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1457 for file in $create; do
1466 dir=`expr X$file : 'X\(.*\)/'`
1467 file=`expr X$file : 'X.*/\(.*\)'`
1468 (cd $dir && . ./$file)
1478 dir=`expr X$file : 'X\(.*\)/'`
1479 file=`expr X$file : 'X.*/\(.*\)'`
1480 (set x $dir; shift; eval $mkdir_p)
1490 if test -f $src/config_h.SH; then
1491 if test ! -f config.h; then
1492 : oops, they left it out of MANIFEST, probably, so do it anyway.
1498 : extract files and exit if asked to do so
1499 case "$extractsh" in
1501 case "$realsilent" in
1505 case "$config_sh" in
1506 '') config_sh='config.sh';;
1509 echo "Fetching answers from $config_sh..."
1512 test "$override" && . ./optdef.sh
1521 : Eunice requires " " instead of "", can you believe it
1524 echo "Beginning of configuration questions for $package."
1526 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1528 : first determine how to suppress newline on echo command
1530 echo "Checking echo to see how to suppress newlines..."
1531 (echo "hi there\c" ; echo " ") >.echotmp
1532 if $contains c .echotmp >/dev/null 2>&1 ; then
1543 echo $n "The star should be here-->$c"
1547 : Now test for existence of everything in MANIFEST
1549 if test -f $rsrc/MANIFEST; then
1550 echo "First let's make sure your kit is complete. Checking..." >&4
1551 awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1554 for filelist in x??; do
1555 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1557 if test -s missing; then
1561 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1563 You have the option of continuing the configuration process, despite the
1564 distinct possibility that your kit is damaged, by typing 'y'es. If you
1565 do, don't blame me if something goes wrong. I advise you to type 'n'o
1566 and contact the author (perlbug@perl.com).
1569 echo $n "Continue? [n] $c" >&4
1573 echo "Continuing..." >&4
1577 echo "ABORTING..." >&4
1582 echo "Looks good..."
1585 echo "There is no MANIFEST file. I hope your kit is complete !"
1590 : Find the appropriate value for a newline for tr
1591 if test -n "$DJGPP"; then
1594 if test X"$trnl" = X; then
1595 case "`echo foo|tr '\n' x 2>/dev/null`" in
1599 if test X"$trnl" = X; then
1600 case "`echo foo|tr '\012' x 2>/dev/null`" in
1601 foox) trnl='\012' ;;
1604 if test X"$trnl" = X; then
1607 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1613 : compute the number of columns on the terminal for proper question formatting
1618 : set up the echo used in my read
1619 myecho="case \"\$xxxm\" in
1620 '') echo $n \"\$rp $c\" >&4;;
1622 '') echo $n \"[\$xxxm] $c\";;
1624 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1626 echo $n \"[\$xxxm] $c\" >&4
1628 echo $n \"\$rp [\$xxxm] $c\" >&4
1634 : now set up to do reads with possible shell escape and default assignment
1640 case "\$fastread" in
1641 yes) case "\$dflt" in
1644 case "\$silent-\$rp" in
1649 *) case "\$silent" in
1650 true) case "\$rp" in
1655 while expr "X\$ans" : "X!" >/dev/null; do
1659 aok=''; eval "ans=\\"\$answ\\"" && aok=y
1667 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1676 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1681 echo "(OK, I'll run with -d after this question.)" >&4
1684 echo "*** Sorry, \$1 not supported yet." >&4
1694 echo "*** Substitution done -- please confirm."
1696 ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1701 echo "*** Error -- try again."
1708 case "\$ans\$xxxm\$nostick" in
1720 : create .config dir to save info across Configure sessions
1721 test -d ../.config || mkdir ../.config
1722 cat >../.config/README <<EOF
1723 This directory created by Configure to save information that should
1724 persist across sessions for $package.
1726 You may safely delete it if you wish.
1729 : general instructions
1732 user=`(logname) 2>/dev/null`
1734 '') user=`whoami 2>&1`;;
1736 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1739 rp='Would you like to see the instructions?'
1750 This installation shell script will examine your system and ask you questions
1751 to determine how the perl5 package should be installed. If you get
1752 stuck on a question, you may use a ! shell escape to start a subshell or
1753 execute a command. Many of the questions will have default answers in square
1754 brackets; typing carriage return will give you the default.
1756 On some of the questions which ask for file or directory names you are allowed
1757 to use the ~name construct to specify the login directory belonging to "name",
1758 even if you don't have a shell which knows about that. Questions where this is
1759 allowed will be marked "(~name ok)".
1763 dflt='Type carriage return to continue'
1767 The prompter used in this script allows you to use shell variables and
1768 backticks in your answers. You may use $1, $2, etc... to refer to the words
1769 in the default answer, as if the default line was a set of arguments given to a
1770 script shell. This means you may also use $* to repeat the whole default line,
1771 so you do not have to re-type everything to add something to the default.
1773 Everytime there is a substitution, you will have to confirm. If there is an
1774 error (e.g. an unmatched backtick), the default answer will remain unchanged
1775 and you will be prompted again.
1777 If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1778 the questions and use the computed defaults (or the previous answers if there
1779 was already a config.sh file). Type 'Configure -h' for a list of options.
1780 You may also start interactively and then answer '& -d' at any prompt to turn
1781 on the non-interactive behaviour for the remainder of the execution.
1787 Much effort has been expended to ensure that this shell script will run on any
1788 Unix system. If despite that it blows up on yours, your best bet is to edit
1789 Configure and run it again. If you can't run Configure for some reason,
1790 you'll have to generate a config.sh file by hand. Whatever problems you
1791 have, let me (perlbug@perl.com) know how I blew it.
1793 This installation script affects things in two ways:
1795 1) it may do direct variable substitutions on some of the files included
1797 2) it builds a config.h file for inclusion in C programs. You may edit
1798 any of these files as the need arises after running this script.
1800 If you make a mistake on a question, there is no easy way to back up to it
1801 currently. The easiest thing to do is to edit config.sh and rerun all the SH
1802 files. Configure will offer to let you do this before it runs the SH files.
1805 dflt='Type carriage return to continue'
1807 case "$firsttime" in
1808 true) echo $user >>../.config/instruct;;
1812 : find out where common programs are
1814 echo "Locating common programs..." >&4
1827 if test -d \$dir/\$thing; then
1833 for thisthing in \$dir/\$thing; do
1834 : just loop through to pick last item
1836 if test -f \$thisthing; then
1839 elif test -f \$dir/\$thing.exe; then
1840 if test -n "$DJGPP"; then
1841 echo \$dir/\$thing.exe
1843 : on Eunice apparently
1893 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1894 pth="$pth /lib /usr/lib"
1895 for file in $loclist; do
1899 if test -f "$xxx"; then
1902 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1903 xxx=`./loc $file $file $pth`
1906 '') xxx=`./loc $file $file $pth`;;
1907 *) xxx=`./loc $xxx $xxx $pth`;;
1913 echo $file is in $xxx.
1916 echo $file is in $xxx.
1919 echo "I don't know where '$file' is, and my life depends on it." >&4
1920 echo "Go find a public domain implementation or fix your PATH setting!" >&4
1926 echo "Don't worry if any of the following aren't found..."
1928 for file in $trylist; do
1932 if test -f "$xxx"; then
1935 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1936 xxx=`./loc $file $file $pth`
1939 '') xxx=`./loc $file $file $pth`;;
1940 *) xxx=`./loc $xxx $xxx $pth`;;
1946 echo $file is in $xxx.
1949 echo $file is in $xxx.
1952 echo "I don't see $file out there, $say."
1959 echo "Substituting grep for egrep."
1965 echo "Substituting cp for ln."
1971 echo "Hopefully test is built into your sh."
1974 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
1975 echo "Using the test built into your sh."
1983 echo "Hopefully echo is built into your sh."
1988 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
1989 $echo $n "hi there$c" >foo1
1990 echo $n "hi there$c" >foo2
1991 if cmp foo1 foo2 >/dev/null 2>&1; then
1992 echo "They are compatible. In fact, they may be identical."
1999 They are not compatible! You are probably running ksh on a non-USG system.
2000 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
2001 have echo built in and we may have to run some Bourne shell scripts. That
2002 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
2005 $echo $n "The star should be here-->$c"
2012 : determine whether symbolic links are supported
2015 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2016 echo "Symbolic links are supported." >&4
2019 echo "Symbolic links are NOT supported." >&4
2024 : see whether [:lower:] and [:upper:] are supported character classes
2026 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2028 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2032 *) # There is a discontinuity in EBCDIC between 'I' and 'J'
2033 # (0xc9 and 0xd1), therefore that is a nice testing point.
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 | $tr I-J i-j 2>/dev/null`" in
2048 if test "X$up" = X -o "X$low" = X; then
2049 case "`echo IJ | od -x 2>/dev/null`" in
2051 echo "Hey, this might be EBCDIC." >&4
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
2054 ij) up='[A-IJ-RS-Z]'
2059 if test "X$up" = X -o "X$low" = X; then
2060 case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2070 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2072 echo "Using $up and $low to convert case." >&4
2075 echo "I don't know how to translate letters from upper to lower case." >&4
2076 echo "Your tr is not acting any way I know of." >&4
2080 : set up the translation script tr, must be called with ./tr of course
2084 '[A-Z][a-z]') exec $tr '$up' '$low';;
2085 '[a-z][A-Z]') exec $tr '$low' '$up';;
2092 : Try to determine whether config.sh was made on this system
2093 case "$config_sh" in
2095 myuname=`$uname -a 2>/dev/null`
2096 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2097 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2098 # because the A-Z/a-z are not consecutive.
2099 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2100 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2101 newmyuname="$myuname"
2103 case "$knowitall" in
2105 if test -f ../config.sh; then
2106 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2107 eval "`grep myuname= ../config.sh`"
2109 if test "X$myuname" = "X$newmyuname"; then
2117 : Get old answers from old config file if Configure was run on the
2118 : same system, otherwise use the hints.
2121 if test -f config.sh; then
2123 rp="I see a config.sh file. Shall I use it to set the defaults?"
2126 n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
2127 *) echo "Fetching default answers from your old config.sh file..." >&4
2135 : Older versions did not always set $sh. Catch re-use of such
2144 if test ! -f config.sh; then
2147 First time through, eh? I have some defaults handy for some systems
2148 that need some extra help getting the Configure answers right:
2151 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
2153 : Half the following guesses are probably wrong... If you have better
2154 : tests or hints, please send them to perlbug@perl.com
2155 : The metaconfig authors would also appreciate a copy...
2156 $test -f /irix && osname=irix
2157 $test -f /xenix && osname=sco_xenix
2158 $test -f /dynix && osname=dynix
2159 $test -f /dnix && osname=dnix
2160 $test -f /lynx.os && osname=lynxos
2161 $test -f /unicos && osname=unicos && osvers=`$uname -r`
2162 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2163 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2164 $test -f /bin/mips && /bin/mips && osname=mips
2165 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2166 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2167 $test -d /usr/apollo/bin && osname=apollo
2168 $test -f /etc/saf/_sactab && osname=svr4
2169 $test -d /usr/include/minix && osname=minix
2170 if $test -d /MachTen -o -d /MachTen_Folder; then
2172 if $test -x /sbin/version; then
2173 osvers=`/sbin/version | $awk '{print $2}' |
2174 $sed -e 's/[A-Za-z]$//'`
2175 elif $test -x /usr/etc/version; then
2176 osvers=`/usr/etc/version | $awk '{print $2}' |
2177 $sed -e 's/[A-Za-z]$//'`
2183 $test -f /sys/posix.dll &&
2184 $test -f /usr/bin/what &&
2185 set X `/usr/bin/what /sys/posix.dll` &&
2186 $test "$3" = UWIN &&
2190 if $test -f $uname; then
2198 umips) osname=umips ;;
2201 [23]100) osname=mips ;;
2202 next*) osname=next ;;
2204 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2205 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2208 elif $test -f /etc/kconfig; then
2210 if test "$lns" = "$ln -s"; then
2212 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2214 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2221 if test -n "$DJGPP"; then
2230 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2232 'not found') osvers="$4"."$3" ;;
2233 '<3240'|'<>3240') osvers=3.2.0 ;;
2234 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2235 '=3250'|'>3250') osvers=3.2.5 ;;
2239 bsd386) osname=bsd386
2242 cygwin*) osname=cygwin
2245 *dc.osx) osname=dcosx
2251 domainos) osname=apollo
2257 dynixptx*) osname=dynixptx
2258 osvers=`echo "$4"|sed 's/^v//'`
2260 freebsd) osname=freebsd
2262 genix) osname=genix ;;
2264 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2280 netbsd*) osname=netbsd
2283 news-os) osvers="$3"
2285 4*) osname=newsos4 ;;
2289 next*) osname=next ;;
2290 POSIX-BC | posix-bc ) osname=posix-bc
2293 powerux | power_ux | powermax_os | powermaxos | \
2294 powerunix | power_unix) osname=powerux
2300 solaris) osname=solaris
2302 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2309 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2313 titanos) osname=titanos
2322 ultrix) osname=ultrix
2325 osf1|mls+) case "$5" in
2328 osvers=`echo "$3" | sed 's/^[xvt]//'`
2330 hp*) osname=hp_osf1 ;;
2331 mips) osname=mips_osf1 ;;
2334 unixware) osname=svr5
2340 $2) case "$osname" in
2344 : svr4.x or possibly later
2354 if test -f /stand/boot ; then
2355 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2356 if test -n "$INITPROG" -a -f "$INITPROG"; then
2357 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2358 if test -n "$isesix"; then
2366 *) if test -f /etc/systemid; then
2368 set `echo $3 | $sed 's/\./ /g'` $4
2369 if $test -f $src/hints/sco_$1_$2_$3.sh; then
2371 elif $test -f $src/hints/sco_$1_$2.sh; then
2373 elif $test -f $src/hints/sco_$1.sh; then
2378 '') : Still unknown. Probably a generic Sys V.
2387 *) case "$osname" in
2388 '') : Still unknown. Probably a generic BSD.
2396 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2397 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2398 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
2401 $rm -f UU/kernel.what
2402 elif test -d c:/.; then
2409 : Now look for a hint file osname_osvers, unless one has been
2410 : specified already.
2413 file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
2414 : Also try without trailing minor version numbers.
2415 xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
2416 xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
2417 xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
2418 xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
2421 *) case "$osvers" in
2424 *) if $test -f $src/hints/$file.sh ; then
2426 elif $test -f $src/hints/$xfile.sh ; then
2428 elif $test -f $src/hints/$xxfile.sh ; then
2430 elif $test -f $src/hints/$xxxfile.sh ; then
2432 elif $test -f $src/hints/$xxxxfile.sh ; then
2434 elif $test -f "$src/hints/${osname}.sh" ; then
2443 if $test -f Policy.sh ; then
2446 none) dflt="Policy" ;;
2447 *) dflt="Policy $dflt" ;;
2452 dflt=`echo $hintfile | $sed 's/\.sh$//'`
2456 if $test -f Policy.sh ; then
2459 There's also a Policy hint file available, which should make the
2460 site-specific (policy) questions easier to answer.
2467 You may give one or more space-separated answers, or "none" if appropriate.
2468 A well-behaved OS will have no hints, so answering "none" or just "Policy"
2469 is a good thing. DO NOT give a wrong version or a wrong OS.
2473 rp="Which of these apply, if any?"
2476 for file in $tans; do
2477 if $test X$file = XPolicy -a -f Policy.sh; then
2479 $cat Policy.sh >> UU/config.sh
2480 elif $test -f $src/hints/$file.sh; then
2481 . $src/hints/$file.sh
2482 $cat $src/hints/$file.sh >> UU/config.sh
2483 elif $test X$tans = X -o X$tans = Xnone ; then
2486 : Give one chance to correct a possible typo.
2487 echo "$file.sh does not exist"
2489 rp="hint to use instead?"
2491 for file in $ans; do
2492 if $test -f "$src/hints/$file.sh"; then
2493 . $src/hints/$file.sh
2494 $cat $src/hints/$file.sh >> UU/config.sh
2495 elif $test X$ans = X -o X$ans = Xnone ; then
2498 echo "$file.sh does not exist -- ignored."
2505 : Remember our hint file for later.
2506 if $test -f "$src/hints/$file.sh" ; then
2516 echo "Fetching default answers from $config_sh..." >&4
2520 cp $config_sh config.sh 2>/dev/null
2530 test "$override" && . ./optdef.sh
2531 myuname="$newmyuname"
2533 : Restore computed paths
2534 for file in $loclist $trylist; do
2535 eval $file="\$_$file"
2540 Configure uses the operating system name and version to set some defaults.
2541 The default value is probably right if the name rings a bell. Otherwise,
2542 since spelling matters for me, either accept the default or answer "none"
2549 ''|' '|none) dflt=none ;;
2550 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
2553 *) dflt="$osname" ;;
2555 rp="Operating system name?"
2559 *) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
2565 ''|' '|none) dflt=none ;;
2566 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
2567 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
2569 ''|' ') dflt=none ;;
2574 *) dflt="$osvers" ;;
2576 rp="Operating system version?"
2586 : who configured the system
2587 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
2588 cf_by=`(logname) 2>/dev/null`
2591 cf_by=`(whoami) 2>/dev/null`
2593 "") cf_by=unknown ;;
2597 : set up the script used to warn in case of inconsistency
2604 echo "*** WHOA THERE!!! ***" >&4
2605 echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
2606 rp=" Keep the $hint value?"
2609 y) td=$was; tu=$was;;
2613 : function used to set $1 to $val
2614 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
2616 $define$undef) . ./whoa; eval "$var=\$td";;
2617 $undef$define) . ./whoa; eval "$var=\$tu";;
2618 *) eval "$var=$val";;
2621 case "$usethreads" in
2622 $define|true|[yY]*) dflt='y';;
2627 Perl can be built to take advantage of threads on some systems.
2628 To do so, Configure can be run with -Dusethreads.
2630 Note that threading is a highly experimental feature, and
2631 some known race conditions still remain. If you choose to try
2632 it, be very sure to not actually deploy it for production
2633 purposes. README.threads has more details, and is required
2634 reading if you enable threads.
2636 If this doesn't make any sense to you, just accept the default '$dflt'.
2638 rp='Build a threading Perl?'
2641 y|Y) val="$define" ;;
2647 case "$usethreads" in
2651 As of 5.5.640, Perl has two different internal threading implementations,
2652 the 5.005 version (5005threads) and an interpreter-based version
2653 (ithreads) that has one interpreter per thread. Both are very
2654 experimental. This arrangement exists to help developers work out
2655 which one is better.
2657 If you're a casual user, you probably don't want interpreter-threads
2658 at this time. There doesn't yet exist a way to create threads from
2659 within Perl in this model, i.e., "use Thread;" will NOT work.
2661 : Default to ithreads unless overridden on command line or with
2664 case "$use5005threads" in
2665 $define|true|[yY]*) dflt='n';;
2667 case "$useithreads" in
2668 $undef|false|[nN]*) dflt='n';;
2670 rp='Use interpreter-based ithreads?'
2673 y|Y) val="$define" ;;
2678 : Now set use5005threads to the opposite value.
2679 case "$useithreads" in
2680 $define) val="$undef" ;;
2687 useithreads="$undef"
2688 use5005threads="$undef"
2692 case "$d_oldpthreads" in
2693 '') : Configure tests would be welcome here. For now, assume undef.
2695 *) val="$d_oldpthreads" ;;
2701 case "$usethreads" in
2702 "$define"|true|[yY]*)
2703 : Look for a hint-file generated 'call-back-unit'. If the
2704 : user has specified that a threading perl is to be built,
2705 : we may need to set or change some other defaults.
2706 if $test -f usethreads.cbu; then
2707 echo "Your platform has some specific hints for threaded builds, using them..."
2711 (Your platform doesn't have any specific hints for threaded builds.
2712 Assuming POSIX threads, then.)
2720 Perl can be built so that multiple Perl interpreters can coexist
2721 within the same Perl executable.
2724 case "$useithreads" in
2727 This multiple interpreter support is required for interpreter-based threads.
2731 *) case "$usemultiplicity" in
2732 $define|true|[yY]*) dflt='y';;
2736 echo "If this doesn't make any sense to you, just accept the default '$dflt'."
2737 rp='Build Perl for multiplicity?'
2740 y|Y) val="$define" ;;
2748 : determine where manual pages are on this system
2752 syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
2753 syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
2754 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
2755 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
2756 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
2757 sysman=`./loc . /usr/man/man1 $syspath`
2760 if $test -d "$sysman"; then
2761 echo "System manual is in $sysman." >&4
2763 echo "Could not find manual pages in source form." >&4
2766 : see what memory models we can support
2769 $cat >pdp11.c <<'EOP'
2778 ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1
2779 if $test -f pdp11 && ./pdp11 2>/dev/null; then
2780 dflt='unsplit split'
2782 tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
2785 *) if $test -d /lib/small || $test -d /usr/lib/small; then
2790 if $test -d /lib/medium || $test -d /usr/lib/medium; then
2793 if $test -d /lib/large || $test -d /usr/lib/large; then
2796 if $test -d /lib/huge || $test -d /usr/lib/huge; then
2805 Some systems have different model sizes. On most systems they are called
2806 small, medium, large, and huge. On the PDP11 they are called unsplit and
2807 split. If your system doesn't support different memory models, say "none".
2808 If you wish to force everything to one memory model, say "none" here and
2809 put the appropriate flags later when it asks you for other cc and ld flags.
2810 Venix systems may wish to put "none" and let the compiler figure things out.
2811 (In the following question multiple model names should be space separated.)
2813 The default for most systems is "none".
2816 rp="Which memory models are supported?"
2831 '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
2832 $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
2839 rp="What flag indicates separate I and D space?"
2847 *large*|*small*|*medium*|*huge*)
2854 rp="What flag indicates large model?"
2864 *huge*) case "$huge" in
2868 rp="What flag indicates huge model?"
2878 *medium*) case "$medium" in
2882 rp="What flag indicates medium model?"
2889 *) medium="$large";;
2892 *small*) case "$small" in
2896 rp="What flag indicates small model?"
2907 echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
2910 $rm -f pdp11.* pdp11
2912 : make some quick guesses about what we are up against
2914 $echo $n "Hmm... $c"
2924 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
2925 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
2927 echo "Looks kind of like an OSF/1 system, but we'll see..."
2929 elif test `echo abc | tr a-z A-Z` = Abc ; then
2930 xxx=`./loc addbib blurfl $pth`
2931 if $test -f $xxx; then
2932 echo "Looks kind of like a USG system with BSD features, but we'll see..."
2936 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
2937 echo "Looks kind of like an extended USG system, but we'll see..."
2939 echo "Looks kind of like a USG system, but we'll see..."
2943 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
2944 echo "Looks kind of like a BSD system, but we'll see..."
2948 echo "Looks kind of like a Version 7 system, but we'll see..."
2951 case "$eunicefix" in
2954 There is, however, a strange, musty smell in the air that reminds me of
2955 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
2959 : it so happens the Eunice I know will not run shell scripts in Unix format
2963 echo "Congratulations. You aren't running Eunice."
2967 : Detect OS2. The p_ variable is set above in the Head.U unit.
2972 I have the feeling something is not exactly right, however...don't tell me...
2973 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
2978 if test -f /xenix; then
2979 echo "Actually, this looks more like a XENIX system..."
2984 echo "It's not Xenix..."
2989 if test -f /venix; then
2990 echo "Actually, this looks more like a VENIX system..."
2997 echo "Nor is it Venix..."
3000 chmod +x bsd usg v7 osf1 eunice xenix venix os2
3001 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
3004 : see if we need a special compiler
3012 *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
3013 if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
3027 On some older systems the default C compiler will not resolve multiple global
3028 references that happen to have the same name. On some such systems the "Mcc"
3029 command may be used to force these to be resolved. On other systems a "cc -M"
3030 command is required. (Note that the -M flag on other systems indicates a
3031 memory model to use!) If you have the Gnu C compiler, you might wish to use
3037 rp="Use which C compiler?"
3045 rp="Use which C compiler?"
3049 : Look for a hint-file generated 'call-back-unit'. Now that the
3050 : user has specified the compiler, we may need to set or change some
3052 if $test -f cc.cbu; then
3056 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3057 $cat >gccvers.c <<EOM
3062 printf("%s\n", __VERSION__);
3064 printf("%s\n", "1");
3070 if $cc $ldflags -o gccvers gccvers.c; then
3071 gccversion=`./gccvers`
3072 case "$gccversion" in
3073 '') echo "You are not using GNU cc." ;;
3074 *) echo "You are using GNU cc $gccversion."
3079 echo "*** WHOA THERE!!! ***" >&4
3080 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3081 case "$knowitall" in
3083 echo " You'd better start hunting for one and let me know about it." >&4
3089 case "$gccversion" in
3090 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3093 : decide how portable to be. Allow command line overrides.
3094 case "$d_portable" in
3096 *) d_portable="$define" ;;
3099 : set up shell script to do ~ expansion
3105 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3108 if $test -f /bin/csh; then
3109 /bin/csh -f -c "glob \$1"
3114 name=\`$expr x\$1 : '..\([^/]*\)'\`
3115 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3116 if $test ! -d "\$dir"; then
3118 echo "\$me: can't locate home directory for: \$name" >&2
3123 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3139 : now set up to get a file name
3143 cat <<'EOSC' >>getfile
3159 expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
3160 fn=`echo $fn | sed 's/(.*)//'`
3166 loc_file=`expr $fn : '.*:\(.*\)'`
3167 fn=`expr $fn : '\(.*\):.*'`
3175 */*) fullpath=true;;
3184 *e*) exp_file=true;;
3187 *p*) nopath_ok=true;;
3192 *d*) type='Directory';;
3193 *l*) type='Locate';;
3198 Locate) what='File';;
3203 case "$d_portable" in
3211 while test "$type"; do
3216 true) rp="$rp (~name ok)";;
3219 if test -f UU/getfile.ok && \
3220 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3239 value=`UU/filexp $ans`
3242 if test "$ans" != "$value"; then
3243 echo "(That expands to $value on this system.)"
3257 /*) value="$ansexp" ;;
3262 echo "I shall only accept a full path name, as in /bin/ls." >&4
3263 echo "Use a ! shell escape if you wish to check pathnames." >&4
3266 echo "Please give a full path name, starting with slash." >&4
3269 echo "Note that using ~name is ok provided it expands well." >&4
3282 for fp in $gfpth; do
3283 if test "X$fp" = X.; then
3288 if test -f "$pf"; then
3290 elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3292 echo "($value is not a plain file, but that's ok.)"
3295 if test X"$type" = X; then
3302 for fp in $gfpth; do
3303 if test "X$fp" = X.; then
3308 if test -d "$pf"; then
3316 if test -d "$ansexp"; then
3317 echo "(Looking for $loc_file in directory $value.)"
3318 value="$value/$loc_file"
3319 ansexp="$ansexp/$loc_file"
3321 if test -f "$ansexp"; then
3324 case "$nopath_ok" in
3325 true) case "$value" in
3327 *) echo "Assuming $value will be in people's path."
3343 if test "$fastread" = yes; then
3348 rp="$what $value doesn't exist. Use that name anyway?"
3367 test "X$gfpthkeep" != Xy && gfpth=""
3370 : What should the include directory be ?
3372 $echo $n "Hmm... $c"
3376 if $test -f /bin/mips && /bin/mips; then
3377 echo "Looks like a MIPS system..."
3378 $cat >usr.c <<'EOCP'
3379 #ifdef SYSTYPE_BSD43
3383 if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3384 dflt='/bsd43/usr/include'
3388 mips_type='System V'
3390 $rm -f usr.c usr.out
3391 echo "and you're compiling with the $mips_type compiler and libraries."
3395 echo "Doesn't look like a MIPS system."
3405 case "$xxx_prompt" in
3408 rp='Where are the include files you want to use?'
3416 : see how we invoke the C preprocessor
3418 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3419 cat <<'EOT' >testcpp.c
3425 if test ! -f cppstdin; then
3426 if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3427 # AIX cc -E doesn't show the absolute headerfile
3428 # locations but we'll cheat by using the -M flag.
3429 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
3431 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3434 echo "Keeping your $hint cppstdin wrapper."
3437 wrapper=`pwd`/cppstdin
3441 if $test "X$cppstdin" != "X" && \
3442 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3443 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3445 echo "You used to use $cppstdin $cppminus so we'll use that again."
3447 '') echo "But let's see if we can live without a wrapper..." ;;
3449 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3450 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3452 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3455 echo "(However, $cpprun $cpplast does not work, let's see...)"
3463 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3470 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3471 $cc -E <testcpp.c >testcpp.out 2>&1; \
3472 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3473 echo "Yup, it does."
3476 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3477 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3478 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3479 echo "Yup, it does."
3482 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3483 $cc -P <testcpp.c >testcpp.out 2>&1; \
3484 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3485 echo "Yipee, that works!"
3488 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3489 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3490 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3491 echo "At long last!"
3494 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3495 $cpp <testcpp.c >testcpp.out 2>&1; \
3496 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3500 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3501 $cpp - <testcpp.c >testcpp.out 2>&1; \
3502 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3503 echo "Hooray, it works! I was beginning to wonder."
3506 elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3507 $wrapper <testcpp.c >testcpp.out 2>&1; \
3508 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3514 rp="No dice. I can't find a C preprocessor. Name one:"
3518 $x_cpp <testcpp.c >testcpp.out 2>&1
3519 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3520 echo "OK, that will do." >&4
3522 echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
3537 echo "Perhaps can we force $cc -E using a wrapper..."
3538 if $wrapper <testcpp.c >testcpp.out 2>&1; \
3539 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3545 echo "Nope, we'll have to live without it..."
3559 "$wrapper"|'cppstdin') ;;
3560 *) $rm -f $wrapper;;
3562 $rm -f testcpp.c testcpp.out
3564 : Set private lib path
3567 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
3572 '') dlist="$loclibpth $plibpth $glibpth";;
3573 *) dlist="$libpth";;
3576 : Now check and see which directories actually exist, avoiding duplicates
3580 if $test -d $xxx; then
3583 *) libpth="$libpth $xxx";;
3589 Some systems have incompatible or broken versions of libraries. Among
3590 the directories listed in the question below, please remove any you
3591 know not to be holding relevant libraries, and add any that are needed.
3592 Say "none" for none.
3603 rp="Directories to use for library searches?"
3610 : compute shared library extension
3613 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
3623 On some systems, shared libraries may be available. Answer 'none' if
3624 you want to suppress searching of shared libraries for the remainder
3625 of this configuration.
3628 rp='What is the file extension used for shared libraries?'
3632 : Define several unixisms.
3633 : Hints files or command line option can be used to override them.
3634 : The convoluted testing is in case hints files set either the old
3637 '') case "$exe_ext" in
3639 *) _exe="$exe_ext" ;;
3644 '') case "$lib_ext" in
3651 '') case "$obj_ext" in
3658 '') case "$path_sep" in
3669 : Which makefile gets called first. This is used by make depend.
3670 case "$firstmakefile" in
3671 '') firstmakefile='makefile';;
3675 $define|true|[yY]*) dflt='y';;
3680 Perl can be built to use the SOCKS proxy protocol library. To do so,
3681 Configure must be run with -Dusesocks.
3683 If this doesn't make any sense to you, just accept the default '$dflt'.
3685 rp='Build Perl for SOCKS?'
3688 y|Y) val="$define" ;;
3694 : Looking for optional libraries
3696 echo "Checking for optional libraries..." >&4
3701 case "$libswanted" in
3702 '') libswanted='c_s';;
3706 libswanted="$libswanted socks5 socks5_sh"
3713 for thisdir in $libpth $xlibpth; do
3714 test -d $thisdir && libspath="$libspath $thisdir"
3716 for thislib in $libswanted; do
3717 for thisdir in $libspath; do
3719 if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
3720 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
3721 $test -f "$xxx" && eval $libscheck
3722 $test -f "$xxx" && libstyle=shared
3724 if test ! -f "$xxx"; then
3725 xxx=$thisdir/lib$thislib.$so
3726 $test -f "$xxx" && eval $libscheck
3727 $test -f "$xxx" && libstyle=shared
3729 if test ! -f "$xxx"; then
3730 xxx=$thisdir/lib$thislib$_a
3731 $test -f "$xxx" && eval $libscheck
3732 $test -f "$xxx" && libstyle=static
3734 if test ! -f "$xxx"; then
3735 xxx=$thisdir/$thislib$_a
3736 $test -f "$xxx" && eval $libscheck
3737 $test -f "$xxx" && libstyle=static
3739 if test ! -f "$xxx"; then
3740 xxx=$thisdir/lib${thislib}_s$_a
3741 $test -f "$xxx" && eval $libscheck
3742 $test -f "$xxx" && libstyle=static
3744 if test ! -f "$xxx"; then
3745 xxx=$thisdir/Slib$thislib$_a
3746 $test -f "$xxx" && eval $libscheck
3747 $test -f "$xxx" && libstyle=static
3749 if $test -f "$xxx"; then
3751 shared) echo "Found -l$thislib (shared)." ;;
3752 static) echo "Found -l$thislib." ;;
3753 *) echo "Found -l$thislib ($libstyle)." ;;
3757 *) dflt="$dflt -l$thislib"
3758 libsfound="$libsfound $xxx"
3760 libsfiles="$libsfiles $yyy"
3761 yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
3762 case " $libsdirs " in
3764 *) libsdirs="$libsdirs $yyy" ;;
3771 if $test ! -f "$xxx"; then
3772 echo "No -l$thislib."
3783 ' '|'') dflt='none';;
3788 In order to compile $package on your machine, a number of libraries
3789 are usually needed. Include any other special libraries here as well.
3790 Say "none" for none. The default list is almost always right.
3794 rp="What libraries to use?"
3801 : determine optimization, if desired, or use for debug flag also
3803 ' '|$undef) dflt='none';;
3805 *) dflt="$optimize";;
3809 By default, $package compiles with the -O flag to use the optimizer.
3810 Alternately, you might want to use the symbolic debugger, which uses
3811 the -g flag (on traditional Unix systems). Either flag can be
3812 specified here. To use neither flag, specify the word "none".
3815 rp="What optimizer/debugger flag should be used?"
3819 'none') optimize=" ";;
3823 : We will not override a previous value, but we might want to
3824 : augment a hint file
3826 default|recommended)
3827 case "$gccversion" in
3828 1*) dflt='-fpcc-struct-return' ;;
3831 *-g*) dflt="$dflt -DDEBUGGING";;
3833 case "$gccversion" in
3834 2*) if test -d /etc/conf/kconfig.d &&
3835 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
3841 case "$gccversion" in
3845 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
3846 echo 'int main(void) { return 0; }' > gcctest.c
3847 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
3848 echo "Yes, it does." 2>&1
3851 echo "Leaving current flags $ccflags alone." 2>&1
3853 *) dflt="$dflt -fno-strict-aliasing" ;;
3856 echo "Nope, it doesn't, but that's ok." 2>&1
3863 case "$mips_type" in
3864 *BSD*|'') inclwanted="$locincpth $usrinc";;
3865 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
3867 for thisincl in $inclwanted; do
3868 if $test -d $thisincl; then
3869 if $test x$thisincl != x$usrinc; then
3872 *) dflt="$dflt -I$thisincl";;
3878 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
3880 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
3888 *) dflt="$dflt -D$2";;
3892 set signal.h LANGUAGE_C; eval $inctest
3896 ccflags="$ccflags -DSOCKS"
3901 default|recommended) dflt="$ccflags $dflt" ;;
3902 *) dflt="$ccflags";;
3910 Your C compiler may want other flags. For this question you should include
3911 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
3912 but you should NOT include libraries or ld flags like -lwhatever. If you
3913 want $package to honor its debug switch, you should include -DDEBUGGING here.
3914 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
3916 To use no flags, specify the word "none".
3922 rp="Any additional cc flags?"
3929 : the following weeds options from ccflags that are of no interest to cpp
3931 case "$gccversion" in
3932 1*) cppflags="$cppflags -D__GNUC__"
3934 case "$mips_type" in
3936 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
3942 echo "Let me guess what the preprocessor flags are..." >&4
3956 *) ftry="$previous $flag";;
3958 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
3959 >cpp1.out 2>/dev/null && \
3960 $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
3961 >cpp2.out 2>/dev/null && \
3962 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
3963 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
3965 cppflags="$cppflags $ftry"
3975 *-*) echo "They appear to be: $cppflags";;
3977 $rm -f cpp.c cpp?.out
3981 : flags used in final linking phase
3983 '') if ./venix; then
3989 *-posix*) dflt="$dflt -posix" ;;
3992 *) dflt="$ldflags";;
3995 : Try to guess additional flags to pick up local libraries.
3996 for thislibdir in $libpth; do
3997 case " $loclibpth " in
4000 *"-L$thislibdir "*) ;;
4001 *) dflt="$dflt -L$thislibdir" ;;
4013 Your C linker may need flags. For this question you should
4014 include -L/whatever and any other flags used by the C linker, but you
4015 should NOT include libraries like -lwhatever.
4017 Make sure you include the appropriate -L/path flags if your C linker
4018 does not normally search all of the directories you specified above,
4021 To use no flags, specify the word "none".
4025 rp="Any additional ld flags (NOT including libraries)?"
4031 rmlist="$rmlist pdp11"
4035 echo "Checking your choice of C compiler and flags for coherency..." >&4
4036 $cat > try.c <<'EOF'
4038 int main() { printf("Ok\n"); exit(0); }
4040 set X $cc $optimize $ccflags -o try $ldflags try.c $libs
4042 $cat >try.msg <<'EOM'
4043 I've tried to compile and run the following simple program:
4046 $cat try.c >> try.msg
4048 $cat >> try.msg <<EOM
4055 and I got the following output:
4059 if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
4060 if sh -c './try' >>try.msg 2>&1; then
4064 *) echo 'The program compiled OK, but produced no output.' >> try.msg
4067 cat >> try.msg <<'EOQS'
4068 If $libs contains -lsfio, and sfio is mis-configured, then it
4069 sometimes (apparently) runs and exits with a 0 status, but with no
4070 output! It may have to do with sfio's use of _exit vs. exit.
4073 rp="You have a big problem. Shall I abort Configure"
4080 echo "The program compiled OK, but exited with status $?." >>try.msg
4081 rp="You have a problem. Shall I abort Configure"
4085 echo "I can't compile the test program." >>try.msg
4086 rp="You have a BIG problem. Shall I abort Configure"
4092 case "$knowitall" in
4094 echo "(The supplied flags or libraries might be incorrect.)"
4102 *) echo "Ok. Stopping Configure." >&4
4107 n) echo "OK, that should do.";;
4109 $rm -f try try.* core
4111 : define an is-a-typedef? function
4112 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4114 "") inclist="sys/types.h";;
4116 eval "varval=\$$var";
4120 for inc in $inclist; do
4121 echo "#include <$inc>" >>temp.c;
4123 echo "#ifdef $type" >> temp.c;
4124 echo "printf(\"We have $type\");" >> temp.c;
4125 echo "#endif" >> temp.c;
4126 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4127 if $contains $type temp.E >/dev/null 2>&1; then
4133 *) eval "$var=\$varval";;
4136 : define an is-a-typedef? function that prompts if the type is not available.
4137 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4139 "") inclist="sys/types.h";;
4141 eval "varval=\$$var";
4145 for inc in $inclist; do
4146 echo "#include <$inc>" >>temp.c;
4148 echo "#ifdef $type" >> temp.c;
4149 echo "printf(\"We have $type\");" >> temp.c;
4150 echo "#endif" >> temp.c;
4151 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4153 echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
4154 if $contains $type temp.E >/dev/null 2>&1; then
4155 echo "$type found." >&4;
4158 echo "$type NOT found." >&4;
4164 *) eval "$var=\$varval";;
4167 : define a shorthand compile call
4171 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
4172 : define a shorthand compile call for compilations that should be ok.
4176 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
4178 : check for lengths of integral types
4182 echo "Checking to see how big your integers are..." >&4
4183 $cat >intsize.c <<'EOCP'
4187 printf("intsize=%d;\n", (int)sizeof(int));
4188 printf("longsize=%d;\n", (int)sizeof(long));
4189 printf("shortsize=%d;\n", (int)sizeof(short));
4194 if eval $compile_ok && ./intsize > /dev/null; then
4196 echo "Your integers are $intsize bytes long."
4197 echo "Your long integers are $longsize bytes long."
4198 echo "Your short integers are $shortsize bytes long."
4202 Help! I can't compile and run the intsize test program: please enlighten me!
4203 (This is probably a misconfiguration in your system or libraries, and
4204 you really ought to fix it. Still, I'll try anyway.)
4208 rp="What is the size of an integer (in bytes)?"
4212 rp="What is the size of a long integer (in bytes)?"
4216 rp="What is the size of a short integer (in bytes)?"
4222 $rm -f intsize intsize.*
4224 : see what type lseek is declared as in the kernel
4225 rp="What is the type used for lseek's offset on this system?"
4226 set off_t lseektype long stdio.h sys/types.h
4230 echo "Checking to see how big your file offsets are..." >&4
4232 #include <sys/types.h>
4236 printf("%d\n", (int)sizeof($lseektype));
4241 if eval $compile_ok; then
4243 echo "Your file offsets are $lseeksize bytes long."
4247 echo "(I can't seem to compile the test program. Guessing...)"
4248 rp="What is the size of your file offsets (in bytes)?"
4254 : see what type file positions are declared as in the library
4255 rp="What is the type for file position used by fsetpos()?"
4256 set fpos_t fpostype long stdio.h sys/types.h
4261 *_t) zzz="$fpostype" ;;
4264 echo "Checking the size of $zzz..." >&4
4266 #include <sys/types.h>
4269 printf("%d\n", (int)sizeof($fpostype));
4274 if eval $compile_ok; then
4278 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4281 echo "Your $zzz is $fpossize bytes long."
4287 echo "(I can't compile the test program. Guessing...)" >&4
4288 rp="What is the size of your file positions (in bytes)?"
4295 case "$lseeksize:$fpossize" in
4298 You can have files larger than 2 gigabytes.
4301 *) case "$uselargefiles" in
4302 "$undef"|false|[nN]*) dflt='n' ;;
4307 Perl can be built to understand large files (files larger than 2 gigabytes)
4308 on some systems. To do so, Configure can be run with -Duselargefiles.
4310 If this doesn't make any sense to you, just accept the default '$dflt'.
4312 rp='Try to understand large files, if available?'
4315 y|Y) val="$define" ;;
4322 case "$uselargefiles" in
4324 : Look for a hint-file generated 'call-back-unit'. If the
4325 : user has specified that a large files perl is to be built,
4326 : we may need to set or change some other defaults.
4327 if $test -f uselfs.cbu; then
4328 echo "Your platform has some specific hints for large file builds, using them..."
4331 echo "Rechecking to see how big your file offsets are..." >&4
4333 #include <sys/types.h>
4337 printf("%d\n", (int)sizeof($lseektype));
4342 if eval $compile_ok; then
4344 $echo "Your file offsets are now $lseeksize bytes long."
4348 echo "(I can't seem to compile the test program. Guessing...)"
4349 rp="What is the size of your file offsets (in bytes)?"
4354 *_t) zzz="$fpostype" ;;
4357 $echo $n "Rechecking the size of $zzz...$c" >&4
4359 #include <sys/types.h>
4362 printf("%d\n", (int)sizeof($fpostype));
4367 if eval $compile_ok; then
4372 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4375 echo " $fpossize bytes." >&4
4381 echo "(I can't compile the test program. Guessing...)" >&4
4382 rp="What is the size of your file positions (in bytes)?"
4392 case "$usemorebits" in
4393 "$define"|true|[yY]*)
4395 uselongdouble="$define"
4396 usemorebits="$define"
4398 *) usemorebits="$undef"
4403 # Backward compatibility (uselonglong is deprecated).
4404 case "$uselonglong" in
4405 "$define"|true|[yY]*)
4408 *** Configure -Duselonglong is deprecated, using the -Duse64bits instead.
4415 *-DUSE_LONG_LONG*|*-DUSE_64_BITS*|*-DUSE_FULL_64_BITS*) use64bits="$define";;
4417 case "$usefull64bits" in
4418 "$define"|true|[yY]*) use64bits="$define" ;;
4424 You have natively 64-bit long integers.
4428 *) case "$use64bits" in
4429 "$define"|true|[yY]*) dflt='y';;
4434 Perl can be built to take advantage of 64-bit integer types
4435 on some systems. To do so, Configure can be run with -Duse64bits.
4436 Choosing this option will most probably introduce binary incompatibilities.
4438 If this doesn't make any sense to you, just accept the default '$dflt'.
4440 rp='Try to use 64-bit integers, if available?'
4443 [yY]*) val="$define" ;;
4451 case "$usefull64bits" in
4452 "$define"|true|[yY]*) val="$define" ;;
4453 *) case "$use64bits" in
4454 "$define") case "$longsize" in
4458 Since you chose 64-bitness you may want to try maximal 64-bitness.
4459 What you have chosen is minimal 64-bitness which means just enough
4460 to get 64-bit integers. The maximal means using as much 64-bitness
4461 as is possible on the platform. This in turn means even more binary
4462 incompatibilities. On the other hand, your platform may not have
4463 any more maximal 64-bitness than what you already have chosen.
4465 If this doesn't make any sense to you, just accept the default '$dflt'.
4467 rp='Try to use full 64-bit support, if available?'
4470 [yY]*) val="$define" ;;
4485 case "$use64bits" in
4486 "$define"|true|[yY]*)
4487 : Look for a hint-file generated 'call-back-unit'. If the
4488 : user has specified that a 64-bit perl is to be built,
4489 : we may need to set or change some other defaults.
4490 if $test -f use64bits.cbu; then
4491 echo "Your platform has some specific hints for 64-bit builds, using them..."
4495 4) case "$ccflags" in
4497 *) ccflags="$ccflags -DUSE_64_BITS";;
4499 case "$archname64" in
4500 '') archname64=64 ;;
4507 case "$usefull64bits" in
4508 "$define"|true|[yY]*)
4509 : Look for a hint-file generated 'call-back-unit'. If the
4510 : user has specified that a full 64-bit perl is to be built,
4511 : we may need to set or change some other defaults.
4512 if $test -f usefull64bits.cbu; then
4513 echo "Your platform has some specific hints for full 64-bit builds, using them..."
4514 . ./usefull64bits.cbu
4517 4) case "$ccflags" in
4518 *-DUSE_FULL_64_BITS*) ;;
4519 *) ccflags="$ccflags -DUSE_FULL_64_BITS";;
4521 case "$archname64" in
4522 ''|64) archname64=full64 ;;
4529 : determine the architecture name
4531 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
4532 tarch=`arch`"-$osname"
4533 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
4534 if uname -m > tmparch 2>&1 ; then
4535 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
4536 -e 's/$/'"-$osname/" tmparch`
4544 case "$myarchname" in
4547 echo "(Your architecture name used to be $myarchname.)"
4554 *) dflt="$archname";;
4556 rp='What is your architecture name'
4559 case "$usethreads" in
4561 echo "Threads selected." >&4
4563 *-thread*) echo "...and architecture name already has -thread." >&4
4565 *) archname="$archname-thread"
4566 echo "...setting architecture name to $archname." >&4
4571 case "$usemultiplicity" in
4573 echo "Multiplicity selected." >&4
4575 *-multi*) echo "...and architecture name already has -multi." >&4
4577 *) archname="$archname-multi"
4578 echo "...setting architecture name to $archname." >&4
4583 case "$use64bits" in
4585 case "$archname64" in
4590 *-$archname64*) echo "...and architecture name already has $archname64." >&4
4592 *) archname="$archname-$archname64"
4593 echo "...setting architecture name to $archname." >&4
4600 : determine root of directory hierarchy where package will be installed.
4603 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
4611 By default, $package will be installed in $dflt/bin, manual pages
4612 under $dflt/man, etc..., i.e. with $dflt as prefix for all
4613 installation directories. Typically this is something like /usr/local.
4614 If you wish to have binaries under /usr/bin but other parts of the
4615 installation under /usr/local, that's ok: you will be prompted
4616 separately for each of the installation directories, the prefix being
4617 only used to set the defaults.
4621 rp='Installation prefix to use?'
4629 *) oldprefix="$prefix";;
4639 $define|true) afs=true ;;
4640 $undef|false) afs=false ;;
4641 *) if test -d /afs; then
4649 echo "AFS may be running... I'll be extra cautious then..." >&4
4651 echo "AFS does not seem to be running..." >&4
4654 : determine installation prefix for where package is to be installed.
4658 Since you are running AFS, I need to distinguish the directory in which
4659 files will reside from the directory in which they are installed (and from
4660 which they are presumably copied to the former directory by occult means).
4663 case "$installprefix" in
4664 '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
4665 *) dflt="$installprefix";;
4670 In some special cases, particularly when building $package for distribution,
4671 it is convenient to distinguish between the directory in which files should
4672 be installed from the directory ($prefix) in which they
4673 will eventually reside. For most users, these two directories are the same.
4676 case "$installprefix" in
4678 *) dflt=$installprefix;;
4682 rp='What installation prefix should I use for installing files?'
4684 installprefix="$ans"
4685 installprefixexp="$ansexp"
4687 : set the prefixit variable, to compute a suitable default value
4688 prefixit='case "$3" in
4690 case "$oldprefix" in
4691 "") eval "$1=\"\$$2\"";;
4698 ""|" ") eval "$1=\"\$$2\"";;
4704 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
4706 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
4707 /*-$oldprefix/*|\~*-$oldprefix/*)
4708 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
4709 *) eval "$1=\"\$$2\"";;
4714 : get the patchlevel
4716 echo "Getting the current patchlevel..." >&4
4717 if $test -r $rsrc/patchlevel.h;then
4718 revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
4719 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
4720 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4721 api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
4722 api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
4723 api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4732 $echo $n "(You have $package revision $revision" $c
4733 $echo $n " patchlevel $patchlevel" $c
4734 test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
4738 : XXX Should be a Configure test for double-dots in filenames.
4739 version=`echo $revision $patchlevel $subversion | \
4740 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4741 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4742 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4745 version=`echo $revision $patchlevel $subversion | \
4746 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4747 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4748 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4751 : Special case the 5.005_xx maintenance series, which used 5.005
4752 : without any subversion label as a subdirectory in $sitelib
4753 if test "${api_revision}${api_version}${api_subversion}" = "550"; then
4754 api_versionstring='5.005'
4757 : determine installation style
4758 : For now, try to deduce it from prefix unless it is already set.
4759 : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
4760 case "$installstyle" in
4761 '') case "$prefix" in
4762 *perl*) dflt='lib';;
4763 *) dflt='lib/perl5' ;;
4766 *) dflt='lib/perl5' ;;
4768 : Probably not worth prompting for this since we prompt for all
4769 : the directories individually, and the prompt would be too long and