$(BIN_DIR):
mkdir -p $(BIN_DIR)
-TARGETS-y := linux utils
-TARGETS-$(CONFIG_SDK) += sdk
-
-linux-compile: utils-install
linux-install: $(BIN_DIR)
-sdk-compile: linux-install
image_install: linux-install
+IMAGE_DIR:=linux/$(BOARD)-$(KERNEL)/image
+
download: $(patsubst %,%-download,$(TARGETS-y))
prepare: linux-prepare
compile: linux-compile image_compile
-install: image_clean $(patsubst %,%-install,$(TARGETS-y)) image_install
-clean: $(patsubst %,%-clean,$(TARGETS-y)) image_clean
+install: linux-install image_install
+
+ifeq ($(CONFIG_SDK),y)
+install: sdk_install
+endif
+ifeq ($(CONFIG_IB),y)
+install: imagebuilder_install
+endif
+
+clean: linux-clean sdk-clean imagebuilder-clean image_clean
+
+prereq: FORCE
+ $(MAKE) -C linux/$(BOARD)-$(KERNEL) prereq
+ [ \! -f $(IMAGE_DIR)/Makefile ] || $(MAKE) -C $(IMAGE_DIR) prereq
+
+sdk_install: FORCE
+ $(MAKE) -C sdk install
image_clean: FORCE
- $(MAKE) -C image/$(BOARD) clean
+ $(MAKE) -C $(IMAGE_DIR) clean
rm -f $(BIN_DIR)/openwrt-*
image_compile: FORCE
- $(MAKE) -C image/$(BOARD) compile
+ $(MAKE) -C $(IMAGE_DIR) compile
image_install: image_compile
- $(MAKE) -C image/$(BOARD) install
-
-%-clean: FORCE
- $(MAKE) -C $(patsubst %-clean,%,$@) clean
-%-download: FORCE
- $(MAKE) -C $(patsubst %-download,%,$@) download
-%-prepare: FORCE
- $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
-%-compile: %-prepare
- $(MAKE) -C $(patsubst %-compile,%,$@) compile
-%-install: %-compile
- $(MAKE) -C $(patsubst %-install,%,$@) install
+ $(MAKE) -C $(IMAGE_DIR) install
+
+imagebuilder_install: image_install
+ $(MAKE) -C imagebuilder install
+%-prereq %-prepare %-download %-clean %-compile %-install %-refresh %-update: FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)