-a 1024
endef
+define Image/Build/Compex
+ $(CP) $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(3)-$(2).trx
+endef
+
+define Image/Build/Edimax
+ $(STAGING_DIR)/bin/mksyshdr csys $(KDIR)/vmlinux
+ cat csys $(KDIR)/vmlinux $(KDIR)/root.$(1) > $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(3)-$(2).img
+endef
+
define Image/Build
$(STAGING_DIR)/bin/trx -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx -f $(KDIR)/loader.gz -f $(KDIR)/vmlinux.lzma $(call trxalign/$(1)) -f $(KDIR)/root.$(1)
+ifneq ($(1),jffs2-128K)
+ $(call Image/Build/Compex,$(1),wp54g,$(patsubst jffs2-%,jffs2,$(1)))
+ $(call Image/Build/Edimax,$(1),br6104,$(patsubst jffs2-%,jffs2,$(1)))
+endif
endef
$(eval $(call BuildImage))
--- /dev/null
+#include <stdlib.h>\r
+#include <stdio.h>\r
+int main(int argc, char* argv[])\r
+{\r
+ FILE* fp;\r
+ long nImgSize;\r
+ char* pHeader1 = "CSYS";\r
+ long nHeader2 = 0x80500000;\r
+\r
+ if (argc != 3)\r
+ {\r
+ printf("Usage: mksyshdr <header file> <image file>\n");\r
+ return -1;\r
+ }\r
+\r
+ fp = fopen(argv[2], "rb");\r
+ if (fp != NULL)\r
+ {\r
+ fseek(fp, 0, SEEK_END);\r
+ nImgSize = ftell(fp);\r
+ fclose(fp);\r
+ fp = fopen(argv[1], "wb+");\r
+ if (fp != NULL)\r
+ {\r
+ fwrite(pHeader1, sizeof(char), 4, fp);\r
+ fwrite(&nHeader2, sizeof(long), 1, fp);\r
+ fwrite(&nImgSize, sizeof(long), 1, fp);\r
+ fclose(fp);\r
+ }\r
+ else\r
+ {\r
+ printf("Cannot create %s.\n", argv[1]);\r
+ return -1;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ printf("Cannot open %s.\n", argv[2]);\r
+ return -1;\r
+ }\r
+\r
+ return 0;\r
+}\r
+\r