This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Scratch #3008 and introduce $crosscompile and $multiarch
[perl5.git] / hints / hpux.sh
index fa0d7fc..70250b7 100644 (file)
@@ -139,37 +139,6 @@ else
        selecttype='int *'
 fi
 
-# 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 [ "$xxOsRevMajor" -eq 10 -a "X$usethreads" = "X$define" ]; then
-
-    if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
-     cat <<EOM >&4
-In HP-UX 10.X for threads you need both 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.
-EOM
-       exit 1
-    fi
-
-    # HP-UX 10.X uses the old pthreads API
-    case "$d_oldpthreads" in
-    '') d_oldpthreads="$define" ;;
-    esac
-
-    # 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 *'
-fi
-
 # Remove bad libraries that will cause problems
 # (This doesn't remove libraries that don't actually exist)
 # -lld is unneeded (and I can't figure out what it's used for anyway)
@@ -225,27 +194,83 @@ esac
 #          (warning) Use of GR3 when frame >= 8192 may cause conflict.
 #     These warnings are harmless and can be safely ignored.
 
-# 64-bitness.
-# jhi@iki.fi, inspired by Jeff Okamoto.
+# 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'
+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.
+EOM
+            exit 1
+        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
+                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
+
+            # HP-UX 10.X uses the old pthreads API
+            case "$d_oldpthreads" in
+            '') d_oldpthreads="$define" ;;
+            esac
+
+            # include libcma before all the others
+            libswanted="cma $libswanted"
 
-if [ X"$use64bits" = X"$define" ]; then
-  if [ "$xxOsRevMajor" -lt 11 ]; then
-     cat <<EOM >&4
+            # 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 *'
+            ;;
+        11 | 12) # 12 may want upping the _POSIX_C_SOURCE
+            ccflags="$ccflags -D_POSIX_C_SOURCE=199506L"
+            libswanted="$libswanted pthread"
+           ;;
+        esac
+       ;;
+esac
+EOCBU
+
+# This script UU/use64bits.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use 64 bits.
+cat > UU/use64bits.cbu <<'EOCBU'
+case "$use64bits" in
+$define|true|[yY]*)
+           if [ "$xxOsRevMajor" -lt 11 ]; then
+               cat <<EOM >&4
 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
-  if [ ! -d /lib/pa20_64 ]; then
-     cat <<EOM >&4
+               exit 1
+           fi
+           if [ ! -d /lib/pa20_64 ]; then
+               cat <<EOM >&4
 You do not seem to have the 64-bit libraries, /lib/pa20_64.
+Cannot continue, aborting.
 EOM
-    exit 1
-  fi
-  ccflags="$ccflags +DD64 -D_FILE_OFFSET_BITS=64"
-  ldflags="$ldflags +DD64"
-  ld=/usr/bin/ld
-  set `echo " $libswanted " | sed -e 's@ dl @ @'`
-  libswanted="$*"
-  glibpth="/lib/pa20_64"
-fi
+               exit 1
+           fi
+           ccflags="$ccflags +DD64 -D_FILE_OFFSET_BITS=64"
+           ldflags="$ldflags +DD64"
+           ld=/usr/bin/ld
+           set `echo " $libswanted " | sed -e 's@ dl @ @'`
+           libswanted="$*"
+           glibpth="/lib/pa20_64"
+esac
+EOCBU