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