This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
To make arithmetic on tainted dualvars work properly requires that
[perl5.git] / hints / next_4.sh
index 70438dd..d5c8ba7 100644 (file)
@@ -1,37 +1,64 @@
-######################################################################
-#
-# IMPORTANT: before you run 'make', you need to enter one of these two
-# lines (depending on your shell):
-#       DYLD_LIBRARY_PATH=`pwd`; export DYLD_LIBRARY_PATH
-# or
-#      setenv DYLD_LIBRARY_PATH `pwd`
-#
-######################################################################
-
 # Posix support has been removed from NextStep 
 #
 useposix='undef'
 
-altmake='gnumake'
-libpth='/lib /usr/lib'
+libpth='/lib /usr/lib /usr/local/lib'
 libswanted=' '
 libc='/NextLibrary/Frameworks/System.framework/System'
 
-isnext_4='define'
-
-#
-# Change the line below if you do not want to build 'quad-fat'
-# binaries
-#
-mab='-arch m68k -arch i386 -arch sparc'
-ldflags='-dynamic -prebind'
-lddlflags='-dynamic -bundle -undefined suppress'
-ccflags='-dynamic -fno-common -DUSE_NEXT_CTYPE -DUSE_PERL_SBRK -DHIDEMYMALLOC'
+ldflags="$ldflags -dynamic -prebind"
+lddlflags="$lddlflags -dynamic -bundle -undefined suppress"
+ccflags="$ccflags -dynamic -fno-common -DUSE_NEXT_CTYPE -DUSE_PERL_SBRK"
 cccdlflags='none'
 ld='cc'
 #optimize='-g -O'
 
-d_shrplib='define'
+######################################################################
+# MAB support
+######################################################################
+# By default we will build for all architectures your development
+# environment supports. If you only want to build for the platform
+# you are on, simply comment or remove the line below.
+#
+# If you want to build for specific architectures, change the line
+# below to something like
+#
+#      archs='m68k i386'
+#
+
+# On m68k machines, toke.c cannot be compiled at all for i386 and it can
+# only be compiled for m68k itself without optimization (this is under
+# OPENSTEP 4.2).
+#
+if [ `hostinfo | grep 'NeXT Mach.*:'  | sed 's/.*RELEASE_//'` = M68K ]
+then
+       echo "Cross compilation is impossible on m68k hardware under OS 4"
+       echo "Forcing architecture to m68k only"
+       toke_cflags='optimize=""'
+       archs='m68k'
+else
+       archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
+fi
+
+#
+# leave the following part alone
+#
+archcount=`echo $archs |wc -w`
+if [ $archcount -gt 1 ]
+then
+       for d in $archs
+       do
+                       mabflags="$mabflags -arch $d"
+       done
+       ccflags="$ccflags $mabflags"
+       ldflags="$ldflags $mabflags"
+       lddlflags="$lddlflags $mabflags"
+fi
+######################################################################
+# END MAB support
+######################################################################
+
+useshprlib='true'
 dlext='bundle'
 so='dylib'
 
@@ -39,44 +66,27 @@ so='dylib'
 # The default prefix would be '/usr/local'. But since many people are
 # likely to have still 3.3 machines on their network, we do not want
 # to overwrite possibly existing 3.3 binaries. 
+# You can use Configure -Dprefix=/foo/bar to override this, or simply
+# remove the lines below.
 #
-prefix='/usr/local/OPENSTEP'
-#archlib='/usr/lib/perl5'
-#archlibexp='/usr/lib/perl5'
+case "$prefix" in
+'') prefix='/usr/local/OPENSTEP' ;;
+esac
+
 archname='OPENSTEP-Mach'
 
+#
+# At least on m68k there are situations when memcmp doesn't behave
+# as expected.  So we'll use perl's memcmp.
+#
+d_sanemcmp='undef'
+
 d_strcoll='undef'
 i_dbm='define'
 i_utime='undef'
 groupstype='int'
 direntrytype='struct direct'
 
-######################################################################
-# THE MALLOC STORY
-######################################################################
-# 1994:
-# the simple program `for ($i=1;$i<38771;$i++){$t{$i}=123}' fails
-# with Larry's malloc on NS 3.2 due to broken sbrk()
-#
-# setting usemymalloc='n' was the solution back then. Later came
-# reports that perl would run unstable on 3.2:
-#
-# From about perl5.002beta1h perl became unstable on the
-# NeXT. Intermittent coredumps were frequent on 3.2 OS. There were
-# reports, that the developer version of 3.3 didn't have problems, so it
-# seemed pretty obvious that we had to work around an malloc bug in 3.2.
-# This hints file reflects a patch to perl5.002_01 that introduces a
-# home made sbrk routine (remember, NeXT's sbrk _never_ worked). This
-# sbrk makes it possible to run perl with its own malloc. Thanks to
-# Ilya who showed me the way to his sbrk for OS/2!!
-# andreas koenig, 1996-06-16
-#
-# So, this hintsfile is using perl's malloc. If you want to turn perl's
-# malloc off, you need to change remove '-DUSE_PERL_SBRK' and 
-# '-DHIDEMYMALLOC' from the ccflags above and set usemymalloc below
-# to 'n'.
-#
-######################################################################
 usemymalloc='y'
 clocktype='int'
 
@@ -86,8 +96,7 @@ clocktype='int'
 # running ranlib.  The '5' is an empirical number that's "long enough."
 # (Thanks to Andreas Koenig <k@franz.ww.tu-berlin.de>)
 ranlib='sleep 5; /bin/ranlib' 
-#
-# There where reports that the compiler on HPPA machines
-# fails with the -O flag on pp.c.
-# But since there is no HPPA for OPENSTEP...
-# pp_cflags='optimize="-g"'
+
+case "$ldlibpthname" in
+'') ldlibpthname=DYLD_LIBRARY_PATH ;;
+esac