diff options
author | Melody Horn <melody@boringcactus.com> | 2021-03-25 18:14:22 -0600 |
---|---|---|
committer | Melody Horn <melody@boringcactus.com> | 2021-03-25 18:14:22 -0600 |
commit | 1f534fbf0c0571feb5d8675e428536436fc58060 (patch) | |
tree | 5c9499c2b5ce8794b4fba8de009db55cf60ef979 | |
parent | 9fc0c83d6892ae90500c302c656657b2c17ab19f (diff) | |
download | yapymake-1f534fbf0c0571feb5d8675e428536436fc58060.tar.gz yapymake-1f534fbf0c0571feb5d8675e428536436fc58060.zip |
update the targets requested
-rw-r--r-- | yapymake/__init__.py | 7 | ||||
-rw-r--r-- | yapymake/makefile/__init__.py | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/yapymake/__init__.py b/yapymake/__init__.py index 34221f2..fe4b182 100644 --- a/yapymake/__init__.py +++ b/yapymake/__init__.py @@ -12,3 +12,10 @@ def main(): # TODO handle SHELL for input_file in these_args.makefile: file.read(input_file) + + targets = [arg for arg in these_args.targets_or_macros if '=' not in arg] + if len(targets) == 0: + targets = [file.first_non_special_target] + + for target in targets: + file.target(target).update(file) diff --git a/yapymake/makefile/__init__.py b/yapymake/makefile/__init__.py index 1d262e8..7a2adfe 100644 --- a/yapymake/makefile/__init__.py +++ b/yapymake/makefile/__init__.py @@ -20,12 +20,14 @@ class Makefile: _inference_rules: List['InferenceRule'] _macros: Dict[str, Tuple['MacroSource', TokenString]] _targets: Dict[str, 'Target'] + first_non_special_target: Optional[str] args: Args def __init__(self, args: Args): self._inference_rules = [] self._macros = dict() self._targets = dict() + self.first_non_special_target = None self.args = args if args.builtin_rules: @@ -123,6 +125,8 @@ class Makefile: else: # it's a target rule! for target in targets: + if self.first_non_special_target is None: + self.first_non_special_target = target # > A target that has prerequisites, but does not have any commands, can be used to add to the # > prerequisite list for that target. # but also |