[asdf-devel] ASDF-bundle and cross-compiling with ECL

Sylvain Ageneau ageneau at gmail.com
Wed Nov 28 14:06:13 UTC 2012


I'm looking for input/suggestions about something I've been working on that is related to asdf-bundle.

I'm trying to come up with a good solution to do cross-compiling of ASDF packages using ECL. For example I want to be able to create a bundle for a system that looks like this:

(asdf:defsystem openglsample
  ((:file "package")
   (:file "shader-vao" :depends-on ("package")))
  :depends-on (#+iphone iphone
	       #+android android
	       #+android cl+j
	       #+(or android iphone) cl-opengl))

Using this system definition, I'd like to be able to create monolithic bundles libopenglsample_iphone.a and libopenglsample_android.a with the constraint that the android version will include the "android" and cl+j systems and the iPhone version will contain the "iphone" system.

I tried adding new operations to asdf "cross-compile-op" "cross-lib-op" see here: https://github.com/ageneau/ecl-android/tree/master/lisp-packages/asdf-cross. This mostly works but the handling of the different *features* for each target is a bit of a mess since the host and the target can have different system definitions. 

Also because of side-effects, cross-compiling of a particular source file might depend on the host having loaded some dependencies first except the host will load this dependency with *features* that might be different than the target.

I'm wondering would this be better suited for xcvb? In particular can xcvb cross-compile a system without the host doing the cross-compilation having to load the system definition for the system it is compiling?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20121128/2c2456f4/attachment.html>

More information about the asdf-devel mailing list