perl_subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h`
version="${perl_revision}.${perl_version}.${perl_subversion}"
-# Pretend that Darwin doesn't know about those system calls [perl #24122]
-d_setregid='undef'
-d_setreuid='undef'
-d_setrgid='undef'
-d_setruid='undef'
+# Pretend that Darwin doesn't know about those system calls in Tiger
+# (10.4/darwin 8) and earlier [perl #24122]
+case "$osvers" in
+[1-8].*)
+ d_setregid='undef'
+ d_setreuid='undef'
+ d_setrgid='undef'
+ d_setruid='undef'
+ ;;
+esac
# This was previously used in all but causes three cases
# (no -Ddprefix=, -Dprefix=/usr, -Dprefix=/some/thing/else)
# Since we can build fat, the archname doesn't need the processor type
archname='darwin';
-# nm works.
-usenm='true';
+# nm isn't known to work after Snow Leopard and XCode 4; testing with OS X 10.5
+# and Xcode 3 shows a working nm, but pretending it doesn't work produces no
+# problems.
+usenm='false';
case "$optimize" in
'')
esac
# Avoid Apple's cpp precompiler, better for extensions
-cppflags="${cppflags} -no-cpp-precomp"
+if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1 >/dev/null`" = "X" ]; then
+ cppflags="${cppflags} -no-cpp-precomp"
-# This is necessary because perl's build system doesn't
-# apply cppflags to cc compile lines as it should.
-ccflags="${ccflags} ${cppflags}"
+ # This is necessary because perl's build system doesn't
+ # apply cppflags to cc compile lines as it should.
+ ccflags="${ccflags} ${cppflags}"
+fi
# Known optimizer problems.
case "`cc -v 2>&1`" in
;;
esac
-cccdlflags=' '; # space, not empty, because otherwise we get -fpic
+case "$ccdlflags" in # If passed in from command line, presume user knows best
+'')
+ cccdlflags=' '; # space, not empty, because otherwise we get -fpic
+;;
+esac
+
# Perl bundles do not expect two-level namespace, added in Darwin 1.4.
# But starting from perl 5.8.1/Darwin 7 the default is the two-level.
case "$osvers" in
esac
EOCBU
+# 64-bit addressing support. Currently strictly experimental. DFD 2005-06-06
+case "$use64bitall" in
+$define|true|[yY]*)
+case "$osvers" in
+[1-7].*)
+ cat <<EOM >&4
+
+
+
+*** 64-bit addressing is not supported for Mac OS X versions
+*** below 10.4 ("Tiger") or Darwin versions below 8. Please try
+*** again without -Duse64bitall. (-Duse64bitint will work, however.)
+
+EOM
+ exit 1
+ ;;
+*)
+ case "$osvers" in
+ 8.*)
+ cat <<EOM >&4
+
+
+
+*** Perl 64-bit addressing support is experimental for Mac OS X
+*** 10.4 ("Tiger") and Darwin version 8. System V IPC is disabled
+*** due to problems with the 64-bit versions of msgctl, semctl,
+*** and shmctl. You should also expect the following test failures:
+***
+*** ext/threads-shared/t/wait (threaded builds only)
+
+EOM
+
+ [ "$d_msgctl" ] || d_msgctl='undef'
+ [ "$d_semctl" ] || d_semctl='undef'
+ [ "$d_shmctl" ] || d_shmctl='undef'
+ ;;
+ esac
+
+ case `uname -p` in
+ powerpc) arch=ppc64 ;;
+ i386) arch=x86_64 ;;
+ *) cat <<EOM >&4
+
+*** Don't recognize processor, can't specify 64 bit compilation.
+
+EOM
+ ;;
+ esac
+ for var in ccflags cppflags ld ldflags
+ do
+ eval $var="\$${var}\ -arch\ $arch"
+ done
+
+ ;;
+esac
+;;
+esac
+
##
# System libraries
##
# really need ODBM_FIle, though, so let's just hint ODBM away.
i_dbm=undef;
+# Configure doesn't detect ranlib on Tiger properly.
+# NeilW says this should be acceptable on all darwin versions.
+ranlib='ranlib'
+
##
# Build process
##