When building an external module, if users don't need to separate the compilation output and source code, they run the following command: "make -C $(LINUX_SRC_DIR) M=$(PWD)". At this point, "$(KBUILD_EXTMOD)" and "$(src)" are the same. If they need to separate them, they run "make -C $(KERNEL_SRC_DIR) O=$(KERNEL_OUT_DIR) M=$(OUT_DIR) src=$(PWD)". Before running the command, they need to copy "Kbuild" or "Makefile" to "$(OUT_DIR)" to prevent compilation failure. So the kernel should change the included path to avoid the copy operation.
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -87,8 +87,7 @@ obj := $(KBUILD_EXTMOD) · 86 unmodified lines | ||
| 87 | 87 | src := $(obj) |
| 88 | 88 | |
| 89 | 89 | # Include the module's Makefile to find KBUILD_EXTRA_SYMBOLS |
| 90 | −include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), \ | |
| 91 | − $(KBUILD_EXTMOD)/Kbuild, $(KBUILD_EXTMOD)/Makefile) | |
| 90 | +include $(if $(wildcard $(src)/Kbuild), $(src)/Kbuild, $(src)/Makefile) | |
| 92 | 91 | |
| 93 | 92 | # modpost option for external modules |
| 94 | 93 | MODPOST += -e |