3 # If these # comments don't work, trim them. Don't worry about any other
4 # shell scripts, Configure will trim # comments from them for you.
6 # (If you are trying to port this package to a machine without sh,
7 # I would suggest you have a look at the prototypical config_h.SH file
8 # and edit it to reflect your system. Some packages may include samples
9 # of config.h for certain machines, so you might look for one of those.)
11 # Yes, you may rip this off to use in other distribution packages. This
12 # script belongs to the public domain and cannot be copyrighted.
14 # (Note: this Configure script was generated automatically. Rather than
15 # working with this copy of Configure, you may wish to get metaconfig.
16 # The dist-3.0 package (which contains metaconfig) was posted in
17 # comp.sources.misc and is available on CPAN under authors/id/RAM so
18 # you may fetch it yourself from your nearest archive site.)
21 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
23 # Generated on Tue Feb 22 16:38:07 EET 2000 [metaconfig 3.0 PL70]
24 # (with additional metaconfig patches by perlbug@perl.com)
29 SCO csh still thinks true is false. Write to SCO today and tell them that next
30 year Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-)
32 (Actually, Configure ought to just patch csh in place. Hmm. Hmmmmm. All
33 we'd have to do is go in and swap the && and || tokens, wherever they are.)
35 [End of diatribe. We now return you to your regularly scheduled programming...]
39 OOPS! You naughty creature! You didn't run Configure with sh!
40 I will attempt to remedy the situation by running sh for you...
43 true || cat /tmp/c1$$ /tmp/c2$$
44 true || exec sh $0 $argv:q
46 (exit $?0) || cat /tmp/c2$$
47 (exit $?0) || exec sh $0 $argv:q
48 rm -f /tmp/c1$$ /tmp/c2$$
50 : compute my invocation name
54 me=`echo $0 | sed -e 's!.*/\(.*\)!\1!' 2>/dev/null`
59 : Proper separator for the PATH environment variable
61 : On OS/2 this directory should exist if this is not floppy only system :-]
62 if test -d c:/. ; then
63 if test -n "$OS2_SHELL"; then
65 PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
66 OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
67 elif test -n "$DJGPP"; then
73 paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
74 paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
75 paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
76 paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
77 paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
78 paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
79 paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
80 paths="$paths /sbin /usr/sbin /usr/libexec"
86 *) test -d $p && PATH=$PATH$p_$p ;;
93 : shall we be using ksh?
99 if (PATH=.; alias -x) >/dev/null 2>&1; then
102 if test -f /hp-ux -a -f /bin/ksh; then
103 needksh='to avoid sh bug in "here document" expansion'
105 if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then
106 if test X`/usr/bin/uname -v` = X4; then
107 avoidksh="to avoid AIX 4's /bin/sh"
111 if test -f /osf_boot -a -f /usr/sbin/setld; then
112 if test X`/usr/bin/uname -s` = XOSF1; then
113 avoidksh="to avoid Digital UNIX' ksh"
115 unset BIN_SH # if this is 'xpg4' sh will start up ksh
118 case "$inksh/$needksh" in
125 case "$inksh/$avoidksh" in
131 case "$inksh/$needksh-$avoidksh-" in
134 (I see you are using the Korn shell. Some ksh's blow up on $me,
135 mainly on older exotic systems. If yours does, try the Bourne shell instead.)
141 echo "(Feeding myself to $newsh $reason.)"
143 Configure|*/Configure) exec $newsh $0 "$@";;
144 *) exec $newsh Configure "$@";;
149 : if needed set CDPATH to a harmless value that is not chatty
150 : avoid bash 2.02 problems with empty CDPATH.
154 *bash*) CDPATH='.' ;;
159 : Configure runs within the UU subdirectory
160 test -d UU || mkdir UU
450 d_old_pthread_create_joinable=''
451 old_pthread_create_joinable=''
689 inc_version_list_init=''
709 ignore_versioned_solibs=''
870 d_stdio_stream_array=''
871 stdio_stream_array=''
916 smallmach='pdp11 i8086 z8000 i80286 iAPX286'
919 : We must find out about Eunice early
921 if test -f /etc/unixtovms; then
922 eunicefix=/etc/unixtovms
924 if test -f /etc/unixtovms.exe; then
925 eunicefix=/etc/unixtovms.exe
929 : set useposix=false in your hint file to disable the POSIX extension.
931 : set useopcode=false in your hint file to disable the Opcode extension.
933 : Trailing extension. Override this in a hint file, if needed.
935 : Extra object files, if any, needed on this platform.
937 : Possible local include directories to search.
938 : Set locincpth to "" in a hint file to defeat local include searches.
939 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
940 locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
942 : no include file wanted by default
946 : change the next line if compiling for Xenix/286 on Xenix/386
947 xlibpth='/usr/lib/386 /lib/386'
948 : Possible local library directories to search.
949 loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
950 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
952 : general looking path for locating libraries
953 glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
954 glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
955 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
956 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
957 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
959 : Private path used by Configure to find libraries. Its value
960 : is prepended to libpth. This variable takes care of special
961 : machines, like the mips. Usually, it should be empty.
964 : default library list
966 : some systems want to use only the non-versioned libso:s
967 ignore_versioned_solibs=''
968 : set usemultiplicity on the Configure command line to enable multiplicity.
969 : set usesocks on the Configure command line to enable socks.
970 : set usethreads on the Configure command line to enable threads.
971 : full support for void wanted by default
974 : List of libraries we want.
975 : If anyone needs -lnet, put it in a hint file.
976 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl'
977 libswanted="$libswanted dld ld sun m c cposix posix"
978 libswanted="$libswanted ndir dir crypt sec"
979 libswanted="$libswanted ucb bsd BSD PW x"
980 : We probably want to search /usr/shlib before most other libraries.
981 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
982 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
983 glibpth="/usr/shlib $glibpth"
984 : Do not use vfork unless overridden by a hint file.
987 : Find the basic shell for Bourne shell scripts
991 *bsd*|sys5*) xxx="/$SYSTYPE/bin/sh";;
994 if test -f "$xxx"; then
997 : Build up a list and do a single loop so we can 'break' out.
998 pth=`echo $PATH | sed -e "s/$p_/ /g"`
999 for xxx in sh bash ksh pdksh ash; do
1001 try="$try ${p}/${xxx}"
1005 if test -f "$xxx"; then
1008 elif test -f "$xxx.exe"; then
1019 $me: Fatal Error: I can't find a Bourne Shell anywhere.
1021 Usually it's in /bin/sh. How did you even get this far?
1022 Please contact me (Perl Maintainers) at perlbug@perl.com and
1023 we'll try to straighten this all out.
1029 : see if sh knows # comments
1030 if `$sh -c '#' >/dev/null 2>&1`; then
1034 test -f $xcat || xcat=/usr/bin/cat
1039 if test -s today; then
1042 echo "#! $xcat" > try
1046 if test -s today; then
1054 echo "Your $sh doesn't grok # comments--I will strip them later on."
1057 echo "exec grep -v '^[ ]*#'" >spitshell
1059 $eunicefix spitshell
1060 spitshell=`pwd`/spitshell
1062 echo "I presume that if # doesn't work, #! won't work either!"
1067 : figure out how to guarantee sh startup
1069 '') startsh=${sharpbang}${sh} ;;
1081 : echo "Yup, it does."
1083 echo "Hmm... '$startsh' does not guarantee sh startup..."
1084 echo "You may have to fix up the shell scripts to make sure $sh runs them."
1089 : Save command line options in file UU/cmdline.opt for later use in
1090 : generating config.sh.
1091 cat > cmdline.opt <<EOSH
1092 # Configure command line arguments.
1099 cat >>cmdline.opt <<EOSH
1100 config_arg$argn='$arg'
1102 argn=`expr $argn + 1`
1105 : produce awk script to parse command line options
1106 cat >options.awk <<'EOF'
1108 optstr = "A:dD:eEf:hKOrsSU:V"; # getopt-style specification
1110 len = length(optstr);
1111 for (i = 1; i <= len; i++) {
1112 c = substr(optstr, i, 1);
1113 if (i < len) a = substr(optstr, i + 1, 1); else a = "";
1124 if (substr(str, 1, 1) != "-") {
1125 printf("'%s'\n", str);
1129 for (i = 2; i <= len; i++) {
1130 c = substr(str, i, 1);
1132 printf("-%s\n", substr(str, i));
1138 printf("'%s'\n", substr(str, i + 1));
1151 : process the command line options
1152 set X `for arg in "$@"; do echo "X$arg"; done |
1153 sed -e s/X// | awk -f options.awk`
1158 : set up default values
1168 rm -f optdef.sh posthint.sh
1169 cat >optdef.sh <<EOS
1175 while test $# -gt 0; do
1177 -d) shift; fastread=yes;;
1178 -e) shift; alldone=cont;;
1182 if test -r "$1"; then
1185 echo "$me: cannot read config file $1." >&2
1190 -h) shift; error=true;;
1191 -r) shift; reuseval=true;;
1192 -s) shift; silent=true; realsilent=true;;
1193 -E) shift; alldone=exit;;
1194 -K) shift; knowitall=true;;
1195 -O) shift; override=true;;
1196 -S) shift; silent=true; extractsh=true;;
1201 echo "$me: use '-U symbol=', not '-D symbol='." >&2
1202 echo "$me: ignoring -D $1" >&2
1205 sed -e "s/'/'\"'\"'/g" -e "s/=\(.*\)/='\1'/" >> optdef.sh;;
1206 *) echo "$1='define'" >> optdef.sh;;
1213 *=) echo "$1" >> optdef.sh;;
1215 echo "$me: use '-D symbol=val', not '-U symbol=val'." >&2
1216 echo "$me: ignoring -U $1" >&2
1218 *) echo "$1='undef'" >> optdef.sh;;
1229 *=*) zzz=`echo $yyy|sed 's!=.*!!'`
1233 zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
1234 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1240 *:*) xxx=`echo $yyy|sed 's!:.*!!'`
1241 yyy=`echo $yyy|sed 's!^[^:]*:!!'`
1242 zzz=`echo $yyy|sed 's!^[^=]*=!!'`
1243 yyy=`echo $yyy|sed 's!=.*!!'` ;;
1244 *) xxx=`echo $yyy|sed 's!:.*!!'`
1245 yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
1251 echo "$yyy=\"\${$yyy}$zzz\"" >> posthint.sh ;;
1253 echo "$yyy=''" >> posthint.sh ;;
1258 echo "$yyy='$zzz'" >> posthint.sh ;;
1260 echo "eval \"$yyy=$zzz\"" >> posthint.sh ;;
1262 echo "$yyy=\"$zzz\${$yyy}\"" >> posthint.sh ;;
1267 echo "$yyy=$zzz" >> posthint.sh ;;
1268 *) echo "$me: unknown -A command '$xxx', ignoring -A $1" >&2 ;;
1272 -V) echo "$me generated by metaconfig 3.0 PL70." >&2
1275 -*) echo "$me: unknown option $1" >&2; shift; error=true;;
1283 Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
1284 [-U symbol] [-U symbol=] [-A command:symbol...]
1285 -d : use defaults for all answers.
1286 -e : go on without questioning past the production of config.sh.
1287 -f : specify an alternate default configuration file.
1288 -h : print this help message and exit (with an error status).
1289 -r : reuse C symbols value if possible (skips costly nm extraction).
1290 -s : silent mode, only echoes questions and essential information.
1291 -D : define symbol to have some value:
1292 -D symbol symbol gets the value 'define'
1293 -D symbol=value symbol gets the value 'value'
1294 -E : stop at the end of questions, after having produced config.sh.
1295 -K : do not use unless you know what you are doing.
1296 -O : let -D and -U override definitions from loaded configuration file.
1297 -S : perform variable substitutions on all .SH files (can mix with -f)
1298 -U : undefine symbol:
1299 -U symbol symbol gets the value 'undef'
1300 -U symbol= symbol gets completely empty
1301 -A : manipulate symbol after the platform specific hints have been applied:
1302 -A symbol=value append " "value to symbol
1303 -A append:symbol=value append value to symbol
1304 -A define:symbol=value define symbol to have value
1305 -A clear:symbol define symbol to be ''
1306 -A define:symbol define symbol to be 'define'
1307 -A eval:symbol=value define symbol to be eval of value
1308 -A prepend:symbol=value prepend value to symbol
1309 -A undef:symbol define symbol to be 'undef'
1310 -A undef:symbol= define symbol to be ''
1311 -V : print version number and exit (with a zero status).
1318 case "$fastread$alldone" in
1321 if test ! -t 0; then
1322 echo "Say 'sh Configure', not 'sh <Configure'"
1330 true) exec 1>/dev/null;;
1333 : run the defines and the undefines, if any, but leave the file out there...
1336 : create the posthint manipulation script and leave the file out there...
1341 first=`echo $package | sed -e 's/^\(.\).*/\1/'`
1342 last=`echo $package | sed -e 's/^.\(.*\)/\1/'`
1343 case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
1344 ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;;
1345 *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;;
1348 : Some greps do not return status, grrr.
1349 echo "grimblepritz" >grimble
1350 if grep blurfldyick grimble >/dev/null 2>&1 ; then
1352 elif grep grimblepritz grimble >/dev/null 2>&1 ; then
1358 : the following should work in any shell
1362 echo "AGH! Grep doesn't return a status. Attempting remedial action."
1363 cat >contains <<'EOSS'
1364 grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
1369 : Find the path to the source tree
1372 */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
1375 *) src=`cd ../$src && pwd` ;;
1388 if test -f $rsrc/Configure && \
1389 $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1
1391 : found it, so we are ok.
1394 for src in . .. ../.. ../../.. ../../../..; do
1395 if test -f ../$src/Configure && \
1396 $contains "^package=$package$" ../$src/Configure >/dev/null 2>&1
1407 Sorry, I can't seem to locate the source dir for $package. Please start
1408 Configure with an explicit path -- i.e. /some/path/Configure.
1416 echo "Sources for $package found in \"$src\"." >&4
1420 : script used to extract .SH files with variable substitutions
1421 cat >extract <<'EOS'
1423 echo "Doing variable substitutions on .SH files..."
1424 if test -f $src/MANIFEST; then
1425 set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
1427 echo "(Looking for .SH files under the source directory.)"
1428 set x `(cd $src; find . -name "*.SH" -print)`
1432 0) set x `(cd $src; echo *.SH)`; shift;;
1434 if test ! -f $src/$1; then
1440 while test $name; do
1441 if test ! -d "$name"; then
1442 create="$name $create";
1443 name=`echo $name | sed -e "s|^[^/]*$||"`;
1444 name=`echo $name | sed -e "s|\(.*\)/.*|\1|"`;
1449 for file in $create; do
1458 dir=`expr X$file : 'X\(.*\)/'`
1459 file=`expr X$file : 'X.*/\(.*\)'`
1460 (cd $dir && . ./$file)
1470 dir=`expr X$file : 'X\(.*\)/'`
1471 file=`expr X$file : 'X.*/\(.*\)'`
1472 (set x $dir; shift; eval $mkdir_p)
1482 if test -f $src/config_h.SH; then
1483 if test ! -f config.h; then
1484 : oops, they left it out of MANIFEST, probably, so do it anyway.
1490 : extract files and exit if asked to do so
1491 case "$extractsh" in
1493 case "$realsilent" in
1497 case "$config_sh" in
1498 '') config_sh='config.sh';;
1501 echo "Fetching answers from $config_sh..."
1504 test "$override" && . ./optdef.sh
1513 : Eunice requires " " instead of "", can you believe it
1516 echo "Beginning of configuration questions for $package."
1518 trap 'echo " "; test -d ../UU && rm -rf X $rmlist; exit 1' 1 2 3 15
1520 : first determine how to suppress newline on echo command
1522 echo "Checking echo to see how to suppress newlines..."
1523 (echo "hi there\c" ; echo " ") >.echotmp
1524 if $contains c .echotmp >/dev/null 2>&1 ; then
1535 echo $n "The star should be here-->$c"
1539 : Now test for existence of everything in MANIFEST
1541 if test -f $rsrc/MANIFEST; then
1542 echo "First let's make sure your kit is complete. Checking..." >&4
1543 awk '$1 !~ /PACK[A-Z]+/ {print $1}' $rsrc/MANIFEST | split -50
1546 for filelist in x??; do
1547 (cd $rsrc; ls `cat $tmppwd/$filelist` >/dev/null 2>>$tmppwd/missing)
1549 if test -s missing; then
1553 THIS PACKAGE SEEMS TO BE INCOMPLETE.
1555 You have the option of continuing the configuration process, despite the
1556 distinct possibility that your kit is damaged, by typing 'y'es. If you
1557 do, don't blame me if something goes wrong. I advise you to type 'n'o
1558 and contact the author (perlbug@perl.com).
1561 echo $n "Continue? [n] $c" >&4
1565 echo "Continuing..." >&4
1569 echo "ABORTING..." >&4
1574 echo "Looks good..."
1577 echo "There is no MANIFEST file. I hope your kit is complete !"
1582 : Find the appropriate value for a newline for tr
1583 if test -n "$DJGPP"; then
1586 if test X"$trnl" = X; then
1587 case "`echo foo|tr '\n' x 2>/dev/null`" in
1591 if test X"$trnl" = X; then
1592 case "`echo foo|tr '\012' x 2>/dev/null`" in
1593 foox) trnl='\012' ;;
1596 if test X"$trnl" = X; then
1599 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
1605 : compute the number of columns on the terminal for proper question formatting
1610 : set up the echo used in my read
1611 myecho="case \"\$xxxm\" in
1612 '') echo $n \"\$rp $c\" >&4;;
1614 '') echo $n \"[\$xxxm] $c\";;
1616 if test \`echo \"\$rp [\$xxxm] \" | wc -c\` -ge $COLUMNS; then
1618 echo $n \"[\$xxxm] $c\" >&4
1620 echo $n \"\$rp [\$xxxm] $c\" >&4
1626 : now set up to do reads with possible shell escape and default assignment
1632 case "\$fastread" in
1633 yes) case "\$dflt" in
1636 case "\$silent-\$rp" in
1641 *) case "\$silent" in
1642 true) case "\$rp" in
1647 while expr "X\$ans" : "X!" >/dev/null; do
1651 aok=''; eval "ans=\\"\$answ\\"" && aok=y
1659 set x \`expr "X\$ans" : "X!\(.*\)\$"\`
1668 set x \`expr "X\$ans" : "X&\(.*\)\$"\`
1673 echo "(OK, I'll run with -d after this question.)" >&4
1676 echo "*** Sorry, \$1 not supported yet." >&4
1686 echo "*** Substitution done -- please confirm."
1688 ans=\`echo $n "\$ans$c" | tr '$trnl' ' '\`
1693 echo "*** Error -- try again."
1700 case "\$ans\$xxxm\$nostick" in
1712 : create .config dir to save info across Configure sessions
1713 test -d ../.config || mkdir ../.config
1714 cat >../.config/README <<EOF
1715 This directory created by Configure to save information that should
1716 persist across sessions for $package.
1718 You may safely delete it if you wish.
1721 : general instructions
1724 user=`(logname) 2>/dev/null`
1726 '') user=`whoami 2>&1`;;
1728 if $contains "^$user\$" ../.config/instruct >/dev/null 2>&1; then
1731 rp='Would you like to see the instructions?'
1742 This installation shell script will examine your system and ask you questions
1743 to determine how the perl5 package should be installed. If you get
1744 stuck on a question, you may use a ! shell escape to start a subshell or
1745 execute a command. Many of the questions will have default answers in square
1746 brackets; typing carriage return will give you the default.
1748 On some of the questions which ask for file or directory names you are allowed
1749 to use the ~name construct to specify the login directory belonging to "name",
1750 even if you don't have a shell which knows about that. Questions where this is
1751 allowed will be marked "(~name ok)".
1755 dflt='Type carriage return to continue'
1759 The prompter used in this script allows you to use shell variables and
1760 backticks in your answers. You may use $1, $2, etc... to refer to the words
1761 in the default answer, as if the default line was a set of arguments given to a
1762 script shell. This means you may also use $* to repeat the whole default line,
1763 so you do not have to re-type everything to add something to the default.
1765 Everytime there is a substitution, you will have to confirm. If there is an
1766 error (e.g. an unmatched backtick), the default answer will remain unchanged
1767 and you will be prompted again.
1769 If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all
1770 the questions and use the computed defaults (or the previous answers if there
1771 was already a config.sh file). Type 'Configure -h' for a list of options.
1772 You may also start interactively and then answer '& -d' at any prompt to turn
1773 on the non-interactive behaviour for the remainder of the execution.
1779 Much effort has been expended to ensure that this shell script will run on any
1780 Unix system. If despite that it blows up on yours, your best bet is to edit
1781 Configure and run it again. If you can't run Configure for some reason,
1782 you'll have to generate a config.sh file by hand. Whatever problems you
1783 have, let me (perlbug@perl.com) know how I blew it.
1785 This installation script affects things in two ways:
1787 1) it may do direct variable substitutions on some of the files included
1789 2) it builds a config.h file for inclusion in C programs. You may edit
1790 any of these files as the need arises after running this script.
1792 If you make a mistake on a question, there is no easy way to back up to it
1793 currently. The easiest thing to do is to edit config.sh and rerun all the SH
1794 files. Configure will offer to let you do this before it runs the SH files.
1797 dflt='Type carriage return to continue'
1799 case "$firsttime" in
1800 true) echo $user >>../.config/instruct;;
1804 : find out where common programs are
1806 echo "Locating common programs..." >&4
1819 if test -d \$dir/\$thing; then
1825 for thisthing in \$dir/\$thing; do
1826 : just loop through to pick last item
1828 if test -f \$thisthing; then
1831 elif test -f \$dir/\$thing.exe; then
1832 if test -n "$DJGPP"; then
1833 echo \$dir/\$thing.exe
1835 : on Eunice apparently
1886 pth=`echo $PATH | sed -e "s/$p_/ /g"`
1887 pth="$pth /lib /usr/lib"
1888 for file in $loclist; do
1892 if test -f "$xxx"; then
1895 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1896 xxx=`./loc $file $file $pth`
1899 '') xxx=`./loc $file $file $pth`;;
1900 *) xxx=`./loc $xxx $xxx $pth`;;
1906 echo $file is in $xxx.
1909 echo $file is in $xxx.
1912 echo "I don't know where '$file' is, and my life depends on it." >&4
1913 echo "Go find a public domain implementation or fix your PATH setting!" >&4
1919 echo "Don't worry if any of the following aren't found..."
1921 for file in $trylist; do
1925 if test -f "$xxx"; then
1928 echo "WARNING: no $xxx -- ignoring your setting for $file." >&4
1929 xxx=`./loc $file $file $pth`
1932 '') xxx=`./loc $file $file $pth`;;
1933 *) xxx=`./loc $xxx $xxx $pth`;;
1939 echo $file is in $xxx.
1942 echo $file is in $xxx.
1945 echo "I don't see $file out there, $say."
1952 echo "Substituting grep for egrep."
1958 echo "Substituting cp for ln."
1964 echo "Hopefully test is built into your sh."
1967 if `sh -c "PATH= test true" >/dev/null 2>&1`; then
1968 echo "Using the test built into your sh."
1976 echo "Hopefully echo is built into your sh."
1981 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
1982 $echo $n "hi there$c" >foo1
1983 echo $n "hi there$c" >foo2
1984 if cmp foo1 foo2 >/dev/null 2>&1; then
1985 echo "They are compatible. In fact, they may be identical."
1992 They are not compatible! You are probably running ksh on a non-USG system.
1993 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
1994 have echo built in and we may have to run some Bourne shell scripts. That
1995 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
1998 $echo $n "The star should be here-->$c"
2005 : determine whether symbolic links are supported
2008 if $ln -s blurfl sym > /dev/null 2>&1 ; then
2009 echo "Symbolic links are supported." >&4
2012 echo "Symbolic links are NOT supported." >&4
2017 : see whether [:lower:] and [:upper:] are supported character classes
2019 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
2021 echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4
2025 *) # There is a discontinuity in EBCDIC between 'I' and 'J'
2026 # (0xc9 and 0xd1), therefore that is a nice testing point.
2027 if test "X$up" = X -o "X$low" = X; then
2028 case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
2034 if test "X$up" = X -o "X$low" = X; then
2035 case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
2041 if test "X$up" = X -o "X$low" = X; then
2042 case "`echo IJ | od -x 2>/dev/null`" in
2044 echo "Hey, this might be EBCDIC." >&4
2045 if test "X$up" = X -o "X$low" = X; then
2046 case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
2047 ij) up='[A-IJ-RS-Z]'
2052 if test "X$up" = X -o "X$low" = X; then
2053 case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
2063 case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
2065 echo "Using $up and $low to convert case." >&4
2068 echo "I don't know how to translate letters from upper to lower case." >&4
2069 echo "Your tr is not acting any way I know of." >&4
2073 : set up the translation script tr, must be called with ./tr of course
2077 '[A-Z][a-z]') exec $tr '$up' '$low';;
2078 '[a-z][A-Z]') exec $tr '$low' '$up';;
2085 : Try to determine whether config.sh was made on this system
2086 case "$config_sh" in
2088 myuname=`$uname -a 2>/dev/null`
2089 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
2090 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
2091 # because the A-Z/a-z are not consecutive.
2092 myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
2093 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
2094 newmyuname="$myuname"
2096 case "$knowitall" in
2098 if test -f ../config.sh; then
2099 if $contains myuname= ../config.sh >/dev/null 2>&1; then
2100 eval "`grep myuname= ../config.sh`"
2102 if test "X$myuname" = "X$newmyuname"; then
2110 : Get old answers from old config file if Configure was run on the
2111 : same system, otherwise use the hints.
2114 if test -f config.sh; then
2116 rp="I see a config.sh file. Shall I use it to set the defaults?"
2119 n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
2120 *) echo "Fetching default answers from your old config.sh file..." >&4
2128 : Older versions did not always set $sh. Catch re-use of such
2137 if test ! -f config.sh; then
2140 First time through, eh? I have some defaults handy for some systems
2141 that need some extra help getting the Configure answers right:
2144 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
2146 : Half the following guesses are probably wrong... If you have better
2147 : tests or hints, please send them to perlbug@perl.com
2148 : The metaconfig authors would also appreciate a copy...
2149 $test -f /irix && osname=irix
2150 $test -f /xenix && osname=sco_xenix
2151 $test -f /dynix && osname=dynix
2152 $test -f /dnix && osname=dnix
2153 $test -f /lynx.os && osname=lynxos
2154 $test -f /unicos && osname=unicos && osvers=`$uname -r`
2155 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
2156 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
2157 $test -f /bin/mips && /bin/mips && osname=mips
2158 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
2159 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
2160 $test -d /usr/apollo/bin && osname=apollo
2161 $test -f /etc/saf/_sactab && osname=svr4
2162 $test -d /usr/include/minix && osname=minix
2163 if $test -d /MachTen -o -d /MachTen_Folder; then
2165 if $test -x /sbin/version; then
2166 osvers=`/sbin/version | $awk '{print $2}' |
2167 $sed -e 's/[A-Za-z]$//'`
2168 elif $test -x /usr/etc/version; then
2169 osvers=`/usr/etc/version | $awk '{print $2}' |
2170 $sed -e 's/[A-Za-z]$//'`
2176 $test -f /sys/posix.dll &&
2177 $test -f /usr/bin/what &&
2178 set X `/usr/bin/what /sys/posix.dll` &&
2179 $test "$3" = UWIN &&
2183 if $test -f $uname; then
2191 umips) osname=umips ;;
2194 [23]100) osname=mips ;;
2195 next*) osname=next ;;
2197 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
2198 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
2201 elif $test -f /etc/kconfig; then
2203 if test "$lns" = "$ln -s"; then
2205 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
2207 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
2214 if test -n "$DJGPP"; then
2223 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
2225 'not found') osvers="$4"."$3" ;;
2226 '<3240'|'<>3240') osvers=3.2.0 ;;
2227 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
2228 '=3250'|'>3250') osvers=3.2.5 ;;
2232 bsd386) osname=bsd386
2235 cygwin*) osname=cygwin
2238 *dc.osx) osname=dcosx
2244 domainos) osname=apollo
2250 dynixptx*) osname=dynixptx
2251 osvers=`echo "$4"|sed 's/^v//'`
2253 freebsd) osname=freebsd
2255 genix) osname=genix ;;
2257 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
2273 netbsd*) osname=netbsd
2276 news-os) osvers="$3"
2278 4*) osname=newsos4 ;;
2282 next*) osname=next ;;
2283 POSIX-BC | posix-bc ) osname=posix-bc
2286 powerux | power_ux | powermax_os | powermaxos | \
2287 powerunix | power_unix) osname=powerux
2293 solaris) osname=solaris
2295 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2302 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
2306 titanos) osname=titanos
2315 ultrix) osname=ultrix
2318 osf1|mls+) case "$5" in
2321 osvers=`echo "$3" | sed 's/^[xvt]//'`
2323 hp*) osname=hp_osf1 ;;
2324 mips) osname=mips_osf1 ;;
2327 unixware) osname=svr5
2333 $2) case "$osname" in
2337 : svr4.x or possibly later
2347 if test -f /stand/boot ; then
2348 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
2349 if test -n "$INITPROG" -a -f "$INITPROG"; then
2350 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
2351 if test -n "$isesix"; then
2359 *) if test -f /etc/systemid; then
2361 set `echo $3 | $sed 's/\./ /g'` $4
2362 if $test -f $src/hints/sco_$1_$2_$3.sh; then
2364 elif $test -f $src/hints/sco_$1_$2.sh; then
2366 elif $test -f $src/hints/sco_$1.sh; then
2371 '') : Still unknown. Probably a generic Sys V.
2380 *) case "$osname" in
2381 '') : Still unknown. Probably a generic BSD.
2389 if test -f /vmunix -a -f $src/hints/news_os.sh; then
2390 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
2391 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
2394 $rm -f UU/kernel.what
2395 elif test -d c:/.; then
2402 : Now look for a hint file osname_osvers, unless one has been
2403 : specified already.
2406 file=`echo "${osname}_${osvers}" | $sed -e 's@\.@_@g' -e 's@_$@@'`
2407 : Also try without trailing minor version numbers.
2408 xfile=`echo $file | $sed -e 's@_[^_]*$@@'`
2409 xxfile=`echo $xfile | $sed -e 's@_[^_]*$@@'`
2410 xxxfile=`echo $xxfile | $sed -e 's@_[^_]*$@@'`
2411 xxxxfile=`echo $xxxfile | $sed -e 's@_[^_]*$@@'`
2414 *) case "$osvers" in
2417 *) if $test -f $src/hints/$file.sh ; then
2419 elif $test -f $src/hints/$xfile.sh ; then
2421 elif $test -f $src/hints/$xxfile.sh ; then
2423 elif $test -f $src/hints/$xxxfile.sh ; then
2425 elif $test -f $src/hints/$xxxxfile.sh ; then
2427 elif $test -f "$src/hints/${osname}.sh" ; then
2436 if $test -f Policy.sh ; then
2439 none) dflt="Policy" ;;
2440 *) dflt="Policy $dflt" ;;
2445 dflt=`echo $hintfile | $sed 's/\.sh$//'`
2449 if $test -f Policy.sh ; then
2452 There's also a Policy hint file available, which should make the
2453 site-specific (policy) questions easier to answer.
2460 You may give one or more space-separated answers, or "none" if appropriate.
2461 A well-behaved OS will have no hints, so answering "none" or just "Policy"
2462 is a good thing. DO NOT give a wrong version or a wrong OS.
2466 rp="Which of these apply, if any?"
2469 for file in $tans; do
2470 if $test X$file = XPolicy -a -f Policy.sh; then
2472 $cat Policy.sh >> UU/config.sh
2473 elif $test -f $src/hints/$file.sh; then
2474 . $src/hints/$file.sh
2475 $cat $src/hints/$file.sh >> UU/config.sh
2476 elif $test X$tans = X -o X$tans = Xnone ; then
2479 : Give one chance to correct a possible typo.
2480 echo "$file.sh does not exist"
2482 rp="hint to use instead?"
2484 for file in $ans; do
2485 if $test -f "$src/hints/$file.sh"; then
2486 . $src/hints/$file.sh
2487 $cat $src/hints/$file.sh >> UU/config.sh
2488 elif $test X$ans = X -o X$ans = Xnone ; then
2491 echo "$file.sh does not exist -- ignored."
2498 : Remember our hint file for later.
2499 if $test -f "$src/hints/$file.sh" ; then
2509 echo "Fetching default answers from $config_sh..." >&4
2513 cp $config_sh config.sh 2>/dev/null
2523 test "$override" && . ./optdef.sh
2524 myuname="$newmyuname"
2526 : Restore computed paths
2527 for file in $loclist $trylist; do
2528 eval $file="\$_$file"
2533 Configure uses the operating system name and version to set some defaults.
2534 The default value is probably right if the name rings a bell. Otherwise,
2535 since spelling matters for me, either accept the default or answer "none"
2542 ''|' '|none) dflt=none ;;
2543 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
2546 *) dflt="$osname" ;;
2548 rp="Operating system name?"
2552 *) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
2558 ''|' '|none) dflt=none ;;
2559 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
2560 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
2562 ''|' ') dflt=none ;;
2567 *) dflt="$osvers" ;;
2569 rp="Operating system version?"
2579 : who configured the system
2580 cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
2581 cf_by=`(logname) 2>/dev/null`
2584 cf_by=`(whoami) 2>/dev/null`
2586 "") cf_by=unknown ;;
2590 : set up the script used to warn in case of inconsistency
2597 echo "*** WHOA THERE!!! ***" >&4
2598 echo " The $hint value for \$$var on this machine was \"$was\"!" >&4
2599 rp=" Keep the $hint value?"
2602 y) td=$was; tu=$was;;
2606 : function used to set $1 to $val
2607 setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
2609 $define$undef) . ./whoa; eval "$var=\$td";;
2610 $undef$define) . ./whoa; eval "$var=\$tu";;
2611 *) eval "$var=$val";;
2614 case "$usethreads" in
2615 $define|true|[yY]*) dflt='y';;
2620 Perl can be built to take advantage of threads on some systems.
2621 To do so, Configure can be run with -Dusethreads.
2623 Note that threading is a highly experimental feature, and
2624 some known race conditions still remain. If you choose to try
2625 it, be very sure to not actually deploy it for production
2626 purposes. README.threads has more details, and is required
2627 reading if you enable threads.
2629 If this doesn't make any sense to you, just accept the default '$dflt'.
2631 rp='Build a threading Perl?'
2634 y|Y) val="$define" ;;
2640 case "$usethreads" in
2644 As of 5.5.640, Perl has two different internal threading implementations,
2645 the 5.005 version (5005threads) and an interpreter-based version
2646 (ithreads) that has one interpreter per thread. Both are very
2647 experimental. This arrangement exists to help developers work out
2648 which one is better.
2650 If you're a casual user, you probably don't want interpreter-threads
2651 at this time. There doesn't yet exist a way to create threads from
2652 within Perl in this model, i.e., "use Thread;" will NOT work.
2654 : Default to ithreads unless overridden on command line or with
2657 case "$use5005threads" in
2658 $define|true|[yY]*) dflt='n';;
2660 case "$useithreads" in
2661 $undef|false|[nN]*) dflt='n';;
2663 rp='Use interpreter-based ithreads?'
2666 y|Y) val="$define" ;;
2671 : Now set use5005threads to the opposite value.
2672 case "$useithreads" in
2673 $define) val="$undef" ;;
2680 useithreads="$undef"
2681 use5005threads="$undef"
2685 case "$d_oldpthreads" in
2686 '') : Configure tests would be welcome here. For now, assume undef.
2688 *) val="$d_oldpthreads" ;;
2694 case "$usethreads" in
2695 "$define"|true|[yY]*)
2696 : Look for a hint-file generated 'call-back-unit'. If the
2697 : user has specified that a threading perl is to be built,
2698 : we may need to set or change some other defaults.
2699 if $test -f usethreads.cbu; then
2700 echo "Your platform has some specific hints for threaded builds, using them..."
2704 (Your platform doesn't have any specific hints for threaded builds.
2705 Assuming POSIX threads, then.)
2713 Perl can be built so that multiple Perl interpreters can coexist
2714 within the same Perl executable.
2717 case "$useithreads" in
2720 This multiple interpreter support is required for interpreter-based threads.
2724 *) case "$usemultiplicity" in
2725 $define|true|[yY]*) dflt='y';;
2728 echo "If this doesn't make any sense to you, just accept the default '$dflt'."
2729 rp='Build Perl for multiplicity?'
2732 y|Y) val="$define" ;;
2740 : determine where manual pages are on this system
2744 syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
2745 syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
2746 syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
2747 syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
2748 syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
2749 sysman=`./loc . /usr/man/man1 $syspath`
2752 if $test -d "$sysman"; then
2753 echo "System manual is in $sysman." >&4
2755 echo "Could not find manual pages in source form." >&4
2758 : see what memory models we can support
2761 $cat >pdp11.c <<'EOP'
2770 ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1
2771 if $test -f pdp11 && ./pdp11 2>/dev/null; then
2772 dflt='unsplit split'
2774 tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
2777 *) if $test -d /lib/small || $test -d /usr/lib/small; then
2782 if $test -d /lib/medium || $test -d /usr/lib/medium; then
2785 if $test -d /lib/large || $test -d /usr/lib/large; then
2788 if $test -d /lib/huge || $test -d /usr/lib/huge; then
2797 Some systems have different model sizes. On most systems they are called
2798 small, medium, large, and huge. On the PDP11 they are called unsplit and
2799 split. If your system doesn't support different memory models, say "none".
2800 If you wish to force everything to one memory model, say "none" here and
2801 put the appropriate flags later when it asks you for other cc and ld flags.
2802 Venix systems may wish to put "none" and let the compiler figure things out.
2803 (In the following question multiple model names should be space separated.)
2805 The default for most systems is "none".
2808 rp="Which memory models are supported?"
2823 '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
2824 $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
2831 rp="What flag indicates separate I and D space?"
2839 *large*|*small*|*medium*|*huge*)
2846 rp="What flag indicates large model?"
2856 *huge*) case "$huge" in
2860 rp="What flag indicates huge model?"
2870 *medium*) case "$medium" in
2874 rp="What flag indicates medium model?"
2881 *) medium="$large";;
2884 *small*) case "$small" in
2888 rp="What flag indicates small model?"
2899 echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
2902 $rm -f pdp11.* pdp11
2904 : make some quick guesses about what we are up against
2906 $echo $n "Hmm... $c"
2916 $cat /usr/include/signal.h /usr/include/sys/signal.h >foo 2>/dev/null
2917 if test -f /osf_boot || $contains 'OSF/1' /usr/include/ctype.h >/dev/null 2>&1
2919 echo "Looks kind of like an OSF/1 system, but we'll see..."
2921 elif test `echo abc | tr a-z A-Z` = Abc ; then
2922 xxx=`./loc addbib blurfl $pth`
2923 if $test -f $xxx; then
2924 echo "Looks kind of like a USG system with BSD features, but we'll see..."
2928 if $contains SIGTSTP foo >/dev/null 2>&1 ; then
2929 echo "Looks kind of like an extended USG system, but we'll see..."
2931 echo "Looks kind of like a USG system, but we'll see..."
2935 elif $contains SIGTSTP foo >/dev/null 2>&1 ; then
2936 echo "Looks kind of like a BSD system, but we'll see..."
2940 echo "Looks kind of like a Version 7 system, but we'll see..."
2943 case "$eunicefix" in
2946 There is, however, a strange, musty smell in the air that reminds me of
2947 something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
2951 : it so happens the Eunice I know will not run shell scripts in Unix format
2955 echo "Congratulations. You aren't running Eunice."
2959 : Detect OS2. The p_ variable is set above in the Head.U unit.
2964 I have the feeling something is not exactly right, however...don't tell me...
2965 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
2970 if test -f /xenix; then
2971 echo "Actually, this looks more like a XENIX system..."
2976 echo "It's not Xenix..."
2981 if test -f /venix; then
2982 echo "Actually, this looks more like a VENIX system..."
2989 echo "Nor is it Venix..."
2992 chmod +x bsd usg v7 osf1 eunice xenix venix os2
2993 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
2996 : see if we need a special compiler
3004 *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
3005 if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
3019 On some older systems the default C compiler will not resolve multiple global
3020 references that happen to have the same name. On some such systems the "Mcc"
3021 command may be used to force these to be resolved. On other systems a "cc -M"
3022 command is required. (Note that the -M flag on other systems indicates a
3023 memory model to use!) If you have the Gnu C compiler, you might wish to use
3029 rp="Use which C compiler?"
3037 rp="Use which C compiler?"
3041 : Look for a hint-file generated 'call-back-unit'. Now that the
3042 : user has specified the compiler, we may need to set or change some
3044 if $test -f cc.cbu; then
3048 echo "Checking for GNU cc in disguise and/or its version number..." >&4
3049 $cat >gccvers.c <<EOM
3054 printf("%s\n", __VERSION__);
3056 printf("%s\n", "1");
3062 if $cc $ldflags -o gccvers gccvers.c; then
3063 gccversion=`./gccvers`
3064 case "$gccversion" in
3065 '') echo "You are not using GNU cc." ;;
3066 *) echo "You are using GNU cc $gccversion."
3071 echo "*** WHOA THERE!!! ***" >&4
3072 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
3073 case "$knowitall" in
3075 echo " You'd better start hunting for one and let me know about it." >&4
3081 case "$gccversion" in
3082 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
3085 : decide how portable to be. Allow command line overrides.
3086 case "$d_portable" in
3088 *) d_portable="$define" ;;
3091 : set up shell script to do ~ expansion
3097 echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
3100 if $test -f /bin/csh; then
3101 /bin/csh -f -c "glob \$1"
3106 name=\`$expr x\$1 : '..\([^/]*\)'\`
3107 dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
3108 if $test ! -d "\$dir"; then
3110 echo "\$me: can't locate home directory for: \$name" >&2
3115 echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
3131 : now set up to get a file name
3135 cat <<'EOSC' >>getfile
3151 expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
3152 fn=`echo $fn | sed 's/(.*)//'`
3158 loc_file=`expr $fn : '.*:\(.*\)'`
3159 fn=`expr $fn : '\(.*\):.*'`
3167 */*) fullpath=true;;
3176 *e*) exp_file=true;;
3179 *p*) nopath_ok=true;;
3184 *d*) type='Directory';;
3185 *l*) type='Locate';;
3190 Locate) what='File';;
3195 case "$d_portable" in
3203 while test "$type"; do
3208 true) rp="$rp (~name ok)";;
3211 if test -f UU/getfile.ok && \
3212 $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
3231 value=`UU/filexp $ans`
3234 if test "$ans" != "$value"; then
3235 echo "(That expands to $value on this system.)"
3249 /*) value="$ansexp" ;;
3254 echo "I shall only accept a full path name, as in /bin/ls." >&4
3255 echo "Use a ! shell escape if you wish to check pathnames." >&4
3258 echo "Please give a full path name, starting with slash." >&4
3261 echo "Note that using ~name is ok provided it expands well." >&4
3274 for fp in $gfpth; do
3275 if test "X$fp" = X.; then
3280 if test -f "$pf"; then
3282 elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
3284 echo "($value is not a plain file, but that's ok.)"
3287 if test X"$type" = X; then
3294 for fp in $gfpth; do
3295 if test "X$fp" = X.; then
3300 if test -d "$pf"; then
3308 if test -d "$ansexp"; then
3309 echo "(Looking for $loc_file in directory $value.)"
3310 value="$value/$loc_file"
3311 ansexp="$ansexp/$loc_file"
3313 if test -f "$ansexp"; then
3316 case "$nopath_ok" in
3317 true) case "$value" in
3319 *) echo "Assuming $value will be in people's path."
3335 if test "$fastread" = yes; then
3340 rp="$what $value doesn't exist. Use that name anyway?"
3359 test "X$gfpthkeep" != Xy && gfpth=""
3362 : What should the include directory be ?
3364 $echo $n "Hmm... $c"
3368 if $test -f /bin/mips && /bin/mips; then
3369 echo "Looks like a MIPS system..."
3370 $cat >usr.c <<'EOCP'
3371 #ifdef SYSTYPE_BSD43
3375 if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
3376 dflt='/bsd43/usr/include'
3380 mips_type='System V'
3382 $rm -f usr.c usr.out
3383 echo "and you're compiling with the $mips_type compiler and libraries."
3387 echo "Doesn't look like a MIPS system."
3397 case "$xxx_prompt" in
3400 rp='Where are the include files you want to use?'
3408 : see how we invoke the C preprocessor
3410 echo "Now, how can we feed standard input to your C preprocessor..." >&4
3411 cat <<'EOT' >testcpp.c
3417 if test ! -f cppstdin; then
3418 if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
3419 # AIX cc -E doesn't show the absolute headerfile
3420 # locations but we'll cheat by using the -M flag.
3421 echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
3423 echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
3426 echo "Keeping your $hint cppstdin wrapper."
3429 wrapper=`pwd`/cppstdin
3433 if $test "X$cppstdin" != "X" && \
3434 $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
3435 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3437 echo "You used to use $cppstdin $cppminus so we'll use that again."
3439 '') echo "But let's see if we can live without a wrapper..." ;;
3441 if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
3442 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3444 echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
3447 echo "(However, $cpprun $cpplast does not work, let's see...)"
3455 echo "Good old $cppstdin $cppminus does not seem to be of any help..."
3462 elif echo 'Maybe "'"$cc"' -E" will work...'; \
3463 $cc -E <testcpp.c >testcpp.out 2>&1; \
3464 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3465 echo "Yup, it does."
3468 elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
3469 $cc -E - <testcpp.c >testcpp.out 2>&1; \
3470 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3471 echo "Yup, it does."
3474 elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
3475 $cc -P <testcpp.c >testcpp.out 2>&1; \
3476 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3477 echo "Yipee, that works!"
3480 elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
3481 $cc -P - <testcpp.c >testcpp.out 2>&1; \
3482 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3483 echo "At long last!"
3486 elif echo 'No such luck, maybe "'$cpp'" will work...'; \
3487 $cpp <testcpp.c >testcpp.out 2>&1; \
3488 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3492 elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
3493 $cpp - <testcpp.c >testcpp.out 2>&1; \
3494 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3495 echo "Hooray, it works! I was beginning to wonder."
3498 elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \
3499 $wrapper <testcpp.c >testcpp.out 2>&1; \
3500 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3506 rp="No dice. I can't find a C preprocessor. Name one:"
3510 $x_cpp <testcpp.c >testcpp.out 2>&1
3511 if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
3512 echo "OK, that will do." >&4
3514 echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4
3529 echo "Perhaps can we force $cc -E using a wrapper..."
3530 if $wrapper <testcpp.c >testcpp.out 2>&1; \
3531 $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
3537 echo "Nope, we'll have to live without it..."
3551 "$wrapper"|'cppstdin') ;;
3552 *) $rm -f $wrapper;;
3554 $rm -f testcpp.c testcpp.out
3556 : Set private lib path
3559 plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
3564 '') dlist="$loclibpth $plibpth $glibpth";;
3565 *) dlist="$libpth";;
3568 : Now check and see which directories actually exist, avoiding duplicates
3572 if $test -d $xxx; then
3575 *) libpth="$libpth $xxx";;
3581 Some systems have incompatible or broken versions of libraries. Among
3582 the directories listed in the question below, please remove any you
3583 know not to be holding relevant libraries, and add any that are needed.
3584 Say "none" for none.
3595 rp="Directories to use for library searches?"
3602 : compute shared library extension
3605 if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
3615 On some systems, shared libraries may be available. Answer 'none' if
3616 you want to suppress searching of shared libraries for the remainder
3617 of this configuration.
3620 rp='What is the file extension used for shared libraries?'
3624 : Define several unixisms.
3625 : Hints files or command line option can be used to override them.
3626 : The convoluted testing is in case hints files set either the old
3629 '') case "$exe_ext" in
3631 *) _exe="$exe_ext" ;;
3636 '') case "$lib_ext" in
3643 '') case "$obj_ext" in
3650 '') case "$path_sep" in
3661 : Which makefile gets called first. This is used by make depend.
3662 case "$firstmakefile" in
3663 '') firstmakefile='makefile';;
3667 $define|true|[yY]*) dflt='y';;
3672 Perl can be built to use the SOCKS proxy protocol library. To do so,
3673 Configure must be run with -Dusesocks.
3675 If this doesn't make any sense to you, just accept the default '$dflt'.
3677 rp='Build Perl for SOCKS?'
3680 y|Y) val="$define" ;;
3686 : Looking for optional libraries
3688 echo "Checking for optional libraries..." >&4
3693 case "$libswanted" in
3694 '') libswanted='c_s';;
3698 libswanted="$libswanted socks5 socks5_sh"
3704 for thislib in $libswanted; do
3705 for thisdir in $libpth; do
3707 if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
3708 xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
3709 $test -f "$xxx" && eval $libscheck
3710 $test -f "$xxx" && libstyle=shared
3712 if test ! -f "$xxx"; then
3713 xxx=$thisdir/lib$thislib.$so
3714 $test -f "$xxx" && eval $libscheck
3715 $test -f "$xxx" && libstyle=shared
3717 if test ! -f "$xxx"; then
3718 xxx=$thisdir/lib$thislib$_a
3719 $test -f "$xxx" && eval $libscheck
3720 $test -f "$xxx" && libstyle=static
3722 if test ! -f "$xxx"; then
3723 xxx=$thisdir/$thislib$_a
3724 $test -f "$xxx" && eval $libscheck
3725 $test -f "$xxx" && libstyle=static
3727 if test ! -f "$xxx"; then
3728 xxx=$thisdir/lib${thislib}_s$_a
3729 $test -f "$xxx" && eval $libscheck
3730 $test -f "$xxx" && libstyle=static
3732 if test ! -f "$xxx"; then
3733 xxx=$thisdir/Slib$thislib$_a
3734 $test -f "$xxx" && eval $libscheck
3735 $test -f "$xxx" && libstyle=static
3737 if $test -f "$xxx"; then
3739 shared) echo "Found -l$thislib (shared)." ;;
3740 static) echo "Found -l$thislib." ;;
3741 *) echo "Found -l$thislib ($libstyle)." ;;
3745 *) dflt="$dflt -l$thislib"
3746 libsfound="$libsfound $xxx"
3748 libsfiles="$libsfiles $yyy"
3749 yyy=`echo $xxx|sed "s@/$yyy\\$@@"`
3750 case " $libsdirs " in
3752 *) libsdirs="$libsdirs $yyy" ;;
3759 if $test ! -f "$xxx"; then
3760 echo "No -l$thislib."
3771 ' '|'') dflt='none';;
3776 In order to compile $package on your machine, a number of libraries
3777 are usually needed. Include any other special libraries here as well.
3778 Say "none" for none. The default list is almost always right.
3782 rp="What libraries to use?"
3789 : determine optimization, if desired, or use for debug flag also
3791 ' '|$undef) dflt='none';;
3793 *) dflt="$optimize";;
3797 By default, $package compiles with the -O flag to use the optimizer.
3798 Alternately, you might want to use the symbolic debugger, which uses
3799 the -g flag (on traditional Unix systems). Either flag can be
3800 specified here. To use neither flag, specify the word "none".
3803 rp="What optimizer/debugger flag should be used?"
3807 'none') optimize=" ";;
3811 : We will not override a previous value, but we might want to
3812 : augment a hint file
3814 default|recommended)
3815 case "$gccversion" in
3816 1*) dflt='-fpcc-struct-return' ;;
3819 *-g*) dflt="$dflt -DDEBUGGING";;
3821 case "$gccversion" in
3822 2*) if test -d /etc/conf/kconfig.d &&
3823 $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
3829 case "$gccversion" in
3833 echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
3834 echo 'int main(void) { return 0; }' > gcctest.c
3835 if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
3836 echo "Yes, it does." 2>&1
3839 echo "Leaving current flags $ccflags alone." 2>&1
3841 *) dflt="$dflt -fno-strict-aliasing" ;;
3844 echo "Nope, it doesn't, but that's ok." 2>&1
3851 case "$mips_type" in
3852 *BSD*|'') inclwanted="$locincpth $usrinc";;
3853 *) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
3855 for thisincl in $inclwanted; do
3856 if $test -d $thisincl; then
3857 if $test x$thisincl != x$usrinc; then
3860 *) dflt="$dflt -I$thisincl";;
3866 inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
3868 elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
3876 *) dflt="$dflt -D$2";;
3880 set signal.h LANGUAGE_C; eval $inctest
3884 ccflags="$ccflags -DSOCKS"
3889 default|recommended) dflt="$ccflags $dflt" ;;
3890 *) dflt="$ccflags";;
3898 Your C compiler may want other flags. For this question you should include
3899 -I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
3900 but you should NOT include libraries or ld flags like -lwhatever. If you
3901 want $package to honor its debug switch, you should include -DDEBUGGING here.
3902 Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
3904 To use no flags, specify the word "none".
3910 rp="Any additional cc flags?"
3917 : the following weeds options from ccflags that are of no interest to cpp
3919 case "$gccversion" in
3920 1*) cppflags="$cppflags -D__GNUC__"
3922 case "$mips_type" in
3924 *BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
3930 echo "Let me guess what the preprocessor flags are..." >&4
3944 *) ftry="$previous $flag";;
3946 if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
3947 >cpp1.out 2>/dev/null && \
3948 $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
3949 >cpp2.out 2>/dev/null && \
3950 $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
3951 $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
3953 cppflags="$cppflags $ftry"
3963 *-*) echo "They appear to be: $cppflags";;
3965 $rm -f cpp.c cpp?.out
3969 : flags used in final linking phase
3971 '') if ./venix; then
3977 *-posix*) dflt="$dflt -posix" ;;
3980 *) dflt="$ldflags";;
3983 : Try to guess additional flags to pick up local libraries.
3984 for thislibdir in $libpth; do
3985 case " $loclibpth " in
3988 *"-L$thislibdir "*) ;;
3989 *) dflt="$dflt -L$thislibdir" ;;
4001 Your C linker may need flags. For this question you should
4002 include -L/whatever and any other flags used by the C linker, but you
4003 should NOT include libraries like -lwhatever.
4005 Make sure you include the appropriate -L/path flags if your C linker
4006 does not normally search all of the directories you specified above,
4009 To use no flags, specify the word "none".
4013 rp="Any additional ld flags (NOT including libraries)?"
4019 rmlist="$rmlist pdp11"
4023 echo "Checking your choice of C compiler and flags for coherency..." >&4
4024 $cat > try.c <<'EOF'
4026 int main() { printf("Ok\n"); exit(0); }
4028 set X $cc $optimize $ccflags -o try $ldflags try.c $libs
4030 $cat >try.msg <<'EOM'
4031 I've tried to compile and run the following simple program:
4034 $cat try.c >> try.msg
4036 $cat >> try.msg <<EOM
4043 and I got the following output:
4047 if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
4048 if sh -c './try' >>try.msg 2>&1; then
4052 *) echo 'The program compiled OK, but produced no output.' >> try.msg
4055 cat >> try.msg <<'EOQS'
4056 If $libs contains -lsfio, and sfio is mis-configured, then it
4057 sometimes (apparently) runs and exits with a 0 status, but with no
4058 output! It may have to do with sfio's use of _exit vs. exit.
4061 rp="You have a big problem. Shall I abort Configure"
4068 echo "The program compiled OK, but exited with status $?." >>try.msg
4069 rp="You have a problem. Shall I abort Configure"
4073 echo "I can't compile the test program." >>try.msg
4074 rp="You have a BIG problem. Shall I abort Configure"
4080 case "$knowitall" in
4082 echo "(The supplied flags or libraries might be incorrect.)"
4090 *) echo "Ok. Stopping Configure." >&4
4095 n) echo "OK, that should do.";;
4097 $rm -f try try.* core
4099 : define an is-a-typedef? function
4100 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4102 "") inclist="sys/types.h";;
4104 eval "varval=\$$var";
4108 for inc in $inclist; do
4109 echo "#include <$inc>" >>temp.c;
4111 echo "#ifdef $type" >> temp.c;
4112 echo "printf(\"We have $type\");" >> temp.c;
4113 echo "#endif" >> temp.c;
4114 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4115 if $contains $type temp.E >/dev/null 2>&1; then
4121 *) eval "$var=\$varval";;
4124 : define an is-a-typedef? function that prompts if the type is not available.
4125 typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
4127 "") inclist="sys/types.h";;
4129 eval "varval=\$$var";
4133 for inc in $inclist; do
4134 echo "#include <$inc>" >>temp.c;
4136 echo "#ifdef $type" >> temp.c;
4137 echo "printf(\"We have $type\");" >> temp.c;
4138 echo "#endif" >> temp.c;
4139 $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
4141 echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
4142 if $contains $type temp.E >/dev/null 2>&1; then
4143 echo "$type found." >&4;
4146 echo "$type NOT found." >&4;
4152 *) eval "$var=\$varval";;
4155 : define a shorthand compile call
4159 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
4160 : define a shorthand compile call for compilations that should be ok.
4164 $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
4166 : check for lengths of integral types
4170 echo "Checking to see how big your integers are..." >&4
4171 $cat >intsize.c <<'EOCP'
4175 printf("intsize=%d;\n", (int)sizeof(int));
4176 printf("longsize=%d;\n", (int)sizeof(long));
4177 printf("shortsize=%d;\n", (int)sizeof(short));
4182 if eval $compile_ok && ./intsize > /dev/null; then
4184 echo "Your integers are $intsize bytes long."
4185 echo "Your long integers are $longsize bytes long."
4186 echo "Your short integers are $shortsize bytes long."
4190 Help! I can't compile and run the intsize test program: please enlighten me!
4191 (This is probably a misconfiguration in your system or libraries, and
4192 you really ought to fix it. Still, I'll try anyway.)
4196 rp="What is the size of an integer (in bytes)?"
4200 rp="What is the size of a long integer (in bytes)?"
4204 rp="What is the size of a short integer (in bytes)?"
4210 $rm -f intsize intsize.*
4212 : see what type lseek is declared as in the kernel
4213 rp="What is the type used for lseek's offset on this system?"
4214 set off_t lseektype long stdio.h sys/types.h
4218 $echo $n "Checking to see how big your file offsets are...$c" >&4
4220 #include <sys/types.h>
4224 printf("%d\n", (int)sizeof($lseektype));
4229 if eval $compile_ok; then
4231 $echo " $lseeksize bytes." >&4
4235 echo "(I can't seem to compile the test program. Guessing...)"
4236 rp="What is the size of your file offsets (in bytes)?"
4242 : see what type file positions are declared as in the library
4243 rp="What is the type for file position used by fsetpos()?"
4244 set fpos_t fpostype long stdio.h sys/types.h
4249 *_t) zzz="$fpostype" ;;
4252 $echo $n "Checking the size of $zzz...$c" >&4
4254 #include <sys/types.h>
4257 printf("%d\n", (int)sizeof($fpostype));
4262 if eval $compile_ok; then
4267 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4270 echo " $fpossize bytes." >&4
4276 echo "(I can't compile the test program. Guessing...)" >&4
4277 rp="What is the size of your file positions (in bytes)?"
4284 case "$lseeksize:$fpossize" in
4287 You can have files larger than 2 gigabytes.
4290 *) case "$uselargefiles" in
4291 "$undef"|false|[nN]*) dflt='n' ;;
4296 Perl can be built to understand large files (files larger than 2 gigabytes)
4297 on some systems. To do so, Configure can be run with -Duselargefiles.
4299 If this doesn't make any sense to you, just accept the default '$dflt'.
4301 rp='Try to understand large files, if available?'
4304 y|Y) val="$define" ;;
4311 case "$uselargefiles" in
4313 : Look for a hint-file generated 'call-back-unit'. If the
4314 : user has specified that a large files perl is to be built,
4315 : we may need to set or change some other defaults.
4316 if $test -f uselfs.cbu; then
4317 echo "Your platform has some specific hints for large file builds, using them..."
4320 $echo $n "Rechecking to see how big your file offsets are...$c" >&4
4322 #include <sys/types.h>
4326 printf("%d\n", (int)sizeof($lseektype));
4331 if eval $compile_ok; then
4333 $echo " $lseeksize bytes." >&4
4337 echo "(I can't seem to compile the test program. Guessing...)"
4338 rp="What is the size of your file offsets (in bytes)?"
4343 *_t) zzz="$fpostype" ;;
4346 $echo $n "Rechecking the size of $zzz...$c" >&4
4348 #include <sys/types.h>
4351 printf("%d\n", (int)sizeof($fpostype));
4356 if eval $compile_ok; then
4361 echo "(I can't execute the test program--guessing $fpossize.)" >&4
4364 echo " $fpossize bytes."
4370 echo "(I can't compile the test program. Guessing...)" >&4
4371 rp="What is the size of your file positions (in bytes)?"
4381 case "$usemorebits" in
4382 "$define"|true|[yY]*)
4384 uselongdouble="$define"
4385 usemorebits="$define"
4387 *) usemorebits="$undef"
4392 case "$intsize:$longsize" in
4395 You have natively 64-bit integers.
4399 *) case "$ccflags" in
4400 *-DUSE_64_BITS*|*-DUSE_LONG_LONG*) use64bits="$define";;
4401 *) case "$uselonglong" in
4402 $define|true|[yY]*) use64bits="$define";;
4406 case "$use64bits" in
4407 $define|true|[yY]*) dflt='y';;
4412 Perl can be built to take advantage of 64-bit integer types
4413 on some systems. To do so, Configure can be run with -Duse64bits.
4415 If this doesn't make any sense to you, just accept the default '$dflt'.
4417 rp='Try to use 64-bit integers, if available?'
4420 [yY]*) val="$define" ;;
4428 case "$archname64" in
4429 '') archname64='' ;; # not a typo
4432 case "$use64bits" in
4433 "$define"|true|[yY]*)
4434 : Look for a hint-file generated 'call-back-unit'. If the
4435 : user has specified that a 64-bit perl is to be built,
4436 : we may need to set or change some other defaults.
4437 if $test -f use64bits.cbu; then
4438 echo "Your platform has some specific hints for 64-bit builds, using them..."
4442 (Your platform doesn't have any specific hints for 64-bit builds.)
4444 case "$intsize:$longsize" in
4446 (This is probably okay, as your system is a natively 64-bit system.)
4450 case "$gccversion" in
4452 *) case "$ccflags" in
4455 But since you seem to be using gcc, I will now add -DUSE_64_BITS
4456 to the compilation flags to get long longs.
4458 ccflags="$ccflags -DUSE_64_BITS"
4467 : determine the architecture name
4469 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
4470 tarch=`arch`"-$osname"
4471 elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then
4472 if uname -m > tmparch 2>&1 ; then
4473 tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \
4474 -e 's/$/'"-$osname/" tmparch`
4482 case "$myarchname" in
4485 echo "(Your architecture name used to be $myarchname.)"
4492 *) dflt="$archname";;
4494 rp='What is your architecture name'
4497 case "$usethreads" in
4499 echo "Threads selected." >&4
4501 *-thread*) echo "...and architecture name already has -thread." >&4
4503 *) archname="$archname-thread"
4504 echo "...setting architecture name to $archname." >&4
4509 case "$usemultiplicity" in
4511 echo "Multiplicity selected." >&4
4513 *-multi*) echo "...and architecture name already has -multi." >&4
4515 *) archname="$archname-multi"
4516 echo "...setting architecture name to $archname." >&4
4521 case "$use64bits" in
4523 case "$archname64" in
4528 *-$archname64*) echo "...and architecture name already has $archname64." >&4
4530 *) archname="$archname-$archname64"
4531 echo "...setting architecture name to $archname." >&4
4538 : determine root of directory hierarchy where package will be installed.
4541 dflt=`./loc . /usr/local /usr/local /local /opt /usr`
4549 By default, $package will be installed in $dflt/bin, manual pages
4550 under $dflt/man, etc..., i.e. with $dflt as prefix for all
4551 installation directories. Typically this is something like /usr/local.
4552 If you wish to have binaries under /usr/bin but other parts of the
4553 installation under /usr/local, that's ok: you will be prompted
4554 separately for each of the installation directories, the prefix being
4555 only used to set the defaults.
4559 rp='Installation prefix to use?'
4567 *) oldprefix="$prefix";;
4577 $define|true) afs=true ;;
4578 $undef|false) afs=false ;;
4579 *) if test -d /afs; then
4587 echo "AFS may be running... I'll be extra cautious then..." >&4
4589 echo "AFS does not seem to be running..." >&4
4592 : determine installation prefix for where package is to be installed.
4596 Since you are running AFS, I need to distinguish the directory in which
4597 files will reside from the directory in which they are installed (and from
4598 which they are presumably copied to the former directory by occult means).
4601 case "$installprefix" in
4602 '') dflt=`echo $prefix | sed 's#^/afs/#/afs/.#'`;;
4603 *) dflt="$installprefix";;
4608 In some special cases, particularly when building $package for distribution,
4609 it is convenient to distinguish between the directory in which files should
4610 be installed from the directory ($prefix) in which they
4611 will eventually reside. For most users, these two directories are the same.
4614 case "$installprefix" in
4616 *) dflt=$installprefix;;
4620 rp='What installation prefix should I use for installing files?'
4622 installprefix="$ans"
4623 installprefixexp="$ansexp"
4625 : set the prefixit variable, to compute a suitable default value
4626 prefixit='case "$3" in
4628 case "$oldprefix" in
4629 "") eval "$1=\"\$$2\"";;
4636 ""|" ") eval "$1=\"\$$2\"";;
4642 eval "tp=\"$oldprefix-\$$2-\""; eval "tp=\"$tp\"";
4644 --|/*--|\~*--) eval "$1=\"$prefix/$3\"";;
4645 /*-$oldprefix/*|\~*-$oldprefix/*)
4646 eval "$1=\`echo \$$2 | sed \"s,^$oldprefix,$prefix,\"\`";;
4647 *) eval "$1=\"\$$2\"";;
4651 : set the base revision
4655 : get the patchlevel
4657 echo "Getting the current patchlevel..." >&4
4658 if $test -r $rsrc/patchlevel.h;then
4659 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
4660 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4661 api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
4662 api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
4663 api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
4671 $echo $n "(You have $package" $c
4674 *) $echo $n " $baserev" $c ;;
4676 $echo $n " patchlevel $patchlevel" $c
4677 test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
4681 : XXX Should be a Configure test for double-dots in filenames.
4682 version=`echo $baserev $patchlevel $subversion | \
4683 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4684 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4685 $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'`
4688 version=`echo $baserev $patchlevel $subversion | \
4689 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4690 api_versionstring=`echo $api_revision $api_version $api_subversion | \
4691 $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'`
4694 : Special case the 5.005_xx maintenance series, which used 5.005
4695 : without any subversion label as a subdirectory in $sitelib
4696 if test "${api_revision}${api_version}${api_subversion}" = "550"; then
4697 api_versionstring='5.005'
4700 : determine installation style
4701 : For now, try to deduce it from prefix unless it is already set.
4702 : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
4703 case "$installstyle" in
4704 '') case "$prefix" in
4705 *perl*) dflt='lib';;
4706 *) dflt='lib/perl5' ;;
4709 *) dflt='lib/perl5' ;;
4711 : Probably not worth prompting for this since we prompt for all
4712 : the directories individually, and the prompt would be too long and
4716 : determine where private library files go
4717 : Usual default is /usr/local/lib/perl5/$version.
4718 : Also allow things like /opt/perl/lib/$version, since
4719 : /opt/perl/lib/perl5... would be redundant.
4720 : The default "style" setting is made in installstyle.U
4721 case "$installstyle" in
4722 *lib/perl5*) set dflt privlib lib/$package/$version ;;
4723 *) set dflt privlib lib/$version ;;
4728 There are some auxiliary files for $package that need to be put into a
4729 private library directory that is accessible by everyone.
4733 rp='Pathname where the private library files will reside?'
4736 privlibexp="$ansexp"
4737 : Change installation prefix, if necessary.
4738 if $test X"$prefix" != X"$installprefix"; then
4739 installprivlib=`echo $privlibexp | sed "s#^$prefix#$installprefix#"`
4741 installprivlib="$privlibexp"
4744 : set the prefixup variable, to restore leading tilda escape
4745 prefixup='case "$prefixexp" in
4747 *) eval "$1=\`echo \$$1 | sed \"s,^$prefixexp,$prefix,\"\`";;
4750 : determine where public architecture dependent libraries go
4753 : privlib default is /usr/local/lib/$package/$version
4754 : archlib default is /usr/local/lib/$package/$version/$archname
4755 : privlib may have an optional trailing /share.
4756 tdflt=`echo $privlib | $sed 's,/share$,,'`
4757 tdflt=$tdflt/$archname