On Sat, Mar 13, 2010 at 5:08 PM, Juan Jose Garcia-Ripoll <juanjose.garciaripoll@googlemail.com> wrote:
Thanks again for your help. Using the latest changes in ASDF ECL is now capable of building and shipping its own versions of CLX and other tools in a way that can then be linked to other FASL, programs or shared libraries using the ASDF extensions we already had.

I was just thinking how to extend this functionality to user-defined systems and hit another problem. The goal is to take an ASDF system and prepare a bundle that contains a PREBUILT-SYSTEM file (*.asd), a library file (*.a or *.lib) and a FASL (*.fas) This set of files can then be distributed elsewhere.

The problem is that the prebuilt system definition must contain the location of these other files,

(DEFSYSTEM "user-file"
 :CLASS ASDF::PREBUILT-SYSTEM
 :LIB "user-file.a"
 :COMPONENTS ((:COMPILED-FILE "serve-event")))

Currently this works for ECL's contributed extensions because we hardcode logical pathnames, as "SYS:user-file.a"

However in general these files would be stored together with the *.asd file so their full pathnames could be resolved based on the former. How can I do that without getting the pathnames get overwritten by ASDF?

Changing output-translations is not an option, because this would have global effects.

Juanjo

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com