Integrate changes #9493,9494,9495,9496 from maintperl
[p5sagit/p5-mst-13.2.git] / hints / hpux.sh
index 462d74b..19eeae0 100644 (file)
 # HP-UX 10 pthreads hints: Matthew T Harden <mthard@mthard1.monsanto.com>
 # From: Dominic Dunlop <domo@computer.org>
 # Abort and offer advice if bundled (non-ANSI) C compiler selected
+# From: H.Merijn Brand <h.m.brand@hccnet.nl>
+# ccversion detection
+# perl/64/HP-UX wants libdb-3.0 to be shared ELF 64
+# generic pthread support detection for PTH package
+
 
 # This version: March 8, 2000
 # Current maintainer: Jeff Okamoto <okamoto@corp.hp.com>
@@ -105,10 +110,12 @@ EOM
     ;;
 esac
 
+cc=${cc:-cc}
+
 case `$cc -v 2>&1`"" in
 *gcc*) ccisgcc="$define" ;;
 *) ccisgcc=''
-   ccversion=`which cc | xargs what | grep Compiler | awk '{print $2}'`
+   ccversion=`which cc | xargs what | awk '/Compiler/{print $2}'`
    ;;
 esac
 
@@ -148,6 +155,9 @@ fi
 case "$use64bitall" in
 $define|true|[yY]*) use64bitint="$define" ;;
 esac
+case "$usemorebits" in
+$define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
+esac
 case "$use64bitint" in
 $define|true|[yY]*)
     if [ "$xxOsRevMajor" -lt 11 ]; then
@@ -156,7 +166,6 @@ $define|true|[yY]*)
 64-bit compilation is not supported on HP-UX $xxOsRevMajor.
 You need at least HP-UX 11.0.
 Cannot continue, aborting.
-
 EOM
                exit 1
     fi
@@ -169,7 +178,6 @@ EOM
 *** You do not seem to have the 64-bit libraries in /lib/pa20_64.
 *** Most importantly, I cannot find the $libc.
 *** Cannot continue, aborting.
-
 EOM
                exit 1
     fi
@@ -177,6 +185,7 @@ EOM
     ccflags="$ccflags +DD64"
     ldflags="$ldflags +DD64"
     test -d /lib/pa20_64 && loclibpth="$loclibpth /lib/pa20_64"
+    libswanted="$libswanted pthread"
     libscheck='case "`/usr/bin/file $xxx`" in
 *LP64*|*PA-RISC2.0*) ;;
 *) xxx=/no/64-bit$xxx ;;
@@ -323,6 +332,7 @@ case "$usethreads" in
 $define|true|[yY]*)
         if [ "$xxOsRevMajor" -lt 10 ]; then
             cat <<EOM >&4
+
 HP-UX $xxOsRevMajor cannot support POSIX threads.
 Consider upgrading to at least HP-UX 11.
 Cannot continue, aborting.
@@ -331,33 +341,56 @@ EOM
         fi
         case "$xxOsRevMajor" in
         10)
-            # Under 10.X, a threaded perl can be built, but it needs
-            # libcma and OLD_PTHREADS_API.  Also <pthread.h> needs to
-            # be #included before any other includes (in perl.h)
-            if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
+            # Under 10.X, a threaded perl can be built
+            if [ -f /usr/include/pthread.h ]; then
+               if [ -f /usr/lib/libcma.sl ]; then
+                   # DCE (from Core OS CD) is installed
+
+                   # It needs # libcma and OLD_PTHREADS_API. Also <pthread.h>
+                   # needs to be #included before any other includes
+                   # (in perl.h)
+
+                   # HP-UX 10.X uses the old pthreads API
+                   d_oldpthreads="$define"
+
+                   # include libcma before all the others
+                   libswanted="cma $libswanted"
+
+                   # tell perl.h to include <pthread.h> before other include files
+                   ccflags="$ccflags -DPTHREAD_H_FIRST"
+
+                   # CMA redefines select to cma_select, and cma_select expects int *
+                   # instead of fd_set * (just like 9.X)
+                   selecttype='int *'
+
+               elif [ -f /usr/lib/libpthread.sl ]; then
+                   # PTH package is installed
+                   libswanted="pthread $libswanted"
+               else
+                   libswanted="no_threads_available"
+                   fi
+           else
+               libswanted="no_threads_available"
+               fi
+
+            if [ $libswanted = "no_threads_available" ]; then
                 cat <<EOM >&4
+
 In HP-UX 10.X for POSIX threads you need both of the files
-/usr/include/pthread.h and /usr/lib/libcma.sl.
-Either you must install the CMA package or you must upgrade to HP-UX 11.
-Cannot continue, aborting.
-EOM
-               exit 1
-            fi
+/usr/include/pthread.h and either /usr/lib/libcma.sl or /usr/lib/libpthread.sl.
+Either you must upgrade to HP-UX 11 or install a posix thread library:
+
+    DCE-CoreTools from HP-UX 10.20 Hardware Extensions 3.0 CD (B3920-13941)
 
-            # HP-UX 10.X uses the old pthreads API
-            case "$d_oldpthreads" in
-            '') d_oldpthreads="$define" ;;
-            esac
+or
 
-            # include libcma before all the others
-            libswanted="cma $libswanted"
+    PTH package from http://hpux.tn.tudelft.nl/hppd/hpux/alpha.html
 
-            # tell perl.h to include <pthread.h> before other include files
-            ccflags="$ccflags -DPTHREAD_H_FIRST"
+Cannot continue, aborting.
+EOM
+               exit 1
+               fi
 
-            # CMA redefines select to cma_select, and cma_select expects int *
-            # instead of fd_set * (just like 9.X)
-            selecttype='int *'
             ;;
         11 | 12) # 12 may want upping the _POSIX_C_SOURCE datestamp...
             ccflags=" -D_POSIX_C_SOURCE=199506L $ccflags"
@@ -410,3 +443,9 @@ EOCBU
 # keep that leading tab.
        ccisgcc=''
 
+# Until we figure out what to be probe for in Configure (ditto for irix_6.sh)
+case "$use64bitint" in
+$define|true|[yY]*) ;;
+*) d_casti32='undef' ;;
+esac
+