include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
-define Image/BuildKernel
- cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf
- gzip -9n -c $(KDIR)/vmlinux > $(KDIR)/vmlinux.bin.gz
- $(STAGING_DIR_HOST)/bin/lzma e $(KDIR)/vmlinux $(KDIR)/vmlinux.bin.l7
- dd if=$(KDIR)/vmlinux.bin.l7 of=$(BIN_DIR)/$(IMG_PREFIX)-vmlinux.lzma bs=65536 conv=sync
- dd if=$(KDIR)/vmlinux.bin.gz of=$(BIN_DIR)/$(IMG_PREFIX)-vmlinux.gz bs=65536 conv=sync
-endef
-
-define Image/Build/squashfs
- $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
-endef
-
-define Image/Build
- $(call Image/Build/$(1))
- dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
-
- -$(STAGING_DIR_HOST)/bin/mkfwimage \
- -B XS2 -v XS2.ar2316.OpenWrt.$(REVISION) \
- -k $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.lzma \
- -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
- -o $(BIN_DIR)/$(IMG_PREFIX)-ubnt2-$(1).bin
-
- -$(STAGING_DIR_HOST)/bin/mkfwimage \
- -B XS5 -v XS5.ar2313.OpenWrt.$(REVISION) \
- -k $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.lzma \
- -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
- -o $(BIN_DIR)/$(IMG_PREFIX)-ubnt5-$(1).bin
-
- -$(STAGING_DIR_HOST)/bin/mkfwimage \
- -B XS2-8 -v XS2.ar2316.OpenWrt.$(REVISION) \
- -k $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.lzma \
- -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
- -o $(BIN_DIR)/$(IMG_PREFIX)-ubnt2-pico2-$(1).bin
-
- -$(STAGING_DIR_HOST)/bin/mkmylofw -B np25g \
- -p0x020000:0x130000:ah:0x80041000:linux:$(KDIR)/vmlinux.bin.gz \
- -p0x150000:0x2a0000:::rootfs:$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
- $(BIN_DIR)/$(IMG_PREFIX)-np25g-$(1).bin
-
- -$(STAGING_DIR_HOST)/bin/mkmylofw -B wpe53g \
- -p0x020000:0x130000:ah:0x80041000:linux:$(KDIR)/vmlinux.bin.gz \
- -p0x150000:0x2a0000:::rootfs:$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
- $(BIN_DIR)/$(IMG_PREFIX)-wpe53g-$(1).bin
+define Build/mkfwimage
+ $(STAGING_DIR_HOST)/bin/mkfwimage \
+ -B $(1).$(VERSION_DIST).$(REVISION) \
+ -k $(IMAGE_KERNEL) \
+ -r $(IMAGE_ROOTFS) \
+ -o $@.new && \
+ mv $@.new $@
+endef
+define Build/combined-image
-sh $(TOPDIR)/scripts/combined-image.sh \
- "$(BIN_DIR)/$(IMG_PREFIX)-vmlinux.lzma" \
- "$(BIN_DIR)/$(IMG_PREFIX)-root.$(1)" \
- "$(BIN_DIR)/$(IMG_PREFIX)-combined.$(1).img"
+ "$(IMAGE_KERNEL)" \
+ "$(IMAGE_ROOTFS)" \
+ "$@.new" && \
+ mv $@.new $@
+endef
+
+define Build/mkmylofw
+ $(STAGING_DIR_HOST)/bin/mkmylofw -B $(1) \
+ -p0x020000:0x130000:ah:0x80041000:linux:$(IMAGE_KERNEL) \
+ -p0x150000:0x2a0000:::rootfs:$(IMAGE_ROOTFS) \
+ $@.new && \
+ mv $@.new $@
+endef
+
+define Build/gzip-kernel
+ gzip -9n -c $@ > $@.gz
+ dd if=$@.gz of=$@ bs=65536 conv=sync
+endef
+
+define Build/lzma-kernel
+ $(STAGING_DIR_HOST)/bin/lzma e $@ $@.l7
+ dd if=$@.l7 of=$@ bs=65536 conv=sync
+endef
+
+define Build/copy-kernel
+ rm -f $@ $@.elf
+ cp $< $@
+ cp $< $@.elf
+endef
+
+define Build/elf-kernel
+ cp $(IMAGE_KERNEL).elf $@
+endef
+
+
+define Device/Default
+ PROFILES = Default $$(DEVICE_NAME)
+ KERNEL := copy-kernel | lzma-kernel
+ IMAGES := sysupgrade.bin
+ FILESYSTEMS := squashfs
+endef
+
+define Device/generic
+ DEVICE_VENDOR := Atheros
+ DEVICE_MODEL := Generic AR2xxx board
+ IMAGES := kernel.lzma kernel.elf kernel.gz rootfs.bin sysupgrade.bin
+ IMAGE/kernel.gz := elf-kernel | gzip-kernel
+ IMAGE/kernel.elf := elf-kernel
+ IMAGE/kernel.lzma := elf-kernel | lzma-kernel
+ IMAGE/rootfs.bin := append-rootfs | pad-rootfs | pad-to 128k
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 128k | combined-image
+ IMAGE_NAME = $$(IMAGE_PREFIX)-$$(if $$(findstring kernel,$$(2)),,$$(1)-)$$(2)
+endef
+TARGET_DEVICES += generic
+
+define Device/ubnt_picostation-2
+ DEVICE_VENDOR := Ubiquiti
+ DEVICE_MODEL := Picostation 2 (XS2-8)
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 128k | mkfwimage XS2-8 -v XS2.ar2316
+endef
+TARGET_DEVICES += ubnt_picostation-2
+
+define Device/ubnt_nanostation-2
+ DEVICE_VENDOR := Ubiquiti
+ DEVICE_MODEL := Nanostation 2 (XS2)
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 128k | mkfwimage XS2 -v XS2.ar2316
+ DEFAULT := n
+endef
+TARGET_DEVICES += ubnt_nanostation-2
+
+define Device/ubnt_nanostation-5
+ DEVICE_VENDOR := Ubiquiti
+ DEVICE_MODEL := Nanostation 5 (XS5)
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 128k | mkfwimage XS5 -v XS5.ar2313
+ DEFAULT := n
+endef
+TARGET_DEVICES += ubnt_nanostation-5
+
+define Device/compex_np25g
+ DEVICE_VENDOR := Compex
+ DEVICE_MODEL := NP25G
+ KERNEL := kernel-bin | gzip-kernel
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 128k | mkmylofw np25g
+ BROKEN := y
+endef
+TARGET_DEVICES += compex_np25g
+
+define Device/compex_wpe53g
+ DEVICE_VENDOR := Compex
+ DEVICE_MODEL := WPE53G
+ KERNEL := kernel-bin | gzip-kernel
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 128k | mkmylofw wpe53g
+ BROKEN := y
endef
+TARGET_DEVICES += compex_wpe53g
$(eval $(call BuildImage))