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 /filedef.h | |
parent | 66459baee27374577d32a78564604ad64228f71d (diff) | |
download | gunmake-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 'filedef.h')
-rw-r--r-- | filedef.h | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -84,17 +84,16 @@ struct file unsigned int is_target:1; /* Nonzero if file is described as target. */ unsigned int cmd_target:1; /* Nonzero if file was given on cmd line. */ unsigned int phony:1; /* Nonzero if this is a phony file - i.e., a dependency of .PHONY. */ + i.e., a prerequisite of .PHONY. */ unsigned int intermediate:1;/* Nonzero if this is an intermediate file. */ - /* Nonzero, for an intermediate file, - means remove_intermediates should not delete it. */ - unsigned int secondary:1; + unsigned int secondary:1; /* Nonzero means remove_intermediates should + not delete it. */ unsigned int dontcare:1; /* Nonzero if no complaint is to be made if this target cannot be remade. */ unsigned int ignore_vpath:1;/* Nonzero if we threw out VPATH name. */ unsigned int pat_searched:1;/* Nonzero if we already searched for pattern-specific variables. */ - unsigned int considered:1; /* equal to `considered' if file has been + unsigned int considered:1; /* equal to 'considered' if file has been considered on current scan of goal chain */ }; @@ -105,6 +104,7 @@ extern char **default_goal_name; extern struct file *lookup_file PARAMS ((char *name)); extern struct file *enter_file PARAMS ((char *name)); +extern struct dep *parse_prereqs PARAMS ((char *prereqs)); extern void remove_intermediates PARAMS ((int sig)); extern void snap_deps PARAMS ((void)); extern void rename_file PARAMS ((struct file *file, char *name)); |