#! /bin/bash
# machten.sh
# This is for MachTen 4.1.4. It might work on other versions and variants
-# too. If it doesn't, tell me, and I'll try to fix it -- domo@computer.org
+# too. MachTen is now obsolete, lacks many features expected in modern UNIX
+# implementations, and suffers from a number of bugs which are likely never
+# to be fixed. This means that, in the absence of extensive work on
+# this file and on the perl source code, versions of perl later than 5.6.x
+# cannot successfully be built on MachTen. This file enforces this
+# restriction. Should you wish to port a later version of perl to MachTen,
+# feel free to contact me for pointers.
+# -- Dominic Dunlop <domo@computer.org> 040213
#
# Users of earlier MachTen versions might need a fixed tr from ftp.tenon.com.
# This should be described in the MachTen release notes.
# MachTen 2.x has its own hint file.
#
# The original version of this file was put together by Andy Dougherty
-# <doughera@lafcol.lafayette.edu> based on comments from lots of
+# <doughera@lafayette.edu> based on comments from lots of
# folks, especially
# Mark Pease <peasem@primenet.com>
# Martijn Koster <m.koster@webcrawler.com>
# Richard Yeh <rcyeh@cco.caltech.edu>
#
+# Prevent building of perls later than 5.6.x, stating why -- see above.
+# -- Dominic Dunlop <domo@computer.org> 040213
+# Deny system's false claims to support mmap() and munmap(); note
+# also that Sys V IPC (re)disabled by jhi due to continuing inadequacy
+# -- Dominic Dunlop <domo@computer.org> 001111
# Remove dynamic loading libraries from search; enable SysV IPC with
# MachTen 4.1.4 and above; define SYSTEM_ALIGN_BYTES for old MT versions
# -- Dominic Dunlop <domo@computer.org> 000224
# Do not use perl's malloc; SysV IPC OK -- Neil Cutcliffe, Tenon 961030
# File::Find's use of link count disabled by Dominic Dunlop 960528
# Perl's use of sigsetjmp etc. disabled by Dominic Dunlop 960521
-#
-# Comments, questions, and improvements welcome!
+
+# Assume that PERL_REVISON in patchlevel.h is 5.
+# If you want to try building perl-5.8.x or later, set PERL_VERSION_SAFE_MAX
+# appropriately in your environment before running Configure.
+if [ `awk '$1=="#define" && $2=="PERL_VERSION"{print $3}' patchlevel.h` \
+ -gt ${PERL_VERSION_SAFE_MAX:-6} ]
+then
+ cat <<EOF >&4
+
+Perl versions greater than 5.6.x have not been ported to MachTen. If you
+wish to build a version from the 5.6 track, please see the notes in
+README.machten
+EOF
+ exit 1
+fi
#
# MachTen 4.1.1's support for shadow password file access is incomplete:
# disable its use completely.
-d_endspent=${d_endspent:-undef}
-d_getspent=${d_getspent:-undef}
d_getspnam=${d_getspnam:-undef}
-d_setspent=${d_setspent:-undef}
# MachTen 4.1.1 does support dynamic loading, but perl doesn't
# know how to use it yet.
# Specify a high level of optimization (-O3 wouldn't do much more)
optimize=${optimize:--O2 -fomit-frame-pointer}
-# Make symbol table listings les voluminous
+# Make symbol table listings less voluminous
nmopts=-gp
# Set reg_infty -- the maximum allowable number of repeats in regular
esac
fi
+# MachTen has stubs for mmap and munmap(), but they just result in the
+# caller being killed on the grounds of "Bad system call"
+d_mmap=${d_mmap:-undef}
+d_munmap=${d_munmap:-undef}
+
# Get rid of some extra libs which it takes Configure a tediously
# long time never to find on MachTen, or which break perl
set `echo X "$libswanted "|sed -e 's/ net / /' -e 's/ socket / /' \
cat <<EOM >&4
-During Configure, you may see the message
-
-*** WHOA THERE!!! ***
- The recommended value for \$d_msg on this machine was "undef"!
- Keep the recommended value? [y]
-
-as well as similar messages concerning \$d_sem and \$d_shm. Select the
-default answers: MachTen 4.1 appears to provide System V IPC support,
-but it is incomplete and buggy: perl should be built without it.
-
-Similarly, when you see
-
-*** WHOA THERE!!! ***
- The recommended value for \$d_vfork on this machine was "define"!
- Keep the recommended value? [y]
-
-select the default answer: vfork() works, and avoids expensive data
-copying.
-
-You may also see "WHOA THERE!!!" messages concerning \$d_endspent,
-\$d_getspent, \$d_getspnam and \$d_setspent. In all cases, select the
-default answer: MachTen's support for shadow password file access is
-incomplete, and should not be used.
-
At the end of Configure, you will see a harmless message
Hmm...You had some extra variables I don't know about...I'll try to keep 'em.