This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Detypo Pantherisms.
[perl5.git] / hints / rhapsody.sh
CommitLineData
8f1f23e8
W
1##
2# Rhapsody (Mac OS X Server) hints
835bc3f3 3# Wilfredo Sanchez <wsanchez@wsanchez.net>
8f1f23e8
W
4##
5
f556e5b9
JH
6##
7# Paths
8##
8f1f23e8 9
835bc3f3
RGS
10# Configure hasn't figured out the version number yet. Bummer.
11perl_revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $src/patchlevel.h`
12perl_version=`awk '/define[ ]+PERL_VERSION/ {print $3}' $src/patchlevel.h`
13perl_subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h`
14version="${perl_revision}.${perl_version}.${perl_subversion}"
15
f556e5b9 16# BSD paths
e32f0149 17case "$prefix" in
835bc3f3
RGS
18 '')
19 # Default install; use non-system directories
20 prefix='/usr/local'; # Built-in perl uses /usr
21 siteprefix='/usr/local';
22 vendorprefix='/usr'; usevendorprefix='define';
23
24 # Where to put modules.
25 sitelib="/Local/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also
26 vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules
27 ;;
28
29 '/usr')
30 # We are building/replacing the built-in perl
31 siteprefix='/usr/local';
32 vendorprefix='/usr/local'; usevendorprefix='define';
33
34 # Where to put modules.
35 sitelib="/Local/Library/Perl/${version}"; # FIXME: Want "/Network/Perl/${version}" also
36 vendorlib="/System/Library/Perl/${version}"; # Apple-supplied modules
37 ;;
e32f0149 38esac
f556e5b9
JH
39
40##
41# Tool chain settings
42##
43
44# Since we can build fat, the archname doesn't need the processor type
45archname='rhapsody';
8f1f23e8
W
46
47# nm works.
48usenm='true';
f556e5b9
JH
49
50# Libc is in libsystem.
51libc='/System/Library/Frameworks/System.framework/System';
8f1f23e8
W
52
53# Optimize.
54optimize='-O3';
55
835bc3f3
RGS
56# -pipe: makes compilation go faster.
57# -fno-common because common symbols are not allowed in MH_DYLIB
0ac8ade1 58ccflags="${ccflags} -pipe -fno-common"
8f1f23e8 59
835bc3f3
RGS
60# Unverified whether this is necessary on Rhapsody, but the test shouldn't hurt.
61# At least on Darwin 1.3.x:
62#
63# # define INT32_MIN -2147483648
64# int main () {
65# double a = INT32_MIN;
66# printf ("INT32_MIN=%g\n", a);
67# return 0;
68# }
69# will output:
70# INT32_MIN=2.14748e+09
71# Note that the INT32_MIN has become positive.
72# INT32_MIN is set in /usr/include/stdint.h by:
73# #define INT32_MIN -2147483648
74# which seems to break the gcc. Defining INT32_MIN as (-2147483647-1)
75# seems to work. INT64_MIN seems to be similarly broken.
76# -- Nicholas Clark, Ken Williams, and Edward Moy
77#
78case "$(grep '^#define INT32_MIN' /usr/include/stdint.h)" in
79 *-2147483648) ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" ;;
80esac
81
4e644a1e 82# cpp-precomp is problematic.
835bc3f3
RGS
83cppflags='${cppflags} -traditional-cpp';
84
85# This is necessary because perl's build system doesn't
86# apply cppflags to cc compile lines as it should.
87ccflags="${ccflags} ${cppflags}"
4e644a1e 88
f556e5b9
JH
89# Shared library extension is .dylib.
90# Bundle extension is .bundle.
8f1f23e8
W
91ld='cc';
92so='dylib';
93dlext='bundle';
f556e5b9
JH
94dlsrc='dl_dyld.xs';
95usedl='define';
8f1f23e8
W
96cccdlflags='';
97lddlflags="${ldflags} -bundle -undefined suppress";
f556e5b9 98ldlibpthname='DYLD_LIBRARY_PATH';
8f1f23e8 99useshrplib='true';
8f1f23e8 100
f556e5b9
JH
101##
102# System libraries
103##
104
8f1f23e8
W
105# vfork works
106usevfork='true';
107
108# malloc works
109usemymalloc='n';
5cf1d1f1 110
835bc3f3
RGS
111#
112# The libraries are not threadsafe in Rhapsody
113#
114# Fix when Apple fixes libc.
115#
116case "$usethreads$useithreads" in
117 *define*)
118 cat <<EOM >&4
119
120
121
122*** Warning, there might be problems with your libraries with
123*** regards to threading. The test ext/threads/t/libc.t is likely
124*** to fail.
125
126EOM
127 ;;
128esac
129
130##
131# Build process
132##
133
4e644a1e
W
134# Case-insensitive filesystems don't get along with Makefile and
135# makefile in the same place. Since Darwin uses GNU make, this dodges
136# the problem.
437cf188 137firstmakefile=GNUmakefile;