1LOCAL_PATH:= $(call my-dir)
2
3COMMON_C_INCLUDES := \
4	bionic \
5	$(LOCAL_PATH)/../../../include \
6	$(LOCAL_PATH)/../ \
7	$(LOCAL_PATH)/../../ \
8	$(LOCAL_PATH)/../../Renderer/ \
9	$(LOCAL_PATH)/../../Common/ \
10	$(LOCAL_PATH)/../../Shader/ \
11	$(LOCAL_PATH)/../../Main/
12
13# Marshmallow does not have stlport, but comes with libc++ by default
14ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
15COMMON_C_INCLUDES += external/stlport/stlport
16endif
17
18COMMON_CFLAGS := \
19	-DLOG_TAG=\"swiftshader_compiler\" \
20	-Wno-unused-parameter \
21	-Wno-implicit-exception-spec-mismatch \
22	-Wno-overloaded-virtual \
23	-Wno-attributes \
24	-Wno-unknown-attributes \
25	-Wno-unknown-warning-option \
26	-fno-operator-names \
27	-msse2 \
28	-D__STDC_CONSTANT_MACROS \
29	-D__STDC_LIMIT_MACROS \
30	-std=c++11 \
31	-DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
32
33ifneq (16,${PLATFORM_SDK_VERSION})
34COMMON_CFLAGS += -Xclang -fuse-init-array
35else
36COMMON_CFLAGS += -D__STDC_INT64__
37endif
38
39COMMON_SRC_FILES := \
40	preprocessor/Diagnostics.cpp \
41	preprocessor/DirectiveHandler.cpp \
42	preprocessor/DirectiveParser.cpp \
43	preprocessor/ExpressionParser.cpp \
44	preprocessor/Input.cpp \
45	preprocessor/Lexer.cpp \
46	preprocessor/Macro.cpp \
47	preprocessor/MacroExpander.cpp \
48	preprocessor/Preprocessor.cpp \
49	preprocessor/Token.cpp \
50	preprocessor/Tokenizer.cpp \
51	AnalyzeCallDepth.cpp \
52	Compiler.cpp \
53	debug.cpp \
54	Diagnostics.cpp \
55	DirectiveHandler.cpp \
56	glslang_lex.cpp \
57	glslang_tab.cpp \
58	InfoSink.cpp \
59	Initialize.cpp \
60	InitializeParseContext.cpp \
61	IntermTraverse.cpp \
62	Intermediate.cpp \
63	intermOut.cpp \
64	ossource_posix.cpp \
65	OutputASM.cpp \
66	parseConst.cpp \
67	ParseHelper.cpp \
68	PoolAlloc.cpp \
69	SymbolTable.cpp \
70	TranslatorASM.cpp \
71	util.cpp \
72	ValidateLimitations.cpp \
73	ValidateSwitch.cpp \
74
75# liblog_headers is introduced from O
76ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo O),O)
77COMMON_HEADER_LIBRARIES := liblog_headers
78else
79COMMON_HEADER_LIBRARIES :=
80endif
81
82include $(CLEAR_VARS)
83LOCAL_CLANG := true
84LOCAL_MODULE := swiftshader_compiler_release
85LOCAL_MODULE_TAGS := optional
86LOCAL_VENDOR_MODULE := true
87LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
88LOCAL_CFLAGS += \
89	$(COMMON_CFLAGS) \
90	-ffunction-sections \
91	-fdata-sections \
92	-DANGLE_DISABLE_TRACE
93LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
94LOCAL_SHARED_LIBRARIES := libcutils
95LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
96include $(BUILD_STATIC_LIBRARY)
97
98include $(CLEAR_VARS)
99LOCAL_CLANG := true
100LOCAL_MODULE := swiftshader_compiler_debug
101LOCAL_MODULE_TAGS := optional
102LOCAL_VENDOR_MODULE := true
103LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
104
105LOCAL_CFLAGS += \
106	$(COMMON_CFLAGS) \
107	-UNDEBUG \
108	-g \
109	-O0
110
111LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
112LOCAL_SHARED_LIBRARIES := libcutils
113LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
114include $(BUILD_STATIC_LIBRARY)
115