diff options
author | Paul Smith <psmith@gnu.org> | 2020-01-02 05:08:06 -0500 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2020-01-03 02:08:59 -0500 |
commit | 4e12a5fa458e8e6a28d6728d5d14a9dbc25f6bef (patch) | |
tree | 4c5301da843bcec66104e548ee72d43b017335b5 /src/rule.h | |
parent | e56243fe57710124d4e5eb6c05179065f49d1333 (diff) | |
download | make-git-4e12a5fa458e8e6a28d6728d5d14a9dbc25f6bef.tar.gz |
Support the .EXTRA_PREREQS special variable
Initial implementation by Christof Warlich <cwarlich@gmx.de>
* NEWS: Announce the new feature.
* doc/make.texi (Other Special Variables): Document .EXTRA_PREREQS.
* src/dep.h (struct dep): New flag to note extra prereq deps.
* src/filedef.h (expand_extra_prereqs): Declare a function to expand
the value of .EXTRA_PREREQS.
* src/file.c (expand_extra_prereqs): Given a struct variable lookup
of .EXTRA_PREREQS, convert it into a list of deps and for each one
make sure it has a struct file and has the new flag set.
(snap_file): A new function invoked by hash_map that will perform
per-file operations: set up second expansion, intermediate, and also
.EXTRA_PREREQS. Manage circular dependencies by ignoring them.
(snap_deps): Defer per-file operations until the end. Look up the
global .EXTRA_PREREQS and pass it along to snap_file for each file.
* src/implicit.c (struct patdeps): Remember the extra prereqs flag.
(pattern_search): Transfer extra prereqs flag settings into the
matched pattern rule.
* src/rule.h (snap_implicit_rules): Rename count_implicit_rules to
snap_implicit_rules since we now do more than count.
* src/rule.c (snap_implicit_rules): As we walk through all the pattern
rules, add in any global .EXTRA_PREREQS to the dep list. Ensure we
take them into account for the max number of prereqs and name length.
* src/main.c (main): Add extra-prereqs to .FEATURES.
Call the renamed snap_implicit_rules.
* tests/scripts/variables/EXTRA_PREREQS: Add tests.
Diffstat (limited to 'src/rule.h')
-rw-r--r-- | src/rule.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -48,7 +48,7 @@ extern size_t max_pattern_dep_length; extern struct file *suffix_file; -void count_implicit_rule_limits (void); +void snap_implicit_rules (void); void convert_to_pattern (void); void install_pattern_rule (struct pspec *p, int terminal); void create_pattern_rule (const char **targets, const char **target_percents, |