[Mesa-dev] [PATCH 09/18] android: build libGLES_mesa

Chia-I Wu olvaffe at gmail.com
Tue Aug 16 23:28:12 PDT 2011


This is the first step to integrate Mesa into Android(-x86) build
system.  You can git clone mesa under the external/ directory of Android
source tree and build Android with

 $ make BOARD_GPU_DRIVERS=swrast

It will build libGLES_mesa that will be loaded by Android runtime.

libGLES_mesa is still a stub in this commit.
---
 Android.common.mk                         |   48 ++++++++++++++++++
 Android.mk                                |   76 +++++++++++++++++++++++++++++
 src/gallium/Android.mk                    |   36 ++++++++++++++
 src/gallium/Android.template.mk           |   33 ++++++++++++
 src/gallium/targets/egl-static/Android.mk |   39 +++++++++++++++
 5 files changed, 232 insertions(+), 0 deletions(-)
 create mode 100644 Android.common.mk
 create mode 100644 Android.mk
 create mode 100644 src/gallium/Android.mk
 create mode 100644 src/gallium/Android.template.mk
 create mode 100644 src/gallium/targets/egl-static/Android.mk

diff --git a/Android.common.mk b/Android.common.mk
new file mode 100644
index 0000000..c1e4cce
--- /dev/null
+++ b/Android.common.mk
@@ -0,0 +1,48 @@
+# Mesa 3-D graphics library
+# Version:  7.12
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe at gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+LOCAL_C_INCLUDES += \
+	$(MESA_TOP)/include
+
+LOCAL_CFLAGS += \
+	-DPTHREADS \
+	-fvisibility=hidden \
+	-Wno-sign-compare
+
+ifeq ($(strip $(MESA_ENABLE_ASM)),true)
+ifeq ($(TARGET_ARCH),x86)
+LOCAL_CFLAGS += \
+	-DUSE_X86_ASM
+endif
+endif
+
+LOCAL_CPPFLAGS += \
+	-Wno-error=non-virtual-dtor \
+	-Wno-non-virtual-dtor
+
+#LOCAL_STRIP_MODULE := false
+
+ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
+LOCAL_MODULE_TAGS := optional
+endif
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..8da5120
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,76 @@
+# Mesa 3-D graphics library
+# Version:  7.12
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe at gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# BOARD_GPU_DRIVERS should be defined.  The valid values are
+#
+#   classic drivers:
+#   gallium drivers: swrast
+#
+# The main target is libGLES_mesa.  There is no classic drivers yet.
+#
+# The rules can be found in src/gallium/targets/Android.mk.
+
+LOCAL_PATH := $(call my-dir)
+
+MESA_PYTHON2 := python
+
+MESA_TOP := $(LOCAL_PATH)
+DRM_TOP := external/drm
+DRM_GRALLOC_TOP := hardware/drm_gralloc
+
+MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
+
+SUBDIRS := \
+	$(LOCAL_PATH)/src/gallium/Android.mk
+
+MESA_GPU_DRIVERS := $(BOARD_GPU_DRIVERS)
+
+classic_drivers :=
+gallium_drivers := swrast
+
+# warn about invalid drivers
+invalid_drivers := $(filter-out \
+	$(classic_drivers) $(gallium_drivers), $(MESA_GPU_DRIVERS))
+ifneq ($(invalid_drivers),)
+$(warning invalid GPU drivers: $(invalid_drivers))
+# tidy up
+MESA_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(MESA_GPU_DRIVERS))
+endif
+
+# host and target must be the same arch to generate matypes.h
+ifeq ($(TARGET_ARCH),$(HOST_ARCH))
+MESA_ENABLE_ASM := true
+else
+MESA_ENABLE_ASM := false
+endif
+
+ifneq ($(filter $(gallium_drivers), $(MESA_GPU_DRIVERS)),)
+MESA_BUILD_GALLIUM := true
+else
+MESA_BUILD_GALLIUM := false
+endif
+
+ifneq ($(strip $(MESA_GPU_DRIVERS)),)
+include $(SUBDIRS)
+endif
diff --git a/src/gallium/Android.mk b/src/gallium/Android.mk
new file mode 100644
index 0000000..6038647
--- /dev/null
+++ b/src/gallium/Android.mk
@@ -0,0 +1,36 @@
+# Mesa 3-D graphics library
+# Version:  7.12
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe at gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# src/gallium/Android.mk
+
+LOCAL_PATH := $(call my-dir)
+
+GALLIUM_TOP := $(LOCAL_PATH)
+
+GALLIUM_TEMPLATE := $(LOCAL_PATH)/Android.template.mk
+
+SUBDIRS := targets/egl-static
+
+mkfiles := $(patsubst %,$(LOCAL_PATH)/%/Android.mk,$(SUBDIRS))
+include $(mkfiles)
diff --git a/src/gallium/Android.template.mk b/src/gallium/Android.template.mk
new file mode 100644
index 0000000..ce098a4
--- /dev/null
+++ b/src/gallium/Android.template.mk
@@ -0,0 +1,33 @@
+# Mesa 3-D graphics library
+# Version:  7.12
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe at gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# src/gallium/Android.template.mk
+
+LOCAL_C_INCLUDES += \
+	$(GALLIUM_TOP)/include \
+	$(GALLIUM_TOP)/auxiliary \
+	$(GALLIUM_TOP)/winsys \
+	$(GALLIUM_TOP)/drivers
+
+include $(MESA_COMMON_MK)
diff --git a/src/gallium/targets/egl-static/Android.mk b/src/gallium/targets/egl-static/Android.mk
new file mode 100644
index 0000000..e62fcaa
--- /dev/null
+++ b/src/gallium/targets/egl-static/Android.mk
@@ -0,0 +1,39 @@
+# Mesa 3-D graphics library
+# Version:  7.12
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe at gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# Android.mk for libGLES_mesa
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES :=
+LOCAL_CFLAGS :=
+LOCAL_C_INCLUDES :=
+
+LOCAL_MODULE := libGLES_mesa
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+
+include $(GALLIUM_TEMPLATE)
+include $(BUILD_SHARED_LIBRARY)
-- 
1.7.5.4



More information about the mesa-dev mailing list