[Openmcl-devel] universal binaries

Terje Norderhaug terje at in-progress.com
Fri Apr 17 15:21:30 UTC 2009


On Apr 16, 2009, at 8:54 PM, Alexander Repenning wrote:
> Terje's approach with the shell script may work but I would not  
> like the idea of the finder not recognizing the universal binary as  
> such.

It is important for me as well to be able to create LISP applications  
that appear 100% as expected for the Mac end user (aka "The  
Customer"). Using a work-around in place of a true universal binary  
may or may not take you all the way.

In place of the script, you could use a small program compiled as a  
universal binary in the app bundle, with purpose to start/orchestrate  
the correct edition of your LISP application.

One issue when starting the LISP app from a script (or other program)  
is that multiple icons may show up on the dock. To avoid the display  
of an icon for the script, I place the following in the Info.plist in  
the .app bundle:

	<key>LSBackgroundOnly</key>
   	<string>1</string>

-- Terje Norderhaug

> We are only using the IDE versions of CCL with the large, merged  
> kernel + heap "d<architecture>cl" files. Could the Cocoa/IDE  
> version  be lipoed together given that there would not be the  
> problem with finding the right image file? If so, what would be the  
> proper way to use lipo to achieve this?
>
> alex
>
>
> On Apr 16, 2009, at 3:09 PM, Gary Byers wrote:
>
>> There has never been any support for universal binaries in CCL.
>>
>> Merging multiple kernels into a single executable file is trivial  
>> (well,
>> it's trivial since we can just invoke the 'lipo' program to do all of
>> the non-trivial work.)
>>
>> There isn't currently any support for multi-architecture heap images,
>> so it's not clear how a universal binary kernel could find and load
>> the right architecture-specific heap image by default.
>>
>> For a long time, I've been under the impression that the file  
>> named by
>> the value of the CFBundleExecutable key in a .app bundle' Info.plist
>> had to be a real executable file.  If it can in fact be a shell
>> script, then that shell script could just determine the architecture
>> and execute the right architecure-specific binary (which could either
>> contain an embedded heap image, load a default heap image based on  
>> its
>> name, or receive an argument from that shell script.)
>>
>> (It does seems to work to set the CFBundleExecutable key's value to
>> the name of a shell script, and that shell script can determine the
>> architecture and word size and exec a real executable file.  That  
>> isn't
>> quite the same thing as a Universal Binary - "Get Info" wouldn't  
>> recognize
>> it as one - but it'd have much the same effect.)
>>
>>
>> On Thu, 16 Apr 2009, Alexander Repenning wrote:
>>
>>> is there a tool/script/document helping with the process of  
>>> merging the PPC with the Intel-Mac binary version(s) into a  
>>> single app? If I remember right CCL 1.2 did have such a universal  
>>> binary. Would it be possible to squeeze 64bit and 32 bit intel- 
>>> macs versions together with a ppc binary into a single app?
>>>
>>> alex
>>>
>>> Prof. Alexander Repenning
>>>
>>> University of Colorado
>>> Computer Science Department
>>> Boulder, CO 80309-430
>>>
>>> vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf
>>>
>>>
>>
>
> Prof. Alexander Repenning
>
> University of Colorado
> Computer Science Department
> Boulder, CO 80309-430
>
> vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf
>
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list