kbuild: fix silentoldconfig recursion

kconfig-fix-config-dependencies causes this:

make CC=cc  KBUILD_VERBOSE=1 -C /usr/src/25 SUBDIRS=/home/akpm/NVIDIA-Linux-x86_64-1.0-8762-pkg2/usr/src/nv modules
make -f /usr/src/devel/Makefile silentoldconfig
make -f /usr/src/devel/Makefile silentoldconfig
make -f /usr/src/devel/Makefile silentoldconfig

The basic problem is if we compile external modules, config-targets isn't
set which can cause recursive calls to silentoldconfig to update the
kernel configuration.

Bail out and ask the user to update manually.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/Makefile b/Makefile
index d810d6c..1888fab 100644
--- a/Makefile
+++ b/Makefile
@@ -446,7 +446,11 @@
 # if auto.conf.cmd is missing then we are probarly in a cleaned tree so
 # we execute the config step to be sure to catch updated Kconfig files
 include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
+ifeq ($(KBUILD_EXTMOD),)
 	$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
+else
+	$(error kernel configuration not valid - run 'make prepare' in $(srctree) to update it)
+endif
 
 else
 # Dummy target needed, because used as prerequisite