diff options
author | Paul Smith <psmith@gnu.org> | 2005-10-24 13:01:39 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2005-10-24 13:01:39 +0000 |
commit | 11095a90f120545c915c92b8ebf48f04723d1837 (patch) | |
tree | 73dba88903ea90cdac930057fe8619a8a04fb869 /dep.h | |
parent | 66459baee27374577d32a78564604ad64228f71d (diff) | |
download | make-11095a90f120545c915c92b8ebf48f04723d1837.tar.gz |
Make second expansion optional (partial implementation).
I decided this feature was too impacting to make the permanent default
behavior. This set of changes makes the default behavior of make the
old behavior (no second expansion). If you want second expansion, you
must define the .SECONDEXPANSION: special target before the first target
that needs it.
This set of changes ONLY fixes explicit and static pattern rules to work
like this. Implicit rules still have second expansion enabled all the
time: I'll work on that next.
Note that there is still a backward-incompatibility: now to get the old
SysV behavior using $$@ etc. in the prerequisites list you need to set
.SECONDEXPANSION: as well.
Diffstat (limited to 'dep.h')
-rw-r--r-- | dep.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -40,6 +40,7 @@ struct dep struct file *file; unsigned int changed : 8; unsigned int ignore_mtime : 1; + unsigned int staticpattern : 1; unsigned int need_2nd_expansion : 1; }; @@ -72,7 +73,8 @@ extern struct nameseq *ar_glob PARAMS ((char *arname, char *member_pattern, unsi extern char *dep_name (); #endif -extern struct dep *copy_dep_chain PARAMS ((struct dep *d)); +extern struct dep *copy_dep_chain PARAMS ((const struct dep *d)); +extern void free_dep_chain PARAMS ((struct dep *d)); extern void free_ns_chain PARAMS ((struct nameseq *n)); extern struct dep *read_all_makefiles PARAMS ((char **makefiles)); extern int eval_buffer PARAMS ((char *buffer)); |