When building a custom keymap, after setting GENERATE_KEYMAP := 1 in drivers/char/Makefile, the kernel build fails like this: CC drivers/char/vt.o make[2]: *** No rule to make target `drivers/char/%.map', needed by `drivers/char/defkeymap.c'. Stop. make[1]: *** [drivers/char] Error 2 make: *** [drivers] Error 2 This was caused by commit af8b128719f5248e542036ea994610a29d0642a6, which deleted a necessary colon from the Makefile rule that generates the keymap, since that rule contains both a target and a target-pattern. The following patch puts the colon back:
Unified · Split
| @@ -129,7 +129,7 @@ $(obj)/defkeymap.o: $(obj)/defkeymap.c · 128 unmodified lines | ||
| 129 | 129 | |
| 130 | 130 | ifdef GENERATE_KEYMAP |
| 131 | 131 | |
| 132 | −$(obj)/defkeymap.c $(obj)/%.c: $(src)/%.map | |
| 132 | +$(obj)/defkeymap.c: $(obj)/%.c: $(src)/%.map | |
| 133 | 133 | loadkeys --mktable $< > $@.tmp |
| 134 | 134 | sed -e 's/^static *//' $@.tmp > $@ |
| 135 | 135 | rm $@.tmp |