diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 24 |
1 files changed, 18 insertions, 6 deletions
@@ -436,12 +436,13 @@ core-y := usr/ | |||
436 | endif # KBUILD_EXTMOD | 436 | endif # KBUILD_EXTMOD |
437 | 437 | ||
438 | ifeq ($(dot-config),1) | 438 | ifeq ($(dot-config),1) |
439 | # In this section, we need .config | 439 | # Read in config |
440 | -include include/config/auto.conf | ||
440 | 441 | ||
442 | ifeq ($(KBUILD_EXTMOD),) | ||
441 | # Read in dependencies to all Kconfig* files, make sure to run | 443 | # Read in dependencies to all Kconfig* files, make sure to run |
442 | # oldconfig if changes are detected. | 444 | # oldconfig if changes are detected. |
443 | -include include/config/auto.conf.cmd | 445 | -include include/config/auto.conf.cmd |
444 | -include include/config/auto.conf | ||
445 | 446 | ||
446 | # To avoid any implicit rule to kick in, define an empty command | 447 | # To avoid any implicit rule to kick in, define an empty command |
447 | $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; | 448 | $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; |
@@ -451,16 +452,27 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; | |||
451 | # if auto.conf.cmd is missing then we are probably in a cleaned tree so | 452 | # if auto.conf.cmd is missing then we are probably in a cleaned tree so |
452 | # we execute the config step to be sure to catch updated Kconfig files | 453 | # we execute the config step to be sure to catch updated Kconfig files |
453 | include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd | 454 | include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd |
454 | ifeq ($(KBUILD_EXTMOD),) | ||
455 | $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig | 455 | $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig |
456 | else | 456 | else |
457 | $(error kernel configuration not valid - run 'make prepare' in $(srctree) to update it) | 457 | # external modules needs include/linux/autoconf.h and include/config/auto.conf |
458 | endif | 458 | # but do not care if they are up-to-date. Use auto.conf to trigger the test |
459 | PHONY += include/config/auto.conf | ||
460 | |||
461 | include/config/auto.conf: | ||
462 | $(Q)test -e include/linux/autoconf.h -a -e $@ || ( \ | ||
463 | echo; \ | ||
464 | echo " ERROR: Kernel configuration is invalid."; \ | ||
465 | echo " include/linux/autoconf.h or $@ are missing."; \ | ||
466 | echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ | ||
467 | echo; \ | ||
468 | /bin/false) | ||
469 | |||
470 | endif # KBUILD_EXTMOD | ||
459 | 471 | ||
460 | else | 472 | else |
461 | # Dummy target needed, because used as prerequisite | 473 | # Dummy target needed, because used as prerequisite |
462 | include/config/auto.conf: ; | 474 | include/config/auto.conf: ; |
463 | endif | 475 | endif # $(dot-config) |
464 | 476 | ||
465 | # The all: target is the default when no target is given on the | 477 | # The all: target is the default when no target is given on the |
466 | # command line. | 478 | # command line. |