Update Changes.
[p5sagit/p5-mst-13.2.git] / hints / linux.sh
index 25d5d73..9837ee8 100644 (file)
@@ -43,12 +43,30 @@ ignore_versioned_solibs='y'
 # available via anonymous FTP at tsx-11.mit.edu in
 # /pub/linux/docs/linux-standards/fsstnd.
 # Allow a command line override, e.g. Configure -Dprefix=/foo/bar
-case "$prefix" in
-'') prefix='/usr' ;;
-esac
-
-# gcc-2.6.3 defines _G_HAVE_BOOL to 1, but doesn't actually supply bool.
-ccflags="-Dbool=char -DHAS_BOOL $ccflags"
+#
+#  Addendum for 5.005_57 and beyond:
+#
+# However, most Linux users probably already have a /usr/bin/perl.
+# We can't know whether the current user is intending to *replace*
+# that /usr/bin/perl or whether the user is intending to install
+# a *different* installation.
+#
+# Here is what we used to do:
+# Allow a command line override, e.g. Configure -Dprefix=/foo/bar
+# case "$prefix" in
+# '') prefix='/usr' ;;
+# esac
+#
+# For now, let's assume that most Linux users get their /usr/bin/perl
+# from some packaging system, so that those compiling from source are
+# probably the more experimental folks and hence probably aren't
+# intending to replace /usr/bin/perl (at least just yet).
+# This change makes linux consistent with most other unix platforms
+# in having a default of prefix=/usr/local.
+# These notes can probably safely be removed in 5.005_50 and beyond.
+#
+#      9 April 1999  Andy Dougherty  <doughera@lafayette.edu>
+#
 
 # BSD compatability library no longer needed
 # 'kaffe' has a /usr/lib/libnet.so which is not at all relevent for perl.
@@ -79,7 +97,19 @@ case "$usemymalloc" in
 esac
 
 case "$optimize" in
-'') optimize='-O2' ;;
+'') # If we have modern enough gcc and well-supported enough CPU,
+    # crank up the optimization level.
+    case "`${cc:-gcc} -v 2>&1`" in
+    *gcc-2.95*|*gcc-3.*)
+        case "`arch 2>&1`" in
+        i?86|ppc) optimize='-O3' ;;
+        esac
+        ;;
+    esac
+    case "$optimize" in
+    '') optimize='-O2' ;;
+    esac
+    ;;
 esac
 
 # Are we using ELF?  Thanks to Kenneth Albanowski <kjahds@kjahds.com>
@@ -101,7 +131,7 @@ main() {
        exit(0); /* succeed (yes, it's ELF) */
 }
 EOM
-if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then
+if ${cc:-gcc} try.c >/dev/null 2>&1 && $run ./a.out; then
     cat <<'EOM' >&4
 
 You appear to have ELF support.  I'll try to use it for dynamic loading.
@@ -171,7 +201,7 @@ fi
 
 rm -f try.c a.out
 
-if /bin/bash -c exit; then
+if /bin/sh -c exit; then
   echo ''
   echo 'You appear to have a working bash.  Good.'
 else
@@ -201,21 +231,22 @@ fi
 # For this reason I suggest using the much bug-fixed tcsh for globbing
 # where available.
 
-if [  ! "`csh -c 'echo $version' 2>/dev/null`"  ] 
-then
-    echo 'Real csh found (might break); looking for tcsh ...'
-    # Use ./UU/loc to find tcsh.  (We no longer run in the hints/ directory)
+# November 2001:  That warning's pretty old now and probably not so
+# relevant, especially since perl now uses File::Glob for globbing.
+# We'll still look for tcsh, but tone down the warnings.
+# Andy Dougherty, Nov. 6, 2001
+if $csh -c 'echo $version' >/dev/null 2>&1; then
+    echo 'Your csh is really tcsh.  Good.'
+else
     if xxx=`./UU/loc tcsh blurfl $pth`; $test -f "$xxx"; then
        echo "Found tcsh.  I'll use it for globbing."
        # We can't change Configure's setting of $csh, due to the way
        # Configure handles $d_portable and commands found in $loclist.
        # We can set the value for CSH in config.h by setting full_csh.
        full_csh=$xxx
-    else
-       echo "Couldn't find tcsh.  BEWARE:  GLOBBING MIGHT BE BROKEN."
+    elif [ -f "$csh" ]; then
+       echo "Couldn't find tcsh.  Csh-based globbing might be broken."
     fi
-else
-    echo 'Your csh is really tcsh.  Good.'
 fi
 
 # Shimpei Yamashita <shimpei@socrates.patnet.caltech.edu>
@@ -237,6 +268,15 @@ fi
 #'osfmach3ppc') ccdlflags='-Wl,-E' ;;
 #esac
 
+case "`uname -r`" in
+sparc-linux)
+       case "$cccdlflags" in
+       *-fpic*) cccdlflags="`echo $cccdlflags|sed 's/-fpic/-fPIC/'`" ;;
+       *)       cccdlflags="$cccdlflags -fPIC" ;;
+       esac
+       ;;
+esac
+
 # This script UU/usethreads.cbu will get 'called-back' by Configure 
 # after it has prompted the user for whether to use threads.
 cat > UU/usethreads.cbu <<'EOCBU'
@@ -249,3 +289,16 @@ $define|true|[yY]*)
        ;;
 esac
 EOCBU
+
+cat > UU/uselargefiles.cbu <<'EOCBU'
+# This script UU/uselargefiles.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use large files.
+case "$uselargefiles" in
+''|$define|true|[yY]*)
+# Keep this in the left margin.
+ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+
+       ccflags="$ccflags $ccflags_uselargefiles"
+       ;;
+esac
+EOCBU