2 UNAME_S := $(shell uname -s)
4 ifeq ($(UNAME_S), Darwin)
6 else ifeq ($(UNAME_S), Linux)
9 $(error Error! Unsupported Host Operating System!)
12 export BUILD_TOPDIR=$(PWD)
13 export STAGING_DIR=$(BUILD_TOPDIR)/tmp
16 CROSS_COMPILE = mips-openwrt-linux-musl-
20 export MAKECMD=make --silent --no-print-directory ARCH=mips
22 # boot delay (time to autostart boot command)
23 export CONFIG_BOOTDELAY=1
25 # uncomment following line, to disable output in U-Boot console
26 #export DISABLE_CONSOLE_OUTPUT=1
28 # uncomment following line, to build RAM version images (without low level initialization)
29 #export CONFIG_SKIP_LOWLEVEL_INIT=1
31 tplink_mr3020: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3020
32 tplink_mr3020: export CONFIG_MAX_UBOOT_SIZE_KB=123
33 ifndef CONFIG_SKIP_LOWLEVEL_INIT
34 tplink_mr3020: export COMPRESSED_UBOOT=1
37 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3020_config
38 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
39 @make --no-print-directory show_size
41 tplink_wr703n: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr703n
42 tplink_wr703n: export CONFIG_MAX_UBOOT_SIZE_KB=123
43 ifndef CONFIG_SKIP_LOWLEVEL_INIT
44 tplink_wr703n: export COMPRESSED_UBOOT=1
47 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr703n_config
48 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
49 @make --no-print-directory show_size
51 tplink_wr720n_v3_CN: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr720n_v3_CN
52 tplink_wr720n_v3_CN: export CONFIG_MAX_UBOOT_SIZE_KB=123
53 ifndef CONFIG_SKIP_LOWLEVEL_INIT
54 tplink_wr720n_v3_CN: export COMPRESSED_UBOOT=1
57 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr720n_v3_CN_config
58 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
59 @make --no-print-directory show_size
61 tplink_wr710n: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr710n
62 tplink_wr710n: export CONFIG_MAX_UBOOT_SIZE_KB=123
63 ifndef CONFIG_SKIP_LOWLEVEL_INIT
64 tplink_wr710n: export COMPRESSED_UBOOT=1
67 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr710n_config
68 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
69 @make --no-print-directory show_size
71 tplink_mr3040: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3040
72 tplink_mr3040: export CONFIG_MAX_UBOOT_SIZE_KB=123
73 ifndef CONFIG_SKIP_LOWLEVEL_INIT
74 tplink_mr3040: export COMPRESSED_UBOOT=1
77 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3040_config
78 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
79 @make --no-print-directory show_size
81 tplink_mr10u: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr10u
82 tplink_mr10u: export CONFIG_MAX_UBOOT_SIZE_KB=123
83 ifndef CONFIG_SKIP_LOWLEVEL_INIT
84 tplink_mr10u: export COMPRESSED_UBOOT=1
87 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr10u_config
88 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
89 @make --no-print-directory show_size
91 tplink_mr13u: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr13u
92 tplink_mr13u: export CONFIG_MAX_UBOOT_SIZE_KB=123
93 ifndef CONFIG_SKIP_LOWLEVEL_INIT
94 tplink_mr13u: export COMPRESSED_UBOOT=1
97 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr13u_config
98 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
99 @make --no-print-directory show_size
101 tplink_wr740n_v4: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr740n_v4
102 tplink_wr740n_v4: export CONFIG_MAX_UBOOT_SIZE_KB=123
103 ifndef CONFIG_SKIP_LOWLEVEL_INIT
104 tplink_wr740n_v4: export COMPRESSED_UBOOT=1
107 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr740n_v4_config
108 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
109 @make --no-print-directory show_size
111 tplink_mr3220_v2: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3220_v2
112 tplink_mr3220_v2: export CONFIG_MAX_UBOOT_SIZE_KB=123
113 ifndef CONFIG_SKIP_LOWLEVEL_INIT
114 tplink_mr3220_v2: export COMPRESSED_UBOOT=1
117 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3220_v2_config
118 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
119 @make --no-print-directory show_size
121 tplink_wdr3600_43x0: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wdr3600-43x0
122 tplink_wdr3600_43x0: export CONFIG_MAX_UBOOT_SIZE_KB=123
123 ifndef CONFIG_SKIP_LOWLEVEL_INIT
124 tplink_wdr3600_43x0: export COMPRESSED_UBOOT=1
126 tplink_wdr3600_43x0: export ETH_CONFIG=_s17
128 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wdr3600_43x0_config
129 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
130 @make --no-print-directory show_size
132 tplink_wdr3500: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wdr3500
133 tplink_wdr3500: export CONFIG_MAX_UBOOT_SIZE_KB=123
134 ifndef CONFIG_SKIP_LOWLEVEL_INIT
135 tplink_wdr3500: export COMPRESSED_UBOOT=1
137 tplink_wdr3500: export ETH_CONFIG=_s27
139 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wdr3500_config
140 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
141 @make --no-print-directory show_size
143 tplink_mr3420_v2: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3420_v2
144 tplink_mr3420_v2: export CONFIG_MAX_UBOOT_SIZE_KB=123
145 ifndef CONFIG_SKIP_LOWLEVEL_INIT
146 tplink_mr3420_v2: export COMPRESSED_UBOOT=1
148 tplink_mr3420_v2: export ETH_CONFIG=_s27
150 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3420_v2_config
151 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
152 @make --no-print-directory show_size
154 tplink_wr841n_v8: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr841n_v8
155 tplink_wr841n_v8: export CONFIG_MAX_UBOOT_SIZE_KB=123
156 ifndef CONFIG_SKIP_LOWLEVEL_INIT
157 tplink_wr841n_v8: export COMPRESSED_UBOOT=1
159 tplink_wr841n_v8: export ETH_CONFIG=_s27
161 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr841n_v8_config
162 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
163 @make --no-print-directory show_size
165 tplink_wr841n_v9: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr841n_v9
166 tplink_wr841n_v9: export CONFIG_MAX_UBOOT_SIZE_KB=123
167 ifndef CONFIG_SKIP_LOWLEVEL_INIT
168 tplink_wr841n_v9: export COMPRESSED_UBOOT=1
170 tplink_wr841n_v9: export ETH_CONFIG=_s27
172 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr841n_v9_config
173 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
174 @make --no-print-directory show_size
176 tplink_wa830re_v2_wa801nd_v2: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wa830re_v2_tl-wa801nd_v2
177 tplink_wa830re_v2_wa801nd_v2: export CONFIG_MAX_UBOOT_SIZE_KB=123
178 ifndef CONFIG_SKIP_LOWLEVEL_INIT
179 tplink_wa830re_v2_wa801nd_v2: export COMPRESSED_UBOOT=1
181 tplink_wa830re_v2_wa801nd_v2: export ETH_CONFIG=_s27
182 tplink_wa830re_v2_wa801nd_v2:
183 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wa830re_v2_wa801nd_v2_config
184 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
185 @make --no-print-directory show_size
187 tplink_wr820n_CN: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr820n_CN
188 tplink_wr820n_CN: export CONFIG_MAX_UBOOT_SIZE_KB=123
189 ifndef CONFIG_SKIP_LOWLEVEL_INIT
190 tplink_wr820n_CN: export COMPRESSED_UBOOT=1
192 tplink_wr820n_CN: export ETH_CONFIG=_s27
194 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr820n_CN_config
195 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
196 @make --no-print-directory show_size
198 tplink_wr802n: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr802n
199 tplink_wr802n: export CONFIG_MAX_UBOOT_SIZE_KB=123
200 ifndef CONFIG_SKIP_LOWLEVEL_INIT
201 tplink_wr802n: export COMPRESSED_UBOOT=1
203 tplink_wr802n: export ETH_CONFIG=_s27
205 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr802n_config
206 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
207 @make --no-print-directory show_size
209 dlink_dir505: export UBOOT_FILE_NAME=uboot_for_d-link_dir-505
210 dlink_dir505: export CONFIG_MAX_UBOOT_SIZE_KB=64
211 ifndef CONFIG_SKIP_LOWLEVEL_INIT
212 dlink_dir505: export COMPRESSED_UBOOT=1
215 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) dir505_config
216 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
217 @make --no-print-directory show_size
219 gs-oolite_v1_dev: export UBOOT_FILE_NAME=uboot_for_gs-oolite_v1_dev
220 gs-oolite_v1_dev: export CONFIG_MAX_UBOOT_SIZE_KB=123
221 ifndef CONFIG_SKIP_LOWLEVEL_INIT
222 gs-oolite_v1_dev: export COMPRESSED_UBOOT=1
225 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) gs_oolite_v1_dev_config
226 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
227 @make --no-print-directory show_size
229 8devices_carambola2: export UBOOT_FILE_NAME=uboot_for_8devices_carambola2
230 8devices_carambola2: export CONFIG_MAX_UBOOT_SIZE_KB=256
232 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) carambola2_config
233 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
234 @make --no-print-directory show_size
236 dragino_v2_ms14: export UBOOT_FILE_NAME=uboot_for_dragino_v2_ms14
237 dragino_v2_ms14: export CONFIG_MAX_UBOOT_SIZE_KB=192
238 dragino_v2_ms14: export DEVICE_VENDOR=dragino
240 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) dragino_v2_ms14_config
241 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
242 @make --no-print-directory show_size
244 black_swift_board: export UBOOT_FILE_NAME=uboot_for_black_swift_board
245 black_swift_board: export CONFIG_MAX_UBOOT_SIZE_KB=128
246 black_swift_board: export COMPRESSED_UBOOT=1
247 black_swift_board: export DEVICE_VENDOR=SE
249 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) black_swift_board_config
250 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
251 @make --no-print-directory show_size
253 villagetelco_mp2: export UBOOT_FILE_NAME=uboot_for_villagetelco_mp2
254 villagetelco_mp2: export CONFIG_MAX_UBOOT_SIZE_KB=192
255 villagetelco_mp2: export DEVICE_VENDOR=villagetelco
257 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) villagetelco_mp2_config
258 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
259 @make --no-print-directory show_size
261 gl-inet: export UBOOT_FILE_NAME=uboot_for_gl-inet
262 gl-inet: export CONFIG_MAX_UBOOT_SIZE_KB=123
263 ifndef CONFIG_SKIP_LOWLEVEL_INIT
264 gl-inet: export COMPRESSED_UBOOT=1
267 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) gl-inet_config
268 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
269 @make --no-print-directory show_size
271 wallys_dr531: export UBOOT_FILE_NAME=uboot_for_wallys_dr531
272 wallys_dr531: export CONFIG_MAX_UBOOT_SIZE_KB=192
273 ifndef CONFIG_SKIP_LOWLEVEL_INIT
274 wallys_dr531: export COMPRESSED_UBOOT=1
276 wallys_dr531: export ETH_CONFIG=_s27
278 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) dr531_config
279 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
280 @make --no-print-directory show_size
282 ifdef CONFIG_SKIP_LOWLEVEL_INIT
283 ifdef DISABLE_CONSOLE_OUTPUT
284 show_size: export UBOOT_FILE_NAME_SUFFIX=__SILENT-CONSOLE__RAM
286 show_size: export UBOOT_FILE_NAME_SUFFIX=__RAM
289 ifdef DISABLE_CONSOLE_OUTPUT
290 show_size: export UBOOT_FILE_NAME_SUFFIX=__SILENT-CONSOLE
294 ifdef COMPRESSED_UBOOT
295 @cp $(BUILD_TOPDIR)/u-boot/tuboot.bin $(BUILD_TOPDIR)/bin/temp.bin
297 @cp $(BUILD_TOPDIR)/u-boot/u-boot.bin $(BUILD_TOPDIR)/bin/temp.bin
300 ifndef CONFIG_SKIP_LOWLEVEL_INIT
301 @echo "> Preparing $(CONFIG_MAX_UBOOT_SIZE_KB)KB file filled with 0xFF..."
302 @`tr "\000" "\377" < /dev/zero | dd ibs=1k count=$(CONFIG_MAX_UBOOT_SIZE_KB) of=$(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin 2> /dev/null`
303 @echo "> Copying U-Boot image..."
304 @`dd if=$(BUILD_TOPDIR)/bin/temp.bin of=$(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin conv=notrunc 2> /dev/null`
305 @`rm $(BUILD_TOPDIR)/bin/temp.bin`
307 @echo "> Copying U-Boot image..."
308 @`mv $(BUILD_TOPDIR)/bin/temp.bin $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin`
310 @echo "> U-Boot image ready, size:" `wc -c < $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin`" bytes"
311 @`md5sum $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin | awk '{print $$1}' | tr -d '\n' > $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).md5`
312 @`echo ' *'$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin >> $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).md5`
313 # Do not check image size for RAM version
314 ifndef CONFIG_SKIP_LOWLEVEL_INIT
315 @if [ "`wc -c < $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin`" -gt "`echo '$(CONFIG_MAX_UBOOT_SIZE_KB)*1024' | bc`" ]; then \
316 echo -e "\e[31m\n**************************************************"; \
317 echo "* WARNING: U-BOOT IMAGE SIZE IS TOO BIG! *"; \
318 echo -e "**************************************************"; \
324 @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) --no-print-directory distclean
325 @rm -f $(BUILD_TOPDIR)/u-boot/httpd/fsdata.c
328 @echo -e "\e[32m> Removing all binary images...\e[0m"
329 @rm -f $(BUILD_TOPDIR)/bin/*.bin
330 @rm -f $(BUILD_TOPDIR)/bin/*.md5