touch $(TOPDIR)/tmp/.build
 
 .config: ./scripts/config/conf prepare-tmpinfo
-       @+if [ \! -f .config ]; then \
+       @+if [ -f .config ] || ! grep CONFIG_HAVE_DOT_CONFIG .config >/dev/null; then \
                [ -e $(HOME)/.openwrt/defconfig ] && cp $(HOME)/.openwrt/defconfig .config; \
                $(NO_TRACE_MAKE) menuconfig $(PREP_MK); \
        fi
 
   $(curdir)/uClibc/install:=$(curdir)/gcc/install
 endif
 
-$(TOOLCHAIN_DIR)/info.mk: .config
+ifneq ($(ARCH),)
+  $(TOOLCHAIN_DIR)/info.mk: .config
        @for dir in $(TOOLCHAIN_DIR); do ( \
                set -x; \
                mkdir -p "$$dir"; \
        ); done
        @grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@
        @touch $@
+endif
 
 # prerequisites for the individual targets
 $(curdir)/ := .config prereq