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 Wed Mar 1 00:58:04 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
455 d_old_pthread_create_joinable=''
456 old_pthread_create_joinable=''
697 inc_version_list_init=''
715 ignore_versioned_solibs=''
880 d_stdio_stream_array=''
881 stdio_stream_array=''
927 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
930 : We must find out about Eunice early
932 if test -f /etc/unixtovms; then
933 eunicefix=/etc/unixtovms
935 if test -f /etc/unixtovms.exe; then
936 eunicefix=/etc/unixtovms.exe
940 : set useposix=false in your hint file to disable the POSIX extension.
942 : set useopcode=false in your hint file to disable the Opcode extension.
944 : Trailing extension. Override this in a hint file, if needed.
946 : Extra object files, if any, needed on this platform.
948 : Possible local include directories to search.
949 : Set locincpth to "" in a hint file to defeat local include searches.
950 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
951 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
953 : no include file wanted by default
957 : change the next line if compiling for Xenix/286 on Xenix/386
958 xlibpth='/usr/lib/386 /lib/386'
959 : Possible local library directories to search.
960 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
961 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
963 : general looking path for locating libraries
964 glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
965 glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
966 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
967 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
968 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
970 : Private path used by Configure to find libraries. Its value
971 : is prepended to libpth. This variable takes care of special
972 : machines, like the mips. Usually, it should be empty.
975 : default library list
977 : some systems want to use only the non-versioned libso:s
978 ignore_versioned_solibs=''
979 : set usemultiplicity on the Configure command line to enable multiplicity.
980 : set usesocks on the Configure command line to enable socks.
981 : set usethreads on the Configure command line to enable threads.
982 : full support for void wanted by default
985 : List of libraries we want.
986 : If anyone needs -lnet, put it in a hint file.
987 libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
988 libswanted="$libswanted dld ld sun m c cposix posix"
989 libswanted="$libswanted ndir dir crypt sec"
990 libswanted="$libswanted ucb bsd BSD PW x iconv"
991 : We probably want to search /usr/shlib before most other libraries.
992 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
993 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
994 glibpth="/usr/shlib $glibpth"
995 : Do not use vfork unless overridden by a hint file.
998 : Find the basic shell for Bourne shell scripts
1002 *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
1005 if test -f "$xxx"; then
1008 : Build up a list and do a single loop so we can 'break' out.
1009 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1010 for xxx in sh bash ksh pdksh ash; do
1012 try="$try ${p}/${xxx}"
1016 if test -f "$xxx"; then
1019 elif test -f "$xxx.exe"; then
1030 $me: Fatal Error: I can't find a Bourne Shell anywhere.
1032 Usually it's in /bin/sh. How did you even get this far?
1033 Please contact me (Perl Maintainers) at perlbug@perl.com and
1034 we'll try to straighten this all out.
1040 : see if sh knows # comments
1041 if `$sh -c '#' >/dev/null 2>&1`; then
1045 test -f $xcat || xcat=/usr/bin/cat
1050 if test -s today; then
1053 echo "#! $xcat" > try
1057 if test -s today; then
1065 echo "Your $sh doesn't grok # comments--I will strip them later on."
1068 echo "exec grep -v '^[ ]*#'" >spitshell
1070 $eunicefix spitshell
1071 spitshell=`pwd`/spitshell
1073 echo "I presume that if # doesn't work, #! won't work either!"
1078 : figure out how to guarantee sh startup
1080 '') startsh=${sharpbang}${sh} ;;
1092 : echo "Yup, it does."
1094 echo "Hmm... '$startsh' does not guarantee sh startup..."
1095 echo "You may have to fix up the shell scripts to make sure $sh runs them."
1100 : Save command line options in file UU/cmdline.opt for later use in
1101 : generating config.sh.
1102 cat > cmdline.opt <<EOSH
1103 # Configure command line arguments.
1110 cat >>cmdline.opt <<EOSH
1111 config_arg$argn='$arg'
1113 argn=`expr $argn + 1`
1116 : produce awk script to parse command line options
1117 cat >options.awk <<'EOF'
1119 optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
1121 len = length(optstr);
1122 for (i = 1; i <= len; i++) {
1123 c = substr(optstr, i, 1);
1124 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1135 if (substr(str, 1, 1) != "-") {
1136 printf("'%s'\n", str);
1140 for (i = 2; i <= len; i++) {
1141 c = substr(str, i, 1);
1143 printf("-%s\n", substr(str, i));
1149 printf("'%s'\n", substr(str, i + 1));
1162 : process the command line options
1163 set X `for arg in "$@"; do echo "X$arg"; done |
1164 sed -e s/X// | awk -f options.awk`
1169 : set up default values
1179 rm -f optdef.sh posthint.sh
1180 cat >optdef.sh <<EOS
1186 while test $# -gt 0; do
1188 -d) shift; fastread=yes;;
1189 -e) shift; alldone=cont;;
1193 if test -r "$1"; then
1196 echo "$me: cannot read config file $1." >&2
1201 -h) shift; error=true;;
1202 -r) shift; reuseval=true;;
1203 -s) shift; silent=true; realsilent=true;;
1204 -E) shift; alldone=exit;;
1205 -K) shift; knowitall=true;;
1206 -O) shift; override=true;;
1207 -S) shift; silent=true; extractsh=true;;
1212 echo "$me: use '-U symbol=', not '-D symbol='." >&2
1213 echo "$me: ignoring -D $1" >&2
1216 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1217 *) echo "$1='define'" >> optdef.sh;;
1224 *=) echo "$1" >> optdef.sh;;
1226 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1227 echo "$me: ignoring -U $1" >&2
1229 *) echo "$1='undef'" >> optdef.sh;;
1240 *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1244 zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
1245 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1251 *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1252 yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1253 zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1254 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1255 *) xxx=`echo $yyy|sed 's!:.*!!'`
1256 yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1262 echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
1264 echo "$yyy=''" >> posthint.sh ;;
1269 echo "$yyy='$zzz'" >> posthint.sh ;;
1271 echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
1273 echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
1278 echo "$yyy=$zzz" >> posthint.sh ;;
1279 *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1283 -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1286 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1294 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1295 [-U symbol] [-U symbol=] [-A command:symbol...]
1296 -d : use defaults for all answers.
1297 -e : go on without questioning past the production of config.sh.
1298 -f : specify an alternate default configuration file.
1299 -h : print this help message and exit (with an error status).
1300 -r : reuse C symbols value if possible (skips costly nm extraction).
1301 -s : silent mode, only echoes questions and essential information.
1302 -D : define symbol to have some value:
1303 -D symbol symbol gets the value 'define'
1304 -D symbol=value symbol gets the value 'value'
1305 -E : stop at the end of questions, after having produced config.sh.
1306 -K : do not use unless you know what you are doing.
1307 -O : let -D and -U override definitions from loaded configuration file.
1308 -S : perform variable substitutions on all .SH files (can mix with -f)
1309 -U : undefine symbol:
1310 -U symbol symbol gets the value 'undef'
1311 -U symbol= symbol gets completely empty
1312 -A : manipulate symbol after the platform specific hints have been applied:
1313 -A symbol=value append " "value to symbol
1314 -A append:symbol=value append value to symbol
1315 -A define:symbol=value define symbol to have value
1316 -A clear:symbol define symbol to be ''
1317 -A define:symbol define symbol to be 'define'
1318 -A eval:symbol=value define symbol to be eval of value
1319 -A prepend:symbol=value prepend value to symbol
1320 -A undef:symbol define symbol to be 'undef'
1321 -A undef:symbol= define symbol to be ''
1322 -V : print version number and exit (with a zero status).
1329 case "$fastread$alldone" in
1332 if test ! -t 0; then
1333 echo "Say 'sh Configure', not 'sh <Configure'"
1341 true) exec 1>/dev/null;;
1344 : run the defines and the undefines, if any, but leave the file out there...
1347 : create the posthint manipulation script and leave the file out there...
1352 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1353 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1354 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1355 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1356 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1359 : Some greps do not return status, grrr.
1360 echo "grimblepritz" >grimble
1361 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1363 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1369 : the following should work in any shell
1373 echo "AGH! Grep doesn't return a status. Attempting remedial action."
1374 cat >contains <<'EOSS'
1375 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1380 : Find the path to the source tree
1383 */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1386 *) src=`cd ../$src && pwd` ;;
1399 if test -f $rsrc/Configure && \
1400 $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1402 : found it, so we are ok.
1405 for src in . .. ../.. ../../.. ../../../..; do
1406 if test -f ../$src/Configure && \
1407 $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1418 Sorry, I can't seem to locate the source dir for $package. Please start
1419 Configure with an explicit path -- i.e. /some/path/Configure.
1427 echo "Sources for $package found in \"$src\"." >&4
1431 : script used to extract .SH files with variable substitutions
1432 cat >extract <<'EOS'
1434 echo "Doing variable substitutions on .SH files..."
1435 if test -f $src/MANIFEST; then
1436 set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
1438 echo "(Looking for .SH files under the source directory.)"
1439 set x `(cd $src; find . -name "*.SH" -print)`
1443 0) set x `(cd $src; echo *.SH)`; shift;;
1445 if test ! -f $src/$1; then
1451 while test $name; do
1452 if test ! -d "$name"; then
1453 create="$name $create";
1454 name=`echo $name | sed -e "s|^[^/]*$||"`;
1455 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1460 for file in $create; do
1469 dir=`expr X$file : 'X\(.*\)/'`
1470 file=`expr X$file : 'X.*/\(.*\)'`
1471 (cd $dir && . ./$file)
1481 dir=`expr X$file : 'X\(.*\)/'`
1482 file=`expr X$file : 'X.*/\(.*\)'`
1483 (set x $dir; shift; eval $mkdir_p)
1493 if test -f $src/config_h.SH; then
1494 if test ! -f config.h; then
1495 : oops, they left it out of MANIFEST, probably, so do it anyway.
1501 : extract files and exit if asked to do so
1502 case "$extractsh" in
1504 case "$realsilent" in
1508 case "$config_sh" in
1509 '') config_sh='config.sh';;
1512 echo "Fetching answers from $config_sh..."
1515 test "$override" && . ./optdef.sh
1524 : Eunice requires " " instead of "", can you believe it
1527 echo "Beginning of configuration questions for $package."
1529 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1531 : first determine how to suppress newline on echo command
1533 echo "Checking echo to see how to suppress newlines..."
1534 (echo "hi there\c" ; echo " ") >.echotmp
1535 if $contains c .echotmp >/dev/null 2>&1 ; then
1546 echo $n "The star should be here-->$c"
1550 : Now test for existence of everything in MANIFEST
1552 if test -f $rsrc/MANIFEST; then
1553 echo "First let's make sure your kit is complete. Checking..." >&4
1554 awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1557 for filelist in x??; do
1558 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1560 if test -s missing; then
1564 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1566 You have the option of continuing the configuration process, despite the
1567 distinct possibility that your kit is damaged, by typing 'y'es. If you
1568 do, don't blame me if something goes wrong. I advise you to type 'n'o
1569 and contact the author (perlbug@perl.com).
1572 echo $n "Continue? [n] $c" >&4
1576 echo "Continuing..." >&4
1580 echo "ABORTING..." >&4
1585 echo "Looks good..."
1588 echo "There is no MANIFEST file. I hope your kit is complete !"
1593 : Find the appropriate value for a newline for tr
1594 if test -n "$DJGPP"; then
1597 if test X"$trnl" = X; then
1598 case "`echo foo|tr '\n' x 2>/dev/null`" in
1602 if test X"$trnl" = X; then
1603 case "`echo foo|tr '\012' x 2>/dev/null`" in
1604 foox) trnl='\012' ;;
1607 if test X"$trnl" = X; then
1610 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1616 : compute the number of columns on the terminal for proper question formatting
1621 : set up the echo used in my read
1622 myecho="case \"\$xxxm\" in
1623 '') echo $n \"\$rp $c\" >&4;;
1625 '') echo $n \"[\$xxxm] $c\";;
1627 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1629 echo $n \"[\$xxxm] $c\" >&4
1631 echo $n \"\$rp [\$xxxm] $c\" >&4
1637 : now set up to do reads with possible shell escape and default assignment
1643 case "\$fastread" in
1644 yes) case "\$dflt" in
1647 case "\$silent-\$rp" in
1652 *) case "\$silent" in
1653 true) case "\$rp" in
1658 while expr "X\$ans" : "X!" >/dev/null; do
1662 aok=''; eval "ans=\\"\$answ\\"" && aok=y
1670 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1679 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1684 echo "(OK, I'll run with -d after this question.)" >&4
1687 echo "*** Sorry, \$1 not supported yet." >&4
1697 echo "*** Substitution done -- please confirm."
1699 ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1704 echo "*** Error -- try again."
1711 case "\$ans\$xxxm\$nostick" in
1723 : create .config dir to save info across Configure sessions
1724 test -d ../.config || mkdir ../.config
1725 cat >../.config/README <<EOF
1726 This directory created by Configure to save information that should
1727 persist across sessions for $package.
1729 You may safely delete it if you wish.
1732 : general instructions
1735 user=`(logname) 2>/dev/null`
1737 '') user=`whoami 2>&1`;;
1739 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1742 rp='Would you like to see the instructions?'
1753 This installation shell script will examine your system and ask you questions
1754 to determine how the perl5 package should be installed. If you get
1755 stuck on a question, you may use a ! shell escape to start a subshell or
1756 execute a command. Many of the questions will have default answers in square
1757 brackets; typing carriage return will give you the default.
1759 On some of the questions which ask for file or directory names you are allowed
1760 to use the ~name construct to specify the login directory belonging to "name",
1761 even if you don't have a shell which knows about that. Questions where this is
1762 allowed will be marked "(~name ok)".
1766 dflt='Type carriage return to continue'
1770 The prompter used in this script allows you to use shell variables and
1771 backticks in your answers. You may use $1, $2, etc... to refer to the words
1772 in the default answer, as if the default line was a set of arguments given to a
1773 script shell. This means you may also use $* to repeat the whole default line,
1774 so you do not have to re-type everything to add something to the default.
1776 Everytime there is a substitution, you will have to confirm. If there is an
1777 error (e.g. an unmatched backtick), the default answer will remain unchanged
1778 and you will be prompted again.
1780 If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1781 the questions and use the computed defaults (or the previous answers if there
1782 was already a config.sh file). Type 'Configure -h' for a list of options.
1783 You may also start interactively and then answer '& -d' at any prompt to turn
1784 on the non-interactive behaviour for the remainder of the execution.
1790 Much effort has been expended to ensure that this shell script will run on any
1791 Unix system. If despite that it blows up on yours, your best bet is to edit
1792 Configure and run it again. If you can't run Configure for some reason,
1793 you'll have to generate a config.sh file by hand. Whatever problems you
1794 have, let me (perlbug@perl.com) know how I blew it.
1796 This installation script affects things in two ways:
1798 1) it may do direct variable substitutions on some of the files included
1800 2) it builds a config.h file for inclusion in C programs. You may edit
1801 any of these files as the need arises after running this script.
1803 If you make a mistake on a question, there is no easy way to back up to it
1804 currently. The easiest thing to do is to edit config.sh and rerun all the SH
1805 files. Configure will offer to let you do this before it runs the SH files.
1808 dflt='Type carriage return to continue'
1810 case "$firsttime" in
1811 true) echo $user >>../.config/instruct;;
1815 : find out where common programs are
1817 echo "Locating common programs..." >&4
1830 if test -d \$dir/\$thing; then
1836 for thisthing in \$dir/\$thing; do
1837 : just loop through to pick last item
1839 if test -f \$thisthing; then
1842 elif test -f \$dir/\$thing.exe; then
1843 if test -n "$DJGPP"; then
1844 echo \$dir/\$thing.exe
1846 : on Eunice apparently
1896 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1897 pth="$pth /lib /usr/lib"
1898 for file in $loclist; do
1902 if test -f "$xxx"; then
1905 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1906 xxx=`./loc $file $file $pth`
1909 '') xxx=`./loc $file $file $pth`;;
1910 *) xxx=`./loc $xxx $xxx $pth`;;
1916 echo $file is in $xxx.
1919 echo $file is in $xxx.
1922 echo "I don't know where '$file' is, and my life depends on it." >&4
1923 echo "Go find a public domain implementation or fix your PATH setting!" >&4
1929 echo "Don't worry if any of the following aren't found..."
1931 for file in $trylist; do
1935 if test -f "$xxx"; then
1938 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1939 xxx=`./loc $file $file $pth`
1942 '') xxx=`./loc $file $file $pth`;;
1943 *) xxx=`./loc $xxx $xxx $pth`;;
1949 echo $file is in $xxx.
1952 echo $file is in $xxx.
1955 echo "I don't see $file out there, $say."
1962 echo "Substituting grep for egrep."
1968 echo "Substituting cp for ln."
1974 echo "Hopefully test is built into your sh."
1977 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
1978 echo "Using the test built into your sh."
1986 echo "Hopefully echo is built into your sh."
1991 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
1992 $echo $n "hi there$c" >foo1
1993 echo $n "hi there$c" >foo2
1994 if cmp foo1 foo2 >/dev/null 2>&1; then
1995 echo "They are compatible. In fact, they may be identical."
2002 They are not compatible! You are probably running ksh on a non-USG system.
2003 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
2004 have echo built in and we may have to run some Bourne shell scripts. That
2005 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
2008 $echo $n "The star should be here-->$c"
2015 : determine whether symbolic links are supported
2018 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2019 echo "Symbolic links are supported." >&4
2022 echo "Symbolic links are NOT supported." >&4
2027 : see whether [:lower:] and [:upper:] are supported character classes
2029 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2031 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2035 *) # There is a discontinuity in EBCDIC between 'I' and 'J'
2036 # (0xc9 and 0xd1), therefore that is a nice testing point.
2037 if test "X$up" = X -o "X$low" = X; then
2038 case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
2044 if test "X$up" = X -o "X$low" = X; then
2045 case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
2051 if test "X$up" = X -o "X$low" = X; then
2052 case "`echo IJ | od -x 2>/dev/null`" in
2054 echo "Hey, this might be EBCDIC." >&4
2055 if test "X$up" = X -o "X$low" = X; then
2056 case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
2057 ij) up='[A-IJ-RS-Z]'
2062 if test "X$up" = X -o "X$low" = X; then
2063 case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2073 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2075 echo "Using $up and $low to convert case." >&4
2078 echo "I don't know how to translate letters from upper to lower case." >&4
2079 echo "Your tr is not acting any way I know of." >&4
2083 : set up the translation script tr, must be called with ./tr of course
2087 '[A-Z][a-z]') exec $tr '$up' '$low';;
2088 '[a-z][A-Z]') exec $tr '$low' '$up';;
2095 : Try to determine whether config.sh was made on this system
2096 case "$config_sh" in
2098 myuname=`$uname -a 2>/dev/null`
2099 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2100 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2101 # because the A-Z/a-z are not consecutive.
2102 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2103 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2104 newmyuname="$myuname"
2106 case "$knowitall" in
2108 if test -f ../config.sh; then
2109 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2110 eval "`grep myuname= ../config.sh`"
2112 if test "X$myuname" = "X$newmyuname"; then
2120 : Get old answers from old config file if Configure was run on the
2121 : same system, otherwise use the hints.
2124 if test -f config.sh; then
2126 rp="I see a config.sh file. Shall I use it to set the defaults?"
2129 n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
2130 *) echo "Fetching default answers from your old config.sh file..." >&4
2138 : Older versions did not always set $sh. Catch re-use of such
2147 if test ! -f config.sh; then
2150 First time through, eh? I have some defaults handy for some systems
2151 that need some extra help getting the Configure answers right:
2154 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
2156 : Half the following guesses are probably wrong... If you have better
2157 : tests or hints, please send them to perlbug@perl.com
2158 : The metaconfig authors would also appreciate a copy...
2159 $test -f /irix && osname=irix
2160 $test -f /xenix && osname=sco_xenix
2161 $test -f /dynix && osname=dynix
2162 $test -f /dnix && osname=dnix
2163 $test -f /lynx.os && osname=lynxos
2164 $test -f /unicos && osname=unicos && osvers=`$uname -r`
2165 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2166 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2167 $test -f /bin/mips && /bin/mips && osname=mips
2168 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2169 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2170 $test -d /usr/apollo/bin && osname=apollo
2171 $test -f /etc/saf/_sactab && osname=svr4
2172 $test -d /usr/include/minix && osname=minix
2173 if $test -d /MachTen -o -d /MachTen_Folder; then
2175 if $test -x /sbin/version; then
2176 osvers=`/sbin/version | $awk '{print $2}' |
2177 $sed -e 's/[A-Za-z]$//'`
2178 elif $test -x /usr/etc/version; then
2179 osvers=`/usr/etc/version | $awk '{print $2}' |
2180 $sed -e 's/[A-Za-z]$//'`
2186 $test -f /sys/posix.dll &&
2187 $test -f /usr/bin/what &&
2188 set X `/usr/bin/what /sys/posix.dll` &&
2189 $test "$3" = UWIN &&
2193 if $test -f $uname; then
2201 umips) osname=umips ;;
2204 [23]100) osname=mips ;;
2205 next*) osname=next ;;
2207 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2208 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2211 elif $test -f /etc/kconfig; then
2213 if test "$lns" = "$ln -s"; then
2215 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2217 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2224 if test -n "$DJGPP"; then
2233 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2235 'not found') osvers="$4"."$3" ;;
2236 '<3240'|'<>3240') osvers=3.2.0 ;;
2237 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2238 '=3250'|'>3250') osvers=3.2.5 ;;
2242 bsd386) osname=bsd386
2245 cygwin*) osname=cygwin
2248 *dc.osx) osname=dcosx
2254 domainos) osname=apollo
2260 dynixptx*) osname=dynixptx
2261 osvers=`echo "$4"|sed 's/^v//'`
2263 freebsd) osname=freebsd
2265 genix) osname=genix ;;
2267 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2283 netbsd*) osname=netbsd
2286 news-os) osvers="$3"
2288 4*) osname=newsos4 ;;
2292 next*) osname=next ;;
2293 POSIX-BC | posix-bc ) osname=posix-bc
2296 powerux | power_ux | powermax_os | powermaxos | \
2297 powerunix | power_unix) osname=powerux
2303 solaris) osname=solaris
2305 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2312 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2316 titanos) osname=titanos
2325 ultrix) osname=ultrix
2328 osf1|mls+) case "$5" in
2331 osvers=`echo "$3" | sed 's/^[xvt]//'`
2333 hp*) osname=hp_osf1 ;;
2334 mips) osname=mips_osf1 ;;
2337 unixware) osname=svr5
2343 $2) case "$osname" in
2347 : svr4.x or possibly later
2357 if test -f /stand/boot ; then
2358 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2359 if test -n "$INITPROG" -a -f "$INITPROG"; then
2360 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2361 if test -n "$isesix"; then
2369 *) if test -f /etc/systemid; then
2371 set `echo $3 | $sed 's/\./ /g'` $4
2372 if $test -f $src/hints/sco_$1_$2_$3.sh; then
2374 elif $test -f $src/hints/sco_$1_$2.sh; then
2376 elif $test -f $src/hints/sco_$1.sh; then
2381 '') : Still unknown. Probably a generic Sys V.
2390 *) case "$osname" in
2391 '') : Still unknown. Probably a generic BSD.
2399 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2400 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2401 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
2404 $rm -f UU/kernel.what
2405 elif test -d c:/.; then
2412 : Now look for a hint file osname_osvers, unless one has been
2413 : specified already.
2416 file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
2417 : Also try without trailing minor version numbers.
2418 xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
2419 xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
2420 xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
2421 xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
2424 *) case "$osvers" in
2427 *) if $test -f $src/hints/$file.sh ; then
2429 elif $test -f $src/hints/$xfile.sh ; then
2431 elif $test -f $src/hints/$xxfile.sh ; then
2433 elif $test -f $src/hints/$xxxfile.sh ; then
2435 elif $test -f $src/hints/$xxxxfile.sh ; then
2437 elif $test -f "$src/hints/${osname}.sh" ; then
2446 if $test -f Policy.sh ; then
2449 none) dflt="Policy" ;;
2450 *) dflt="Policy $dflt" ;;
2455 dflt=`echo $hintfile | $sed 's/\.sh$//'`
2459 if $test -f Policy.sh ; then
2462 There's also a Policy hint file available, which should make the
2463 site-specific (policy) questions easier to answer.
2470 You may give one or more space-separated answers, or "none" if appropriate.
2471 A well-behaved OS will have no hints, so answering "none" or just "Policy"
2472 is a good thing. DO NOT give a wrong version or a wrong OS.
2476 rp="Which of these apply, if any?"
2479 for file in $tans; do
2480 if $test X$file = XPolicy -a -f Policy.sh; then
2482 $cat Policy.sh >> UU/config.sh
2483 elif $test -f $src/hints/$file.sh; then
2484 . $src/hints/$file.sh
2485 $cat $src/hints/$file.sh >> UU/config.sh
2486 elif $test X$tans = X -o X$tans = Xnone ; then
2489 : Give one chance to correct a possible typo.
2490 echo "$file.sh does not exist"
2492 rp="hint to use instead?"
2494 for file in $ans; do
2495 if $test -f "$src/hints/$file.sh"; then
2496 . $src/hints/$file.sh
2497 $cat $src/hints/$file.sh >> UU/config.sh
2498 elif $test X$ans = X -o X$ans = Xnone ; then
2501 echo "$file.sh does not exist -- ignored."
2508 : Remember our hint file for later.
2509 if $test -f "$src/hints/$file.sh" ; then
2519 echo "Fetching default answers from $config_sh..." >&4
2523 cp $config_sh config.sh 2>/dev/null
2533 test "$override" && . ./optdef.sh
2534 myuname="$newmyuname"
2536 : Restore computed paths
2537 for file in $loclist $trylist; do
2538 eval $file="\$_$file"
2543 Configure uses the operating system name and version to set some defaults.
2544 The default value is probably right if the name rings a bell. Otherwise,
2545 since spelling matters for me, either accept the default or answer "none"
2552 ''|' '|none) dflt=none ;;
2553 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
2556 *) dflt="$osname" ;;
2558 rp="Operating system name?"
2562 *) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
2568 ''|' '|none) dflt=none ;;
2569 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
2570 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
2572 ''|' ') dflt=none ;;
2577 *) dflt="$osvers" ;;
2579 rp="Operating system version?"
2589 : who configured the system
2590 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
2591 cf_by=`(logname) 2>/dev/null`
2594 cf_by=`(whoami) 2>/dev/null`
2596 "") cf_by=unknown ;;
2600 : set up the script used to warn in case of inconsistency
2607 echo "*** WHOA THERE!!! ***" >&4
2608 echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
2609 rp=" Keep the $hint value?"
2612 y) td=$was; tu=$was;;
2616 : function used to set $1 to $val
2617 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
2619 $define$undef) . ./whoa; eval "$var=\$td";;
2620 $undef$define) . ./whoa; eval "$var=\$tu";;
2621 *) eval "$var=$val";;
2624 case "$usethreads" in
2625 $define|true|[yY]*) dflt='y';;
2630 Perl can be built to take advantage of threads on some systems.
2631 To do so, Configure can be run with -Dusethreads.
2633 Note that threading is a highly experimental feature, and
2634 some known race conditions still remain. If you choose to try
2635 it, be very sure to not actually deploy it for production
2636 purposes. README.threads has more details, and is required
2637 reading if you enable threads.
2639 If this doesn't make any sense to you, just accept the default '$dflt'.
2641 rp='Build a threading Perl?'
2644 y|Y) val="$define" ;;
2650 case "$usethreads" in
2654 As of 5.5.640, Perl has two different internal threading implementations,
2655 the 5.005 version (5005threads) and an interpreter-based version
2656 (ithreads) that has one interpreter per thread. Both are very
2657 experimental. This arrangement exists to help developers work out
2658 which one is better.
2660 If you're a casual user, you probably don't want interpreter-threads
2661 at this time. There doesn't yet exist a way to create threads from
2662 within Perl in this model, i.e., "use Thread;" will NOT work.
2664 : Default to ithreads unless overridden on command line or with
2667 case "$use5005threads" in
2668 $define|true|[yY]*) dflt='n';;
2670 case "$useithreads" in
2671 $undef|false|[nN]*) dflt='n';;
2673 rp='Use interpreter-based ithreads?'
2676 y|Y) val="$define" ;;
2681 : Now set use5005threads to the opposite value.
2682 case "$useithreads" in
2683 $define) val="$undef" ;;
2690 useithreads="$undef"
2691 use5005threads="$undef"
2695 case "$d_oldpthreads" in
2696 '') : Configure tests would be welcome here. For now, assume undef.
2698 *) val="$d_oldpthreads" ;;
2704 case "$usethreads" in
2705 "$define"|true|[yY]*)
2706 : Look for a hint-file generated 'call-back-unit'. If the
2707 : user has specified that a threading perl is to be built,
2708 : we may need to set or change some other defaults.
2709 if $test -f usethreads.cbu; then
2710 echo "Your platform has some specific hints for threaded builds, using them..."
2714 (Your platform doesn't have any specific hints for threaded builds.
2715 Assuming POSIX threads, then.)
2723 Perl can be built so that multiple Perl interpreters can coexist
2724 within the same Perl executable.
2727 case "$useithreads" in
2730 This multiple interpreter support is required for interpreter-based threads.
2734 *) case "$usemultiplicity" in
2735 $define|true|[yY]*) dflt='y';;
2739 echo "If this doesn't make any sense to you, just accept the default '$dflt'."
2740 rp='Build Perl for multiplicity?'
2743 y|Y) val="$define" ;;
2751 : determine where manual pages are on this system
2755 syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
2756 syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
2757 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
2758 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
2759 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
2760 sysman=`./loc . /usr/man/man1 $syspath`
2763 if $test -d "$sysman"; then
2764 echo "System manual is in $sysman." >&4
2766 echo "Could not find manual pages in source form." >&4
2769 : see what memory models we can support
2772 $cat >pdp11.c <<'EOP'
2781 ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1
2782 if $test -f pdp11 && ./pdp11 2>/dev/null; then
2783 dflt='unsplit split'
2785 tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
2788 *) if $test -d /lib/small || $test -d /usr/lib/small; then
2793 if $test -d /lib/medium || $test -d /usr/lib/medium; then
2796 if $test -d /lib/large || $test -d /usr/lib/large; then
2799 if $test -d /lib/huge || $test -d /usr/lib/huge; then
2808 Some systems have different model sizes. On most systems they are called
2809 small, medium, large, and huge. On the PDP11 they are called unsplit and
2810 split. If your system doesn't support different memory models, say "none".
2811 If you wish to force everything to one memory model, say "none" here and
2812 put the appropriate flags later when it asks you for other cc and ld flags.
2813 Venix systems may wish to put "none" and let the compiler figure things out.
2814 (In the following question multiple model names should be space separated.)
2816 The default for most systems is "none".
2819 rp="Which memory models are supported?"
2834 '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
2835 $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
2842 rp="What flag indicates separate I and D space?"
2850 *large*|*small*|*medium*|*huge*)
2857 rp="What flag indicates large model?"
2867 *huge*) case "$huge" in
2871 rp="What flag indicates huge model?"
2881 *medium*) case "$medium" in
2885 rp="What flag indicates medium model?"
2892 *) medium="$large";;
2895 *small*) case "$small" in
2899 rp="What flag indicates small model?"
2910 echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
2913 $rm -f pdp11.* pdp11
2915 : make some quick guesses about what we are up against
2917 $echo $n "Hmm... $c"
2927 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
2928 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
2930 echo "Looks kind of like an OSF/1 system, but we'll see..."
2932 elif test `echo abc | tr a-z A-Z` = Abc ; then
2933 xxx=`./loc addbib blurfl $pth`
2934 if $test -f $xxx; then
2935 echo "Looks kind of like a USG system with BSD features, but we'll see..."
2939 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
2940 echo "Looks kind of like an extended USG system, but we'll see..."
2942 echo "Looks kind of like a USG system, but we'll see..."
2946 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
2947 echo "Looks kind of like a BSD system, but we'll see..."
2951 echo "Looks kind of like a Version 7 system, but we'll see..."
2954 case "$eunicefix" in
2957 There is, however, a strange, musty smell in the air that reminds me of
2958 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
2962 : it so happens the Eunice I know will not run shell scripts in Unix format
2966 echo "Congratulations. You aren't running Eunice."
2970 : Detect OS2. The p_ variable is set above in the Head.U unit.
2975 I have the feeling something is not exactly right, however...don't tell me...
2976 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
2981 if test -f /xenix; then
2982 echo "Actually, this looks more like a XENIX system..."
2987 echo "It's not Xenix..."
2992 if test -f /venix; then
2993 echo "Actually, this looks more like a VENIX system..."
3000 echo "Nor is it Venix..."
3003 chmod +x bsd usg v7 osf1 eunice xenix venix os2
3004 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
3007 : see if we need a special compiler
3015 *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
3016 if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
3030 On some older systems the default C compiler will not resolve multiple global
3031 references that happen to have the same name. On some such systems the "Mcc"
3032 command may be used to force these to be resolved. On other systems a "cc -M"
3033 command is required. (Note that the -M flag on other systems indicates a
3034 memory model to use!) If you have the Gnu C compiler, you might wish to use
3040 rp="Use which C compiler?"
3048 rp="Use which C compiler?"
3052 : Look for a hint-file generated 'call-back-unit'. Now that the
3053 : user has specified the compiler, we may need to set or change some
3055 if $test -f cc.cbu; then
3059 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3060 $cat >gccvers.c <<EOM
3065 printf("%s\n", __VERSION__);
3067 printf("%s\n", "1");
3073 if $cc $ldflags -o gccvers gccvers.c; then
3074 gccversion=`./gccvers`
3075 case "$gccversion" in
3076 '') echo "You are not using GNU cc." ;;
3077 *) echo "You are using GNU cc $gccversion."
3082 echo "*** WHOA THERE!!! ***" >&4
3083 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3084 case "$knowitall" in
3086 echo " You'd better start hunting for one and let me know about it." >&4
3092 case "$gccversion" in
3093 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3096 : decide how portable to be. Allow command line overrides.
3097 case "$d_portable" in
3099 *) d_portable="$define" ;;
3102 : set up shell script to do ~ expansion
3108 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3111 if $test -f /bin/csh; then
3112 /bin/csh -f -c "glob \$1"
3117 name=\`$expr x\$1 : '..\([^/]*\)'\`
3118 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3119 if $test ! -d "\$dir"; then
3121 echo "\$me: can't locate home directory for: \$name" >&2
3126 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3142 : now set up to get a file name
3146 cat <<'EOSC' >>getfile
3162 expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
3163 fn=`echo $fn | sed 's/(.*)//'`
3169 loc_file=`expr $fn : '.*:\(.*\)'`
3170 fn=`expr $fn : '\(.*\):.*'`
3178 */*) fullpath=true;;
3187 *e*) exp_file=true;;
3190 *p*) nopath_ok=true;;
3195 *d*) type='Directory';;
3196 *l*) type='Locate';;
3201 Locate) what='File';;
3206 case "$d_portable" in
3214 while test "$type"; do
3219 true) rp="$rp (~name ok)";;
3222 if test -f UU/getfile.ok && \
3223 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3242 value=`UU/filexp $ans`
3245 if test "$ans" != "$value"; then
3246 echo "(That expands to $value on this system.)"
3260 /*) value="$ansexp" ;;
3265 echo "I shall only accept a full path name, as in /bin/ls." >&4
3266 echo "Use a ! shell escape if you wish to check pathnames." >&4
3269 echo "Please give a full path name, starting with slash." >&4
3272 echo "Note that using ~name is ok provided it expands well." >&4
3285 for fp in $gfpth; do
3286 if test "X$fp" = X.; then
3291 if test -f "$pf"; then
3293 elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3295 echo "($value is not a plain file, but that's ok.)"
3298 if test X"$type" = X; then
3305 for fp in $gfpth; do
3306 if test "X$fp" = X.; then
3311 if test -d "$pf"; then
3319 if test -d "$ansexp"; then
3320 echo "(Looking for $loc_file in directory $value.)"
3321 value="$value/$loc_file"
3322 ansexp="$ansexp/$loc_file"
3324 if test -f "$ansexp"; then
3327 case "$nopath_ok" in
3328 true) case "$value" in
3330 *) echo "Assuming $value will be in people's path."
3346 if test "$fastread" = yes; then
3351 rp="$what $value doesn't exist. Use that name anyway?"
3370 test "X$gfpthkeep" != Xy && gfpth=""
3373 : What should the include directory be ?
3375 $echo $n "Hmm... $c"
3379 if $test -f /bin/mips && /bin/mips; then
3380 echo "Looks like a MIPS system..."
3381 $cat >usr.c <<'EOCP'
3382 #ifdef SYSTYPE_BSD43
3386 if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3387 dflt='/bsd43/usr/include'
3391 mips_type='System V'
3393 $rm -f usr.c usr.out
3394 echo "and you're compiling with the $mips_type compiler and libraries."
3398 echo "Doesn't look like a MIPS system."
3408 case "$xxx_prompt" in
3411 rp='Where are the include files you want to use?'
3419 : see how we invoke the C preprocessor
3421 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3422 cat <<'EOT' >testcpp.c
3428 if test ! -f cppstdin; then
3429 if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3430 # AIX cc -E doesn't show the absolute headerfile
3431 # locations but we'll cheat by using the -M flag.
3432 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
3434 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3437 echo "Keeping your $hint cppstdin wrapper."
3440 wrapper=`pwd`/cppstdin
3444 if $test "X$cppstdin" != "X" && \
3445 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3446 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3448 echo "You used to use $cppstdin $cppminus so we'll use that again."
3450 '') echo "But let's see if we can live without a wrapper..." ;;
3452 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3453 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3455 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3458 echo "(However, $cpprun $cpplast does not work, let's see...)"
3466 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3473 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3474 $cc -E <testcpp.c >testcpp.out 2>&1; \
3475 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3476 echo "Yup, it does."
3479 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3480 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3481 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3482 echo "Yup, it does."
3485 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3486 $cc -P <testcpp.c >testcpp.out 2>&1; \
3487 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3488 echo "Yipee, that works!"
3491 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3492 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3493 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3494 echo "At long last!"
3497 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3498 $cpp <testcpp.c >testcpp.out 2>&1; \
3499 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3503 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3504 $cpp - <testcpp.c >testcpp.out 2>&1; \
3505 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3506 echo "Hooray, it works! I was beginning to wonder."
3509 elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3510 $wrapper <testcpp.c >testcpp.out 2>&1; \
3511 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3517 rp="No dice. I can't find a C preprocessor. Name one:"
3521 $x_cpp <testcpp.c >testcpp.out 2>&1
3522 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3523 echo "OK, that will do." >&4
3525 echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
3540 echo "Perhaps can we force $cc -E using a wrapper..."
3541 if $wrapper <testcpp.c >testcpp.out 2>&1; \
3542 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3548 echo "Nope, we'll have to live without it..."
3562 "$wrapper"|'cppstdin') ;;
3563 *) $rm -f $wrapper;;
3565 $rm -f testcpp.c testcpp.out
3567 : Set private lib path
3570 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
3575 '') dlist="$loclibpth $plibpth $glibpth";;
3576 *) dlist="$libpth";;
3579 : Now check and see which directories actually exist, avoiding duplicates
3583 if $test -d $xxx; then
3586 *) libpth="$libpth $xxx";;
3592 Some systems have incompatible or broken versions of libraries. Among
3593 the directories listed in the question below, please remove any you
3594 know not to be holding relevant libraries, and add any that are needed.
3595 Say "none" for none.
3606 rp="Directories to use for library searches?"
3613 : compute shared library extension
3616 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
3626 On some systems, shared libraries may be available. Answer 'none' if
3627 you want to suppress searching of shared libraries for the remainder
3628 of this configuration.
3631 rp='What is the file extension used for shared libraries?'
3635 : Define several unixisms.
3636 : Hints files or command line option can be used to override them.
3637 : The convoluted testing is in case hints files set either the old
3640 '') case "$exe_ext" in
3642 *) _exe="$exe_ext" ;;
3647 '') case "$lib_ext" in
3654 '') case "$obj_ext" in
3661 '') case "$path_sep" in
3672 : Which makefile gets called first. This is used by make depend.
3673 case "$firstmakefile" in
3674 '') firstmakefile='makefile';;
3678 $define|true|[yY]*) dflt='y';;
3683 Perl can be built to use the SOCKS proxy protocol library. To do so,
3684 Configure must be run with -Dusesocks.
3686 If this doesn't make any sense to you, just accept the default '$dflt'.
3688 rp='Build Perl for SOCKS?'
3691 y|Y) val="$define" ;;
3697 : Looking for optional libraries
3699 echo "Checking for optional libraries..." >&4
3704 case "$libswanted" in
3705 '') libswanted='c_s';;
3708 "$define") libswanted="$libswanted socks5 socks5_sh" ;;
3714 for thisdir in $libpth $xlibpth; do
3715 test -d $thisdir && libspath="$libspath $thisdir"
3717 for thislib in $libswanted; do
3718 for thisdir in $libspath; do
3720 if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
3721 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
3722 $test -f "$xxx" && eval $libscheck
3723 $test -f "$xxx" && libstyle=shared
3725 if test ! -f "$xxx"; then
3726 xxx=$thisdir/lib$thislib.$so
3727 $test -f "$xxx" && eval $libscheck
3728 $test -f "$xxx" && libstyle=shared
3730 if test ! -f "$xxx"; then
3731 xxx=$thisdir/lib$thislib$_a
3732 $test -f "$xxx" && eval $libscheck
3733 $test -f "$xxx" && libstyle=static
3735 if test ! -f "$xxx"; then
3736 xxx=$thisdir/$thislib$_a
3737 $test -f "$xxx" && eval $libscheck
3738 $test -f "$xxx" && libstyle=static
3740 if test ! -f "$xxx"; then
3741 xxx=$thisdir/lib${thislib}_s$_a
3742 $test -f "$xxx" && eval $libscheck
3743 $test -f "$xxx" && libstyle=static
3744 $test -f "$xxx" && thislib=${thislib}_s
3746 if test ! -f "$xxx"; then
3747 xxx=$thisdir/Slib$thislib$_a
3748 $test -f "$xxx" && eval $libscheck
3749 $test -f "$xxx" && libstyle=static
3751 if $test -f "$xxx"; then
3753 shared) echo "Found -l$thislib (shared)." ;;
3754 static) echo "Found -l$thislib." ;;
3755 *) echo "Found -l$thislib ($libstyle)." ;;
3759 *) dflt="$dflt -l$thislib"
3760 libsfound="$libsfound $xxx"
3762 libsfiles="$libsfiles $yyy"
3763 yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
3764 case " $libsdirs " in
3766 *) libsdirs="$libsdirs $yyy" ;;
3773 if $test ! -f "$xxx"; then
3774 echo "No -l$thislib."
3785 ' '|'') dflt='none';;
3790 In order to compile $package on your machine, a number of libraries
3791 are usually needed. Include any other special libraries here as well.
3792 Say "none" for none. The default list is almost always right.
3796 rp="What libraries to use?"
3803 : determine optimization, if desired, or use for debug flag also
3805 ' '|$undef) dflt='none';;
3807 *) dflt="$optimize";;
3811 By default, $package compiles with the -O flag to use the optimizer.
3812 Alternately, you might want to use the symbolic debugger, which uses
3813 the -g flag (on traditional Unix systems). Either flag can be
3814 specified here. To use neither flag, specify the word "none".
3817 rp="What optimizer/debugger flag should be used?"
3821 'none') optimize=" ";;
3825 : We will not override a previous value, but we might want to
3826 : augment a hint file
3828 default|recommended)
3829 case "$gccversion" in
3830 1*) dflt='-fpcc-struct-return' ;;
3833 *-g*) dflt="$dflt -DDEBUGGING";;
3835 case "$gccversion" in
3836 2*) if test -d /etc/conf/kconfig.d &&
3837 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
3843 case "$gccversion" in
3847 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
3848 echo 'int main(void) { return 0; }' > gcctest.c
3849 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
3850 echo "Yes, it does." 2>&1
3853 echo "Leaving current flags $ccflags alone." 2>&1
3855 *) dflt="$dflt -fno-strict-aliasing" ;;
3858 echo "Nope, it doesn't, but that's ok." 2>&1
3865 case "$mips_type" in
3866 *BSD*|'') inclwanted="$locincpth $usrinc";;
3867 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
3869 for thisincl in $inclwanted; do
3870 if $test -d $thisincl; then
3871 if $test x$thisincl != x$usrinc; then
3874 *) dflt="$dflt -I$thisincl";;
3880 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
3882 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
3890 *) dflt="$dflt -D$2";;
3894 set signal.h LANGUAGE_C; eval $inctest
3898 ccflags="$ccflags -DSOCKS"
3903 default|recommended) dflt="$ccflags $dflt" ;;
3904 *) dflt="$ccflags";;
3912 Your C compiler may want other flags. For this question you should include
3913 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
3914 but you should NOT include libraries or ld flags like -lwhatever. If you
3915 want $package to honor its debug switch, you should include -DDEBUGGING here.
3916 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
3918 To use no flags, specify the word "none".
3924 rp="Any additional cc flags?"
3931 : the following weeds options from ccflags that are of no interest to cpp
3933 case "$gccversion" in
3934 1*) cppflags="$cppflags -D__GNUC__"
3936 case "$mips_type" in
3938 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
3944 echo "Let me guess what the preprocessor flags are..." >&4
3958 *) ftry="$previous $flag";;
3960 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
3961 >cpp1.out 2>/dev/null && \
3962 $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
3963 >cpp2.out 2>/dev/null && \
3964 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
3965 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
3967 cppflags="$cppflags $ftry"
3977 *-*) echo "They appear to be: $cppflags";;
3979 $rm -f cpp.c cpp?.out
3983 : flags used in final linking phase
3985 '') if ./venix; then
3991 *-posix*) dflt="$dflt -posix" ;;
3994 *) dflt="$ldflags";;
3997 : Try to guess additional flags to pick up local libraries.
3998 for thislibdir in $libpth; do
3999 case " $loclibpth " in
4002 *"-L$thislibdir "*) ;;
4003 *) dflt="$dflt -L$thislibdir" ;;
4015 Your C linker may need flags. For this question you should
4016 include -L/whatever and any other flags used by the C linker, but you
4017 should NOT include libraries like -lwhatever.
4019 Make sure you include the appropriate -L/path flags if your C linker
4020 does not normally search all of the directories you specified above,
4023 To use no flags, specify the word "none".
4027 rp="Any additional ld flags (NOT including libraries)?"
4033 rmlist="$rmlist pdp11"
4037 echo "Checking your choice of C compiler and flags for coherency..." >&4
4038 $cat > try.c <<'EOF'
4040 int main() { printf("Ok\n"); exit(0); }
4042 set X $cc $optimize $ccflags -o try $ldflags try.c $libs
4044 $cat >try.msg <<'EOM'
4045 I've tried to compile and run the following simple program:
4048 $cat try.c >> try.msg
4050 $cat >> try.msg <<EOM
4057 and I got the following output:
4061 if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
4062 if sh -c './try' >>try.msg 2>&1; then
4066 *) echo 'The program compiled OK, but produced no output.' >> try.msg
4069 cat >> try.msg <<'EOQS'
4070 If $libs contains -lsfio, and sfio is mis-configured, then it
4071 sometimes (apparently) runs and exits with a 0 status, but with no
4072 output! It may have to do with sfio's use of _exit vs. exit.
4075 rp="You have a big problem. Shall I abort Configure"
4082 echo "The program compiled OK, but exited with status $?." >>try.msg
4083 rp="You have a problem. Shall I abort Configure"
4087 echo "I can't compile the test program." >>try.msg
4088 rp="You have a BIG problem. Shall I abort Configure"
4094 case "$knowitall" in
4096 echo "(The supplied flags or libraries might be incorrect.)"
4104 *) echo "Ok. Stopping Configure." >&4
4109 n) echo "OK, that should do.";;
4111 $rm -f try try.* core
4113 : define an is-a-typedef? function
4114 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4116 "") inclist="sys/types.h";;
4118 eval "varval=\$$var";
4122 for inc in $inclist; do
4123 echo "#include <$inc>" >>temp.c;
4125 echo "#ifdef $type" >> temp.c;
4126 echo "printf(\"We have $type\");" >> temp.c;
4127 echo "#endif" >> temp.c;
4128 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4129 if $contains $type temp.E >/dev/null 2>&1; then
4135 *) eval "$var=\$varval";;
4138 : define an is-a-typedef? function that prompts if the type is not available.
4139 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4141 "") inclist="sys/types.h";;
4143 eval "varval=\$$var";
4147 for inc in $inclist; do
4148 echo "#include <$inc>" >>temp.c;
4150 echo "#ifdef $type" >> temp.c;
4151 echo "printf(\"We have $type\");" >> temp.c;
4152 echo "#endif" >> temp.c;
4153 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4155 echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
4156 if $contains $type temp.E >/dev/null 2>&1; then
4157 echo "$type found." >&4;
4160 echo "$type NOT found." >&4;
4166 *) eval "$var=\$varval";;
4169 : define a shorthand compile call
4173 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
4174 : define a shorthand compile call for compilations that should be ok.
4178 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
4180 : check for lengths of integral types
4184 echo "Checking to see how big your integers are..." >&4
4185 $cat >intsize.c <<'EOCP'
4189 printf("intsize=%d;\n", (int)sizeof(int));
4190 printf("longsize=%d;\n", (int)sizeof(long));
4191 printf("shortsize=%d;\n", (int)sizeof(short));
4196 if eval $compile_ok && ./intsize > /dev/null; then
4198 echo "Your integers are $intsize bytes long."
4199 echo "Your long integers are $longsize bytes long."
4200 echo "Your short integers are $shortsize bytes long."
4204 Help! I can't compile and run the intsize test program: please enlighten me!
4205 (This is probably a misconfiguration in your system or libraries, and
4206 you really ought to fix it. Still, I'll try anyway.)
4210 rp="What is the size of an integer (in bytes)?"
4214 rp="What is the size of a long integer (in bytes)?"
4218 rp="What is the size of a short integer (in bytes)?"
4224 $rm -f intsize intsize.*
4226 : see what type lseek is declared as in the kernel
4227 rp="What is the type used for lseek's offset on this system?"
4228 set off_t lseektype long stdio.h sys/types.h
4232 echo "Checking to see how big your file offsets are..." >&4
4234 #include <sys/types.h>
4238 printf("%d\n", (int)sizeof($lseektype));
4243 if eval $compile_ok; then
4245 echo "Your file offsets are $lseeksize bytes long."
4249 echo "(I can't seem to compile the test program. Guessing...)"
4250 rp="What is the size of your file offsets (in bytes)?"
4256 : see what type file positions are declared as in the library
4257 rp="What is the type for file position used by fsetpos()?"
4258 set fpos_t fpostype long stdio.h sys/types.h
4263 *_t) zzz="$fpostype" ;;
4266 echo "Checking the size of $zzz..." >&4
4268 #include <sys/types.h>
4271 printf("%d\n", (int)sizeof($fpostype));
4276 if eval $compile_ok; then
4280 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4283 echo "Your $zzz is $fpossize bytes long."
4289 echo "(I can't compile the test program. Guessing...)" >&4
4290 rp="What is the size of your file positions (in bytes)?"
4297 # Backward compatibility (uselfs is deprecated).
4299 "$define"|true|[yY]*)
4302 *** Configure -Duselfs is deprecated, using -Duselargefiles instead.
4304 uselargefiles="$define"
4308 case "$lseeksize:$fpossize" in
4311 You can have files larger than 2 gigabytes.
4314 *) case "$uselargefiles" in
4315 "$undef"|false|[nN]*) dflt='n' ;;
4320 Perl can be built to understand large files (files larger than 2 gigabytes)
4321 on some systems. To do so, Configure can be run with -Duselargefiles.
4323 If this doesn't make any sense to you, just accept the default '$dflt'.
4325 rp='Try to understand large files, if available?'
4328 y|Y) val="$define" ;;
4335 case "$uselargefiles" in
4337 : Look for a hint-file generated 'call-back-unit'. If the
4338 : user has specified that a large files perl is to be built,
4339 : we may need to set or change some other defaults.
4340 if $test -f uselfs.cbu; then
4341 echo "Your platform has some specific hints for large file builds, using them..."
4344 echo "Rechecking to see how big your file offsets are..." >&4
4346 #include <sys/types.h>
4350 printf("%d\n", (int)sizeof($lseektype));
4355 if eval $compile_ok; then
4357 $echo "Your file offsets are now $lseeksize bytes long."
4361 echo "(I can't seem to compile the test program. Guessing...)"
4362 rp="What is the size of your file offsets (in bytes)?"
4367 *_t) zzz="$fpostype" ;;
4370 $echo $n "Rechecking the size of $zzz...$c" >&4
4372 #include <sys/types.h>
4375 printf("%d\n", (int)sizeof($fpostype));
4380 if eval $compile_ok; then
4385 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4388 echo " $fpossize bytes." >&4
4394 echo "(I can't compile the test program. Guessing...)" >&4
4395 rp="What is the size of your file positions (in bytes)?"
4405 case "$usemorebits" in
4406 "$define"|true|[yY]*)
4407 use64bitint="$define"
4408 uselongdouble="$define"
4409 usemorebits="$define"
4411 *) usemorebits="$undef"
4416 # Backward compatibility (uselonglong is deprecated).
4417 case "$uselonglong" in
4418 "$define"|true|[yY]*)
4421 *** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
4423 use64bitint="$define"
4426 # Backward compatibility (use64bits is deprecated).
4427 case "$use64bits" in
4428 "$define"|true|[yY]*)
4431 *** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
4433 use64bitint="$define"
4436 # Thinko compatibilities.
4437 case "$use64bitints" in
4438 "$define"|true|[yY]*)
4441 *** There is no Configure -Duse64bitints, using -Duse64bitint instead.
4443 use64bitint="$define"
4446 case "$use64bitsall" in
4447 "$define"|true|[yY]*)
4450 *** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
4452 use64bitall="$define"
4457 *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
4459 case "$use64bitall" in
4460 "$define"|true|[yY]*) use64bitint="$define" ;;
4466 You have natively 64-bit long integers.
4470 *) case "$use64bitint" in
4471 "$define"|true|[yY]*) dflt='y';;
4476 Perl can be built to take advantage of 64-bit integer types
4477 on some systems. To do so, Configure can be run with -Duse64bitint.
4478 Choosing this option will most probably introduce binary incompatibilities.
4480 If this doesn't make any sense to you, just accept the default '$dflt'.
4482 rp='Try to use 64-bit integers, if available?'
4485 [yY]*) val="$define" ;;
4495 You may also choose to try maximal 64-bitness. It means using as much
4496 64-bitness as possible on the platform. This in turn means even more
4497 binary incompatibilities. On the other hand, your platform may not
4498 have any more 64-bitness available than what you already have chosen.
4500 If this doesn't make any sense to you, just accept the default '$dflt'.
4502 rp='Try to use maximal 64-bit support, if available?'
4503 case "$use64bitall" in
4504 "$define"|true|[yY]*) dflt='y' ;;
4505 *) case "$longsize" in
4513 [yY]*) val="$define" ;;
4518 case "$use64bitall" in
4520 case "$use64bitint" in
4524 Since you have chosen a maximally 64-bit build, I'm also turning on
4525 the use of 64-bit integers.
4527 use64bitint="$define" ;;
4532 case "$use64bitint" in
4533 "$define"|true|[yY]*)
4534 : Look for a hint-file generated 'call-back-unit'. If the
4535 : user has specified that a 64-bit perl is to be built,
4536 : we may need to set or change some other defaults.
4537 if $test -f use64bitint.cbu; then
4538 echo "Your platform has some specific hints for 64-bit integers, using them..."
4542 4) case "$archname64" in
4543 '') archname64=64int ;;
4550 case "$use64bitall" in
4551 "$define"|true|[yY]*)
4552 : Look for a hint-file generated 'call-back-unit'. If the
4553 : user has specified that a maximally 64-bit perl is to be built,
4554 : we may need to set or change some other defaults.
4555 if $test -f use64bitall.cbu; then
4556 echo "Your platform has some specific hints for 64-bit builds, using them..."
4560 4) case "$archname64" in
4561 ''|64int) archname64=64all ;;
4568 : determine the architecture name
4570 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
4571 tarch=`arch`"-$osname"
4572 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
4573 if uname -m > tmparch 2>&1 ; then
4574 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
4575 -e 's/$/'"-$osname/" tmparch`
4583 case "$myarchname" in
4586 echo "(Your architecture name used to be $myarchname.)"
4593 *) dflt="$archname";;
4595 rp='What is your architecture name'
4598 case "$usethreads" in
4600 echo "Threads selected." >&4
4602 *-thread*) echo "...and architecture name already has -thread." >&4
4604 *) archname="$archname-thread"
4605 echo "...setting architecture name to $archname." >&4
4610 case "$usemultiplicity" in
4612 echo "Multiplicity selected." >&4
4614 *-multi*) echo "...and architecture name already has -multi." >&4
4616 *) archname="$archname-multi"
4617 echo "...setting architecture name to $archname." >&4
4622 case "$use64bitint" in
4624 case "$archname64" in
4629 *-$archname64*) echo "...and architecture name already has $archname64." >&4
4631 *) archname="$archname-$archname64"
4632 echo "...setting architecture name to $archname." >&4
4639 : determine root of directory hierarchy where package will be installed.
4642 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
4650 By default, $package will be installed in $dflt/bin, manual pages
4651 under $dflt/man, etc..., i.e. with $dflt as prefix for all
4652 installation directories. Typically this is something like /usr/local.
4653 If you wish to have binaries under /usr/bin but other parts of the
4654 installation under /usr/local, that's ok: you will be prompted
4655 separately for each of the installation directories, the prefix being
4656 only used to set the defaults.
4660 rp='Installation prefix to use?'
4668 *) oldprefix="$prefix";;
4678 $define|true) afs=true ;;
4679 $undef|false) afs=false ;;
4680 *) if test -d /afs; then
4688 echo "AFS may be running... I'll be extra cautious then..." >&4
4690 echo "AFS does not seem to be running..." >&4
4693 : determine installation prefix for where package is to be installed.
4697 Since you are running AFS, I need to distinguish the directory in which
4698 files will reside from the directory in which they are installed (and from
4699 which they are presumably copied to the former directory by occult means).
4702 case "$installprefix" in
4703 '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
4704 *) dflt="$installprefix";;
4709 In some special cases, particularly when building $package for distribution,
4710 it is convenient to distinguish between the directory in which files should
4711 be installed from the directory ($prefix) in which they
4712 will eventually reside. For most users, these two directories are the same.
4715 case "$installprefix" in
4717 *) dflt=$installprefix;;
4721 rp='What installation prefix should I use for installing files?'
4723 installprefix="$ans"
4724 installprefixexp="$ansexp"
4726 : set the prefixit variable, to compute a suitable default value
4727 prefixit='case "$3" in
4729 case "$oldprefix" in
4730 "") eval "$1=\"\$$2\"";;
4737 ""|" ") eval "$1=\"\$$2\"";;
4743 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
4745 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
4746 /*-$oldprefix/*|\~*-$oldprefix/*)
4747 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
4748 *) eval "$1=\"\$$2\"";;
4753 : get the patchlevel
4755 echo "Getting the current patchlevel..." >&4
4756 if $test -r $rsrc/patchlevel.h;then
4757 revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h`
4758 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
4759 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4760 api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
4761 api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
4762 api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4771 $echo $n "(You have $package revision $revision" $c
4772 $echo $n " patchlevel $patchlevel" $c
4773 test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
4777 : XXX Should be a Configure test for double-dots in filenames.
4778 version=`echo $revision $patchlevel $subversion | \
4779 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4780 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4781 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4784 version=`echo $revision $patchlevel $subversion | \
4785 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4786 api_versionstring=`echo $api_revision $api_version $