1LOCAL_PATH:= $(call my-dir)
2
3COMMON_CFLAGS := \
4	-DLOG_TAG=\"libGLES_CM_swiftshader\" \
5	-std=c++11 \
6	-fno-operator-names \
7	-msse2 \
8	-D__STDC_CONSTANT_MACROS \
9	-D__STDC_LIMIT_MACROS \
10	-DEGLAPI= \
11	-DGL_API= \
12	-DGL_APICALL= \
13	-DGL_GLEXT_PROTOTYPES \
14	-Wno-unused-parameter \
15	-Wno-implicit-exception-spec-mismatch \
16	-Wno-overloaded-virtual \
17	-Wno-attributes \
18	-Wno-unknown-attributes \
19	-Wno-unknown-warning-option \
20	-DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
21
22ifneq (16,${PLATFORM_SDK_VERSION})
23COMMON_CFLAGS += -Xclang -fuse-init-array
24else
25COMMON_CFLAGS += -D__STDC_INT64__
26endif
27
28COMMON_SRC_FILES := \
29	Buffer.cpp \
30	Context.cpp \
31	Device.cpp \
32	Framebuffer.cpp \
33	IndexDataManager.cpp \
34	libGLES_CM.cpp \
35	main.cpp \
36	Renderbuffer.cpp \
37	ResourceManager.cpp \
38	Texture.cpp \
39	utilities.cpp \
40	VertexDataManager.cpp
41
42COMMON_C_INCLUDES := \
43	bionic \
44	$(LOCAL_PATH)/../../../include \
45	$(LOCAL_PATH)/../ \
46	$(LOCAL_PATH)/../../ \
47	$(LOCAL_PATH)/../../Renderer/ \
48	$(LOCAL_PATH)/../../Common/ \
49	$(LOCAL_PATH)/../../Shader/ \
50	$(LOCAL_PATH)/../../Main/
51
52ifdef use_subzero
53COMMON_STATIC_LIBRARIES := libsubzero
54else
55COMMON_STATIC_LIBRARIES := libLLVM_swiftshader
56endif
57
58COMMON_SHARED_LIBRARIES := \
59	libdl \
60	liblog \
61	libcutils \
62	libhardware
63
64# libnativewindow is introduced from O
65ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo O),O)
66COMMON_SHARED_LIBRARIES += libnativewindow
67COMMON_STATIC_LIBRARIES += libarect
68COMMON_HEADER_LIBRARIES := libnativebase_headers
69endif
70
71# gralloc1 is introduced from N MR1
72ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 25 && echo NMR1),NMR1)
73COMMON_CFLAGS += -DHAVE_GRALLOC1
74COMMON_SHARED_LIBRARIES += libsync
75endif
76
77# Marshmallow does not have stlport, but comes with libc++ by default
78ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
79COMMON_SHARED_LIBRARIES += libstlport
80COMMON_C_INCLUDES += external/stlport/stlport
81endif
82
83COMMON_LDFLAGS := \
84	-Wl,--gc-sections \
85	-Wl,--version-script=$(LOCAL_PATH)/exports.map \
86	-Wl,--hash-style=sysv
87
88include $(CLEAR_VARS)
89LOCAL_MODULE := libGLESv1_CM_swiftshader_debug
90ifdef TARGET_2ND_ARCH
91ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true)
92LOCAL_MULTILIB := first
93LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/egl
94else
95LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib/egl
96LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64/egl
97endif
98else
99LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/egl
100endif
101LOCAL_MODULE_TAGS := optional
102LOCAL_CLANG := true
103LOCAL_SRC_FILES += $(COMMON_SRC_FILES)
104LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES)
105LOCAL_STATIC_LIBRARIES += swiftshader_top_debug $(COMMON_STATIC_LIBRARIES)
106LOCAL_SHARED_LIBRARIES += $(COMMON_SHARED_LIBRARIES)
107LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
108LOCAL_LDFLAGS += $(COMMON_LDFLAGS)
109LOCAL_CFLAGS += $(COMMON_CFLAGS) -UNDEBUG -g -O0
110include $(BUILD_SHARED_LIBRARY)
111
112include $(CLEAR_VARS)
113LOCAL_MODULE := libGLESv1_CM_swiftshader
114ifdef TARGET_2ND_ARCH
115ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true)
116LOCAL_MULTILIB := first
117LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/egl
118else
119LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib/egl
120LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64/egl
121endif
122else
123LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/egl
124endif
125LOCAL_MODULE_TAGS := optional
126LOCAL_CLANG := true
127LOCAL_SRC_FILES += $(COMMON_SRC_FILES)
128LOCAL_C_INCLUDES += $(COMMON_C_INCLUDES)
129LOCAL_STATIC_LIBRARIES += swiftshader_top_release $(COMMON_STATIC_LIBRARIES)
130LOCAL_SHARED_LIBRARIES += $(COMMON_SHARED_LIBRARIES)
131LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
132LOCAL_LDFLAGS += $(COMMON_LDFLAGS)
133LOCAL_CFLAGS += \
134	$(COMMON_CFLAGS) \
135	-fomit-frame-pointer \
136	-ffunction-sections \
137	-fdata-sections \
138	-DANGLE_DISABLE_TRACE
139include $(BUILD_SHARED_LIBRARY)
140