Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2004-10-08 13:31:55


< ....

Thank for a very clear and concise explanation to something that is just
about impossible to understand.

>The solution I suggested before does the dependency:

><directory>test_*_load_*.test --> <->test_*_save_*.test

>Which make that last line of the DAG above:

>test --> *.test -> *.run -> *.exe, *.obj, etc -> *_load_*.test directory
>-> *_save_*.test

>Make sense?

More or less.

If I understand this correctly, then on a second run if the directory is
already created, the desired dependency won't be enforces. That is the
following scenario won't work

a) test_..._save builds but fails at runtime. This creates all directory
structures for test...save.
b) test...._load will build and run but will fail because test...save failed
to create an temporary file that test...load needs.

>PS. If you are sure you are only going to have run tests. You could do
>things like:

>local test-part-2 = [ test-bsl-run_files test_class_info_load ] ;
>local >test-part-1 = [ test-bsl-run_files test_class_info_save ] ;
>DEPENDS $(test->part-2:S=.run) : $(test-part-1:S=.run) ;

Actually I think this latter is more a kin to what is required. The
dependency is that test..save must be executed successfully to create the
appropriate output file to test the run of the corresponding test...load.
Even if the test..save fails to build or run, it is valuable to build
(though not run) to check for compilation and linkage errors)

Your explanation has motivated to spend a little time with this.

Robert Ramey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk