rework firmware menu, we need to add some more options for images/filesystem
[openadk.git] / mk / vars.mk
blobe017dee9ede1dd8a530f7d74feab69fa0ccabfae
1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 CP= cp -fpR
5 INSTALL_DIR= install -d -m0755
6 INSTALL_DATA= install -m0644
7 INSTALL_BIN= install -m0755
8 INSTALL_SCRIPT= install -m0755
9 MAKEFLAGS= $(EXTRA_MAKEFLAGS)
10 BUILD_USER= $(shell id -un)
11 BUILD_GROUP= $(shell id -gn)
12 ADK_SUFFIX:= ${ADK_TARGET_SYSTEM}
13 ifneq ($(ADK_TARGET_LIBC),)
14 ADK_SUFFIX:= $(ADK_SUFFIX)_$(ADK_TARGET_LIBC)
15 endif
16 ifneq ($(ADK_TARGET_CPU_TYPE),)
17 ADK_SUFFIX:= $(ADK_SUFFIX)_$(ADK_TARGET_CPU_TYPE)
18 endif
19 ifneq ($(ADK_TARGET_ENDIAN_SUFFIX),)
20 ADK_SUFFIX:= $(ADK_SUFFIX)$(ADK_TARGET_ENDIAN_SUFFIX)
21 endif
22 ifneq ($(ADK_TARGET_FLOAT),)
23 ADK_SUFFIX:= $(ADK_SUFFIX)_$(ADK_TARGET_FLOAT)
24 endif
25 ifneq ($(ADK_TARGET_ABI),)
26 ADK_SUFFIX:= $(ADK_SUFFIX)_$(ADK_TARGET_ABI)
27 endif
28 ifneq ($(ADK_TARGET_BINFMT),)
29 ADK_SUFFIX:= $(ADK_SUFFIX)_$(ADK_TARGET_BINFMT)
30 endif
32 # some global dirs
33 BASE_DIR:= $(ADK_TOPDIR)
34 ifeq ($(ADK_DL_DIR),)
35 DL_DIR?= $(BASE_DIR)/dl
36 else
37 DL_DIR?= $(ADK_DL_DIR)
38 endif
39 SCRIPT_DIR:= $(BASE_DIR)/scripts
40 STAGING_HOST_DIR:= ${BASE_DIR}/host_${GNU_HOST_NAME}
41 HOST_BUILD_DIR:= ${BASE_DIR}/host_build_${GNU_HOST_NAME}
42 TOOLCHAIN_DIR:= ${BASE_DIR}/toolchain_${ADK_SUFFIX}
44 # dirs for cleandir
45 FW_DIR_PFX:= $(BASE_DIR)/firmware
46 BUILD_DIR_PFX:= $(BASE_DIR)/build_*
47 STAGING_PKG_DIR_PFX:= ${BASE_DIR}/pkg_*
48 STAGING_TARGET_DIR_PFX:=${BASE_DIR}/target_*
49 TOOLCHAIN_DIR_PFX= $(BASE_DIR)/toolchain_*
50 STAGING_HOST_DIR_PFX:= ${BASE_DIR}/host_*
51 TARGET_DIR_PFX:= $(BASE_DIR)/root_*
53 TARGET_DIR:= $(BASE_DIR)/root_${ADK_SUFFIX}
54 FW_DIR:= $(BASE_DIR)/firmware/${ADK_SUFFIX}
55 BUILD_DIR:= ${BASE_DIR}/build_${ADK_SUFFIX}
56 STAGING_TARGET_DIR:= ${BASE_DIR}/target_${ADK_SUFFIX}
57 STAGING_PKG_DIR:= ${BASE_DIR}/pkg_${ADK_SUFFIX}
58 STAGING_HOST2TARGET:= ../../target_${ADK_SUFFIX}
59 TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${ADK_SUFFIX}
60 PACKAGE_DIR:= $(FW_DIR)/packages
61 SCRIPT_TARGET_DIR:= ${STAGING_TARGET_DIR}/scripts
63 # PATH variables
64 TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}
65 HOST_PATH= ${SCRIPT_DIR}:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/sbin:${_PATH}
66 AUTOTOOL_PATH= ${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
68 ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
69 GCC_CHECK:= GCC_HONOUR_COPTS=2
70 else
71 GCC_CHECK:=
72 endif
74 ifeq ($(ADK_TARGET_UCLINUX),y)
75 ADK_TARGET_LINUXTYPE:= uclinux
76 else
77 ADK_TARGET_LINUXTYPE:= linux
78 endif
80 GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_LINUXTYPE)-$(ADK_TARGET_SUFFIX)
81 ifeq ($(ADK_TARGET_ARCH_C6X),y)
82 GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_LINUXTYPE)
83 endif
84 ifeq ($(ADK_TARGET_LIB_NEWLIB),y)
85 GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_SUFFIX)
86 endif
87 TARGET_CROSS:= $(TOOLCHAIN_DIR)/usr/bin/$(GNU_TARGET_NAME)-
88 TARGET_COMPILER_PREFIX?=${TARGET_CROSS}
89 CONFIGURE_TRIPLE:= --build=${GNU_HOST_NAME} \
90 --host=${GNU_TARGET_NAME} \
91 --target=${GNU_TARGET_NAME}
93 ifneq ($(strip ${ADK_USE_CCACHE}),)
94 TARGET_COMPILER_PREFIX=$(STAGING_HOST_DIR)/usr/bin/ccache ${TARGET_CROSS}
95 endif
97 # target tools
98 ifeq ($(ADK_BUILD_COMPILER_GCC),y)
99 TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc
100 TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++
101 endif
102 ifeq ($(ADK_BUILD_COMPILER_LLVM),y)
103 TARGET_CC:= clang --target=${GNU_TARGET_NAME} --sysroot=$(STAGING_TARGET_DIR)
104 TARGET_CXX:= clang++ --target=${GNU_TARGET_NAME} --sysroot=$(STAGING_TARGET_DIR)
105 endif
107 # for x86_64 x32 ABI we need to extend TARGET_CC/TARGET_CXX
108 ifeq ($(ADK_TARGET_ABI_X32),y)
109 TARGET_CC+= $(ADK_TARGET_ABI_CFLAGS)
110 TARGET_CXX+= $(ADK_TARGET_ABI_CFLAGS)
111 endif
113 TARGET_LD:= ${TARGET_COMPILER_PREFIX}ld
114 ifneq ($(ADK_TARGET_USE_LTO),)
115 TARGET_AR:= ${TARGET_COMPILER_PREFIX}gcc-ar
116 TARGET_RANLIB:= ${TARGET_COMPILER_PREFIX}gcc-ranlib
117 else
118 TARGET_AR:= ${TARGET_COMPILER_PREFIX}ar
119 TARGET_RANLIB:= ${TARGET_COMPILER_PREFIX}ranlib
120 endif
122 TARGET_CPPFLAGS:=
123 TARGET_CFLAGS:= -fwrapv -fno-ident
124 TARGET_CXXFLAGS:= -fwrapv -fno-ident
125 TARGET_LDFLAGS:= -L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
126 -Wl,-O1 -Wl,-rpath -Wl,/usr/lib \
127 -Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib
129 ifeq ($(ADK_BUILD_COMPILER_GCC),y)
130 ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
131 TARGET_CFLAGS+= -fhonour-copts
132 TARGET_CXXFLAGS+= -fhonour-copts
133 endif
134 endif
136 # for architectures where gcc --with-cpu matches -mcpu=
137 ifneq ($(ADK_TARGET_GCC_CPU),)
138 TARGET_CFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU)
139 TARGET_CXXFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU)
140 endif
142 # for archiectures where gcc --with-arch matches -march=
143 ifneq ($(ADK_TARGET_GCC_ARCH),)
144 TARGET_CFLAGS+= -march=$(ADK_TARGET_GCC_ARCH)
145 TARGET_CXXFLAGS+= -march=$(ADK_TARGET_GCC_ARCH)
146 endif
148 ifneq ($(ADK_TARGET_CPU_FLAGS),)
149 TARGET_CFLAGS+= $(ADK_TARGET_CPU_FLAGS)
150 TARGET_CXXFLAGS+= $(ADK_TARGET_CPU_FLAGS)
151 TARGET_LDFLAGS+= $(ADK_TARGET_CPU_FLAGS)
152 endif
154 ifneq ($(ADK_TARGET_FPU),)
155 TARGET_CFLAGS+= -mfpu=$(ADK_TARGET_FPU)
156 TARGET_CXXFLAGS+= -mfpu=$(ADK_TARGET_FPU)
157 endif
159 ifneq ($(ADK_TARGET_FLOAT),)
160 ifeq ($(ADK_TARGET_ARCH_ARM),y)
161 TARGET_CFLAGS+= -mfloat-abi=$(ADK_TARGET_FLOAT)
162 TARGET_CXXFLAGS+= -mfloat-abi=$(ADK_TARGET_FLOAT)
163 endif
164 ifeq ($(ADK_TARGET_ARCH_MIPS),y)
165 TARGET_CFLAGS+= -m$(ADK_TARGET_FLOAT)-float
166 TARGET_CXXFLAGS+= -m$(ADK_TARGET_FLOAT)-float
167 endif
168 endif
170 ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
171 TARGET_LDFLAGS+= -Wl,-elf2flt
172 TARGET_CFLAGS+= -Wl,-elf2flt
173 TARGET_CXXFLAGS+= -Wl,-elf2flt
174 endif
176 ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
177 TARGET_CFLAGS+= -msep-data
178 TARGET_CXXFLAGS+= -msep-data
179 endif
181 ifeq ($(ADK_TARGET_BINFMT_FLAT_SHARED),y)
182 TARGET_LDFLAGS+= -mid-shared-library
183 endif
185 # security optimization, see http://www.akkadia.org/drepper/dsohowto.pdf
186 ifneq ($(ADK_TARGET_USE_LD_RELRO),)
187 TARGET_LDFLAGS+= -Wl,-z,relro
188 endif
189 ifneq ($(ADK_TARGET_USE_LD_BIND_NOW),)
190 TARGET_LDFLAGS+= -Wl,-z,now
191 endif
193 # needed for musl ppc
194 ifeq ($(ADK_TARGET_ARCH_PPC),y)
195 ifeq ($(ADK_TARGET_LIB_MUSL),y)
196 TARGET_LDFLAGS+= -Wl,--secure-plt
197 endif
198 endif
200 ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
201 TARGET_CFLAGS+= -static
202 TARGET_CXXFLAGS+= -static
203 TARGET_LDFLAGS+= -static
204 endif
206 ifneq ($(ADK_TARGET_USE_SSP),)
207 TARGET_CFLAGS+= -fstack-protector-all --param=ssp-buffer-size=4
208 TARGET_CXXFLAGS+= -fstack-protector-all --param=ssp-buffer-size=4
209 TARGET_LDFLAGS+= -fstack-protector-all
210 endif
212 ifneq ($(ADK_TARGET_USE_LD_GC),)
213 TARGET_CFLAGS+= -fdata-sections -ffunction-sections
214 TARGET_CXXFLAGS+= -fdata-sections -ffunction-sections
215 TARGET_LDFLAGS+= -Wl,--gc-sections
216 endif
218 ifneq ($(ADK_TARGET_USE_LTO),)
219 TARGET_CFLAGS+= -flto
220 TARGET_CXXFLAGS+= -flto
221 TARGET_LDFLAGS+= -flto
222 endif
224 # performance optimization, see http://www.akkadia.org/drepper/dsohowto.pdf
225 ifneq ($(ADK_TARGET_USE_GNU_HASHSTYLE),)
226 TARGET_LDFLAGS+= -Wl,--hash-style=gnu
227 endif
229 # special architecture optimization flags
230 ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
231 ifeq ($(ADK_TARGET_BIG_ENDIAN),)
232 TARGET_CFLAGS+= -mlongcalls -mauto-litpools
233 TARGET_CXXFLAGS+= -mlongcalls -mauto-litpools
234 endif
235 endif
236 ifeq ($(ADK_TARGET_ARCH_MICROBLAZE),y)
237 TARGET_CFLAGS+= -mxl-barrel-shift
238 TARGET_CXXFLAGS+= -mxl-barrel-shift
239 endif
241 # add configured compiler flags for optimization
242 TARGET_CFLAGS+= $(ADK_TARGET_CFLAGS_OPT)
243 TARGET_CXXFLAGS+= $(ADK_TARGET_CFLAGS_OPT)
245 # add compiler flags for debug information
246 ifneq ($(ADK_DEBUG),)
247 TARGET_CFLAGS+= -g3
248 TARGET_CXXFLAGS+= -g3
249 endif
251 ifneq ($(ADK_DEBUG),)
252 ifeq ($(ADK_TARGET_ARCH_ARM_WITH_THUMB),)
253 TARGET_CFLAGS+= -fno-omit-frame-pointer
254 TARGET_CXXFLAGS+= -fno-omit-frame-pointer
255 endif
256 TARGET_CFLAGS+= -funwind-tables -fasynchronous-unwind-tables
257 TARGET_CXXFLAGS+= -funwind-tables -fasynchronous-unwind-tables
258 else
259 TARGET_CPPFLAGS+= -DNDEBUG
260 TARGET_CFLAGS+= -fomit-frame-pointer
261 TARGET_CXXFLAGS+= -fomit-frame-pointer
262 # stop generating eh_frame stuff
263 TARGET_CFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables
264 TARGET_CXXFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables
265 ifeq ($(ADK_TARGET_CPU_CF),y)
266 TARGET_CFLAGS+= -fno-dwarf2-cfi-asm
267 TARGET_CXXFLAGS+= -fno-dwarf2-cfi-asm
268 endif
269 endif
271 ifeq ($(ADK_TARGET_ARCH_ARM),y)
272 ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),y)
273 TARGET_CFLAGS+= -ffast-math
274 TARGET_CXXFLAGS+= -ffast-math
275 endif
276 ifeq ($(ADK_TARGET_ARCH_ARM_WITH_THUMB),y)
277 TARGET_CFLAGS+= -mthumb -Wa,-mimplicit-it=thumb -mno-thumb-interwork
278 TARGET_CXXFLAGS+= -mthumb -Wa,-mimplicit-it=thumb -mno-thumb-interwork
279 else
280 TARGET_CFLAGS+= -marm
281 TARGET_CXXFLAGS+= -marm
282 endif
283 endif
285 # host compiler and linker flags
286 HOST_CPPFLAGS:= -I$(STAGING_HOST_DIR)/usr/include
287 HOST_LDFLAGS:= -L$(STAGING_HOST_DIR)/usr/lib -Wl,-rpath -Wl,${STAGING_HOST_DIR}/usr/lib
289 ifneq (${ADK_UPDATE_PATCHES_GIT},)
290 PATCH= PATH='${HOST_PATH}' ${BASH} $(SCRIPT_DIR)/patch_git.sh
291 else
292 PATCH= PATH='${HOST_PATH}' ${BASH} $(SCRIPT_DIR)/patch.sh
293 endif
294 PATCHP0= PATH='${HOST_PATH}' patch -p0
296 ifeq ($(ADK_STATIC_TOOLCHAIN),y)
297 HOST_STATIC_CFLAGS:= -static -Wl,-static
298 HOST_STATIC_CXXFLAGS:= -static -Wl,-static
299 HOST_STATIC_LDFLAGS:= -Wl,-static
300 endif
302 SED:= PATH='${HOST_PATH}' sed -i -e
303 XZ:= PATH='${HOST_PATH}' xz
304 CPIO:= PATH='${HOST_PATH}' cpio
305 LINUX_DIR:= $(BUILD_DIR)/linux
306 KERNEL_MODULE_FLAGS:= ARCH=${ADK_TARGET_ARCH} \
307 PREFIX=/usr \
308 KERNEL_PATH=${LINUX_DIR} \
309 KERNELDIR=${LINUX_DIR} \
310 KERNEL_DIR=${LINUX_DIR} \
311 CROSS_COMPILE="${TARGET_CROSS}" \
312 CFLAGS_MODULE="-fhonour-copts" \
315 COMMON_ENV= CONFIG_SHELL='$(strip ${SHELL})' \
316 AUTOM4TE='${STAGING_HOST_DIR}/usr/bin/autom4te' \
317 M4='${STAGING_HOST_DIR}/usr/bin/m4' \
318 LIBTOOLIZE='${STAGING_HOST_DIR}/usr/bin/libtoolize'
320 ifneq ($(ADK_TARGET_USE_LTO),)
321 TOOLS_ENV= AR='$(TARGET_CROSS)gcc-ar' \
322 RANLIB='$(TARGET_CROSS)gcc-ranlib' \
323 NM='$(TARGET_CROSS)gcc-nm'
324 else
325 TOOLS_ENV= AR='$(TARGET_CROSS)ar' \
326 RANLIB='$(TARGET_CROSS)ranlib' \
327 NM='$(TARGET_CROSS)nm'
328 endif
330 TARGET_ENV= $(TOOLS_ENV) \
331 AS='$(TARGET_CROSS)as' \
332 LD='$(TARGET_CROSS)ld' \
333 STRIP='$(TARGET_CROSS)strip' \
334 OBJCOPY='$(TARGET_CROSS)objcopy' \
335 CC='$(TARGET_CC)' \
336 GCC='$(TARGET_CC)' \
337 CXX='$(TARGET_CXX)' \
338 CROSS='$(TARGET_CROSS)' \
339 CROSS_COMPILE='$(TARGET_CROSS)' \
340 CFLAGS='$(TARGET_CFLAGS)' \
341 CXXFLAGS='$(TARGET_CXXFLAGS)' \
342 CPPFLAGS='$(TARGET_CPPFLAGS)' \
343 LDFLAGS='$(TARGET_LDFLAGS)' \
344 CC_FOR_BUILD='$(HOST_CC)' \
345 CXX_FOR_BUILD='$(HOST_CXX)' \
346 CPPFLAGS_FOR_BUILD='$(HOST_CPPFLAGS)' \
347 CFLAGS_FOR_BUILD='$(HOST_CFLAGS)' \
348 CXXFLAGS_FOR_BUILD='$(HOST_CXXFLAGS)' \
349 LDFLAGS_FOR_BUILD='$(HOST_LDFLAGS)' \
350 LIBS_FOR_BUILD='$(HOST_LIBS)'
352 HOST_ENV= CC='$(HOST_CC)' \
353 CXX='$(HOST_CXX)' \
354 CPPFLAGS='$(HOST_CPPFLAGS)' \
355 CFLAGS='$(HOST_CFLAGS)' \
356 CXXFLAGS='$(HOST_CXXFLAGS)' \
357 LDFLAGS='$(HOST_LDFLAGS)' \
358 CC_FOR_BUILD='$(HOST_CC)' \
359 CFLAGS_FOR_BUILD='$(HOST_CFLAGS)'
361 PKG_SUFFIX:= $(strip $(subst ",, $(ADK_PACKAGE_SUFFIX)))
363 ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)
364 PKG_BUILD:= PATH='${HOST_PATH}' \
365 ${BASH} ${SCRIPT_DIR}/ipkg-build
366 PKG_INSTALL:= PATH='${HOST_PATH}' \
367 IPKG_TMP=$(BUILD_DIR)/tmp \
368 IPKG_INSTROOT=$(TARGET_DIR) \
369 IPKG_CONF_DIR=$(STAGING_TARGET_DIR)/etc \
370 IPKG_OFFLINE_ROOT=$(TARGET_DIR) \
371 BIN_DIR=$(STAGING_HOST_DIR)/usr/bin \
372 ${BASH} ${SCRIPT_DIR}/ipkg \
373 -force-defaults -force-depends install
374 PKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/ipkg
375 endif
377 ifeq ($(ADK_TARGET_PACKAGE_OPKG),y)
378 PKG_BUILD:= PATH='${HOST_PATH}' \
379 ${BASH} ${SCRIPT_DIR}/ipkg-build
380 PKG_INSTALL:= PATH='${HOST_PATH}' \
381 IPKG_TMP=$(BUILD_DIR)/tmp \
382 IPKG_INSTROOT=$(TARGET_DIR) \
383 IPKG_CONF_DIR=$(STAGING_TARGET_DIR)/etc \
384 IPKG_OFFLINE_ROOT=$(TARGET_DIR) \
385 BIN_DIR=$(STAGING_HOST_DIR)/usr/bin \
386 ${BASH} ${SCRIPT_DIR}/ipkg \
387 -force-defaults -force-depends install
388 PKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/opkg
389 endif
391 ifeq ($(ADK_TARGET_PACKAGE_TXZ),y)
392 PKG_BUILD:= PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/tarpkg build
393 PKG_INSTALL:= PKG_INSTROOT='$(TARGET_DIR)' \
394 PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/tarpkg install
395 PKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/pkg
396 endif
398 RSTRIP:= PATH="$(TARGET_PATH)" prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh
400 STATCMD:=$(shell if stat -qs .>/dev/null 2>&1; then echo 'stat -f %z';else echo 'stat -c %s';fi)
402 EXTRACT_CMD= PATH='${HOST_PATH}'; mkdir -p ${WRKDIR}; \
403 cd ${WRKDIR} && \
404 for file in ${FULLDISTFILES}; do case $$file in \
405 *.cpio) \
406 cat $$file | cpio -i -d ;; \
407 *.tar) \
408 tar -xf $$file ;; \
409 *.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \
410 gzip -dc $$file | cpio -i -d ;; \
411 *.tar.xz | *.txz) \
412 xz -dc $$file | tar -xf - ;; \
413 *.tar.Z | *.tar.gz | *.taz | *.tgz) \
414 gzip -dc $$file | tar -xf - ;; \
415 *.cpio.bz2 | *.cbz) \
416 bzip2 -dc $$file | cpio -i -d ;; \
417 *.tar.bz2 | *.tbz | *.tbz2) \
418 bzip2 -dc $$file | tar -xf - ;; \
419 *.tar.lz | *.tlz) \
420 lzip -dc $$file | tar -xf - ;; \
421 *.zip) \
422 unzip -d ${WRKDIR} $$file ;; \
423 *.arm|*.jar|*.ids.gz) \
424 mkdir ${WRKBUILD}; cp $$file ${WRKBUILD} ;; \
425 *.bin) \
426 sh $$file --force --auto-accept ;; \
427 *) \
428 echo "Cannot extract '$$file'" >&2; \
429 false ;; \
430 esac; done
432 ifneq (,$(filter CYGWIN%,${OS_FOR_BUILD}))
433 EXEEXT:= .exe
434 endif
436 include $(ADK_TOPDIR)/mk/mirrors.mk