26.7 Building universal binaries

You can build a universal binary on an Intel Macintosh computer by clicking the button, using the same script as was used to build a normal ("thin") image.

This actually runs two LispWorks subprocesses. One builds the Intel part of the binary, and the other builds the PowerPC part of the binary under Rosetta. Both LispWorks subprocesses load the script. Afterwards, the Application Builder creates the universal binary.

If the script is just a load-and-deliver script, then no special modifications to it are required.

If the script takes special action about the pathname of the delivered application which should be done only once, some special considerations are needed. The script should call save-argument-real-p , and do the special action only when this returns t . For an example, create a new script with the Capi option selected (check Creating a new delivery script for information about creating a script). There is also an example in the LispWorks library, at Library/lib/5-0-0-0/examples/configuration/save-macos-application.lisp .

When you have saved a universal binary, you can invoke it as PowerPC by choosing the Works > Build> Run With Arguments command or clicking the toolbar button (see Running the saved application for details).

Note: The option of building a universal binary is available only in an image that is itself a universal binary, such as the supplied LispWorks image.

Note: Whilst the delivery script should call save-image or deliver , these functions never save a universal binary. Universal binaries can only be saved by create-universal-binary , save-universal-from-script (which calls create-universal-binary ) or by using the Application Builder tool (which calls save-universal-from-script ).

Common LispWorks User Guide (Macintosh version) - 5 Jul 2006