X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/f858446f8d2c74c0a4665f0be04b65fe90e1b08c..13adb056c2262d333a32ed705fd4906e95f9b08c:/README.macosx diff --git a/README.macosx b/README.macosx index 839bcf4..b03dc2f 100644 --- a/README.macosx +++ b/README.macosx @@ -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.6.tar.gz + tar -xzf perl-5.21.6.tar.gz + cd perl-5.21.6 + ./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.6 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 +(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 -Use an SDK by exporting some additions to Perl's 'ccflags' and '..flags' +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'>. + +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: @@ -69,12 +106,6 @@ for creating a universal binary: -Aldflags="-arch i686 -arch ppc -Wl,-syslibroot,$SDK" \ -de -In Leopard (MacOSX 10.5.6 at the time of this writing) you must use the 10.5 SDK: - - export SDK=/Developer/SDKs/MacOSX10.5.sdk - -You can use the same compiler flags you would use with the 10.4u SDK. - Keep in mind that these compiler and linker settings will also be used when building CPAN modules. For XS modules to be compiled as a universal binary, any libraries it links to must also be universal binaries. The system libraries that @@ -125,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), 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). +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 @@ -179,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 test. These failures have been suppressed +failures in the F 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 @@ -249,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 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. @@ -261,10 +265,10 @@ reinstall the entire OS. =head1 AUTHOR This README was written by Sherm Pendley Esherm@dot-app.orgE, -and subsequently updated by Dominic Dunlop Edomo@computer.orgE. -The "Starting From Scratch" recipe was contributed by John Montbriand -Emontbriand@apple.comE. +and subsequently updated by Dominic Dunlop Edomo@computer.orgE +and Breno G. de Oliveira Egaru@cpan.orgE. The "Starting From Scratch" +recipe was contributed by John Montbriand Emontbriand@apple.comE. =head1 DATE -Last modified 2006-02-24. +Last modified 2013-04-29.