diff --git a/Makefile b/Makefile index eed9335a5be..3551a64151c 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ endif ifeq ($(FORCE),) .config scripts/config/conf scripts/config/mconf: tmp/.prereq-build - world: tmp/.prereq-packages + world: tmp/.prereq-packages tmp/.prereq-target endif tmp/.pkginfo: @@ -133,8 +133,16 @@ tmp/.prereq-packages: include/prereq.mk tmp/.pkginfo .config false; \ } @touch $@ - -prereq: tmp/.prereq-build tmp/.prereq-packages FORCE + +tmp/.prereq-target: include/prereq.mk tmp/.targetinfo .config + @mkdir -p tmp + @$(NO_TRACE_MAKE) -s -C target prereq 2>/dev/null || { \ + echo "Prerequisite check failed. Use FORCE=1 to override."; \ + false; \ + } + @touch $@ + +prereq: tmp/.prereq-build tmp/.prereq-packages tmp/.prereq-target FORCE download: .config FORCE $(MAKE) tools/download diff --git a/include/image.mk b/include/image.mk index 6805389d725..70677b9c2f2 100644 --- a/include/image.mk +++ b/include/image.mk @@ -5,6 +5,7 @@ # See /LICENSE for more information. # +include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/kernel.mk KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD) diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 35149d76861..4967dfb67e1 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -6,6 +6,8 @@ # KERNEL_BUILD:=1 +include $(INCLUDE_DIR)/prereq.mk + # For target profile selection - the default set DEFAULT_PACKAGES:=base-files libgcc uclibc bridge busybox dnsmasq dropbear iptables mtd ppp ppp-mod-pppoe mtd diff --git a/target/Makefile b/target/Makefile index dc21033e5f6..c00eea0d66f 100644 --- a/target/Makefile +++ b/target/Makefile @@ -25,6 +25,10 @@ compile: linux-compile image_compile install: image_clean $(patsubst %,%-install,$(TARGETS-y)) image_install clean: $(patsubst %,%-clean,$(TARGETS-y)) image_clean +prereq: FORCE + $(MAKE) -C linux/$(BOARD)-$(KERNEL) prereq + $(MAKE) -C image/$(BOARD) prereq + image_clean: FORCE $(MAKE) -C image/$(BOARD) clean rm -f $(BIN_DIR)/openwrt-* diff --git a/target/image/x86/Makefile b/target/image/x86/Makefile index adace07dc42..d3bbe045be0 100644 --- a/target/image/x86/Makefile +++ b/target/image/x86/Makefile @@ -54,5 +54,8 @@ define Image/Build cp $(LINUX_DIR)/arch/i386/boot/bzImage $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz endef - $(eval $(call BuildImage)) + +$(eval $(call RequireCommand,fdisk, \ + Please install fdisk \ +)) diff --git a/target/linux/x86-2.6/Makefile b/target/linux/x86-2.6/Makefile index 77912e6fb91..8676aab8cfa 100644 --- a/target/linux/x86-2.6/Makefile +++ b/target/linux/x86-2.6/Makefile @@ -16,4 +16,6 @@ LINUX_RELEASE:=1 LINUX_KERNEL_MD5SUM:=37ddefe96625502161f075b9d907f21e include $(INCLUDE_DIR)/kernel-build.mk + $(eval $(call BuildKernel)) +