2 # Copyright (C) 2006-2009 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
8 include $(INCLUDE_DIR
)/image.mk
11 $(CP
) $(LINUX_DIR
)/arch
/x86
/boot
/bzImage
$(KDIR
)/bzImage
14 define trxalign
/jffs2-128k
17 define trxalign
/jffs2-64k
20 define trxalign
/squashfs
24 define Image
/Prepare
/squashfs
25 $(call prepare_generic_squashfs
,$(KDIR
)/root.squashfs
)
28 define Image
/Build
/ar525w
29 touch
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
30 touch
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2)-web.img
31 dd if
=$(KDIR
)/root.
$(1) of
=$(KDIR
)/root.tmp
$(call trxalign
/$(1)) conv
=sync
32 mv
$(KDIR
)/root.tmp
$(KDIR
)/root.
$(1)
33 $(STAGING_DIR_HOST
)/bin
/airlink
-b
1 -j
$(shell bash
-c
'echo $$[$(3)]') $(KDIR
)/bzImage
$(KDIR
)/root.
$(1) $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
34 $(STAGING_DIR_HOST
)/bin
/airlink
-e
-b
1 -j
$(shell bash
-c
'echo $$[$(3)]') $(KDIR
)/bzImage
$(KDIR
)/root.
$(1) $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2)-web.img
37 define Image
/Prepare
/wl153
/squashfs
38 dd if
=/dev
/null of
=$(KDIR
)/root.tmp seek
=1 bs
=32k
39 echo
-n
"0123456789abcdef0123" >> $(KDIR
)/root.tmp
40 cat
$(KDIR
)/bzImage
$(KDIR
)/root.squashfs
>> $(KDIR
)/root.tmp
41 dd if
=$(KDIR
)/root.tmp of
=$(KDIR
)/root2.tmp bs
=64k conv
=sync
42 dd if
=$(KDIR
)/root2.tmp of
=$(KDIR
)/root.squashfs bs
=1 skip
=$$$$[0x
$$$$(cat
$(KDIR
)/bzSize
) + 0x8014]
43 $(call add_jffs2_mark
,$(KDIR
)/root.squashfs
)
46 define Image
/Build
/wl153
47 ls
-l
$(KDIR
)/bzImage | sed
-r
's/^[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+([^[:blank:]]+).+$$$$/\1/' | xargs printf
'%.8x' > $(KDIR
)/bzSize
48 $(call Image
/Prepare
/wl153
/$(1))
49 ls
-l
$(KDIR
)/root.
$(1) | sed
-r
's/^[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+([^[:blank:]]+).+$$$$/\1/' | xargs printf
'%.8x' > $(KDIR
)/rdSize
50 echo
-ne
"\x$$$$(cut -c 7,8 < $(KDIR)/bzSize)\x$$$$(cut -c 5,6 < $(KDIR)/bzSize)\x$$$$(cut -c 3,4 < $(KDIR)/bzSize)\x$$$$(cut -c 1,2 < $(KDIR)/bzSize)" > $(KDIR
)/bzSize.tmp
51 echo
-n
'CSYS' > $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
52 cat
$(KDIR
)/bzSize.tmp
>> $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
53 echo
-ne
"\x$$$$(cut -c 7,8 < $(KDIR)/rdSize)\x$$$$(cut -c 5,6 < $(KDIR)/rdSize)\x$$$$(cut -c 3,4 < $(KDIR)/rdSize)\x$$$$(cut -c 1,2 < $(KDIR)/rdSize)WRRM" >> $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
54 cat
$(KDIR
)/bzSize.tmp
$(KDIR
)/bzImage
$(KDIR
)/root.
$(1) >> $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
55 $(RM
) $(KDIR
)/bzSize.tmp
$(KDIR
)/bzSize
$(KDIR
)/rdSize
56 if
[ `ls -l $(BIN_DIR)/openwrt-$(BOARD)-$(1)-$(2).img | sed -r 's/^[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+[^[:blank:]]+[[:blank:]]+([^[:blank:]]+).+$$$$/\1/'` -gt
$$$$((0xffff0000-0xffe08000)) ]; then mv
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img.too_big
; echo
"#ERR image too big"; fi
59 define Image
/Build
/dir450
60 touch
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
61 dd if
=$(KDIR
)/root.
$(1) of
=$(KDIR
)/root.tmp
$(call trxalign
/$(1)) conv
=sync
62 mv
$(KDIR
)/root.tmp
$(KDIR
)/root.
$(1)
63 $(CP
) $(KDIR
)/root.
$(1) $(BIN_DIR
)/onlyrootfs-
$(BOARD
)-$(1)-$(2).img
66 define Image
/Build
/g570s
67 $(call Image
/Prepare
/$(1))
68 mv
$(KDIR
)/root.
$(1) $(KDIR
)/root.tmp
69 dd of
=$(KDIR
)/root.
$(1) if
=$(KDIR
)/root.tmp
$(call trxalign
/$(1)) conv
=sync
70 $(CP
) $(KDIR
)/bzImage
$(BIN_DIR
)/openwrt-tftp-
$(BOARD
)-$(1)-$(2).img
71 dd of
=$(BIN_DIR
)/openwrt-tftp-
$(BOARD
)-$(1)-$(2).img if
=/dev
/null bs
=1024 seek
=1024
72 cat
$(KDIR
)/root.
$(1) >> $(BIN_DIR
)/openwrt-tftp-
$(BOARD
)-$(1)-$(2).img
73 if
[ ! -x
$(STAGING_DIR_HOST
)/bin
/zyxel_combine
]; then echo
"#ERR Please copy the ZyXEL \"combine\" tool as $(STAGING_DIR_HOST)/bin/zyxel_combine to build."; fi
74 sh
-c
"mkdir $(KDIR)/zyxel.tmp && cd $(KDIR)/zyxel.tmp && mv ../root.tmp initrd.bin && cp ../bzImage kernel.bin && $(STAGING_DIR_HOST)/bin/zyxel_combine -mcf kernel.bin initrd.bin && mv image $(BIN_DIR)/openwrt-$(BOARD)-$(1)-$(2).rmt" ||
:
75 $(RM
) -r
$(KDIR
)/zyxel.tmp
78 define Image
/Build
/amit
79 $(call Image
/Prepare
/$(1))
80 if
[ ! -x
$(STAGING_DIR_HOST
)/bin
/amit_makebin
]; then echo
"#ERR Please copy the AMIT \"makebin\" tool from http://mgb111.pradnik.net/ as $(STAGING_DIR_HOST)/bin/amit_makebin to build."; fi
81 sh
-c
"mkdir -p $(KDIR)/amit.tmp/linux_src/arch/i386/boot $(KDIR)/amit.tmp/rom_disk && cd $(KDIR)/amit.tmp && ln -s ../../root.$(1) rom_disk/fs.img && ln -s ../../../../../bzImage linux_src/arch/i386/boot && $(STAGING_DIR_HOST)/bin/amit_makebin && mv upgrade.img $(BIN_DIR)/openwrt-$(BOARD)-$(1)-anas350.bin" ||
:
82 $(RM
) -r
$(KDIR
)/amit.tmp
83 $(STAGING_DIR_HOST
)/bin
/makeamitbin
-o
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-ar360w3g.bin
-1 ALK_ATG001
-2 Atropos linux3g
$(KDIR
)/bzImage ramdisk3g
$(KDIR
)/root.
$(1)
86 define Image
/Build
/Initramfs
87 $(CP
) $(KDIR
)/bzImage
$(BIN_DIR
)/openwrt-
$(BOARD
)-ramfs.bzImage
91 $(CP
) $(KDIR
)/bzImage
$(BIN_DIR
)/openwrt-
$(BOARD
).bzImage
92 $(call Image
/Build
/$(PROFILE
),$(1),$(PROFILE
),$(patsubst jffs2-
%k
,%,$(1)))
93 ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),y
)
94 $(call Image
/Build
/Initramfs
)
98 $(eval
$(call BuildImage
))