This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Extract functionality into a static function
[perl5.git] / README.macosx
index 235618a..1a5d811 100644 (file)
@@ -4,18 +4,39 @@ designed to be readable as is.
 
 =head1 NAME
 
-README.macosx - Perl under Mac OS X
+perlmacosx - Perl under Mac OS X
 
 =head1 SYNOPSIS
 
-This document briefly describes perl under Mac OS X.
+This document briefly describes Perl under Mac OS X.
 
+  curl -O http://www.cpan.org/src/perl-5.21.4.tar.gz
+  tar -xzf perl-5.21.4.tar.gz
+  cd perl-5.21.4
+  ./Configure -des -Dprefix=/usr/local/
+  make
+  make test
+  sudo make install
 
 =head1 DESCRIPTION
 
-The latest Perl release (5.8.8 as of this writing) builds without changes
-under Mac OS X. Under 10.3 "Panther" and newer OS versions, all self-tests
-pass, and all standard features are supported.
+The latest Perl release (5.21.4 as of this writing) builds without changes
+under all versions of Mac OS X from 10.3 "Panther" onwards. 
+
+In order to build your own version of Perl you will need 'make',
+which is part of Apple's developer tools - also known as Xcode. From
+Mac OS X 10.7 "Lion" onwards, it can be downloaded separately as the
+'Command Line Tools' bundle directly from L<https://developer.apple.com/downloads/>
+(you will need a free account to log in), or as a part of the Xcode suite,
+freely available at the App Store. Xcode is a pretty big app, so
+unless you already have it or really want it, you are advised to get the
+'Command Line Tools' bundle separately from the link above. If you want
+to do it from within Xcode, go to Xcode -> Preferences -> Downloads and
+select the 'Command Line Tools' option.
+
+Between Mac OS X 10.3 "Panther" and 10.6 "Snow Leopard", the 'Command
+Line Tools' bundle was called 'unix tools', and was usually supplied
+with Mac OS install DVDs.
 
 Earlier Mac OS X releases (10.2 "Jaguar" and older) did not include a
 completely thread-safe libc, so threading is not fully supported. Also,
@@ -42,9 +63,18 @@ on a file server and used by many Macs.
 
 First, export the path to the SDK into the build environment:
 
-    export SDK=/Developer/SDKs/MacOSX10.3.9.sdk
+    export SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
+
+Please make sure the SDK version (i.e. the numbers right before '.sdk')
+matches your system's (in this case, Mac OS X 10.8 "Mountain Lion"), as it is
+possible to have more than one SDK installed. Also make sure the path exists
+in your system, and if it doesn't please make sure the SDK is properly
+installed, as it should come with the 'Command Line Tools' bundle mentioned
+above. Finally, if you have an older Mac OS X (10.6 "Snow Leopard" and below)
+running Xcode 4.2 or lower, the SDK path might be something like
+C<'/Developer/SDKs/MacOSX10.3.9.sdk'>.
 
-Use an SDK by exporting some additions to Perl's 'ccflags' and '..flags'
+You can use the SDK by exporting some additions to Perl's 'ccflags' and '..flags'
 config variables:
 
     ./Configure -Accflags="-nostdinc -B$SDK/usr/include/gcc \
@@ -55,11 +85,18 @@ config variables:
 
 =head2 Universal Binary support
 
-To compile perl as a universal binary (built for both ppc and intel), export
-the SDK variable as above, selecting the 10.4u SDK:
+Note: From Mac OS X 10.6 "Snow Leopard" onwards, Apple only supports
+Intel-based hardware. This means you can safely skip this section unless
+you have an older Apple computer running on ppc or wish to create a perl
+binary with backwards compatibility.
+
+You can compile perl as a universal binary (built for both ppc and intel).
+In Mac OS X 10.4 "Tiger", you must export the 'u' variant of the SDK:
 
     export SDK=/Developer/SDKs/MacOSX10.4u.sdk
 
+Mac OS X 10.5 "Leopard" and above do not require the 'u' variant.
+
 In addition to the compiler flags used to select the SDK, also add the flags
 for creating a universal binary:
 
@@ -87,7 +124,7 @@ omitted or buggy. Note the messages output by F<Configure> for further
 information. Please use C<perlbug> to submit a problem report in the
 event that you encounter difficulties.
 
