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 ceef5a3..70250b7 100644 (file)
@@ -193,3 +193,84 @@ esac
 #     assembler of the form:
 #          (warning) Use of GR3 when frame >= 8192 may cause conflict.
 #     These warnings are harmless and can be safely ignored.
+
+# 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"
+
+            # 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
+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"
+esac
+EOCBU