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__strcpy_arm=strcpy \ 41 -D__strcmp_arm=strcmp \ 42 -D__memcpy_arm=memcpy \ 43 -D__memchr_arm=memchr 44 45# Replace the general srcs of the same name with specially optimized srcs 46LOCAL_SRCS += $(LOCAL_OPT_SRCS) 47LOCAL_SRCS := $(filter-out $(LOCAL_FILTER_SRCS),$(LOCAL_SRCS)) 48endif 49 50LOCAL_INCLUDE := \ 51 -I $(LITEOSTOPDIR)/syscall \ 52 -I $(LITEOSTOPDIR)/bsd/dev/random \ 53 -I $(LITEOSTOPDIR)/bsd/compat/linuxkpi/include 54 55LOCAL_INCLUDE += $(addprefix -I$(MUSLPORTINGDIR)/, src/include src/internal) 56 57LOCAL_FLAGS := $(LOCAL_INCLUDE) $(LITEOS_GCOV_OPTS) $(LOCAL_CMACRO) 58ifeq ($(LOSCFG_COMPILER_CLANG_LLVM), y) 59LOCAL_FLAGS +=-Wno-char-subscripts -Wno-unknown-pragmas 60else 61LOCAL_FLAGS += -frounding-math -Wno-unused-but-set-variable -Wno-unknown-pragmas 62endif 63LOCAL_FLAGS += -Wno-shift-op-parentheses -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses 64 65include $(MODULE) 66