-When building 64-bit modules, it is your responsiblity to ensure that linked
+When building 64-bit modules, it is your responsibility to ensure that linked
 external libraries and frameworks provide 64-bit support: if they do not,
 module building may appear to succeed, but attempts to use the module will
 result in run-time dynamic linking errors, and subsequent test failures.
@@ -119,17 +156,15 @@ need to go to a great deal of effort to obtain the information needed
 for pre-binding.
 
 You can override the default and build a shared libperl if you wish
-(S<Configure ... -Duseshrlib>), but the load time on pre-10.4 OS
-releases will be greater than either the static library, or Apple's
-pre-bound dynamic library.
-
-With 10.4 "Tiger" and newer, Apple has all but eliminated the performance
-penalty for non-prebound libraries.
+(S<Configure ... -Duseshrplib>).
 
+With Mac OS X 10.4 "Tiger" and newer, there is almost no performance
+penalty for non-prebound libraries. Earlier releases will suffer a greater
+load time than either the static library, or Apple's pre-bound dynamic library.
 
 =head2 Updating Apple's Perl
 
-In a word - don't, at least without a *very* good reason. Your scripts
+In a word - don't, at least not without a *very* good reason. Your scripts
 can just as easily begin with "#!/usr/local/bin/perl" as with
 "#!/usr/bin/perl". Scripts supplied by Apple and other third parties as
 part of installation packages and such have generally only been tested
@@ -173,35 +208,10 @@ but remember that there's a startup cost to pay in that case (see above
 
 Starting with Tiger (Mac OS X 10.4), Apple shipped broken locale files for
 the eu_ES locale (Basque-Spain).  In previous releases of Perl, this resulted in
-failures in the C<lib/locale> test. These failures have been supressed
+failures in the F<lib/locale> test. These failures have been suppressed
 in the current release of Perl by making the test ignore the broken locale.
 If you need to use the eu_ES locale, you should contact Apple support.
 
-=head2 MacPerl
-
-Quite a bit has been written about MacPerl, the Perl distribution for
-"Classic MacOS" - that is, versions 9 and earlier of MacOS. Because it
-runs in environment that's very different from that of UNIX, many things
-are done differently in MacPerl. Modules are installed using a different
-procedure, Perl itself is built differently, path names are different,
-etc.
-
-From the perspective of a Perl programmer, Mac OS X is more like a
-traditional UNIX than Classic MacOS. If you find documentation that
-refers to a special procedure that's needed for MacOS that's drastically
-different from the instructions provided for UNIX, the MacOS
-instructions are quite often intended for MacPerl on Classic MacOS. In
-that case, the correct procedure on Mac OS X is usually to follow the
-UNIX instructions, rather than the MacPerl instructions.
-
-
-=head2 Carbon
-
-MacPerl ships with a number of modules that are used to access the
-classic MacOS toolbox. Many of these modules have been updated to use
-Mac OS X's newer "Carbon" toolbox, and are available from CPAN in the
-"Mac::Carbon" module.
-
 
 =head2 Cocoa
 
@@ -243,7 +253,7 @@ You can find them for example by
 After this you can either copy Perl from your operating system media
 (you will need at least the /System/Library/Perl and /usr/bin/perl),
 or rebuild Perl from the source code with C<Configure -Dprefix=/usr
--Dusershrplib> NOTE: the C<-Dprefix=/usr> to replace the system Perl
+-Duseshrplib> NOTE: the C<-Dprefix=/usr> to replace the system Perl
 works much better with Perl 5.8.1 and later, in Perl 5.8.0 the
 settings were not quite right.
 
@@ -255,10 +265,10 @@ reinstall the entire OS.
 =head1 AUTHOR
 
 This README was written by Sherm Pendley E<lt>sherm@dot-app.orgE<gt>,
-and subsequently updated by Dominic Dunlop E<lt>domo@computer.orgE<gt>.
-The "Starting From Scratch" recipe was contributed by John Montbriand
-E<lt>montbriand@apple.comE<gt>.
+and subsequently updated by Dominic Dunlop E<lt>domo@computer.orgE<gt>
+and Breno G. de Oliveira E<lt>garu@cpan.orgE<gt>. The "Starting From Scratch"
+recipe was contributed by John Montbriand E<lt>montbriand@apple.comE<gt>.
 
 =head1 DATE
 
-Last modified 2006-02-24.
+Last modified 2013-04-29.