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

Faré fahree at gmail.com
Wed Nov 28 16:48:59 UTC 2012

On Wed, Nov 28, 2012 at 9:06 AM, Sylvain Ageneau <ageneau at gmail.com> wrote:
> Hello,
> 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
>   :components
>   ((:file "package")
>    #+cross
>    (: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.
For cross-compiling using ASDF, you might want to have separate features
  #+target-iphone and #+target-android separate from the host features.

> 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?
XCVB indeed completely distinguishes features on the host and target system,
and allows you to define or undefine features with -D and -U.

I don't remember writing a bundling output for ECL on XCVB,
but that could most definitely be done.
Contact me personally or post on the xcvb-devel list if you're interested.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Life is like an onion: you peel off layer after layer,
then you find there is nothing in it.

More information about the asdf-devel mailing list