Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implicit rules cannot invoke other implicit rules #245

Open
DelilahHoare opened this issue Mar 7, 2022 · 2 comments
Open

Implicit rules cannot invoke other implicit rules #245

DelilahHoare opened this issue Mar 7, 2022 · 2 comments

Comments

@DelilahHoare
Copy link
Contributor

If an implicit rule has an input that does not yet exist but could be made by another implicit rule, it will be skipped.

all: test.a

%.a: %.b
	echo $< > $@

%.b:
	echo $* > $@

This test makefile will successfully create test.a when run by GNU make, but ckati will fail with No rule to make target 'test.a' due to the pattern being declined because test.b does not already exist.

@lberki
Copy link
Collaborator

lberki commented Mar 14, 2022

Is this something required to build the Linux kernel?

@DelilahHoare
Copy link
Contributor Author

Yes. Without this feature the build fails with No rule to make target 'arch/x86/entry/vdso/vdso-image-64.o'. The rule it should be using, $(obj)/vdso-image-%.c, takes $(obj)/vdso%.so as input, which should be built by the rule for $(obj)/%.so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants