Lisp HUG Maillist Archive

Delivery of Universal Binary?

This is my first foray into using Delivery.  I'm using LispWorks 
5.0.1 on an IntelMac, and I've cribbed heavily from the example 
delivery script from the documentation and the macos one that comes 
with the delivery examples.  I'm trying to deliver a Universal Binary

My first delivery attempt works fine on IntelMacs, but on PowerPC I 
get one of two messages.

If I don't use the :template-bundle keyword I get this 
message:   "You cannot open the application "SG3" because it is not 
supported on this system."
And if I do, I get this one:  "You cannot open the application "SG3" 
because it may be damaged or incomplete."

My delivery script is below.

Thanks,

Chris


;;
;; SG DELIVERY
;;
(load-all-patches)
(compile-file-if-needed
  "~/sg3_lsp_rework/sitegrinder_project"
  :load T)
#+:cocoa
(compile-file-if-needed
  (sys:example-file
   "configuration/macos-application-bundle")
  :load t)
(deliver #'sg::start-lw-sg
          #+:cocoa
          (write-macos-application-bundle
           "/Applications/SG3.app"

           :document-types nil
           :template-bundle "/Applications/LispWorks 
5.0/Library/lib/5-0-0-0/examples/delivery/macos/templates/FullApplication.app/")
          #-:cocoa "sitegrinder_project" ;;
          0
          :interface :capi
          :multiprocessing T)
(quit)


Re: Delivery of Universal Binary?


On Jan 31, 2007, at 3:02 AM, Chris Perkins wrote:

>
> This is my first foray into using Delivery.  I'm using LispWorks  
> 5.0.1 on an IntelMac, and I've cribbed heavily from the example  
> delivery script from the documentation and the macos one that comes  
> with the delivery examples.  I'm trying to deliver a Universal Binary

You don't mention whether you've created a deliverable on both  
platforms and combined the two binary parts (My-Application.app/ 
Contents/MacOS/the-binary-bit) using lipo (man lipo). I'm pretty sure  
that Lispworks will not automatically create the other platform  
binary during delivery. I think you need to create each one  
separately on each platform, then combine the binary portions only  
using lipo. That will give you a universal binary. FWIW, this is  
pretty much what XCode does under the covers execpt XCode does the  
cross-compilation on one platform as well.

Apologies if this is inaccurate.

regards,

Ralph


Raffael Cavallaro, Ph.D.
raffaelcavallaro@mac.com


Re: Delivery of Universal Binary?


On Jan 31, 2007, at 3:02 AM, Chris Perkins wrote:

>
> This is my first foray into using Delivery.  I'm using LispWorks  
> 5.0.1 on an IntelMac, and I've cribbed heavily from the example  
> delivery script from the documentation and the macos one that comes  
> with the delivery examples.  I'm trying to deliver a Universal Binary
>
> My first delivery attempt works fine on IntelMacs, but on PowerPC I  
> get one of two messages.
>
> If I don't use the :template-bundle keyword I get this message:    
> "You cannot open the application "SG3" because it is not supported  
> on this system."
> And if I do, I get this one:  "You cannot open the application  
> "SG3" because it may be damaged or incomplete."

Are these errors from trying to run the application built on Intel on  
a PowerPC?  As written, your script doesn't create a universal  
binary.  (See save-universal-from-script for details on how to do it.)



Updated at: 2020-12-10 08:46 UTC