1include $(LITEOSTOPDIR)/config.mk 2 3MODULE_NAME := c 4 5TOPDIR = $(LITEOSTOPDIR)/../.. 6MUSLDIR = $(TOPDIR)/third_party/musl 7MUSLPORTINGDIR = $(MUSLDIR)/porting/liteos_a/kernel 8OPTRTDIR = $(TOPDIR)/third_party/optimized-routines 9 10MUSL_SRCS = 11LOCAL_OPT_DIR = src/arch/$(ARCH) 12LOCAL_OPT_SRCS = 13LOCAL_FILTER_SRCS = 14 15MUSLPORTING_SRCS = \ 16 src/*/$(ARCH)/*.[csS] \ 17 src/*/*.c 18 19LOCAL_SRCS = $(wildcard $(addprefix $(MUSLPORTINGDIR)/,$(MUSLPORTING_SRCS))) 20LOCAL_SRCS := $(filter-out $(subst $(MUSLPORTINGDIR),$(MUSLDIR),$(LOCAL_SRCS)),$(addprefix $(MUSLDIR)/,$(MUSL_SRCS)) $(LOCAL_SRCS)) 21LOCAL_SRCS += $(wildcard src/*.c src/*.S) 22# Sources optimized for specific architectures 23LOCAL_OPT_SRCS := $(wildcard $(LOCAL_OPT_DIR)/*.c, $(LOCAL_OPT_DIR)/*.S) 24# Enumerate common src files with the same name as the optimized srcs 25LOCAL_FILTER_SRCS := $(addprefix $(MUSLPORTINGDIR)/src/string/,$(subst $(LOCAL_OPT_DIR)/,,$(LOCAL_OPT_SRCS))) 26LOCAL_FILTER_SRCS += $(addprefix src/,$(subst $(LOCAL_OPT_DIR)/,,$(LOCAL_OPT_SRCS))) 27LOCAL_FILTER_SRCS := $(subst .S,.c, $(LOCAL_FILTER_SRCS)) 28 29ifeq ($(LOSCFG_ARCH_ARM_VER), "armv7-a") 30LOCAL_SRCS := $(filter-out $(addprefix $(MUSLPORTINGDIR)/src/string/,memchr.c memcpy.c strcmp.c strcpy.c strlen.c), $(LOCAL_SRCS)) 31LOCAL_SRCS += \ 32 $(OPTRTDIR)/string/arm/memchr.S \ 33 $(OPTRTDIR)/string/arm/memcpy.S \ 34 $(OPTRTDIR)/string/arm/strcmp.S \ 35 $(OPTRTDIR)/string/arm/strcpy.c \ 36 $(OPTRTDIR)/string/arm/strlen-armv6t2.S 37 38LOCAL_CMACRO = \ 39 -D__strlen_armv6t2=strlen \ 40 -D__strcmp_arm=strcmp \ 41 -D__memchr_arm=memchr 42 43ifeq ($(LOSCFG_KERNEL_LMS), y) 44LOCAL_CMACRO += -D__memcpy_arm=__memcpy -D__strcpy_arm=__strcpy 45else 46LOCAL_CMACRO += -D__memcpy_arm=memcpy -D__strcpy_arm=strcpy 47endif 48 49# Replace the general srcs of the same name with specially optimized srcs 50LOCAL_SRCS += $(LOCAL_OPT_SRCS) 51LOCAL_SRCS := $(filter-out $(LOCAL_FILTER_SRCS),$(LOCAL_SRCS)) 52endif 53 54LOCAL_INCLUDE := \ 55 -I $(LITEOSTOPDIR)/syscall \ 56 -I $(LITEOSTOPDIR)/bsd/dev/random 57 58LOCAL_INCLUDE += $(addprefix -I$(MUSLPORTINGDIR)/, src/include src/internal) 59 60LOCAL_FLAGS := $(LOCAL_INCLUDE) $(LOCAL_CMACRO) 61ifeq ($(LOSCFG_COMPILER_CLANG_LLVM), y) 62LOCAL_FLAGS +=-Wno-char-subscripts -Wno-ignored-pragmas -Wno-strict-prototypes 63else 64LOCAL_FLAGS += -frounding-math -Wno-unused-but-set-variable 65endif 66LOCAL_FLAGS += -Wno-shift-op-parentheses -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses -Wno-unknown-pragmas 67LOCAL_FLAGS += -Wno-unused-but-set-variable 68 69include $(MODULE) 70