Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/makei/rules_mk.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,11 @@ def from_str(cls, rules_mk_str: str, containing_dir: Path, src_dir: Path, includ

# Create all the rules for the wildcard rule declaration
for target_ext, source_ext, dependencies in wildcard_targets:
# Expand any variables in the dependencies
expanded_deps = dependencies
for var_name, var_value in rules_mk_variables.items():
expanded_deps = expanded_deps.replace(f"$({var_name})", var_value)
#target specific variable assignmnet(expansion)
for filename in os.listdir(dir_path):
recipe_str = ''
filename_split = filename.split('.', 1)
Expand All @@ -334,7 +339,7 @@ def from_str(cls, rules_mk_str: str, containing_dir: Path, src_dir: Path, includ
target_object = (filename_split[0] + "." + target_ext).upper()
if target_object not in targets:
recipe_str = (
target_object + ": " + filename_split[0] + "." + source_ext + " " + dependencies
target_object + ": " + filename_split[0] + "." + source_ext + " " + expanded_deps
).strip() + '\n'
rules.append(MKRule.from_str(recipe_str, containing_dir, include_dirs))
targets.append(target_object)
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/test_rules_mk.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@ def test_wildcard_recipes_variables():
assert rules_mk.rules[3].variables == ['TEXT := hardcoded for all mod', 'TGTVER=V7R5',
'private TEXT := foo is better', 'TGTVER := V7R2']
assert rules_mk.rules[3].commands == []
assert rules_mk.rules[3].dependencies == ['$(HEADER).rpgleinc']
assert rules_mk.rules[3].dependencies == ['some.rpgleinc']
assert rules_mk.rules[3].include_dirs == []
assert rules_mk.rules[3].target == 'FOO.MODULE'
assert rules_mk.rules[3].source_file == '$(d)/foo.rpgle'
assert str(rules_mk.rules[3]) == '''FOO.MODULE_SRC=$(d)/foo.rpgle
FOO.MODULE_DEP=$(HEADER).rpgleinc
FOO.MODULE_DEP=some.rpgleinc
FOO.MODULE_RECIPE=RPGLE_TO_MODULE_RECIPE
FOO.MODULE: TEXT := hardcoded for all mod
FOO.MODULE: TGTVER=V7R5
Expand All @@ -108,7 +108,7 @@ def test_wildcard_recipes_variables():
AB2001.B.MODULE: TEXT := hardcoded for all mod
AB2001.B.MODULE: TGTRLS :=*PRV
FOO.MODULE_SRC=$(d)/foo.rpgle
FOO.MODULE_DEP=$(HEADER).rpgleinc
FOO.MODULE_DEP=some.rpgleinc
FOO.MODULE_RECIPE=RPGLE_TO_MODULE_RECIPE
FOO.MODULE: TEXT := hardcoded for all mod
FOO.MODULE: TGTVER=V7R5
Expand Down