MacPerl Development: Build Instructions

[ MacPerl ]These are the build procedures for MacPerl version 5.6.1r2. Please send feedback to the macperl-porters list, and submit bugs at

(The same build procedures also apply to MacPerl 5.8, currently in development. The latest source is available the same place as the 5.6 source.)


All the software required to build MacPerl is available for free.

To build MacPerl, you will need a Mac and plenty of RAM. The build goes fine with a PowerBook G3/400 with 256MB, and on a iBook 333 with 128MB RAM.

You will also need a working knowledge of Mac OS and MPW, the Macintosh Programmer's Workshop. If you don't know MPW, you can mostly pick it up along the way if you have any familiarity with command lines.

For now, the x2p translators cannot be built with an SC/MrC-only build, and there is no CFM68K support.

If you have already built MacPerl 5.6.x before, you can probably just download the perl and MacPerl source kits and take it from there. You should upgrade GUSI if it has changed since your last build. Note: if you don't already have it, you will need to upgrade your db library to db_185g and your XL to XL_16 for MacPerl 5.6.1r2 (or re-fetch all of the macperl_build_libs archive).


Some version numbers are noted. These are the minimum recommended versions for building with.

Stuffit Expander is the recommended way to unpack the files below. It should handle the .sit, .tar.gz, and any other files necessary for this build. However, you should consider selecting the "Convert text files to Macintosh format ... When a file is known to contain text" option, so the STLport archive will be properly unpacked.

  • macperl_build_libs.sit, a collection of freely available libraries and tools for building MacPerl. It includes dmake, patch, sfio, XL, AEGizmos, MoreFiles, and Internet Config. Each of these packages is also available separately. However, there are some aliases in the main distribution set up especially for the build, so if you get the individual packages you might have some broken paths.
  • GUSI 2 (GUSI_222 or later; get the Pro5 libs in addition if using CodeWarrior Pro 5)
  • MPW, the complete installation from Apple (I got the single image of MPW-GM)
  • Metrowerks CodeWarrior compilers for MPW (Pro 5 recommended; MWC68K 2.3.2 build 79, MWCPPC 2.3.2 build 75) or of the MPW C/C++ compilers (SC 8.8.4f1, MrC 4.1.0f1c1) 0
  • MacPerl and the perl MPW tool (the current releases; perl itself is used for part of the build)
  • STLport (3.12.3), if building with SC / MrC 1
  • MacPerl 5.6.1r2 source kit 2


  1. Unpack the macperl_build_libs.sit archive, which will create a folder called "macperl_src". Put it in a location such that the path to the directory has no whitespace or odd characters in it. So "HD:macperl_src:" is fine (and is what I will be using for the directions below), but "Macintosh HD:macperl_src:" is not. Yes, you may need to change your hard drive's name. Sorry. :-) This will be your main build folder.

  2. Unpack and install MPW. The easiest way to do this is to get the single MPW-GM image from Apple's site, mount the image, and drag the folder in the image to your drive. It can be anywhere on your system, but you may wish to keep it in "HD:macperl_src:" for convenience.

  3. Copy the dmake tool, and the file from the dmake distribution, and the patch tool from the gPatch distribution, to the MPW Tools folder. Copy the BuildProgram and BuildCommands scripts from the dmake folder to the MPW Scripts folder, overwriting the existing scripts of the same name (backup the old ones if you want to).

  4. Unpack the GUSI distribution. If using CodeWarrior Pro 5, also unpack the Pro5 archive, and replace the existing GUSI libraries with the ones in the Pro5 distribution. If using SC/MrC, unpack the STLport distribution into the same location as where the GUSI distribution is unpacked, so each folder is within the same enclosing folder. They can be anywhere on your system, but you may wish to keep them in "HD:macperl_src:" for convenience.

  5. Change inttypes.h in GUSI to #define __cinttypes__ if you are using Metrowerks (#ifdef __MWERKS__). Remove the #ifdef __MWERKS__/#include <stdint.h>/#else/#endif included in GUSI 2.2.1.

  6. Give the MPW Shell application plenty of RAM (I gave it 30MB) and make sure you have plenty of extra RAM while the app is running (another 30MB might be sufficient, though you might need 80MB free or so just to compile toke.c). 3 Then run the application. If you wish, create a new document to work in.

  7. Change directory (using the "directory" command) in MPW to the GUSI directory, and run the GUSI_Install.MPW script. 4

    			directory "HD:macperl_src:GUSI_221:"

    If using STLport (SC/MrC builds), also run the STLport_Install.MPW script here.

  8. Change directory to the "HD:macperl_src:Sfio_04Aug99:", and execute the Sfio_Install.MPW script.

  9. If using the Metrowerks compilers, execute the CW_Max_NoDup_Update script.

  10. If not already installed, install MacPerl, and the perl MPW tool. The main MacPerl distribution must be installed for the perl MPW tool to have access to the Perl library. To install the perl MPW tool, see the documentation that comes with it.

  11. Unpack the MacPerl source kit. Put the "macperl" and "perl" folders inside "HD:macperl_src:".

  12. Open "" and change the preferences there for the compilers you will be using. (CodeWarrior is 68K/PPC, Apple is SC/MrC.) You MUST use BOTH 68K and PPC, or SC and MrC. Do not try to build with only one compiler; pick one pair, or both pairs.

  13. Quit and restart MPW Shell, so the startup files will be executed, or execute the MPW startup files manually.

  14. Change directory in MPW to "HD:macperl_src:perl:macos:" and execute buildprogram all. This could take up to an hour, and will build all of the MPW tools and perl modules for the compilers you chose.

  15. Change directory in MPW to "HD:macperl_src:macperl:" and execute buildprogram all. This will build the MacPerl application and supporting files.

  16. Do a happy dance. You're done. Note that there are plenty of bugs, so some things will not work. Set your library path to "HD:macperl_src:perl:lib:" and you should have access to the standard perl and MacPerl library. Note that the standard perl library is currently only installed as static libraries, while the MacPerl modules are installed as dynamic libraries (for PPC/MrC only).

  17. If you wish, move on to do some testing.


Feel free to check out the source from CVS. All of the source for MacPerl, and for this web site, is available there. I recommend maccvs, which includes an MPW tool and a GUI application. You will log in anonymously to check out the source. The host is, the cvsroot is /cvsroot/macperl, and the CVS modules are "macperl", "perl", and "docs" (for the web site). See the page for more information. You can also browse the repository via the web, and download the complete CVS tarball (updated nightly).

The source for MacPerl is also available on the main perl repository in the maint-5.6/macperl branch for 5.6, maint-5.8/macperl for 5.8, and macperl for 5.9/5.10.

Good luck, and have fun.

Matthias Neeracher & Chris Nandor

This page is built using Template Toolkit and DBI on Apache and MySQL.
$Id:,v 1.6 2015/06/09 15:22:53 pudge Exp $