| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449 | # This file is part of the OpenADK project. OpenADK is copyrighted# material, please see the LICENCE file in the top-level directory.CP=			cp -fpRINSTALL_DIR=		install -d -m0755INSTALL_DATA=		install -m0644INSTALL_BIN=		install -m0755INSTALL_SCRIPT=		install -m0755MAKEFLAGS=		$(EXTRA_MAKEFLAGS)BUILD_USER=		$(shell id -un)BUILD_GROUP=		$(shell id -gn)ADK_SUFFIX:=		${ADK_TARGET_SYSTEM}ifneq ($(ADK_TARGET_LIBC),)ADK_SUFFIX:=		$(ADK_SUFFIX)_$(ADK_TARGET_LIBC)endififneq ($(ADK_TARGET_CPU_TYPE),)ADK_SUFFIX:=		$(ADK_SUFFIX)_$(ADK_TARGET_CPU_TYPE)endififneq ($(ADK_TARGET_ENDIAN_SUFFIX),)ADK_SUFFIX:=		$(ADK_SUFFIX)$(ADK_TARGET_ENDIAN_SUFFIX)endififneq ($(ADK_TARGET_FLOAT),)ADK_SUFFIX:=		$(ADK_SUFFIX)_$(ADK_TARGET_FLOAT)endififneq ($(ADK_TARGET_ABI),)ADK_SUFFIX:=		$(ADK_SUFFIX)_$(ADK_TARGET_ABI)endififneq ($(ADK_TARGET_BINFMT),)ADK_SUFFIX:=		$(ADK_SUFFIX)_$(ADK_TARGET_BINFMT)endif# some global dirsBASE_DIR:=		$(ADK_TOPDIR)ifeq ($(ADK_DL_DIR),)DL_DIR?=		$(BASE_DIR)/dlelseDL_DIR?=		$(ADK_DL_DIR)endifSCRIPT_DIR:=		$(BASE_DIR)/scriptsSTAGING_HOST_DIR:=	${BASE_DIR}/host_${GNU_HOST_NAME}HOST_BUILD_DIR:=	${BASE_DIR}/host_build_${GNU_HOST_NAME}TOOLCHAIN_DIR:=		${BASE_DIR}/toolchain_${ADK_SUFFIX}# dirs for cleandirFW_DIR_PFX:=		$(BASE_DIR)/firmwareBUILD_DIR_PFX:=		$(BASE_DIR)/build_*STAGING_PKG_DIR_PFX:=	${BASE_DIR}/pkg_*STAGING_TARGET_DIR_PFX:=${BASE_DIR}/target_*TOOLCHAIN_DIR_PFX=	$(BASE_DIR)/toolchain_*STAGING_HOST_DIR_PFX:=	${BASE_DIR}/host_*TARGET_DIR_PFX:=	$(BASE_DIR)/root_*TARGET_DIR:=		$(BASE_DIR)/root_${ADK_SUFFIX}FW_DIR:=		$(BASE_DIR)/firmware/${ADK_SUFFIX}BUILD_DIR:=		${BASE_DIR}/build_${ADK_SUFFIX}STAGING_TARGET_DIR:=	${BASE_DIR}/target_${ADK_SUFFIX}STAGING_PKG_DIR:=	${BASE_DIR}/pkg_${ADK_SUFFIX}STAGING_HOST2TARGET:=	../../target_${ADK_SUFFIX}TOOLCHAIN_BUILD_DIR=	$(BASE_DIR)/toolchain_build_${ADK_SUFFIX}PACKAGE_DIR:=		$(FW_DIR)/packagesSCRIPT_TARGET_DIR:=	${STAGING_TARGET_DIR}/scripts# PATH variablesTARGET_PATH=		${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH}HOST_PATH=		${SCRIPT_DIR}:${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/sbin:${_PATH}AUTOTOOL_PATH=		${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}ifeq ($(ADK_TARGET_UCLINUX),y)ADK_TARGET_LINUXTYPE:=	uclinuxelseADK_TARGET_LINUXTYPE:=	linuxendifGNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_LINUXTYPE)-$(ADK_TARGET_SUFFIX)ifeq ($(ADK_TARGET_ARCH_C6X),y)GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_LINUXTYPE)endififeq ($(ADK_TARGET_OS_BAREMETAL),y)GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_SUFFIX)endififeq ($(ADK_TARGET_OS_FROSTED),y)GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS)-$(ADK_TARGET_SUFFIX)endififeq ($(ADK_TARGET_OS_RTEMS),y)GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS)endififeq ($(ADK_TARGET_OS_ZEPHYR),y)GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS)endifTARGET_CROSS:=		$(TOOLCHAIN_DIR)/usr/bin/$(GNU_TARGET_NAME)-TARGET_COMPILER_PREFIX?=${TARGET_CROSS}CONFIGURE_TRIPLE:=	--build=${GNU_HOST_NAME} \			--host=${GNU_TARGET_NAME} \			--target=${GNU_TARGET_NAME}# target toolsifeq ($(ADK_BUILD_COMPILER_GCC),y)TARGET_CC:=		${TARGET_COMPILER_PREFIX}gccTARGET_CXX:=		${TARGET_COMPILER_PREFIX}g++TARGET_CC_NO_CCACHE:=	${TARGET_CC}TARGET_CXX_NO_CCACHE:=	${TARGET_CXX}endififeq ($(ADK_BUILD_COMPILER_LLVM),y)TARGET_CC:=		clang --target=${GNU_TARGET_NAME} --sysroot=$(STAGING_TARGET_DIR)TARGET_CXX:=		clang++ --target=${GNU_TARGET_NAME} --sysroot=$(STAGING_TARGET_DIR)TARGET_LDFLAGS:=	-fuse-ld=lld -stdlib=libc++endif# gcc specificifeq ($(ADK_BUILD_COMPILER_GCC),y)ifneq ($(strip ${ADK_USE_CCACHE}),)TARGET_CC:=		$(STAGING_HOST_DIR)/usr/bin/ccache ${TARGET_CC_NO_CCACHE}TARGET_CXX:=		$(STAGING_HOST_DIR)/usr/bin/ccache ${TARGET_CXX_NO_CCACHE}endif# for x86_64 x32 ABI we need to extend TARGET_CC/TARGET_CXXifeq ($(ADK_TARGET_ABI_X32),y)TARGET_CC+=            $(ADK_TARGET_ABI_CFLAGS)TARGET_CXX+=           $(ADK_TARGET_ABI_CFLAGS)endifTARGET_LD:=		${TARGET_COMPILER_PREFIX}ldifneq ($(ADK_TARGET_USE_LTO),)TARGET_AR:=		${TARGET_COMPILER_PREFIX}gcc-arTARGET_RANLIB:=		${TARGET_COMPILER_PREFIX}gcc-ranlibelseTARGET_AR:=		${TARGET_COMPILER_PREFIX}arTARGET_RANLIB:=		${TARGET_COMPILER_PREFIX}ranlibendifTARGET_CPPFLAGS:=	TARGET_CFLAGS:=		-fwrapv -fno-identTARGET_CXXFLAGS:=	-fwrapv -fno-identTARGET_LDFLAGS:=	-L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \			-Wl,-O1 -Wl,-rpath -Wl,/usr/lib \			-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib# for architectures where gcc --with-cpu matches -mcpu=ifneq ($(ADK_TARGET_GCC_CPU),)TARGET_CFLAGS+=		-mcpu=$(ADK_TARGET_GCC_CPU)TARGET_CXXFLAGS+=	-mcpu=$(ADK_TARGET_GCC_CPU)endif# for archiectures where gcc --with-arch matches -march=ifneq ($(ADK_TARGET_GCC_ARCH),)TARGET_CFLAGS+=		-march=$(ADK_TARGET_GCC_ARCH)TARGET_CXXFLAGS+=	-march=$(ADK_TARGET_GCC_ARCH)endififneq ($(ADK_TARGET_CPU_FLAGS),)TARGET_CFLAGS+=		$(ADK_TARGET_CPU_FLAGS)TARGET_CXXFLAGS+=	$(ADK_TARGET_CPU_FLAGS)TARGET_LDFLAGS+=	$(ADK_TARGET_CPU_FLAGS)endififneq ($(ADK_TARGET_FPU),)TARGET_CFLAGS+=		-mfpu=$(ADK_TARGET_FPU)TARGET_CXXFLAGS+=	-mfpu=$(ADK_TARGET_FPU)endififneq ($(ADK_TARGET_FLOAT),)ifeq ($(ADK_TARGET_ARCH_ARM),y)TARGET_CFLAGS+=		-mfloat-abi=$(ADK_TARGET_FLOAT)TARGET_CXXFLAGS+=	-mfloat-abi=$(ADK_TARGET_FLOAT)endififeq ($(ADK_TARGET_ARCH_MIPS),y)TARGET_CFLAGS+=		-m$(ADK_TARGET_FLOAT)-floatTARGET_CXXFLAGS+=	-m$(ADK_TARGET_FLOAT)-floatendifendififeq ($(ADK_TARGET_BINFMT_FLAT)$(ADK_TARGET_OS_FROSTED),y)TARGET_LDFLAGS+=	-Wl,-elf2fltTARGET_CFLAGS+=		-Wl,-elf2fltTARGET_CXXFLAGS+=	-Wl,-elf2fltendififeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)TARGET_CFLAGS+=		-msep-dataTARGET_CXXFLAGS+=	-msep-dataendififeq ($(ADK_TARGET_BINFMT_FLAT_SHARED),y)TARGET_LDFLAGS+=	-mid-shared-libraryendif# security optimization, see http://www.akkadia.org/drepper/dsohowto.pdfifneq ($(ADK_TARGET_USE_LD_RELRO),)TARGET_LDFLAGS+=	-Wl,-z,relroendififneq ($(ADK_TARGET_USE_LD_BIND_NOW),)TARGET_LDFLAGS+=	-Wl,-z,nowendif# needed for musl ppc ifeq ($(ADK_TARGET_ARCH_PPC),y)ifeq ($(ADK_TARGET_LIB_MUSL),y)TARGET_LDFLAGS+=	-Wl,--secure-pltendifendififeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY)$(ADK_TARGET_USE_STATIC_AND_SHARED_LIBS),y)TARGET_CFLAGS+=		-staticTARGET_CXXFLAGS+=	-staticTARGET_LDFLAGS+=	-staticendififneq ($(ADK_TARGET_USE_SSP),)TARGET_CFLAGS+=		-fstack-protector-all --param=ssp-buffer-size=4TARGET_CXXFLAGS+=	-fstack-protector-all --param=ssp-buffer-size=4TARGET_LDFLAGS+=	-fstack-protector-allendififneq ($(ADK_TARGET_USE_LD_GC),)TARGET_CFLAGS+=		-fdata-sections -ffunction-sectionsTARGET_CXXFLAGS+=	-fdata-sections -ffunction-sectionsTARGET_LDFLAGS+=	-Wl,--gc-sectionsendififneq ($(ADK_TARGET_USE_LTO),)TARGET_CFLAGS+=		-fltoTARGET_CXXFLAGS+=	-fltoTARGET_LDFLAGS+=	-fltoendif# performance optimization, see http://www.akkadia.org/drepper/dsohowto.pdfifneq ($(ADK_TARGET_USE_GNU_HASHSTYLE),)TARGET_LDFLAGS+=	-Wl,--hash-style=gnuendif# special operating system flagsifeq ($(ADK_TARGET_OS_FROSTED),y)TARGET_CFLAGS+=         -fPIC -mlong-calls -fno-common -msingle-pic-base -mno-pic-data-is-text-relativeendif# special architecture optimization flagsifeq ($(ADK_TARGET_ARCH_XTENSA),y)ifeq ($(ADK_TARGET_BIG_ENDIAN),)ifeq ($(ADK_TARGET_LIB_NEWLIB),)TARGET_CFLAGS+=		-mlongcalls -mauto-litpoolsTARGET_CXXFLAGS+=	-mlongcalls -mauto-litpoolsendifendifendififeq ($(ADK_TARGET_ARCH_MICROBLAZE),y)TARGET_CFLAGS+=		-mxl-barrel-shiftTARGET_CXXFLAGS+=	-mxl-barrel-shiftendifendif# end gcc specific# add configured compiler flags for optimizationTARGET_CFLAGS+=		$(ADK_TARGET_CFLAGS_OPT)TARGET_CXXFLAGS+=	$(ADK_TARGET_CFLAGS_OPT)# add compiler flags for debug informationifneq ($(ADK_DEBUG),)TARGET_CFLAGS+=		-g3TARGET_CXXFLAGS+=	-g3endififneq ($(ADK_DEBUG),)ifeq ($(ADK_TARGET_ARCH_ARM_WITH_THUMB),)TARGET_CFLAGS+=		-fno-omit-frame-pointerTARGET_CXXFLAGS+=	-fno-omit-frame-pointerendifTARGET_CFLAGS+=		-funwind-tables -fasynchronous-unwind-tablesTARGET_CXXFLAGS+=	-funwind-tables -fasynchronous-unwind-tableselseTARGET_CPPFLAGS+=	-DNDEBUGTARGET_CFLAGS+=		-fomit-frame-pointerTARGET_CXXFLAGS+=	-fomit-frame-pointer# stop generating eh_frame stuffTARGET_CFLAGS+=		-fno-unwind-tables -fno-asynchronous-unwind-tablesTARGET_CXXFLAGS+=	-fno-unwind-tables -fno-asynchronous-unwind-tablesifeq ($(ADK_TARGET_CPU_CF),y)TARGET_CFLAGS+=		-fno-dwarf2-cfi-asmTARGET_CXXFLAGS+=	-fno-dwarf2-cfi-asmendifendififeq ($(ADK_TARGET_ARCH_ARM),y)ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),y)TARGET_CFLAGS+=		-ffast-mathTARGET_CXXFLAGS+=	-ffast-mathendififeq ($(ADK_TARGET_ARCH_ARM_WITH_THUMB),y)TARGET_CFLAGS+=		-mthumb -Wa,-mimplicit-it=thumb -mno-thumb-interworkTARGET_CXXFLAGS+=	-mthumb -Wa,-mimplicit-it=thumb -mno-thumb-interworkelseTARGET_CFLAGS+=		-marmTARGET_CXXFLAGS+=	-marmendifendif# host compiler and linker flagsHOST_CPPFLAGS:=		-I$(STAGING_HOST_DIR)/usr/includeifeq ($(OS_FOR_BUILD),Darwin)HOST_LDFLAGS:=		-L$(STAGING_HOST_DIR)/usr/libelseHOST_LDFLAGS:=		-L$(STAGING_HOST_DIR)/usr/lib -Wl,-rpath -Wl,${STAGING_HOST_DIR}/usr/libendififneq (${ADK_UPDATE_PATCHES_GIT},)PATCH=			PATH='${HOST_PATH}' ${BASH} $(SCRIPT_DIR)/patch_git.shelsePATCH=			PATH='${HOST_PATH}' ${BASH} $(SCRIPT_DIR)/patch.shendifPATCHP0=		PATH='${HOST_PATH}' patch -p0ifeq ($(ADK_STATIC_TOOLCHAIN),y)HOST_STATIC_CFLAGS:=   -static -Wl,-staticHOST_STATIC_CXXFLAGS:= -static -Wl,-staticHOST_STATIC_LDFLAGS:=  -Wl,-staticendifSED:=			PATH='${HOST_PATH}' sed -i -eXZ:=			PATH='${HOST_PATH}' xzCPIO:=			PATH='${HOST_PATH}' cpioLINUX_DIR:=		$(BUILD_DIR)/$(ADK_TARGET_OS)KERNEL_MODULE_FLAGS:=	ARCH=${ADK_TARGET_KARCH} \			PREFIX=/usr \			KERNEL_PATH=${LINUX_DIR} \			KERNELDIR=${LINUX_DIR} \			CROSS_COMPILE="${TARGET_CROSS}" \			V=1COMMON_ENV=		CONFIG_SHELL='$(strip ${SHELL})' \			AUTOM4TE='${STAGING_HOST_DIR}/usr/bin/autom4te' \			M4='${STAGING_HOST_DIR}/usr/bin/m4' \			LIBTOOLIZE='${STAGING_HOST_DIR}/usr/bin/libtoolize'ifneq ($(ADK_TARGET_USE_LTO),)TOOLS_ENV=		AR='$(TARGET_CROSS)gcc-ar' \			RANLIB='$(TARGET_CROSS)gcc-ranlib' \			NM='$(TARGET_CROSS)gcc-nm'elseTOOLS_ENV=		AR='$(TARGET_CROSS)ar' \			RANLIB='$(TARGET_CROSS)ranlib' \			NM='$(TARGET_CROSS)nm'endifTARGET_ENV=		$(TOOLS_ENV) \			AS='$(TARGET_CROSS)as' \			LD='$(TARGET_CROSS)ld' \			STRIP='$(TARGET_CROSS)strip' \			OBJCOPY='$(TARGET_CROSS)objcopy' \			CC='$(TARGET_CC)' \			GCC='$(TARGET_CC)' \			CXX='$(TARGET_CXX)' \			CROSS='$(TARGET_CROSS)' \			CROSS_COMPILE='$(TARGET_CROSS)' \			CFLAGS='$(TARGET_CFLAGS)' \			CXXFLAGS='$(TARGET_CXXFLAGS)' \			CPPFLAGS='$(TARGET_CPPFLAGS)' \			LDFLAGS='$(TARGET_LDFLAGS)' \			CC_FOR_BUILD='$(HOST_CC)' \			CXX_FOR_BUILD='$(HOST_CXX)' \			CPPFLAGS_FOR_BUILD='$(HOST_CPPFLAGS)' \			CFLAGS_FOR_BUILD='$(HOST_CFLAGS)' \			CXXFLAGS_FOR_BUILD='$(HOST_CXXFLAGS)' \			LDFLAGS_FOR_BUILD='$(HOST_LDFLAGS)' \			LIBS_FOR_BUILD='$(HOST_LIBS)'HOST_ENV=		CC='$(HOST_CC)' \			CXX='$(HOST_CXX)' \			CPPFLAGS='$(HOST_CPPFLAGS)' \			CFLAGS='$(HOST_CFLAGS)' \			CXXFLAGS='$(HOST_CXXFLAGS)' \			LDFLAGS='$(HOST_LDFLAGS)' \			CC_FOR_BUILD='$(HOST_CC)' \			CFLAGS_FOR_BUILD='$(HOST_CFLAGS)'PKG_SUFFIX:=		$(strip $(subst ",, $(ADK_PACKAGE_SUFFIX)))ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)PKG_BUILD:=		${BASH} ${SCRIPT_DIR}/ipkg-buildPKG_INSTALL:=		PATH='${HOST_PATH}' \			IPKG_TMP=$(BUILD_DIR)/tmp \			IPKG_INSTROOT=$(TARGET_DIR) \			IPKG_CONF_DIR=$(STAGING_TARGET_DIR)/etc \			IPKG_OFFLINE_ROOT=$(TARGET_DIR) \			BIN_DIR=$(STAGING_HOST_DIR)/usr/bin \			${BASH} ${SCRIPT_DIR}/ipkg \			-force-defaults -force-depends installPKG_STATE_DIR:=		$(TARGET_DIR)/usr/lib/ipkgendififeq ($(ADK_TARGET_PACKAGE_OPKG),y)PKG_BUILD:=		${BASH} ${SCRIPT_DIR}/ipkg-buildPKG_INSTALL:=		PATH='${HOST_PATH}' \			IPKG_TMP=$(BUILD_DIR)/tmp \			IPKG_INSTROOT=$(TARGET_DIR) \			IPKG_CONF_DIR=$(STAGING_TARGET_DIR)/etc \			IPKG_OFFLINE_ROOT=$(TARGET_DIR) \			BIN_DIR=$(STAGING_HOST_DIR)/usr/bin \			${BASH} ${SCRIPT_DIR}/ipkg \			-force-defaults -force-depends installPKG_STATE_DIR:=		$(TARGET_DIR)/usr/lib/opkgendififeq ($(ADK_TARGET_PACKAGE_TXZ),y)PKG_BUILD:=		${BASH} ${SCRIPT_DIR}/tarpkg buildPKG_INSTALL:=		PKG_INSTROOT='$(TARGET_DIR)' \			PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/tarpkg installPKG_STATE_DIR:=		$(TARGET_DIR)/usr/lib/pkgendifRSTRIP:=		PATH="$(TARGET_PATH)" prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.shSTATCMD:=$(shell if stat -qs .>/dev/null 2>&1; then echo 'stat -f %z';else echo 'stat -c %s';fi)EXTRACT_CMD=		PATH='${HOST_PATH}'; mkdir -p ${WRKDIR}; \			cd ${WRKDIR} && \			for file in ${FULLDISTFILES}; do case $$file in \			*.cpio) \				cat $$file | cpio -i -d ;; \			*.tar) \				PATH='$(HOST_PATH)' tar -xf $$file ;; \			*.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \				gzip -dc $$file | cpio -i -d ;; \			*.tar.xz | *.txz) \				xz -dc $$file | PATH='$(HOST_PATH)' tar -xf - ;; \			*.tar.Z | *.tar.gz | *.taz | *.tgz) \				gzip -dc $$file | PATH='$(HOST_PATH)' tar -xf - ;; \			*.cpio.bz2 | *.cbz) \				bzip2 -dc $$file | cpio -i -d ;; \			*.tar.bz2 | *.tbz | *.tbz2) \				bzip2 -dc $$file | PATH='$(HOST_PATH)' tar -xf - ;; \			*.tar.lz | *.tlz) \				lzip -dc $$file | PATH='$(HOST_PATH)' tar -xf - ;; \			*.zip) \				unzip -d ${WRKDIR} $$file ;; \			*.arm|*.jar|*.ids.gz) \				mkdir ${WRKBUILD}; cp $$file ${WRKBUILD} ;; \			*.bin) \				sh $$file --force --auto-accept ;; \			*) \				echo "Cannot extract '$$file'" >&2; \				false ;; \			esac; doneifneq (,$(filter CYGWIN%,${OS_FOR_BUILD}))EXEEXT:=		.exeendifinclude $(ADK_TOPDIR)/mk/mirrors.mk
 |