Cleanup done while researching the Boost Jam internals. Added better implementation description comments at many places. Cleaned up the 'dependant' and 'dependency' terminology that got mixed up in several places. Renamed several functions to use underscores as word separators.
[SVN r48480]
Bug was happening when we had a multifile action that got triggered to build its non-initial target. Then while that action was being executed all the other targets were reporting as 'already built' and were getting used by other actions prematurely. Quick-fixed by making all targets built by a single action list each other as 'included' causing anything else depending on any of these targets to automatically depend on all the others in the group as well.
The solution is not perfect as it might have some unexpected interactions with other uses of 'included' targets and now if any target in a group is not up to date then all of them will be rebuilt even if actually did not need the target that was up to date. On the other hand this should be a really rare use case as it would require the one target in a group to be up to date and be needed while another in the same group (i.e. built by the same action) to not be up to date.
[SVN r48426]
* bjam; bump to version 3.1.12
* bjam; make it possible to build in MinGW/MSYS shell
* bjam; move profile code to debug.h/c to make it available for use everywhere
* bjam; cache all filesystem query operations, Unix and Windows only, include PWD and scanning
* bjam; add memory profile info, and sprinkle throught code
* bbv2; rewrite some while() loops into for() loops to reduce time and memory
* bbv2; keep a single instance counter instead of one per type to reduce memory use
* bjam+bbv2; change NORMALIZE_PATH builtin to join path parts to reduce memory use
[SVN r31177]
- Some missing header includes.
- Some missing function declarations.
- Complete the bootstrap process by calling the jam0 bootstrap to build (build.jam)
- Some minor changes to handle VMS paths (build.jam)
Implement the new LICENSE name into the build/packaging process.
Use new license text where needed.
[SVN r20186]
Matt Armstrong, from jamming mailing list.
* new/search.h
(search): Add a new parameter 'another_target', which returns
the name of a target already bound to the same location via LOCATE.
* new/search.c
(search): Ajust the search algorithm to check for targets bound to searched
directories.
[SVN r18887]
for getting the list of variable names and for clearing all rule and
variable storage.
* compile.c - better error reporting for unknown rules; now it is a
hard error.
* hash.c/h - added hash_free to allow removal of elements from a hash
* rule.c/h - implemented rule freeing; stopped exporting rules to the
global module by default.
* variable.c - reclaim variable storage when disposing of variable
hash.
* build.jam - make grammar building work under NT
[SVN r18405]