X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fdarwin.sh;h=9ff2747428d2c57b7d70c57c0d020c4ed7365e1a;hb=e5dd39fcc65538f6d292cb5228105f85fe9eff3e;hp=bf5e487751b6c54a6ab1972a61c18886c90d6b4a;hpb=437cf18808fc508c7e03cae0f2d2beec3d718651;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/darwin.sh b/hints/darwin.sh index bf5e487..9ff2747 100644 --- a/hints/darwin.sh +++ b/hints/darwin.sh @@ -8,19 +8,24 @@ ## # BSD paths -prefix='/usr'; -siteprefix='/usr/local'; -vendorprefix='/usr/local'; usevendorprefix='define'; - -# 4BSD uses /usr/share/man, not /usr/man. -# Don't put man pages in /usr/lib; that's goofy. -man1dir='/usr/share/man/man1'; -man3dir='/usr/share/man/man3'; - -# Where to put modules. -privlib='/System/Library/Perl'; -sitelib='/Local/Library/Perl'; -vendorlib='/Network/Library/Perl'; +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='/Library/Perl'; + sitelib='/Library/Perl'; + vendorlib='/Network/Library/Perl'; + ;; +esac ## # Tool chain settings @@ -33,7 +38,7 @@ archname='darwin'; usenm='true'; # Libc is in libsystem. -libc='/System/Library/Frameworks/System.framework/System'; +#libc='/usr/lib/libSystem.dylib'; # Optimize. optimize='-O3'; @@ -41,7 +46,26 @@ optimize='-O3'; # We have a prototype for telldir. ccflags="${ccflags} -pipe -fno-common -DHAS_TELLDIR_PROTOTYPE"; -# For Errno. +# 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 +# +ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" + +# cpp-precomp is problematic. cppflags='-traditional-cpp'; # Shared library extension is .dylib. @@ -72,7 +96,7 @@ usemymalloc='n'; # Locales aren't feeling well. LC_ALL=C; export LC_ALL; -# HFS+ will throw "make depend" into confusion since -# Makefile and makefile are the same. +# Case-insensitive filesystems don't get along with Makefile and +# makefile in the same place. Since Darwin uses GNU make, this dodges +# the problem. firstmakefile=GNUmakefile; -