• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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