summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2011-08-17 11:07:01 +0800
committerChia-I Wu <olvaffe@gmail.com>2011-08-21 02:01:48 +0800
commitc9b21d986e6421d57c429f5ba8ca1fc8868e76dc (patch)
tree008c3dafd1a75e9657abd68f3d57e81e9e582faf
parent4b2b0b9fb8d41e7a8df4cdc49d498fcfb99139df (diff)
android: build libGLES_mesa
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.
-rw-r--r--Android.common.mk48
-rw-r--r--Android.mk91
2 files changed, 139 insertions, 0 deletions
diff --git a/Android.common.mk b/Android.common.mk
new file mode 100644
index 0000000000..83177a0cbe
--- /dev/null
+++ b/Android.common.mk
@@ -0,0 +1,48 @@
+# Mesa 3-D graphics library
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@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
+
+# uncomment to keep the debug symbols
+#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 0000000000..b03196ae3c
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,91 @@
+# Mesa 3-D graphics library
+#
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@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.
+
+MESA_TOP := $(call my-dir)
+MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
+MESA_PYTHON2 := python
+
+DRM_TOP := external/drm
+DRM_GRALLOC_TOP := hardware/drm_gralloc
+
+classic_drivers :=
+gallium_drivers := swrast
+
+MESA_GPU_DRIVERS := $(BOARD_GPU_DRIVERS)
+
+# 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 $(classic_drivers), $(MESA_GPU_DRIVERS)),)
+MESA_BUILD_CLASSIC := true
+else
+MESA_BUILD_CLASSIC := false
+endif
+
+ifneq ($(filter $(gallium_drivers), $(MESA_GPU_DRIVERS)),)
+MESA_BUILD_GALLIUM := true
+else
+MESA_BUILD_GALLIUM := false
+endif
+
+ifneq ($(strip $(MESA_GPU_DRIVERS)),)
+
+# ---------------------------------------
+# Build libGLES_mesa
+# ---------------------------------------
+
+LOCAL_PATH := $(MESA_TOP)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES :=
+LOCAL_CFLAGS :=
+LOCAL_C_INCLUDES :=
+
+LOCAL_MODULE := libGLES_mesa
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+
+include $(MESA_COMMON_MK)
+include $(BUILD_SHARED_LIBRARY)
+
+endif # MESA_GPU_DRIVERS