+$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-kernel.bin: $(KDIR)/vmlinux.bin
+endif
+
+$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-kernel.bin:
+ cp $(KDIR)/vmlinux.bin $@
+
+ifeq ($(FS),jffs2-8MB)
+ALIGN:=bs=131072 conv=sync
+endif
+ifeq ($(FS),jffs2-4MB)
+ALIGN:=bs=65536 conv=sync
+endif
+
+$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).bin: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-kernel.bin
+ dd if=$< $(ALIGN) > $@
+ cat $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)/root.$(FS) >> $@
+
+define pattern_template
+$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS)-$(1).bin: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).bin
+ (dd if=/dev/zero bs=16 count=1; cat $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).bin) | \
+ $(STAGING_DIR)/bin/addpattern -p $(1) $(2) -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS)-$(1).bin
+
+install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS)-$(1).bin
+endef
+
+$(eval $(call pattern_template,AG1B))
+$(eval $(call pattern_template,WA22))
+$(eval $(call pattern_template,WAG2))
+$(eval $(call pattern_template,WA21))
+$(eval $(call pattern_template,WA31,-b))
+$(eval $(call pattern_template,WA32,-b))
+
+ifeq ($(IB),)