X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Configure;h=a57fad1dfb1a45e61ea1ef8f81a04126e2d2c0e7;hb=ba979b3106a5e7f3b2512d1f4e93c681fba7aa9f;hp=23f8b4d87dfedbc3f1954f86c60b1dfea91bffff;hpb=495e2cbe9e2952bdb4e905c5db6c346ed0e84a42;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Configure b/Configure index 23f8b4d..a57fad1 100755 --- a/Configure +++ b/Configure @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Wed Oct 3 16:47:48 EET DST 2001 [metaconfig 3.0 PL70] +# Generated on Sat Jan 12 23:16:55 EET 2002 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ </dev/null 2>&1`; then shsharp=true spitshell=cat xcat=/bin/cat - test -f $xcat || xcat=/usr/bin/cat + test -f $xcat$_exe || xcat=/usr/bin/cat + if test ! -f $xcat$_exe; then + for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do + if test -f $p/cat$_exe; then + xcat=$p/cat + break + fi + done + if test ! -f $xcat$_exe; then + echo "Can't find cat anywhere!" + exit 1 + fi + fi echo "#!$xcat" >sharp $eunicefix sharp chmod +x sharp @@ -2007,6 +2032,9 @@ for dir in \$*; do if test -f \$thisthing; then echo \$thisthing exit 0 + elif test "X$_exe" != X -a -f \$thisthing$_exe; then + echo \$thisthing + exit 0 elif test -f \$dir/\$thing.exe; then if test -n "$DJGPP"; then echo \$dir/\$thing.exe @@ -2034,7 +2062,6 @@ echo expr grep ls -make mkdir rm sed @@ -2052,9 +2079,11 @@ cpp csh date egrep +gmake gzip less ln +make more nm nroff @@ -2079,7 +2108,7 @@ for file in $loclist; do '') xxx=`./loc $file $file $pth`;; *) xxx=`./loc $xxx $xxx $pth`;; esac - eval $file=$xxx + eval $file=$xxx$_exe eval _$file=$xxx case "$xxx" in /*) @@ -2131,12 +2160,37 @@ case "$egrep" in egrep) echo "Substituting grep for egrep." egrep=$grep + _egrep=$grep ;; esac case "$ln" in ln) echo "Substituting cp for ln." ln=$cp + _ln=$cp + ;; +esac +case "$make" in +make) + case "$gmake" in + gmake) + echo "I can't find make or gmake, and my life depends on it." >&4 + echo "Go find a public domain implementation or fix your PATH setting!" >&4 + exit 1 + ;; + esac + ;; +esac +case "$gmake" in +gmake) ;; +*) # We can't have osname yet. + if test -f "/system/gnu_library/bin/ar.pm"; then # Stratus VOS + # Assume that gmake, if found, is definitely GNU make + # and prefer it over the system make. + echo "Substituting gmake for make." + make=$gmake + _make=$gmake + fi ;; esac case "$test" in @@ -2261,20 +2315,43 @@ case "$lns" in echo "Checking how to test for symbolic links..." >&4 $lns blurfl sym if $test "X$issymlink" = X; then - sh -c "PATH= test -h sym" >/dev/null 2>&1 + case "$newsh" in + '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;; + *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;; + esac if test $? = 0; then issymlink="test -h" - fi - fi - if $test "X$issymlink" = X; then - if $test -h >/dev/null 2>&1; then - issymlink="$test -h" - echo "Your builtin 'test -h' may be broken, I'm using external '$test -h'." >&4 + else + echo "Your builtin 'test -h' may be broken." >&4 + case "$test" in + /*) ;; + *) pth=`echo $PATH | sed -e "s/$p_/ /g"` + for p in $pth + do + if test -f "$p/$test"; then + test="$p/$test" + break + fi + done + ;; + esac + case "$test" in + /*) + echo "Trying external '$test -h'." >&4 + issymlink="$test -h" + if $test ! -h sym >/dev/null 2>&1; then + echo "External '$test -h' is broken, too." >&4 + issymlink='' + fi + ;; + *) issymlink='' ;; + esac fi fi if $test "X$issymlink" = X; then if $test -L sym 2>/dev/null; then issymlink="$test -L" + echo "The builtin '$test -L' worked." >&4 fi fi if $test "X$issymlink" != X; then @@ -2735,6 +2812,7 @@ EOM $test -d /usr/apollo/bin && osname=apollo $test -f /etc/saf/_sactab && osname=svr4 $test -d /usr/include/minix && osname=minix + $test -f /system/gnu_library/bin/ar.pm && osname=vos if $test -d /MachTen -o -d /MachTen_Folder; then osname=machten if $test -x /sbin/version; then @@ -2907,9 +2985,11 @@ EOM unixware) osname=svr5 osvers="$4" ;; - uts) osname=uts + uts) osname=uts osvers="$3" ;; + vos) osvers="$3" + ;; $2) case "$osname" in *isc*) ;; *freebsd*) ;; @@ -3235,8 +3315,9 @@ experimental. This arrangement exists to help developers work out which one is better. If you're a casual user, you probably don't want interpreter-threads -at this time. There doesn't yet exist a way to create threads from -within Perl in this model, i.e., "use Thread;" will NOT work. +at this time. But if you do, the 'threads' module allows their use, +and the 'Thread' module offers an interface to both 5005threads and +ithreads (whichever has been configured). EOM : Default to ithreads unless overridden on command line or with : old config.sh @@ -4081,7 +4162,7 @@ so="$ans" : or the new name. case "$_exe" in '') case "$exe_ext" in - '') ;; + '') ;; *) _exe="$exe_ext" ;; esac ;; @@ -4795,6 +4876,10 @@ $rm -f try.* try : determine filename position in cpp output echo " " echo "Computing filename position in cpp output for #include directives..." >&4 +case "$osname" in +vos) testaccess=-e ;; +*) testaccess=-r ;; +esac echo '#include ' > foo.c $cat >fieldn < +*) cppfilter='' ;; +esac : locate header file $cat >findhdr <" > foo\$\$.c $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ -$grep "^[ ]*#.*\$wanted" | \ +$cppfilter $grep "^[ ]*#.*\$wanted" | \ while read cline; do name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` case "\$name" in @@ -6336,7 +6425,7 @@ val="$undef" case "$d_suidsafe" in "$define") val="$undef" - echo "No need to emulate SUID scripts since they are secure here." >& 4 + echo "No need to emulate SUID scripts since they are secure here." >&4 ;; *) $cat <& 4 + echo "Found Berkeley sockets interface in lib$net." >&4 if $contains setsockopt libc.list >/dev/null 2>&1; then d_oldsock="$undef" else @@ -9228,7 +9320,7 @@ eval $inlibc echo " " -echo "Checking the availability of certain socket constants..." >& 4 +echo "Checking the availability of certain socket constants..." >&4 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'` $cat >try.c <&4 - val="$define" - cryptlib='' -else - cryptlib=`./loc Slibcrypt$_a "" $xlibpth` - if $test -z "$cryptlib"; then - cryptlib=`./loc Mlibcrypt$_a "" $xlibpth` - else - cryptlib=-lcrypt - fi - if $test -z "$cryptlib"; then - cryptlib=`./loc Llibcrypt$_a "" $xlibpth` - else - cryptlib=-lcrypt - fi - if $test -z "$cryptlib"; then - cryptlib=`./loc libcrypt$_a "" $libpth` - else - cryptlib=-lcrypt - fi - if $test -z "$cryptlib"; then - echo 'crypt() NOT found.' >&4 - val="$undef" - else +set crypt d_crypt +eval $inlibc +case "$d_crypt" in +$define) cryptlib='' ;; +*) if set crypt val -f d_crypt; eval $csym; $val; then + echo 'crypt() found.' >&4 val="$define" + cryptlib='' + else + cryptlib=`./loc Slibcrypt$_a "" $xlibpth` + if $test -z "$cryptlib"; then + cryptlib=`./loc Mlibcrypt$_a "" $xlibpth` + else + cryptlib=-lcrypt + fi + if $test -z "$cryptlib"; then + cryptlib=`./loc Llibcrypt$_a "" $xlibpth` + else + cryptlib=-lcrypt + fi + if $test -z "$cryptlib"; then + cryptlib=`./loc libcrypt$_a "" $libpth` + else + cryptlib=-lcrypt + fi + if $test -z "$cryptlib"; then + echo 'crypt() NOT found.' >&4 + val="$undef" + else + val="$define" + fi fi -fi -set d_crypt -eval $setvar + set d_crypt + eval $setvar + ;; +esac : get csh whereabouts case "$csh" in @@ -9492,6 +9590,63 @@ set d_dirnamlen eval $setvar $rm -f try.c +: see if this is an sysdir system +set sys/dir.h i_sysdir +eval $inhdr + +: see if this is an sysndir system +set sys/ndir.h i_sysndir +eval $inhdr + +: Look for dirfd +echo " " +$cat >dirfd.c < +#$i_dirent I_DIRENT /**/ +#$i_sysdir I_SYS_DIR /**/ +#$i_sysndir I_SYS_NDIR /**/ +#$i_systypes I_SYS_TYPES /**/ +#if defined(I_SYS_TYPES) +#include +#endif +#if defined(I_DIRENT) +#include +#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */ +#include +#endif +#else +#ifdef I_SYS_NDIR +#include +#else +#ifdef I_SYS_DIR +#ifdef hp9000s500 +#include /* may be wrong in the future */ +#else +#include +#endif +#endif +#endif +#endif +int main() { + DIR *dirp = opendir("."); + if (dirfd(dirp) >= 0) + exit(0); + else + exit(1); +} +EOM +set dirfd +if eval $compile; then + val="$define" +fi +case "$val" in +$define) echo "dirfd() found." >&4 ;; +*) echo "dirfd() NOT found." >&4 ;; +esac +set d_dirfd +eval $setvar +$rm -f dirfd* + : see if dlerror exists xxx_runnm="$runnm" runnm=false @@ -9604,7 +9759,7 @@ EOM ;; esac -$rm -f fred fred.? dyna.$dlext dyna.? tmp-dyna.? +$rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.* set d_dlsymun eval $setvar @@ -9718,6 +9873,59 @@ case "$i_string" in *) strings=`./findhdr string.h`;; esac +: see if this is a sys/file.h system +val='' +set sys/file.h val +eval $inhdr + +: do we need to include sys/file.h ? +case "$val" in +"$define") + echo " " + if $h_sysfile; then + val="$define" + echo "We'll be including ." >&4 + else + val="$undef" + echo "We won't be including ." >&4 + fi + ;; +*) + h_sysfile=false + ;; +esac +set i_sysfile +eval $setvar + +: see if fcntl.h is there +val='' +set fcntl.h val +eval $inhdr + +: see if we can include fcntl.h +case "$val" in +"$define") + echo " " + if $h_fcntl; then + val="$define" + echo "We'll be including ." >&4 + else + val="$undef" + if $h_sysfile; then + echo "We don't need to include if we include ." >&4 + else + echo "We won't be including ." >&4 + fi + fi + ;; +*) + h_fcntl=false + val="$undef" + ;; +esac +set i_fcntl +eval $setvar + : check for non-blocking I/O stuff case "$h_sysfile" in true) echo "#include " > head.c;; @@ -9733,9 +9941,13 @@ echo "Figuring out the flag used by open() for non-blocking I/O..." >&4 case "$o_nonblock" in '') $cat head.c > try.c - $cat >>try.c <<'EOCP' + $cat >>try.c < #include +#$i_fcntl I_FCNTL +#ifdef I_FCNTL +#include +#endif int main() { #ifdef O_NONBLOCK printf("O_NONBLOCK\n"); @@ -9778,6 +9990,10 @@ case "$eagain" in #include #include #include +#$i_fcntl I_FCNTL +#ifdef I_FCNTL +#include +#endif #define MY_O_NONBLOCK $o_nonblock #ifndef errno /* XXX need better Configure test */ extern int errno; @@ -9838,7 +10054,7 @@ int main() ret = read(pd[0], buf, 1); /* Should read EOF */ alarm(0); sprintf(string, "%d\n", ret); - write(3, string, strlen(string)); + write(4, string, strlen(string)); exit(0); } @@ -9852,7 +10068,7 @@ EOCP set try if eval $compile_ok; then echo "$startsh" >mtry - echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry + echo "$run ./try >try.out 2>try.ret 4>try.err || exit 4" >>mtry chmod +x mtry ./mtry >/dev/null 2>&1 case $? in @@ -10172,30 +10388,6 @@ eval $inlibc set flock d_flock eval $inlibc -: see if this is a sys/file.h system -val='' -set sys/file.h val -eval $inhdr - -: do we need to include sys/file.h ? -case "$val" in -"$define") - echo " " - if $h_sysfile; then - val="$define" - echo "We'll be including ." >&4 - else - val="$undef" - echo "We won't be including ." >&4 - fi - ;; -*) - h_sysfile=false - ;; -esac -set i_sysfile -eval $setvar - : see if prototype for flock is available echo " " set d_flockproto flock $i_sysfile sys/file.h @@ -11424,6 +11616,37 @@ eval $inlibc set poll d_poll eval $inlibc +: see if readlink exists +set readlink d_readlink +eval $inlibc + +echo " " +procselfexe='' +val="$undef" +case "$d_readlink" in +"$define") + if $issymlink /proc/self/exe ; then + $ls -l /proc/self/exe > reflect + if $contains /`basename $ls` reflect >/dev/null 2>&1; then + echo "You have Linux-like /proc/self/exe." + procselfexe='"/proc/self/exe"' + val="$define" + fi + fi + if $issymlink /proc/curproc/file ; then + $ls -l /proc/curproc/file > reflect + if $contains /`basename $ls` reflect >/dev/null 2>&1; then + echo "You have BSD-like /proc/curproc/file." + procselfexe='"/proc/curproc/file"' + val="$define" + fi + fi + ;; +esac +$rm -f reflect +set d_procselfexe +eval $setvar + : see if pthread_atfork exists set pthread_atfork d_pthread_atfork eval $inlibc @@ -11598,10 +11821,6 @@ eval $inlibc set rewinddir d_rewinddir eval $inlibc -: see if readlink exists -set readlink d_readlink -eval $inlibc - : see if readv exists set readv d_readv eval $inlibc @@ -13258,7 +13477,12 @@ EOM $cat >try.c < #define U32 $u32type -#define BYTEORDER $byteorder +#define BYTEORDER 0x$byteorder +#define U8 $u8type +#include +#ifdef SIGBUS +$signal_t bletch(s) int s; { exit(4); } +#endif int main() { #if BYTEORDER == 0x1234 || BYTEORDER == 0x4321 U8 buf[] = "\0\0\0\1\0\0\0\0"; @@ -13272,6 +13496,10 @@ int main() { fflush(stdout); +#ifdef SIGBUS + signal(SIGBUS, bletch); +#endif + for (i = 0; i < 4; i++) { up = (U32*)(buf + i); if (! ((*up == 1 << (8*i)) || /* big-endian */ @@ -13304,7 +13532,7 @@ int main() { EOCP set try if eval $compile_ok; then - echo "(Testing for character data alignment may dump core.)" >&4 + echo "(Testing for character data alignment may crash the test. That's okay.)" >&4 $run ./try 2>&1 >/dev/null case "$?" in 0) cat >&4 <& 4 +'') echo "$0: Fatal: failed to find format strings, cannot continue." >&4 exit 1 ;; esac @@ -15765,11 +15985,11 @@ case "$yacc" in esac echo " " comp='yacc' -if $test -f "$byacc"; then +if $test -f "$byacc$_exe"; then dflt="$byacc" comp="byacc or $comp" fi -if $test -f "$bison"; then +if $test -f "$bison$_exe"; then comp="$comp or bison -y" fi rp="Which compiler compiler ($comp) shall I use?" @@ -15787,35 +16007,6 @@ case "$yacc" in ;; esac -: see if fcntl.h is there -val='' -set fcntl.h val -eval $inhdr - -: see if we can include fcntl.h -case "$val" in -"$define") - echo " " - if $h_fcntl; then - val="$define" - echo "We'll be including ." >&4 - else - val="$undef" - if $h_sysfile; then - echo "We don't need to include if we include ." >&4 - else - echo "We won't be including ." >&4 - fi - fi - ;; -*) - h_fcntl=false - val="$undef" - ;; -esac -set i_fcntl -eval $setvar - : see if this is a fp.h system set fp.h i_fp eval $inhdr @@ -15825,8 +16016,11 @@ set fp_class.h i_fp_class eval $inhdr : see if this is a ieeefp.h system -set ieeefp.h i_ieeefp -eval $inhdr +case "$i_ieeefp" in +'' ) set ieeefp.h i_ieeefp + eval $inhdr + ;; +esac : see if this is a libutil.h system set libutil.h i_libutil @@ -15857,6 +16051,19 @@ eval $inhdr : see if ndbm.h is available set ndbm.h t_ndbm eval $inhdr + +case "$t_ndbm" in +$undef) + # Some Linux distributions such as RedHat 7.1 put the + # ndbm.h header in /usr/include/gdbm/ndbm.h. + if $test -f /usr/include/gdbm/ndbm.h; then + ccflags="$ccflags -I/usr/include/gdbm" + cppflags="$cppflags -I/usr/include/gdbm" + t_ndbm=$define + fi + ;; +esac + case "$t_ndbm" in $define) : see if dbm_open exists @@ -16342,6 +16549,10 @@ cd $rsrc/ext set X shift eval $find_extensions +# Special case: Add in threads/shared since it is not picked up by the +# recursive find above (and adding in general recursive finding breaks +# SDBM_File/sdbm). A.D. 10/25/2001. +known_extensions="$known_extensions threads/shared" set X $nonxs_extensions shift nonxs_extensions="$*" @@ -16409,7 +16620,12 @@ for xxx in $known_extensions ; do ;; Socket|socket) case "$d_socket" in - true|$define|y) avail_ext="$avail_ext $xxx" ;; + true|$define|y) + case "$osname" in + beos) ;; # not unless BONE + *) avail_ext="$avail_ext $xxx" ;; + esac + ;; esac ;; Sys/Syslog|sys/syslog) @@ -16426,7 +16642,7 @@ for xxx in $known_extensions ; do esac esac ;; - threads) + threads|threads/shared) case "$usethreads" in true|$define|y) case "$useithreads" in @@ -16617,6 +16833,12 @@ if test -d ../UU; then cd .. fi +: configuration may be patched via a 'config.arch' file +if $test -f config.arch; then + echo "I see a config.arch file, loading it." + . ./config.arch +fi + : configuration may be patched via a 'config.over' file if $test -f config.over; then echo " " @@ -16779,6 +17001,7 @@ d_cuserid='$d_cuserid' d_dbl_dig='$d_dbl_dig' d_dbminitproto='$d_dbminitproto' d_difftime='$d_difftime' +d_dirfd='$d_dirfd' d_dirnamlen='$d_dirnamlen' d_dlerror='$d_dlerror' d_dlopen='$d_dlopen' @@ -16932,6 +17155,7 @@ d_phostname='$d_phostname' d_pipe='$d_pipe' d_poll='$d_poll' d_portable='$d_portable' +d_procselfexe='$d_procselfexe' d_pthread_atfork='$d_pthread_atfork' d_pthread_yield='$d_pthread_yield' d_pwage='$d_pwage' @@ -17118,6 +17342,7 @@ gidsign='$gidsign' gidsize='$gidsize' gidtype='$gidtype' glibpth='$glibpth' +gmake='$gmake' grep='$grep' groupcat='$groupcat' groupstype='$groupstype' @@ -17348,6 +17573,7 @@ prefix='$prefix' prefixexp='$prefixexp' privlib='$privlib' privlibexp='$privlibexp' +procselfexe='$procselfexe' prototype='$prototype' ptrsize='$ptrsize' quadkind='$quadkind'