diff options
author | Nigel Croxon <ncroxon@redhat.com> | 2019-03-15 09:48:10 -0400 |
---|---|---|
committer | Nigel Croxon <ncroxon@redhat.com> | 2019-03-15 09:48:10 -0400 |
commit | de4e5e4e3b6faaf05b0b9a9a7ead882269078dc3 (patch) | |
tree | fe2fbde7a62d88e3235a33861982332d189cc667 /Make.rules | |
parent | 5b74db0e154ffd2fba4bcc254069844f21913988 (diff) | |
download | gnu-efi-de4e5e4e3b6faaf05b0b9a9a7ead882269078dc3.tar.gz |
Make.rules incomplete/wrong; make -r failure
Make.rules is not complete; in particular it lacks a %.o: %.S rule.
This happens to work due to the builtin make rule to that effect. but
building with make -r, or building as a sub-make of an environment that
uses make -r (or MAKEFLAGS += -r) causes it to break.
In general, make -r is strongly preferred, and Make.rules seems to have
been created explicitly to support this.
To further complicate things, the rule %.S: %.c causes a completely
incomprehensible error message. This rule is wrong, it should be %.s:
%.c not %.S: %.c.
Finally, the rule %.E: %.c is normally %.i: %.c; .i is the normal
extension for preprocessed C source. The equivalent rule for assembly is
%.s: %.S.
Signed-off-by: H. Peter Anvin <hpa@users.sf.net>
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
Diffstat (limited to 'Make.rules')
-rw-r--r-- | Make.rules | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -51,8 +51,14 @@ %.o: %.c $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ -%.S: %.c +%.s: %.c $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -S $< -o $@ -%.E: %.c +%.i: %.c + $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ + +%.o: %.S + $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + +%.s: %.S $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ |