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
=$$$$(perl
-we
'print((-s"$(KDIR)/bzImage")+0x8014)')
43 $(RM
) $(KDIR
)/root.tmp
$(KDIR
)/root2.tmp
44 $(call add_jffs2_mark
,$(KDIR
)/root.squashfs
)
47 define Image
/Build
/wl153
48 echo
-ne
"\0\0" >> $(KDIR
)/bzImage
49 dd if
=$(KDIR
)/bzImage of
=$(KDIR
)/bzImage.tmp bs
=4 conv
=sync
50 dd if
=$(KDIR
)/bzImage.tmp of
=$(KDIR
)/bzImage bs
=1 count
=$$$$(perl
-we
'print((-s"$(KDIR)/bzImage.tmp")-2)')
51 perl
-we
'while(<>){$$$$i.=$$$$_}print pack"v",-(unpack"%v*",$$$$i)' < $(KDIR
)/bzImage.tmp
>> $(KDIR
)/bzImage
52 $(RM
) $(KDIR
)/bzImage.tmp
53 $(call Image
/Prepare
/wl153
/$(1))
54 perl
-we
'print "CSYS",pack("V",-s"$(KDIR)/bzImage"),pack("V",-s"$(KDIR)/root.$(1)"),"WRRM",pack("V",-s"$(KDIR)/bzImage")' > $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
55 cat
$(KDIR
)/bzImage
$(KDIR
)/root.
$(1) >> $(BIN_DIR
)/openwrt-
$(BOARD
)-$(1)-$(2).img
56 if
[ `perl -we 'print -s"$(BIN_DIR)/openwrt-$(BOARD)-$(1)-$(2).img"'` -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
/Prepare
/amit
/squashfs
79 echo
-n
"0123456789abcdef" > $(KDIR
)/root.tmp
80 cat
$(KDIR
)/root.squashfs
>> $(KDIR
)/root.tmp
81 dd if
=$(KDIR
)/root.tmp of
=$(KDIR
)/root2.tmp bs
=64k conv
=sync
82 dd if
=$(KDIR
)/root2.tmp of
=$(KDIR
)/root.squashfs bs
=1 skip
=16
83 $(RM
) $(KDIR
)/root.tmp
$(KDIR
)/root2.tmp
84 $(call add_jffs2_mark
,$(KDIR
)/root.squashfs
)
87 define Image
/Build
/amit
88 $(call Image
/Prepare
/amit
/$(1))
89 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
90 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" ||
:
91 $(RM
) -r
$(KDIR
)/amit.tmp
92 $(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)
95 define Image
/Build
/Initramfs
96 $(CP
) $(KDIR
)/bzImage
$(BIN_DIR
)/openwrt-
$(BOARD
)-ramfs.bzImage
100 $(CP
) $(KDIR
)/bzImage
$(BIN_DIR
)/openwrt-
$(BOARD
).bzImage
101 $(call Image
/Build
/$(SUBTARGET
),$(1),$(SUBTARGET
),$(patsubst jffs2-
%k
,%,$(1)))
102 ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),y
)
103 $(call Image
/Build
/Initramfs
)
107 $(eval
$(call BuildImage
))