Cleaned up build process, added lzma bin for x86_64
[oweals/u-boot_mod.git] / Makefile
1 SHELL = bash
2
3 HOSTARCH := $(shell uname -m | \
4         sed -e s/i.86/x86_32/      \
5             -e s/sun4u/sparc64/    \
6             -e s/arm.*/arm/        \
7             -e s/sa110/arm/        \
8             -e s/powerpc/ppc/      \
9             -e s/macppc/ppc/)
10
11 HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
12             sed -e 's/\(cygwin\).*/cygwin/')
13
14 ifneq ($(HOSTOS), darwin)
15   ifneq ($(HOSTOS), linux)
16     $(error Error! Unsupported host operating system/arch: "$(HOSTOS)-$(HOSTARCH)")
17   endif
18 endif
19
20 export HOSTOS
21 export HOSTARCH
22 export BUILD_TOPDIR=$(PWD)
23 export STAGING_DIR=$(BUILD_TOPDIR)/tmp
24
25 # --------------------------------------------------------------------------
26 # Define absolute path to your toolchain directory here, for example:
27 #
28 # export TOOLCHAIN_DIR:=/home/user/toolchain-mips_34kc_gcc-5.4.0_musl-1.1.15
29 # export PATH:=$(TOOLCHAIN_DIR)/bin:$(PATH)
30 # --------------------------------------------------------------------------
31
32 ifndef CROSS_COMPILE
33 CROSS_COMPILE = mips-openwrt-linux-musl-
34 endif
35 export CROSS_COMPILE
36
37 export MAKECMD=make --silent --no-print-directory ARCH=mips
38
39 # boot delay (time to autostart boot command)
40 export CONFIG_BOOTDELAY=1
41
42 # uncomment following line, to disable output in U-Boot console
43 #export DISABLE_CONSOLE_OUTPUT=1
44
45 # uncomment following line, to build RAM version images (without low level initialization)
46 #export CONFIG_SKIP_LOWLEVEL_INIT=1
47
48 tplink_mr3020:  export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3020
49 tplink_mr3020:  export CONFIG_MAX_UBOOT_SIZE_KB=123
50 ifndef CONFIG_SKIP_LOWLEVEL_INIT
51 tplink_mr3020:  export COMPRESSED_UBOOT=1
52 endif
53 tplink_mr3020:
54         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3020_config
55         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
56         @make --no-print-directory show_size
57
58 tplink_wr703n:  export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr703n
59 tplink_wr703n:  export CONFIG_MAX_UBOOT_SIZE_KB=123
60 ifndef CONFIG_SKIP_LOWLEVEL_INIT
61 tplink_wr703n:  export COMPRESSED_UBOOT=1
62 endif
63 tplink_wr703n:
64         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr703n_config
65         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
66         @make --no-print-directory show_size
67
68 tplink_wr720n_v3_CN:    export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr720n_v3_CN
69 tplink_wr720n_v3_CN:    export CONFIG_MAX_UBOOT_SIZE_KB=123
70 ifndef CONFIG_SKIP_LOWLEVEL_INIT
71 tplink_wr720n_v3_CN:    export COMPRESSED_UBOOT=1
72 endif
73 tplink_wr720n_v3_CN:
74         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr720n_v3_CN_config
75         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
76         @make --no-print-directory show_size
77
78 tplink_wr710n:  export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr710n
79 tplink_wr710n:  export CONFIG_MAX_UBOOT_SIZE_KB=123
80 ifndef CONFIG_SKIP_LOWLEVEL_INIT
81 tplink_wr710n:  export COMPRESSED_UBOOT=1
82 endif
83 tplink_wr710n:
84         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr710n_config
85         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
86         @make --no-print-directory show_size
87
88 tplink_mr3040:  export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3040
89 tplink_mr3040:  export CONFIG_MAX_UBOOT_SIZE_KB=123
90 ifndef CONFIG_SKIP_LOWLEVEL_INIT
91 tplink_mr3040:  export COMPRESSED_UBOOT=1
92 endif
93 tplink_mr3040:
94         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3040_config
95         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
96         @make --no-print-directory show_size
97
98 tplink_mr10u:   export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr10u
99 tplink_mr10u:   export CONFIG_MAX_UBOOT_SIZE_KB=123
100 ifndef CONFIG_SKIP_LOWLEVEL_INIT
101 tplink_mr10u:   export COMPRESSED_UBOOT=1
102 endif
103 tplink_mr10u:
104         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr10u_config
105         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
106         @make --no-print-directory show_size
107
108 tplink_mr13u:   export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr13u
109 tplink_mr13u:   export CONFIG_MAX_UBOOT_SIZE_KB=123
110 ifndef CONFIG_SKIP_LOWLEVEL_INIT
111 tplink_mr13u:   export COMPRESSED_UBOOT=1
112 endif
113 tplink_mr13u:
114         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr13u_config
115         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
116         @make --no-print-directory show_size
117
118 tplink_wr740n_v4:       export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr740n_v4
119 tplink_wr740n_v4:       export CONFIG_MAX_UBOOT_SIZE_KB=123
120 ifndef CONFIG_SKIP_LOWLEVEL_INIT
121 tplink_wr740n_v4:       export COMPRESSED_UBOOT=1
122 endif
123 tplink_wr740n_v4:
124         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr740n_v4_config
125         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
126         @make --no-print-directory show_size
127
128 tplink_mr3220_v2:       export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3220_v2
129 tplink_mr3220_v2:       export CONFIG_MAX_UBOOT_SIZE_KB=123
130 ifndef CONFIG_SKIP_LOWLEVEL_INIT
131 tplink_mr3220_v2:       export COMPRESSED_UBOOT=1
132 endif
133 tplink_mr3220_v2:
134         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3220_v2_config
135         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
136         @make --no-print-directory show_size
137
138 tplink_wdr3600_43x0:    export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wdr3600-43x0
139 tplink_wdr3600_43x0:    export CONFIG_MAX_UBOOT_SIZE_KB=123
140 ifndef CONFIG_SKIP_LOWLEVEL_INIT
141 tplink_wdr3600_43x0:    export COMPRESSED_UBOOT=1
142 endif
143 tplink_wdr3600_43x0:    export ETH_CONFIG=_s17
144 tplink_wdr3600_43x0:
145         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wdr3600_43x0_config
146         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
147         @make --no-print-directory show_size
148
149 tplink_wdr3500: export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wdr3500
150 tplink_wdr3500: export CONFIG_MAX_UBOOT_SIZE_KB=123
151 ifndef CONFIG_SKIP_LOWLEVEL_INIT
152 tplink_wdr3500: export COMPRESSED_UBOOT=1
153 endif
154 tplink_wdr3500: export ETH_CONFIG=_s27
155 tplink_wdr3500:
156         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wdr3500_config
157         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
158         @make --no-print-directory show_size
159
160 tplink_mr3420_v2:       export UBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3420_v2
161 tplink_mr3420_v2:       export CONFIG_MAX_UBOOT_SIZE_KB=123
162 ifndef CONFIG_SKIP_LOWLEVEL_INIT
163 tplink_mr3420_v2:       export COMPRESSED_UBOOT=1
164 endif
165 tplink_mr3420_v2:       export ETH_CONFIG=_s27
166 tplink_mr3420_v2:
167         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) mr3420_v2_config
168         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
169         @make --no-print-directory show_size
170
171 tplink_wr841n_v8:       export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr841n_v8
172 tplink_wr841n_v8:       export CONFIG_MAX_UBOOT_SIZE_KB=123
173 ifndef CONFIG_SKIP_LOWLEVEL_INIT
174 tplink_wr841n_v8:       export COMPRESSED_UBOOT=1
175 endif
176 tplink_wr841n_v8:       export ETH_CONFIG=_s27
177 tplink_wr841n_v8:
178         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr841n_v8_config
179         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
180         @make --no-print-directory show_size
181
182 tplink_wr841n_v9:       export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr841n_v9
183 tplink_wr841n_v9:       export CONFIG_MAX_UBOOT_SIZE_KB=123
184 ifndef CONFIG_SKIP_LOWLEVEL_INIT
185 tplink_wr841n_v9:       export COMPRESSED_UBOOT=1
186 endif
187 tplink_wr841n_v9:       export ETH_CONFIG=_s27
188 tplink_wr841n_v9:
189         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr841n_v9_config
190         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
191         @make --no-print-directory show_size
192
193 tplink_wa830re_v2_wa801nd_v2:   export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wa830re_v2_tl-wa801nd_v2
194 tplink_wa830re_v2_wa801nd_v2:   export CONFIG_MAX_UBOOT_SIZE_KB=123
195 ifndef CONFIG_SKIP_LOWLEVEL_INIT
196 tplink_wa830re_v2_wa801nd_v2:   export COMPRESSED_UBOOT=1
197 endif
198 tplink_wa830re_v2_wa801nd_v2:   export ETH_CONFIG=_s27
199 tplink_wa830re_v2_wa801nd_v2:
200         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wa830re_v2_wa801nd_v2_config
201         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
202         @make --no-print-directory show_size
203
204 tplink_wr820n_CN:       export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr820n_CN
205 tplink_wr820n_CN:       export CONFIG_MAX_UBOOT_SIZE_KB=123
206 ifndef CONFIG_SKIP_LOWLEVEL_INIT
207 tplink_wr820n_CN:       export COMPRESSED_UBOOT=1
208 endif
209 tplink_wr820n_CN:       export ETH_CONFIG=_s27
210 tplink_wr820n_CN:
211         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr820n_CN_config
212         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
213         @make --no-print-directory show_size
214
215 tplink_wr802n:  export UBOOT_FILE_NAME=uboot_for_tp-link_tl-wr802n
216 tplink_wr802n:  export CONFIG_MAX_UBOOT_SIZE_KB=123
217 ifndef CONFIG_SKIP_LOWLEVEL_INIT
218 tplink_wr802n:  export COMPRESSED_UBOOT=1
219 endif
220 tplink_wr802n:  export ETH_CONFIG=_s27
221 tplink_wr802n:
222         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) wr802n_config
223         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
224         @make --no-print-directory show_size
225
226 dlink_dir505:   export UBOOT_FILE_NAME=uboot_for_d-link_dir-505
227 dlink_dir505:   export CONFIG_MAX_UBOOT_SIZE_KB=64
228 ifndef CONFIG_SKIP_LOWLEVEL_INIT
229 dlink_dir505:   export COMPRESSED_UBOOT=1
230 endif
231 dlink_dir505:
232         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) dir505_config
233         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
234         @make --no-print-directory show_size
235
236 gs-oolite_v1_dev:       export UBOOT_FILE_NAME=uboot_for_gs-oolite_v1_dev
237 gs-oolite_v1_dev:       export CONFIG_MAX_UBOOT_SIZE_KB=123
238 ifndef CONFIG_SKIP_LOWLEVEL_INIT
239 gs-oolite_v1_dev:       export COMPRESSED_UBOOT=1
240 endif
241 gs-oolite_v1_dev:
242         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) gs_oolite_v1_dev_config
243         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
244         @make --no-print-directory show_size
245
246 8devices_carambola2:    export UBOOT_FILE_NAME=uboot_for_8devices_carambola2
247 8devices_carambola2:    export CONFIG_MAX_UBOOT_SIZE_KB=256
248 8devices_carambola2:
249         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) carambola2_config
250         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
251         @make --no-print-directory show_size
252
253 dragino_v2_ms14:        export UBOOT_FILE_NAME=uboot_for_dragino_v2_ms14
254 dragino_v2_ms14:        export CONFIG_MAX_UBOOT_SIZE_KB=192
255 dragino_v2_ms14:        export DEVICE_VENDOR=dragino
256 dragino_v2_ms14:
257         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) dragino_v2_ms14_config
258         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
259         @make --no-print-directory show_size
260
261 black_swift_board:      export UBOOT_FILE_NAME=uboot_for_black_swift_board
262 black_swift_board:      export CONFIG_MAX_UBOOT_SIZE_KB=128
263 black_swift_board:      export COMPRESSED_UBOOT=1
264 black_swift_board:      export DEVICE_VENDOR=SE
265 black_swift_board:
266         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) black_swift_board_config
267         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
268         @make --no-print-directory show_size
269
270 villagetelco_mp2:       export UBOOT_FILE_NAME=uboot_for_villagetelco_mp2
271 villagetelco_mp2:       export CONFIG_MAX_UBOOT_SIZE_KB=192
272 villagetelco_mp2:       export DEVICE_VENDOR=villagetelco
273 villagetelco_mp2:
274         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) villagetelco_mp2_config
275         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
276         @make --no-print-directory show_size
277
278 gl-inet:        export UBOOT_FILE_NAME=uboot_for_gl-inet
279 gl-inet:        export CONFIG_MAX_UBOOT_SIZE_KB=123
280 ifndef CONFIG_SKIP_LOWLEVEL_INIT
281 gl-inet:        export COMPRESSED_UBOOT=1
282 endif
283 gl-inet:
284         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) gl-inet_config
285         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
286         @make --no-print-directory show_size
287
288 wallys_dr531:   export UBOOT_FILE_NAME=uboot_for_wallys_dr531
289 wallys_dr531:   export CONFIG_MAX_UBOOT_SIZE_KB=192
290 ifndef CONFIG_SKIP_LOWLEVEL_INIT
291 wallys_dr531:   export COMPRESSED_UBOOT=1
292 endif
293 wallys_dr531:   export ETH_CONFIG=_s27
294 wallys_dr531:
295         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) dr531_config
296         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) ENDIANNESS=-EB V=1 all
297         @make --no-print-directory show_size
298
299 ifdef CONFIG_SKIP_LOWLEVEL_INIT
300   ifdef DISABLE_CONSOLE_OUTPUT
301 show_size:      export UBOOT_FILE_NAME_SUFFIX=__SILENT-CONSOLE__RAM
302   else
303 show_size:      export UBOOT_FILE_NAME_SUFFIX=__RAM
304   endif
305 else
306   ifdef DISABLE_CONSOLE_OUTPUT
307 show_size:      export UBOOT_FILE_NAME_SUFFIX=__SILENT-CONSOLE
308   endif
309 endif
310 show_size:
311 ifdef COMPRESSED_UBOOT
312         @cp $(BUILD_TOPDIR)/u-boot/tuboot.bin $(BUILD_TOPDIR)/bin/temp.bin
313 else
314         @cp $(BUILD_TOPDIR)/u-boot/u-boot.bin $(BUILD_TOPDIR)/bin/temp.bin
315 endif
316         @echo -ne "\e[32m"
317 ifndef CONFIG_SKIP_LOWLEVEL_INIT
318         @echo "> Preparing $(CONFIG_MAX_UBOOT_SIZE_KB)KB file filled with 0xFF..."
319         @`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`
320         @echo "> Copying U-Boot image..."
321         @`dd if=$(BUILD_TOPDIR)/bin/temp.bin of=$(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin conv=notrunc 2> /dev/null`
322         @`rm $(BUILD_TOPDIR)/bin/temp.bin`
323 else
324         @echo "> Copying U-Boot image..."
325         @`mv $(BUILD_TOPDIR)/bin/temp.bin $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin`
326 endif
327         @echo "> U-Boot image ready, size:" `wc -c < $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin`" bytes"
328         @`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`
329         @`echo ' *'$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin >> $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).md5`
330 # Do not check image size for RAM version
331 ifndef CONFIG_SKIP_LOWLEVEL_INIT
332         @if [ "`wc -c < $(BUILD_TOPDIR)/bin/$(UBOOT_FILE_NAME)$(UBOOT_FILE_NAME_SUFFIX).bin`" -gt "`echo '$(CONFIG_MAX_UBOOT_SIZE_KB)*1024' | bc`" ]; then \
333                         echo -e "\e[31m\n**************************************************"; \
334                         echo "*     WARNING: U-BOOT IMAGE SIZE IS TOO BIG!     *"; \
335                         echo -e "**************************************************"; \
336         fi;
337 endif
338         @echo -ne "\e[0m"
339
340 clean:
341         @cd $(BUILD_TOPDIR)/u-boot/ && $(MAKECMD) --no-print-directory distclean
342         @rm -f $(BUILD_TOPDIR)/u-boot/httpd/fsdata.c
343
344 clean_all:      clean
345         @echo -e "\e[32m> Removing all binary images...\e[0m"
346         @rm -f $(BUILD_TOPDIR)/bin/*.bin
347         @rm -f $(BUILD_TOPDIR)/bin/*.md5