ld='cc';
so='dylib';
dlext='bundle';
-dlsrc='dl_dyld.xs'; usedl='define';
-cccdlflags=' '; # space, not empty, because otherwise we get -fpic
+usedl='define';
+
+# 10.4 can use dlopen.
+# 10.4 broke poll().
+case "$osvers" in
+[1-7].*)
+ dlsrc='dl_dyld.xs';
+ ;;
+*)
+ dlsrc='dl_dlopen.xs';
+ d_poll='undef';
+ i_poll='undef';
+ ;;
+esac
+
+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
ldflags="${ldflags} -flat_namespace"
lddlflags="${ldflags} -bundle -undefined suppress"
;;
-*) lddlflags="${ldflags} -bundle -undefined dynamic_lookup"
+*)
+ lddlflags="${ldflags} -bundle -undefined dynamic_lookup"
case "$ld" in
- *MACOSX_DEVELOPMENT_TARGET*) ;;
- *) ld="env MACOSX_DEPLOYMENT_TARGET=10.3 ${ld}" ;;
+ *MACOSX_DEVELOPMENT_TARGET*) ;;
+ *) ld="env MACOSX_DEPLOYMENT_TARGET=10.3 ${ld}" ;;
esac
;;
esac
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
##
case "$usemymalloc" in
'') usemymalloc='n' ;;
esac
+# However sbrk() returns -1 (failure) somewhere in lib/unicore/mktables at
+# around 14M, so we need to use system malloc() as our sbrk()
+malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"'
# Locales aren't feeling well.
LC_ALL=C; export LC_ALL;
# 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
##