1570af302Sopenharmony_ci# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved. 2570af302Sopenharmony_ci# Copyright (c) 2020-2022 Huawei Device Co., Ltd. All rights reserved. 3570af302Sopenharmony_ci# 4570af302Sopenharmony_ci# Redistribution and use in source and binary forms, with or without modification, 5570af302Sopenharmony_ci# are permitted provided that the following conditions are met: 6570af302Sopenharmony_ci# 7570af302Sopenharmony_ci# 1. Redistributions of source code must retain the above copyright notice, this list of 8570af302Sopenharmony_ci# conditions and the following disclaimer. 9570af302Sopenharmony_ci# 10570af302Sopenharmony_ci# 2. Redistributions in binary form must reproduce the above copyright notice, this list 11570af302Sopenharmony_ci# of conditions and the following disclaimer in the documentation and/or other materials 12570af302Sopenharmony_ci# provided with the distribution. 13570af302Sopenharmony_ci# 14570af302Sopenharmony_ci# 3. Neither the name of the copyright holder nor the names of its contributors may be used 15570af302Sopenharmony_ci# to endorse or promote products derived from this software without specific prior written 16570af302Sopenharmony_ci# permission. 17570af302Sopenharmony_ci# 18570af302Sopenharmony_ci# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19570af302Sopenharmony_ci# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 20570af302Sopenharmony_ci# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21570af302Sopenharmony_ci# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 22570af302Sopenharmony_ci# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 23570af302Sopenharmony_ci# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24570af302Sopenharmony_ci# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 25570af302Sopenharmony_ci# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 26570af302Sopenharmony_ci# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 27570af302Sopenharmony_ci# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 28570af302Sopenharmony_ci# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29570af302Sopenharmony_ci 30570af302Sopenharmony_ciARCH = arm 31570af302Sopenharmony_ciifneq ($(GCC),) 32570af302Sopenharmony_ciTARGET = 33570af302Sopenharmony_ciCROSS_COMPILE = $(GCC:%gcc=%) 34570af302Sopenharmony_ciCC = $(GCC) $(ARCH_CFLAGS) 35570af302Sopenharmony_ciMULTILIB = $(patsubst %.,%,$(shell $(CC) -print-multi-directory)) 36570af302Sopenharmony_cielse 37570af302Sopenharmony_ciTARGET = $(ARCH)-liteos-ohos 38570af302Sopenharmony_ciCLANG ?= clang 39570af302Sopenharmony_ciCROSS_COMPILE = $(CLANG:%clang=%llvm-) 40570af302Sopenharmony_ciCC = $(CLANG) --target=$(TARGET) $(ARCH_CFLAGS) 41570af302Sopenharmony_ciMULTILIB = $(patsubst $(dir $(shell $(filter-out $(ARCH_CFLAGS),$(CC)) -print-libgcc-file-name))%,/%,$(dir $(shell $(CC) -print-libgcc-file-name))) 42570af302Sopenharmony_ciendif 43570af302Sopenharmony_ciMUSLBUILDDIR = build_$(or $(TARGET),$(ARCH))$(subst /,_,$(MULTILIB:%/=%)) 44570af302Sopenharmony_ciHIDE = @ 45570af302Sopenharmony_ciBUILD_DEBUG = false 46570af302Sopenharmony_ciSED_ARGS = -e '/install-libs:/s/if/and/g' 47570af302Sopenharmony_ci 48570af302Sopenharmony_ciTOPDIR = $(shell pwd)/../../../.. 49570af302Sopenharmony_ciMUSLDIR = $(TOPDIR)/third_party/musl 50570af302Sopenharmony_ciLINUXKERNELDIR = $(TOPDIR)/kernel/linux/linux-5.10 51570af302Sopenharmony_ciOPTRTDIR = $(TOPDIR)/third_party/optimized-routines 52570af302Sopenharmony_ciNUTTXDIR = $(TOPDIR)/third_party/NuttX 53570af302Sopenharmony_ciSYSROOTDIR = $(TOPDIR)/third_party/musl 54570af302Sopenharmony_ciLITEOSADIR = $(TOPDIR)/kernel/liteos_a 55570af302Sopenharmony_ciLINUXDIR = $(TOPDIR)/kernel/linux/linux-4.19 56570af302Sopenharmony_ciLINUXHDRDIR = $(PREBUILTLINUXHDRDIR) 57570af302Sopenharmony_ci 58570af302Sopenharmony_ciTARGETS = $(if $(wildcard $(LITEOSADIR)),liteos_a_user,) 59570af302Sopenharmony_ciTARGETS += $(if $(wildcard $(LINUXDIR)),linux_user,) 60570af302Sopenharmony_ci 61570af302Sopenharmony_cidefine LINUX_TYPES_H 62570af302Sopenharmony_ci/* Auto generated file at $(shell date), do NOT edit! */ 63570af302Sopenharmony_ci#ifndef _LINUX_TYPES_H 64570af302Sopenharmony_ci#define _LINUX_TYPES_H 65570af302Sopenharmony_ci#include <stdint.h> 66570af302Sopenharmony_citypedef uint32_t __u32, __le32; 67570af302Sopenharmony_ci#endif 68570af302Sopenharmony_ciendef 69570af302Sopenharmony_ciexport LINUX_TYPES_H 70570af302Sopenharmony_ci 71570af302Sopenharmony_ciifeq ($(ARCH),arm) 72570af302Sopenharmony_ciARCH_CFLAGS = -mfloat-abi=softfp -mcpu=cortex-a7 -mfpu=neon-vfpv4 73570af302Sopenharmony_cielse 74570af302Sopenharmony_ci$(warning *** warning: ARCH $(ARCH) has not been tested yet, use with cautions!) 75570af302Sopenharmony_ciARCH_CFLAGS = 76570af302Sopenharmony_ciendif 77570af302Sopenharmony_ci 78570af302Sopenharmony_ciCFLAGS = -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wl,--build-id=sha1 79570af302Sopenharmony_ciCFLAGS += -Wno-int-conversion 80570af302Sopenharmony_ci 81570af302Sopenharmony_ci.PHONY: $(TARGETS:%=musl_copy_for_%) 82570af302Sopenharmony_ci.PHONY: $(TARGETS:%=musl_patch_for_%) 83570af302Sopenharmony_ci.PHONY: $(TARGETS:%=musl_install_for_%) 84570af302Sopenharmony_ci.PHONY: $(TARGETS:%=linux_header_install_for_%) 85570af302Sopenharmony_ci.PHONY: $(TARGETS:%=nuttx_header_install_for_%) 86570af302Sopenharmony_ci.PHONY: $(TARGETS:%=optimized_routines_install_for_%) 87570af302Sopenharmony_ci.PHONY: all clean distclean 88570af302Sopenharmony_ci 89570af302Sopenharmony_ciall: $(TARGETS:%=musl_install_for_%) 90570af302Sopenharmony_ci 91570af302Sopenharmony_ci$(TARGETS:%=musl_copy_for_%): 92570af302Sopenharmony_ci $(HIDE) mkdir -p $@ 93570af302Sopenharmony_ci $(HIDE) cp -rfu $(MUSLDIR)/[^p]* $@ 94570af302Sopenharmony_ci $(HIDE) cp -rfu $(MUSLDIR)/../FreeBSD/sys/sys/queue.h $@/include/sys 95570af302Sopenharmony_ci 96570af302Sopenharmony_cioptimized_routines_install_for_liteos_a_user: musl_copy_for_liteos_a_user 97570af302Sopenharmony_ciifneq ($(ARCH),) 98570af302Sopenharmony_ci $(HIDE) cp -rfp $(OPTRTDIR)/string/$(ARCH)/* $</src/string/$(ARCH)/ 99570af302Sopenharmony_ci $(HIDE) cp -rfp $(OPTRTDIR)/string/asmdefs.h $</src/string/asmdefs.h 100570af302Sopenharmony_ciifeq ($(ARCH),arm) 101570af302Sopenharmony_ci $(HIDE) rm -f $</src/string/arm/memcpy.c 102570af302Sopenharmony_ci $(HIDE) rm -f $</src/string/arm/memcpy_le.S 103570af302Sopenharmony_ci $(HIDE) rm -f $</src/string/arm/memset.S 104570af302Sopenharmony_ci $(HIDE) rm -f $</src/string/arm/strcpy.c 105570af302Sopenharmony_ci $(HIDE) true >> $</src/string/arm/strlen.S 106570af302Sopenharmony_ci 107570af302Sopenharmony_ciCFLAGS += \ 108570af302Sopenharmony_ci -D__strlen_armv6t2=strlen \ 109570af302Sopenharmony_ci -D__strcpy_arm=strcpy \ 110570af302Sopenharmony_ci -D__strcmp_arm=strcmp \ 111570af302Sopenharmony_ci -D__memcpy_arm=memcpy \ 112570af302Sopenharmony_ci -D__memchr_arm=memchr 113570af302Sopenharmony_ci 114570af302Sopenharmony_ciendif 115570af302Sopenharmony_ciendif 116570af302Sopenharmony_ci 117570af302Sopenharmony_cinuttx_header_install_for_liteos_a_user: musl_copy_for_liteos_a_user 118570af302Sopenharmony_ci $(HIDE) sed '/^#include/d' $(NUTTXDIR)/include/nuttx/video/fb.h | sed 's,FAR ,,g' | sed 's,LosVmMapRegion,void,g' > $</include/fb.h 119570af302Sopenharmony_ci 120570af302Sopenharmony_cilinux_header_install_for_liteos_a_user: musl_copy_for_liteos_a_user 121570af302Sopenharmony_ci $(HIDE) make -sj headers_install ARCH=$(ARCH) O=$(shell pwd)/$@ -C $(LINUXKERNELDIR) 122570af302Sopenharmony_ci $(HIDE) install -p -m 644 -D $@/usr/include/linux/capability.h $</include/linux/capability.h 123570af302Sopenharmony_ci $(HIDE) echo "$$LINUX_TYPES_H" > $</include/linux/types.h 124570af302Sopenharmony_ci 125570af302Sopenharmony_cimusl_patch_for_liteos_a_user: nuttx_header_install_for_liteos_a_user 126570af302Sopenharmony_cimusl_patch_for_liteos_a_user: linux_header_install_for_liteos_a_user 127570af302Sopenharmony_cimusl_patch_for_liteos_a_user: optimized_routines_install_for_liteos_a_user 128570af302Sopenharmony_cimusl_patch_for_liteos_a_user: musl_copy_for_liteos_a_user 129570af302Sopenharmony_ci $(HIDE) cd musl_copy_for_liteos_a_user && \ 130570af302Sopenharmony_ci mv -f arch/arm/bits/liteos_a/* arch/arm/bits/ && \ 131570af302Sopenharmony_ci mv -f src/linux/liteos_a/* src/linux/ && \ 132570af302Sopenharmony_ci mv -f src/misc/liteos_a/* src/misc/ && \ 133570af302Sopenharmony_ci mv -f src/signal/liteos_a/* src/signal/ && \ 134570af302Sopenharmony_ci mv -f src/signal/arm/liteos_a/* src/signal/arm/ && \ 135570af302Sopenharmony_ci mv -f src/stdlib/liteos_a/* src/stdlib/ && \ 136570af302Sopenharmony_ci mv -f src/string/arm/liteos_a/* src/string/arm/ && \ 137570af302Sopenharmony_ci mv -f src/thread/liteos_a/* src/thread/ && \ 138570af302Sopenharmony_ci mv -f src/unistd/liteos_a/* src/unistd/ && \ 139570af302Sopenharmony_ci mv -f src/network/liteos_a/* src/network/ && \ 140570af302Sopenharmony_ci cd .. 141570af302Sopenharmony_ci 142570af302Sopenharmony_cimusl_patch_for_liteos_a_user_debug: musl_patch_for_liteos_a_user 143570af302Sopenharmony_cimusl_patch_for_liteos_a_user_debug: musl_copy_for_liteos_a_user 144570af302Sopenharmony_ci $(HIDE) cd musl_copy_for_liteos_a_user && \ 145570af302Sopenharmony_ci mv -f include/liteos_a/user_debug/* include/ && \ 146570af302Sopenharmony_ci mv -f src/malloc/liteos_a/user_debug/* src/malloc/ && \ 147570af302Sopenharmony_ci cd .. 148570af302Sopenharmony_ci 149570af302Sopenharmony_ciifeq ($(BUILD_DEBUG),true) 150570af302Sopenharmony_ciifeq ($(GCC),) 151570af302Sopenharmony_cimusl_install_for_liteos_a_user: LDFLAGS = $(shell $(CC) -print-file-name=libunwind.a) -Wl,--no-dependent-libraries 152570af302Sopenharmony_cimusl_install_for_liteos_a_user: SED_ARGS += -e 's,$$(AR) rc $$@ $$(AOBJS)$$,cp $$(shell $$(CC) -print-file-name=libunwind.a) $$@ \&\& &,g' 153570af302Sopenharmony_ciendif 154570af302Sopenharmony_cimusl_install_for_liteos_a_user: SED_ARGS += -e 's,CFLAGS_ALL += -DCRT$$,& -fno-unwind-tables -fno-asynchronous-unwind-tables,g' 155570af302Sopenharmony_cimusl_install_for_liteos_a_user: CFLAGS += -funwind-tables -fasynchronous-unwind-tables -rdynamic -D__LITEOS_DEBUG__ -I $(shell $(CC) "-print-file-name=include") 156570af302Sopenharmony_cimusl_install_for_liteos_a_user: musl_patch_for_liteos_a_user_debug 157570af302Sopenharmony_ciendif 158570af302Sopenharmony_ci 159570af302Sopenharmony_cimusl_install_for_liteos_a_user: CFLAGS += -D__LITEOS_A__ -DFEATURE_PTHREAD_CANCEL 160570af302Sopenharmony_ci 161570af302Sopenharmony_cimusl_header_install_for_liteos_a_user: musl_patch_for_liteos_a_user 162570af302Sopenharmony_ci $(HIDE) cd musl_copy_for_liteos_a_user && mkdir -p $(MUSLBUILDDIR) && cd $(MUSLBUILDDIR) && \ 163570af302Sopenharmony_ci ../configure --prefix=$(SYSROOTDIR)/usr --target=$(TARGET) \ 164570af302Sopenharmony_ci --includedir=$(SYSROOTDIR)/usr/include/$(TARGET) \ 165570af302Sopenharmony_ci --libdir=$(SYSROOTDIR)/usr/lib/$(TARGET)/$(MULTILIB) \ 166570af302Sopenharmony_ci --with-malloc=oldmalloc \ 167570af302Sopenharmony_ci $(if $(LDFLAGS),LDFLAGS="$(LDFLAGS)",) \ 168570af302Sopenharmony_ci CC="$(CC)" CROSS_COMPILE="$(CROSS_COMPILE)" CFLAGS="$(CFLAGS)" >/dev/null && \ 169570af302Sopenharmony_ci sed $(SED_ARGS) Makefile | make -sj install-headers 170570af302Sopenharmony_ci 171570af302Sopenharmony_cimusl_install_for_liteos_a_user: musl_patch_for_liteos_a_user 172570af302Sopenharmony_ci $(HIDE) cd musl_copy_for_liteos_a_user && mkdir -p $(MUSLBUILDDIR) && cd $(MUSLBUILDDIR) && \ 173570af302Sopenharmony_ci ../configure --prefix=$(SYSROOTDIR)/usr --target=$(TARGET) \ 174570af302Sopenharmony_ci --includedir=$(SYSROOTDIR)/usr/include/$(TARGET) \ 175570af302Sopenharmony_ci --libdir=$(SYSROOTDIR)/usr/lib/$(TARGET)/$(MULTILIB) \ 176570af302Sopenharmony_ci --with-malloc=oldmalloc \ 177570af302Sopenharmony_ci $(if $(LDFLAGS),LDFLAGS="$(LDFLAGS)",) \ 178570af302Sopenharmony_ci CC="$(CC)" CROSS_COMPILE="$(CROSS_COMPILE)" CFLAGS="$(CFLAGS)" >/dev/null && \ 179570af302Sopenharmony_ci sed $(SED_ARGS) Makefile | make -f- -sj install 180570af302Sopenharmony_ci 181570af302Sopenharmony_ciifeq ($(wildcard $(LINUXHDRDIR)),) 182570af302Sopenharmony_ciLINUXHDRDIR = $(shell pwd)/linux_header_install_for_linux_user/usr/include 183570af302Sopenharmony_cilinux_header_install_for_linux_user: 184570af302Sopenharmony_ci $(HIDE) make -sj headers_install ARCH=$(ARCH) O=$(shell pwd)/$@ -C $(LINUXDIR) 185570af302Sopenharmony_cimusl_patch_for_linux_user: linux_header_install_for_linux_user 186570af302Sopenharmony_ciendif 187570af302Sopenharmony_ci 188570af302Sopenharmony_cimusl_patch_for_linux_user: musl_copy_for_linux_user 189570af302Sopenharmony_ci $(HIDE) cp -rfp $(MUSLDIR)/scripts/linux/* $</ && \ 190570af302Sopenharmony_ci cd musl_copy_for_linux_user && \ 191570af302Sopenharmony_ci mv -f crt/linux/* crt/ && \ 192570af302Sopenharmony_ci mv -f include/fortify/linux/* include/fortify/ && \ 193570af302Sopenharmony_ci mv -f include/info/linux/* include/info/ && \ 194570af302Sopenharmony_ci mv -f include/linux/* include/ && \ 195570af302Sopenharmony_ci mv -f include/sys/linux/* include/sys/ && \ 196570af302Sopenharmony_ci mv -f include/trace/linux/* include/trace/ && \ 197570af302Sopenharmony_ci mv -f ldso/linux/* ldso/ && \ 198570af302Sopenharmony_ci mv -f src/exit/linux/* src/exit/ && \ 199570af302Sopenharmony_ci mv -f src/fortify/linux/* src/fortify/ && \ 200570af302Sopenharmony_ci mv -f src/gwp_asan/linux/* src/gwp_asan/ && \ 201570af302Sopenharmony_ci mv -f src/hilog/linux/* src/hilog/ && \ 202570af302Sopenharmony_ci mv -f src/hook/linux/* src/hook/ && \ 203570af302Sopenharmony_ci mv -f src/info/linux/* src/info/ && \ 204570af302Sopenharmony_ci mv -f src/internal/linux/* src/internal/ && \ 205570af302Sopenharmony_ci mv -f src/ldso/aarch64/linux/* src/ldso/aarch64/ && \ 206570af302Sopenharmony_ci mv -f src/ldso/arm/linux/* src/ldso/arm/ && \ 207570af302Sopenharmony_ci mv -f src/ldso/riscv64/linux/* src/ldso/riscv64/ && \ 208570af302Sopenharmony_ci mv -f src/ldso/x86_64/linux/* src/ldso/x86_64/ && \ 209570af302Sopenharmony_ci mv -f src/linux/aarch64/linux/* src/linux/aarch64/ && \ 210570af302Sopenharmony_ci mv -f src/linux/arm/linux/* src/linux/arm/ && \ 211570af302Sopenharmony_ci mv -f src/linux/linux/* src/linux/ && \ 212570af302Sopenharmony_ci mv -f src/linux/x86_64/linux/* src/linux/x86_64/ && \ 213570af302Sopenharmony_ci mv -f src/malloc/jemalloc/linux/* src/malloc/jemalloc/ && \ 214570af302Sopenharmony_ci mv -f src/malloc/linux/* src/malloc/ && \ 215570af302Sopenharmony_ci mv -f src/misc/aarch64/linux/* src/misc/aarch64/ && \ 216570af302Sopenharmony_ci mv -f src/sigchain/linux/* src/sigchain/ && \ 217570af302Sopenharmony_ci mv -f src/trace/linux/* src/trace/ && \ 218570af302Sopenharmony_ci mv -f src/network/linux/* src/network/ && \ 219570af302Sopenharmony_ci mv -f src/signal/linux/* src/signal/ && \ 220570af302Sopenharmony_ci mv -f src/thread/linux/* src/thread/ && \ 221570af302Sopenharmony_ci mv -f src/fdsan/linux/* src/fdsan/ && \ 222570af302Sopenharmony_ci cd .. 223570af302Sopenharmony_ci 224570af302Sopenharmony_ciLIBCXXDIR = $(TOPDIR)/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/include 225570af302Sopenharmony_cimusl_install_for_linux_user: LDFLAGS = $(shell $(CC) -print-file-name=libunwind.a) -Wl,--no-dependent-libraries 226570af302Sopenharmony_cimusl_install_for_linux_user: SED_ARGS += -e 's,$$(AR) rc $$@ $$(AOBJS)$$,cp $$(shell $$(CC) -print-file-name=libunwind.a) $$@ \&\& &,g' 227570af302Sopenharmony_cimusl_install_for_linux_user: CFLAGS += -fno-omit-frame-pointer -funwind-tables -fasynchronous-unwind-tables -rdynamic -D__HISPARK_LINUX__ -I $(LINUXHDRDIR) -I $(LIBCXXDIR) 228570af302Sopenharmony_ciifeq ($(GCC),) 229570af302Sopenharmony_cimusl_install_for_linux_user: TARGET = $(ARCH)-linux-ohos 230570af302Sopenharmony_ciendif 231570af302Sopenharmony_cimusl_install_for_linux_user: musl_patch_for_linux_user 232570af302Sopenharmony_ci $(HIDE) cd musl_copy_for_linux_user && mkdir -p $(MUSLBUILDDIR) && cd $(MUSLBUILDDIR) && \ 233570af302Sopenharmony_ci ../configure --prefix=$(SYSROOTDIR)/usr --target=$(TARGET) \ 234570af302Sopenharmony_ci --includedir=$(SYSROOTDIR)/usr/include/$(TARGET) \ 235570af302Sopenharmony_ci --libdir=$(SYSROOTDIR)/usr/lib/$(TARGET)/$(MULTILIB) \ 236570af302Sopenharmony_ci --with-malloc=oldmalloc \ 237570af302Sopenharmony_ci $(if $(LDFLAGS),LDFLAGS="$(LDFLAGS)",) \ 238570af302Sopenharmony_ci CC="$(CC)" CROSS_COMPILE="$(CROSS_COMPILE)" CFLAGS="$(CFLAGS)" >/dev/null && \ 239570af302Sopenharmony_ci sed $(SED_ARGS) Makefile | make -f- -sj install 240570af302Sopenharmony_ci $(HIDE) cp -rfp $(LINUXHDRDIR)/* $(SYSROOTDIR)/usr/include/$(TARGET) 241570af302Sopenharmony_ci $(HIDE) if [ -d $(LINUXHDRDIR)/asm-$(ARCH)/asm ]; then ln -snf asm-$(ARCH)/asm $(SYSROOTDIR)/usr/include/$(TARGET)/; fi 242570af302Sopenharmony_ciifeq ($(ARCH),aarch64) 243570af302Sopenharmony_ci $(HIDE) if [ -d $(LINUXHDRDIR)/asm-arm64/asm ]; then ln -snf asm-arm64/asm $(SYSROOTDIR)/usr/include/$(TARGET)/; fi 244570af302Sopenharmony_ciendif 245570af302Sopenharmony_ci 246570af302Sopenharmony_ciclean: 247570af302Sopenharmony_ci $(HIDE) rm -rf musl_copy_for_* linux_header_install_for_* 248570af302Sopenharmony_ci 249570af302Sopenharmony_cidistclean: clean 250570af302Sopenharmony_ci $(HIDE) rm -rf $(SYSROOTDIR)/lib $(SYSROOTDIR)/usr 251