Assume we have files "packages" "macros" "classes" "methods" "functions"
and we want the following dependencies:
1. In order to compile or load any of the other files the file
"packages.fasl" must be loaded.
2. In order to compile or load "methods" the file "classes.fasl"
must be loaded.
3. The file "macros" contains macros used in "methods" and "functions"
and hence "macros.fasl" must be loaded before any of these 2 files
is compiled or loaded. Furthermore when "macros" is changed also
"methods" and "functions" have to be recompiled even if they are
unchanged.
4. There shall be no more dependencies, i.e. when a file different from
"macros" is changed, only this file shall be recompiled.
With the Symbolics System Construction Tool (SCT) one would use
(:USES-DEFINITIONS-FROM macros) for methods and functions
and (:IN-ORDER-TO (:COMPILE :LOAD) (:LOAD packages ...)) for the
other dependencies.
(asdf:defsystem :test1
:description "Test Dependency Processing"
:components
(
(:file "packages")
(:file "macros"
:in-order-to ((asdf:compile-op (asdf:load-op "packages"))
(asdf:load-op (asdf:load-op "packages"))))
(:file "classes"
:in-order-to ((asdf:compile-op (asdf:load-op "packages"))
(asdf:load-op (asdf:load-op "packages"))))
(:file "methods"
:depends-on ("macros")
:in-order-to ((asdf:compile-op (asdf:load-op "packages" "classes"))
(asdf:load-op (asdf:load-op "packages" "classes"))))
(:file "functions"
:depends-on ("macros")
:in-order-to ((asdf:compile-op (asdf:load-op "packages"))
(asdf:load-op (asdf:load-op "packages"))))
))
Unfortunately this does not work. All of the ASDF dependencies
:DEPENDS-ON and :IN-ORDER-TO seem to behave like the SCT
:USES-DEFINITIONS-FROM.
For example when "classes" is changed it will recompile "methods" too.
Is there anything in ASDF that provides the functionality of the SCT
:IN-ORDER-TO ?
--
Benjamin Benninghofen
Systemanalytiker
EADS
Defence & Security
Military Air Systems
Application Software and Processes - OPEM22
Rechliner Straße
85077 Manching - Germany
Telephone: +49 (0) 8459 81 78125
Telephone: +49 (0) 89607 78125
Fax: +49 (0) 8459 81 78105
e-Mail: Benjamin.Benninghofen(a)eads.com
EADS Deutschland GmbH
Registered Office: Ottobrunn
District Court of Munich HRB 107 648
Chairman of the Supervisory Board: Dr. Thomas Enders
Managing Directors: Dr. Stefan Zoller (chairman), Michael Hecht
NOTICE: This message, together with any attachments, may contain privileged
and/or confidential information. If you have received this e-mail in error
or are not an intended recipient, you may not use, reproduce, disseminate or
distribute it; do not open nor save any attachments, delete it immediately from
your system and notify the sender promptly by e- mail that you have done so.
Thank you.