1b8e80941Smrg# Mesa 3-D graphics library
2b8e80941Smrg#
3b8e80941Smrg# Copyright (C) 2015 Chih-Wei Huang <cwhuang@linux.org.tw>
4b8e80941Smrg# Copyright (C) 2015 Android-x86 Open Source Project
5b8e80941Smrg#
6b8e80941Smrg# Permission is hereby granted, free of charge, to any person obtaining a
7b8e80941Smrg# copy of this software and associated documentation files (the "Software"),
8b8e80941Smrg# to deal in the Software without restriction, including without limitation
9b8e80941Smrg# the rights to use, copy, modify, merge, publish, distribute, sublicense,
10b8e80941Smrg# and/or sell copies of the Software, and to permit persons to whom the
11b8e80941Smrg# Software is furnished to do so, subject to the following conditions:
12b8e80941Smrg#
13b8e80941Smrg# The above copyright notice and this permission notice shall be included
14b8e80941Smrg# in all copies or substantial portions of the Software.
15b8e80941Smrg#
16b8e80941Smrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17b8e80941Smrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18b8e80941Smrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19b8e80941Smrg# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20b8e80941Smrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21b8e80941Smrg# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22b8e80941Smrg# DEALINGS IN THE SOFTWARE.
23b8e80941Smrg
24b8e80941SmrgLOCAL_PATH := $(call my-dir)
25b8e80941Smrg
26b8e80941Smrginclude $(CLEAR_VARS)
27b8e80941Smrg
28b8e80941SmrgLOCAL_MODULE := gallium_dri
29b8e80941Smrg
30b8e80941SmrgLOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH)
31b8e80941SmrgLOCAL_SRC_FILES := target.c
32b8e80941Smrg
33b8e80941SmrgLOCAL_CFLAGS :=
34b8e80941Smrg
35b8e80941Smrg# We need --undefined-version as some functions in dri.sym may be missing
36b8e80941Smrg# depending on which drivers are enabled or not. Otherwise, we get the error:
37b8e80941Smrg# "version script assignment of  to symbol FOO failed: symbol not defined"
38b8e80941SmrgLOCAL_LDFLAGS := \
39b8e80941Smrg	-Wl,--version-script=$(LOCAL_PATH)/dri.sym \
40b8e80941Smrg	-Wl,--undefined-version
41b8e80941Smrg
42b8e80941SmrgLOCAL_SHARED_LIBRARIES := \
43b8e80941Smrg	libdl \
44b8e80941Smrg	libglapi \
45b8e80941Smrg	libz
46b8e80941Smrg
47b8e80941Smrg# If Android version >=8 MESA should static link libexpat else should dynamic link
48b8e80941Smrgifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27; echo $$?), 0)
49b8e80941SmrgLOCAL_STATIC_LIBRARIES := \
50b8e80941Smrg	libexpat
51b8e80941Smrgelse
52b8e80941SmrgLOCAL_SHARED_LIBRARIES += \
53b8e80941Smrg	libexpat
54b8e80941Smrgendif
55b8e80941Smrg
56b8e80941SmrgLOCAL_STATIC_LIBRARIES += \
57b8e80941Smrg	libfreedreno_drm \
58b8e80941Smrg	libfreedreno_ir3
59b8e80941Smrg
60b8e80941Smrgifeq ($(USE_LIBBACKTRACE),true)
61b8e80941Smrg	LOCAL_SHARED_LIBRARIES += libbacktrace
62b8e80941Smrgendif
63b8e80941Smrg
64b8e80941Smrg$(foreach d, $(MESA_BUILD_GALLIUM), $(eval LOCAL_CFLAGS += $(patsubst HAVE_%,-D%,$(d))))
65b8e80941Smrg
66b8e80941Smrg# sort GALLIUM_LIBS to remove any duplicates
67b8e80941SmrgLOCAL_WHOLE_STATIC_LIBRARIES := \
68b8e80941Smrg	$(sort $(GALLIUM_LIBS)) \
69b8e80941Smrg	libmesa_st_dri \
70b8e80941Smrg	libmesa_st_mesa \
71b8e80941Smrg	libmesa_glsl \
72b8e80941Smrg	libmesa_compiler \
73b8e80941Smrg	libmesa_nir \
74b8e80941Smrg	libmesa_dri_common \
75b8e80941Smrg	libmesa_megadriver_stub \
76b8e80941Smrg	libmesa_gallium \
77b8e80941Smrg	libmesa_pipe_loader \
78b8e80941Smrg	libmesa_util \
79b8e80941Smrg	libmesa_loader
80b8e80941Smrg
81b8e80941Smrg# sort GALLIUM_SHARED_LIBS to remove any duplicates
82b8e80941SmrgLOCAL_SHARED_LIBRARIES += $(sort $(GALLIUM_SHARED_LIBS))
83b8e80941Smrg
84b8e80941Smrgifneq ($(filter 5 6 7, $(MESA_ANDROID_MAJOR_VERSION)),)
85b8e80941SmrgLOCAL_POST_INSTALL_CMD := \
86b8e80941Smrg	$(foreach l, lib $(if $(filter true,$(TARGET_IS_64_BIT)),lib64), \
87b8e80941Smrg	  $(eval MESA_DRI_MODULE_PATH := $(TARGET_OUT_VENDOR)/$(l)/$(MESA_DRI_MODULE_REL_PATH)) \
88b8e80941Smrg	  mkdir -p $(MESA_DRI_MODULE_PATH); \
89b8e80941Smrg	  $(foreach d, $(GALLIUM_TARGET_DRIVERS), ln -sf gallium_dri.so $(MESA_DRI_MODULE_PATH)/$(d)_dri.so;) \
90b8e80941Smrg	)
91b8e80941Smrgelse
92b8e80941SmrgLOCAL_MODULE_SYMLINKS := $(foreach d, $(GALLIUM_TARGET_DRIVERS), $(d)_dri.so)
93b8e80941Smrgendif
94b8e80941Smrg
95b8e80941Smrginclude $(GALLIUM_COMMON_MK)
96b8e80941Smrginclude $(BUILD_SHARED_LIBRARY)
97