10d163575Sopenharmony_ciinclude $(LITEOSTOPDIR)/config.mk 20d163575Sopenharmony_ci 30d163575Sopenharmony_ciMODULE_NAME := c 40d163575Sopenharmony_ci 50d163575Sopenharmony_ciTOPDIR = $(LITEOSTOPDIR)/../.. 60d163575Sopenharmony_ciMUSLDIR = $(TOPDIR)/third_party/musl 70d163575Sopenharmony_ciMUSLPORTINGDIR = $(MUSLDIR)/porting/liteos_a/kernel 80d163575Sopenharmony_ciOPTRTDIR = $(TOPDIR)/third_party/optimized-routines 90d163575Sopenharmony_ci 100d163575Sopenharmony_ciMUSL_SRCS = 110d163575Sopenharmony_ciLOCAL_OPT_DIR = src/arch/$(ARCH) 120d163575Sopenharmony_ciLOCAL_OPT_SRCS = 130d163575Sopenharmony_ciLOCAL_FILTER_SRCS = 140d163575Sopenharmony_ci 150d163575Sopenharmony_ciMUSLPORTING_SRCS = \ 160d163575Sopenharmony_ci src/*/$(ARCH)/*.[csS] \ 170d163575Sopenharmony_ci src/*/*.c 180d163575Sopenharmony_ci 190d163575Sopenharmony_ciLOCAL_SRCS = $(wildcard $(addprefix $(MUSLPORTINGDIR)/,$(MUSLPORTING_SRCS))) 200d163575Sopenharmony_ciLOCAL_SRCS := $(filter-out $(subst $(MUSLPORTINGDIR),$(MUSLDIR),$(LOCAL_SRCS)),$(addprefix $(MUSLDIR)/,$(MUSL_SRCS)) $(LOCAL_SRCS)) 210d163575Sopenharmony_ciLOCAL_SRCS += $(wildcard src/*.c src/*.S) 220d163575Sopenharmony_ci# Sources optimized for specific architectures 230d163575Sopenharmony_ciLOCAL_OPT_SRCS := $(wildcard $(LOCAL_OPT_DIR)/*.c, $(LOCAL_OPT_DIR)/*.S) 240d163575Sopenharmony_ci# Enumerate common src files with the same name as the optimized srcs 250d163575Sopenharmony_ciLOCAL_FILTER_SRCS := $(addprefix $(MUSLPORTINGDIR)/src/string/,$(subst $(LOCAL_OPT_DIR)/,,$(LOCAL_OPT_SRCS))) 260d163575Sopenharmony_ciLOCAL_FILTER_SRCS += $(addprefix src/,$(subst $(LOCAL_OPT_DIR)/,,$(LOCAL_OPT_SRCS))) 270d163575Sopenharmony_ciLOCAL_FILTER_SRCS := $(subst .S,.c, $(LOCAL_FILTER_SRCS)) 280d163575Sopenharmony_ci 290d163575Sopenharmony_ciifeq ($(LOSCFG_ARCH_ARM_VER), "armv7-a") 300d163575Sopenharmony_ciLOCAL_SRCS := $(filter-out $(addprefix $(MUSLPORTINGDIR)/src/string/,memchr.c memcpy.c strcmp.c strcpy.c strlen.c), $(LOCAL_SRCS)) 310d163575Sopenharmony_ciLOCAL_SRCS += \ 320d163575Sopenharmony_ci $(OPTRTDIR)/string/arm/memchr.S \ 330d163575Sopenharmony_ci $(OPTRTDIR)/string/arm/memcpy.S \ 340d163575Sopenharmony_ci $(OPTRTDIR)/string/arm/strcmp.S \ 350d163575Sopenharmony_ci $(OPTRTDIR)/string/arm/strcpy.c \ 360d163575Sopenharmony_ci $(OPTRTDIR)/string/arm/strlen-armv6t2.S 370d163575Sopenharmony_ci 380d163575Sopenharmony_ciLOCAL_CMACRO = \ 390d163575Sopenharmony_ci -D__strlen_armv6t2=strlen \ 400d163575Sopenharmony_ci -D__strcmp_arm=strcmp \ 410d163575Sopenharmony_ci -D__memchr_arm=memchr 420d163575Sopenharmony_ci 430d163575Sopenharmony_ciifeq ($(LOSCFG_KERNEL_LMS), y) 440d163575Sopenharmony_ciLOCAL_CMACRO += -D__memcpy_arm=__memcpy -D__strcpy_arm=__strcpy 450d163575Sopenharmony_cielse 460d163575Sopenharmony_ciLOCAL_CMACRO += -D__memcpy_arm=memcpy -D__strcpy_arm=strcpy 470d163575Sopenharmony_ciendif 480d163575Sopenharmony_ci 490d163575Sopenharmony_ci# Replace the general srcs of the same name with specially optimized srcs 500d163575Sopenharmony_ciLOCAL_SRCS += $(LOCAL_OPT_SRCS) 510d163575Sopenharmony_ciLOCAL_SRCS := $(filter-out $(LOCAL_FILTER_SRCS),$(LOCAL_SRCS)) 520d163575Sopenharmony_ciendif 530d163575Sopenharmony_ci 540d163575Sopenharmony_ciLOCAL_INCLUDE := \ 550d163575Sopenharmony_ci -I $(LITEOSTOPDIR)/syscall \ 560d163575Sopenharmony_ci -I $(LITEOSTOPDIR)/bsd/dev/random 570d163575Sopenharmony_ci 580d163575Sopenharmony_ciLOCAL_INCLUDE += $(addprefix -I$(MUSLPORTINGDIR)/, src/include src/internal) 590d163575Sopenharmony_ci 600d163575Sopenharmony_ciLOCAL_FLAGS := $(LOCAL_INCLUDE) $(LOCAL_CMACRO) 610d163575Sopenharmony_ciifeq ($(LOSCFG_COMPILER_CLANG_LLVM), y) 620d163575Sopenharmony_ciLOCAL_FLAGS +=-Wno-char-subscripts -Wno-ignored-pragmas -Wno-strict-prototypes 630d163575Sopenharmony_cielse 640d163575Sopenharmony_ciLOCAL_FLAGS += -frounding-math -Wno-unused-but-set-variable 650d163575Sopenharmony_ciendif 660d163575Sopenharmony_ciLOCAL_FLAGS += -Wno-shift-op-parentheses -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses -Wno-unknown-pragmas 670d163575Sopenharmony_ciLOCAL_FLAGS += -Wno-unused-but-set-variable 680d163575Sopenharmony_ci 690d163575Sopenharmony_ciinclude $(MODULE) 70