diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2003-04-12 21:21:04 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2003-04-12 21:21:04 +0000 |
commit | 835bc3f3709faed7fcdc19f9e1d8703aa21e0355 (patch) | |
tree | efa5e45777d26198e9454e2bd225656dafe4697d /hints/rhapsody.sh | |
parent | 7204222c6a20b2d62df28628842774d12196dc7d (diff) | |
download | perl-835bc3f3709faed7fcdc19f9e1d8703aa21e0355.tar.gz |
Darwin/Rhapsody hints files updates by Wilfredo Sánchez
p4raw-id: //depot/perl@19194
Diffstat (limited to 'hints/rhapsody.sh')
-rw-r--r-- | hints/rhapsody.sh | 98 |
1 files changed, 79 insertions, 19 deletions
diff --git a/hints/rhapsody.sh b/hints/rhapsody.sh index 96d57f2412..d12afec967 100644 --- a/hints/rhapsody.sh +++ b/hints/rhapsody.sh @@ -1,30 +1,40 @@ ## # Rhapsody (Mac OS X Server) hints -# Wilfredo Sanchez <wsanchez@mit.edu> +# Wilfredo Sanchez <wsanchez@wsanchez.net> ## ## # Paths ## +# Configure hasn't figured out the version number yet. Bummer. +perl_revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $src/patchlevel.h` +perl_version=`awk '/define[ ]+PERL_VERSION/ {print $3}' $src/patchlevel.h` +perl_subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h` +version="${perl_revision}.${perl_version}.${perl_subversion}" + # BSD paths case "$prefix" in -'') - prefix='/usr/local'; # Built-in perl uses /usr - siteprefix='/usr/local'; - vendorprefix='/usr/local'; usevendorprefix='define'; - - # 4BSD uses ${prefix}/share/man, not ${prefix}/man. - # Don't put man pages in ${prefix}/lib; that's goofy. - man1dir="${prefix}/share/man/man1"; - man3dir="${prefix}/share/man/man3"; - - # Where to put modules. - # Built-in perl uses /System/Library/Perl - privlib='/Local/Library/Perl'; - sitelib='/Local/Library/Perl'; - vendorlib='/Network/Library/Perl'; - ;; + '') + # Default install; use non-system directories + prefix='/usr/local'; # Built-in perl uses /usr + siteprefix='/usr/local'; + vendorprefix='/usr'; usevendorprefix='define'; + + # Where to put modules. + sitelib="/Local/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also + vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules + ;; + + '/usr') + # We are building/replacing the built-in perl + siteprefix='/usr/local'; + vendorprefix='/usr/local'; usevendorprefix='define'; + + # Where to put modules. + sitelib="/Local/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also + vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules + ;; esac ## @@ -43,11 +53,38 @@ libc='/System/Library/Frameworks/System.framework/System'; # Optimize. optimize='-O3'; -# XXX Unclear why we require -pipe and -fno-common here. +# -pipe: makes compilation go faster. +# -fno-common because common symbols are not allowed in MH_DYLIB ccflags="${ccflags} -pipe -fno-common" +# Unverified whether this is necessary on Rhapsody, but the test shouldn't hurt. +# At least on Darwin 1.3.x: +# +# # define INT32_MIN -2147483648 +# int main () { +# double a = INT32_MIN; +# printf ("INT32_MIN=%g\n", a); +# return 0; +# } +# will output: +# INT32_MIN=2.14748e+09 +# Note that the INT32_MIN has become positive. +# INT32_MIN is set in /usr/include/stdint.h by: +# #define INT32_MIN -2147483648 +# which seems to break the gcc. Defining INT32_MIN as (-2147483647-1) +# seems to work. INT64_MIN seems to be similarly broken. +# -- Nicholas Clark, Ken Williams, and Edward Moy +# +case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" in + *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;; +esac + # cpp-precomp is problematic. -cppflags='-traditional-cpp'; +cppflags='${cppflags} -traditional-cpp'; + +# This is necessary because perl's build system doesn't +# apply cppflags to cc compile lines as it should. +ccflags="${ccflags} ${cppflags}" # Shared library extension is .dylib. # Bundle extension is .bundle. @@ -71,6 +108,29 @@ usevfork='true'; # malloc works usemymalloc='n'; +# +# The libraries are not threadsafe in Rhapsody +# +# Fix when Apple fixes libc. +# +case "$usethreads$useithreads" in + *define*) + cat <<EOM >&4 + + + +*** Warning, there might be problems with your libraries with +*** regards to threading. The test ext/threads/t/libc.t is likely +*** to fail. + +EOM + ;; +esac + +## +# Build process +## + # Case-insensitive filesystems don't get along with Makefile and # makefile in the same place. Since Darwin uses GNU make, this dodges # the problem. |