+ -d $(2) $(3)
+endef
+
+define Image/BuildKernel
+ cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(VMLINUX).elf
+ cp $(KDIR)/vmlinux $(BIN_DIR)/$(VMLINUX).bin
+ $(call CompressLzma,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.lzma)
+ $(call MkImage,lzma,$(KDIR)/vmlinux.bin.lzma,$(KDIR)/uImage.lzma)
+ cp $(KDIR)/uImage.lzma $(BIN_DIR)/$(UIMAGE).bin
+endef
+
+define BuildFirmware/Generic
+ $(call PatchKernelLzma,$(2),$(3) $($(4)))
+ $(call MkImage,lzma,"$(KDIR)/vmlinux-$(2).bin.lzma","$(KDIR)/vmlinux-$(2).uImage")
+ if [ `stat -c%s "$(KDIR)/vmlinux-$(2).uImage"` -gt $(5) ]; then \
+ echo "Warning: $(KDIR)/vmlinux-$(2).uImage is too big"; \
+ else if [ `stat -c%s $(KDIR)/root.$(1)` -gt $(6) ]; then \
+ echo "Warning: $(KDIR)/root.$(1) is too big"; \
+ else \
+ ( \
+ dd if=$(KDIR)/vmlinux-$(2).uImage bs=$(5) conv=sync; \
+ dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
+ ) > $(call imgname,$(1),$(2))-sysupgrade.bin; \
+ fi; fi
+endef
+
+define BuildFirmware/Buffalo
+ $(call PatchKernelLzma,$(2),board=$(3) $($(4)))
+ $(call MkImage,lzma,"$(KDIR)/vmlinux-$(2).bin.lzma","$(KDIR)/vmlinux-$(2).uImage")
+ if [ `stat -c%s "$(KDIR)/vmlinux-$(2).uImage"` -gt $(5) ]; then \
+ echo "Warning: $(KDIR)/vmlinux-$(2).uImage is too big"; \
+ else if [ `stat -c%s $(KDIR)/root.$(1)` -gt $(6) ]; then \
+ echo "Warning: $(KDIR)/root.$(1) is too big"; \
+ else \
+ buffalo-enc -p $(3) -v 1.76 \
+ -i $(KDIR)/vmlinux-$(2).uImage \
+ -o $(KDIR)/vmlinux-$(2).uImage.enc; \
+ buffalo-enc -p $(3) -v 1.76 \
+ -i $(KDIR)/root.$(1) \
+ -o $(KDIR)/root.$(1).enc; \
+ buffalo-tag -b $(3) -p $(3) -a ram -v 1.76 -m 1.01 \
+ -l mlang8 -f 1 -r EU \
+ -i $(KDIR)/vmlinux-$(2).uImage.enc \
+ -i $(KDIR)/root.$(2).enc \
+ -o $(call imgname,$(1),$(2))-factory-EU.bin; \
+ fi; fi
+endef
+
+mtdlayout_4M=mtdparts=physmap-flash.0:192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,832k(kernel),2944k(rootfs),3776k@0x50000(firmware)
+define Image/Build/Template/GENERIC_4M
+ $(call BuildFirmware/Generic,$(1),$(2),board=$(3),mtdlayout_4M,851968,3014656)
+endef
+
+mtdlayout_8M=mtdparts=physmap-flash.0:192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,832k(kernel),7040k(rootfs),7872k@0x50000(firmware)
+define Image/Build/Template/GENERIC_8M
+ $(call BuildFirmware/Generic,$(1),$(2),board=$(3),mtdlayout_8M,851968,7208960)
+endef
+
+mtdlayout_dir300b1=mtdparts=physmap-flash.0:192k(u-boot)ro,64k(devdata)ro,64k(devconf)ro,832k(kernel),2944k(rootfs),3776k@0x50000(firmware)
+mtd_dir300b1_kernel_part_size=851968
+mtd_dir300b1_rootfs_part_size=3014656
+define Image/Build/Template/DIR300B1
+ $(call BuildFirmware/Generic,$(1),$(2),board=$(3),mtdlayout_dir300b1,$(mtd_dir300b1_kernel_part_size),$(mtd_dir300b1_rootfs_part_size))
+ mkwrgimg -s wrgn23_dlwbr_dir300b -d /dev/mtdblock/2 \
+ -i $(call imgname,$(1),$(2))-sysupgrade.bin \
+ -o $(call imgname,$(1),$(2))-factory.bin
+endef
+
+define Image/Build/Profile/DIR300B1
+ $(call Image/Build/Template/DIR300B1,$(1),dir-300-b1,DIR-300-revB)