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
EOCBU
# 64-bit addressing support. Currently strictly experimental. DFD 2005-06-06
-if [ "$use64bitall" ]
-then
+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 -D64bitall. (-D64bitint will work, however.)
+*** again without -Duse64bitall. (-Duse64bitint will work, however.)
EOM
exit 1
;;
*)
- cat <<EOM >&4
+ 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. Expect a number of test
-*** failures:
-*** ext/IO/io_* ext/IPC/sysV/t/* lib/Net/Ping/t/450_service
-*** Any test that uses sdbm
+*** 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\ ppc64"
+ eval $var="\$${var}\ -arch\ $arch"
done
+
;;
esac
-fi
+;;
+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
##