emulator: opengl: Update/simplify build scripts
This patch is a major rework of the build opengl-emulation
build scripts. See README for details.
In a nutshell, this introduces various functions that considerably
simplify the declaration of the 26+ modules in this implementation,
by handling auto-generation of sources and module imports/exports.
Change-Id: I827522d783c7b6cf5eafd37204a1025c235458cd
diff --git a/tools/emulator/opengl/Android.mk b/tools/emulator/opengl/Android.mk
new file mode 100644
index 0000000..ba9f93a
--- /dev/null
+++ b/tools/emulator/opengl/Android.mk
@@ -0,0 +1,89 @@
+# This is the top-level build file for the Android HW OpenGL ES emulation
+# in Android.
+#
+# You must define BUILD_EMULATOR_OPENGL to 'true' in your environment to
+# build the following files.
+#
+# Also define BUILD_EMULATOR_OPENGL_DRIVER to 'true' to build the gralloc
+# stuff as well.
+#
+ifeq (true,$(BUILD_EMULATOR_OPENGL))
+
+# Top-level for all modules
+EMUGL_PATH := $(call my-dir)
+
+# Directory containing common headers used by several modules
+# This is always set to a module's LOCAL_C_INCLUDES
+# See the definition of emugl-begin-module in common.mk
+#
+EMUGL_COMMON_INCLUDES := $(EMUGL_PATH)/host/include/libOpenglRender
+
+# Include common definitions used by all the modules included later
+# in this build file. This contains the definition of all useful
+# emugl-xxxx functions.
+#
+include $(EMUGL_PATH)/common.mk
+
+# IMPORTANT: ORDER IS CRUCIAL HERE
+#
+# For the import/export feature to work properly, you must include
+# modules below in correct order. That is, if module B depends on
+# module A, then it must be included after module A below.
+#
+# This ensures that anything exported by module A will be correctly
+# be imported by module B when it is declared.
+#
+# Note that the build system will complain if you try to import a
+# module that hasn't been declared yet anyway.
+#
+
+# First, build the emugen host source-generation tool
+#
+# It will be used by other modules to generate wire protocol encode/decoder
+# source files (see all emugl-gen-decoder/encoder in common.mk)
+#
+include $(EMUGL_PATH)/host/tools/emugen/Android.mk
+include $(EMUGL_PATH)/shared/OpenglOsUtils/Android.mk
+include $(EMUGL_PATH)/shared/OpenglCodecCommon/Android.mk
+
+# System static libraries
+include $(EMUGL_PATH)/system/GLESv1_enc/Android.mk
+include $(EMUGL_PATH)/system/GLESv2_enc/Android.mk
+include $(EMUGL_PATH)/system/renderControl_enc/Android.mk
+include $(EMUGL_PATH)/system/OpenglSystemCommon/Android.mk
+include $(EMUGL_PATH)/tests/ut_rendercontrol_enc/Android.mk
+
+# System shared libraries
+include $(EMUGL_PATH)/system/GLESv1/Android.mk
+include $(EMUGL_PATH)/system/egl/Android.mk
+include $(EMUGL_PATH)/tests/gles_android_wrapper/Android.mk
+
+include $(EMUGL_PATH)/system/gralloc/Android.mk
+
+# Host static libraries
+include $(EMUGL_PATH)/host/libs/GLESv1_dec/Android.mk
+include $(EMUGL_PATH)/host/libs/GLESv2_dec/Android.mk
+include $(EMUGL_PATH)/host/libs/renderControl_dec/Android.mk
+include $(EMUGL_PATH)/tests/ut_rendercontrol_dec/Android.mk
+include $(EMUGL_PATH)/host/libs/Translator/GLcommon/Android.mk
+include $(EMUGL_PATH)/host/libs/Translator/GLES_CM/Android.mk
+include $(EMUGL_PATH)/host/libs/Translator/GLES_V2/Android.mk
+include $(EMUGL_PATH)/host/libs/Translator/EGL/Android.mk
+
+# Host shared libraries
+include $(EMUGL_PATH)/host/libs/libOpenglRender/Android.mk
+
+# Host executables
+include $(EMUGL_PATH)/host/renderer/Android.mk
+
+# Host unit-test for the renderer. this one uses its own small
+# EGL host wrapper.
+include $(EMUGL_PATH)/tests/EGL_host_wrapper/Android.mk
+include $(EMUGL_PATH)/tests/emulator_test_renderer/Android.mk
+include $(EMUGL_PATH)/tests/ut_renderer/Android.mk
+
+include $(EMUGL_PATH)/tests/translator_tests/MacCommon/Android.mk
+include $(EMUGL_PATH)/tests/translator_tests/GLES_CM/Android.mk
+include $(EMUGL_PATH)/tests/translator_tests/GLES_V2/Android.mk
+
+endif # BUILD_EMULATOR_OPENGL == true
diff --git a/tools/emulator/opengl/README b/tools/emulator/opengl/README
new file mode 100644
index 0000000..7147802
--- /dev/null
+++ b/tools/emulator/opengl/README
@@ -0,0 +1,106 @@
+This directory contains the modules related to hardware OpenGL ES emulation.
+
+For now, this feature is experimental, and *nothing* will be built unless
+you define BUILD_EMULATOR_OPENGL in your environment, for example with:
+
+ export BUILD_EMULATOR_OPENGL=true
+
+You can also define the following to enable the "gralloc" module, which
+corresponds to system-wide GLES emulation (by default, only a specific set
+of applications are enabled, see below):
+
+ export BUILD_EMULATOR_OPENGL_DRIVER=true
+
+
+I. Overview of components:
+==========================
+
+The 'emugen' tool is used to generate several source files related to the
+EGL/GLES command stream used between the guest and the host during emulation.
+
+ host/tools/emugen -> emugen program
+
+Note that emugen is capable of generating, from a single set of specification
+files, three types of auto-generated sources:
+
+ - sources to encode commands into a byte stream.
+ - sources to decide the byte stream into commands.
+ - sources to wrap normal procedural EGL/GLES calls into context-aware ones.
+
+Modules under the system/ directory corresponds to code that runs on the
+guest, and implement the marshalling of EGL/GLES commands into a stream of
+bytes sent to the host through a fast pipe mechanism.
+
+ system/GLESv1_enc -> encoder for GLES 1.1 commands
+ system/GLESv2_enc -> encoder for GLES 2.0 commands
+ system/renderControl_enc -> encoder for rendering control commands
+ system/egl -> emulator-specific guest EGL library
+ system/GLESv1 -> emulator-specific guest GLES 1.1 library
+ system/gralloc -> emulator-specific gralloc module
+ system/OpenglSystemCommon -> library of common routines
+
+Modules under the host/ directory corresponds to code that runs on the
+host, and implement the decoding of the command stream, translation of
+EGL/GLES commands into desktop GL 2.0 ones, and rendering to an off-screen
+buffer.
+
+ host/libs/GLESv1_dec -> decoder for GLES 1.1 commands
+ host/libs/GLESv2_dec -> decoder for GLES 2.0 commands
+ host/libs/renderControl_dec -> decoder for rendering control commands
+
+ host/libs/Translator/EGL -> translator for EGL commands
+ host/libs/Translator/GLES_CM -> translator for GLES 1.1 commands
+ host/libs/Translator/GLES_V2 -> translator for GLES 2.0 commands
+ host/libs/Translator/GLcommon -> library of common translation routines
+
+ host/libs/libOpenglRender -> rendering library (uses all host libs above)
+ can be used by the 'renderer' program below,
+ or directly linked into the emulator UI program.
+
+ host/renderer/ -> stand-alone renderer program executable.
+ this can run in head-less mode and receive requests from
+ several emulators at the same time. It is the receiving
+ end of all command streams.
+
+Modules under the test/ directory correspond to test programs that are useful
+to debug the various modules described above:
+
+ tests/EGL_host_wrapper -> a small library used to dynamically load the
+ desktop libEGL.so or a replacement named by the
+ ANDROID_EGL_LIB environment variable. This lib
+ provides all EGL entry points.
+
+ tests/emulator_test_renderer -> a small program to run the rendering library
+ in a single SDL window on the host desktop.
+
+ tests/gles_android_wrapper -> guest EGL / GLES libraries that are run on
+ the device to run some tests. Replace the
+ system/egl and system/GLESv1 modules for now.
+
+ tests/translator_tests/GLES_CM -> desktop GLESv1 translation unit test
+ tests/translator_tests/GLES_V2 -> desktop GLESv2 translation unit test
+ tests/translator_tests/MacCommon -> used by translation tests on Mac only.
+
+ tests/ut_rendercontrol_enc -> guest library used by tests/ut_renderer
+ tests/ut_rendercontrol_dec -> host library used by tests/ut_renderer
+ tests/ut_renderer -> unit-test for render control and rendering library.
+
+
+II. Build system considerations:
+--------------------------------
+
+The dependencies on the more than 20 components described in the previous
+section are pretty sophisticated, involving lots of auto-generated code and
+non-trivial placement for guest/device libraries.
+
+To simplify the development and maintenance of these modules, a set of
+helper GNU Make function is defined in common.mk, and included from the
+Android.mk in this directory.
+
+These functions all begin with the "emugl-" prefix, and can be used to
+declare modules, what information they export to other modules, or import
+from them, and also what kind of auto-generated sources they depend on.
+
+Look at the comments inside common.mk and the Android.mk of the modules
+to better understand what's happening.
+
diff --git a/tools/emulator/opengl/common.mk b/tools/emulator/opengl/common.mk
new file mode 100644
index 0000000..012ecf1
--- /dev/null
+++ b/tools/emulator/opengl/common.mk
@@ -0,0 +1,335 @@
+# This top-level build file is included by all modules that implement
+# the hardware OpenGL ES emulation for Android.
+#
+# We use it to ensure that all sub-Makefiles are included in the right
+# order for various variable definitions and usage to happen in the correct
+# order.
+#
+
+# The following macros are used to start a new GLES emulation module.
+#
+# This will define LOCAL_MODULE as $1, plus a few other variables
+# needed by the build system (e.g. LOCAL_MODULE_TAGS, LOCAL_MODULE_CLASS...)
+#
+# NOTE: You still need to define LOCAL_PATH before this
+#
+# Usage example:
+#
+# $(call emugl-begin-static-library,<name>)
+# LOCAL_SRC_FILES := ....
+# LOCAL_C_INCLUDES += ....
+# $(call emugl-end-module)
+#
+emugl-begin-static-library = $(call emugl-begin-module,$1,STATIC_LIBRARY)
+emugl-begin-shared-library = $(call emugl-begin-module,$1,SHARED_LIBRARY)
+emugl-begin-host-static-library = $(call emugl-begin-module,$1,HOST_STATIC_LIBRARY,HOST)
+emugl-begin-host-shared-library = $(call emugl-begin-module,$1,HOST_SHARED_LIBRARY,HOST)
+emugl-begin-host-executable = $(call emugl-begin-module,$1,HOST_EXECUTABLE,HOST)
+
+# Internal list of all declared modules (used for sanity checking)
+_emugl_modules :=
+_emugl_HOST_modules :=
+
+# do not use directly, see functions above instead
+emugl-begin-module = \
+ $(eval include $(CLEAR_VARS)) \
+ $(eval LOCAL_MODULE := $1) \
+ $(eval LOCAL_MODULE_TAGS := debug) \
+ $(eval LOCAL_MODULE_CLASS := $(patsubst HOST_%,%,$(patsubst %EXECUTABLE,%EXECUTABLES,$(patsubst %LIBRARY,%LIBRARIES,$2)))) \
+ $(eval LOCAL_IS_HOST_MODULE := $(if $3,true,))\
+ $(eval LOCAL_C_INCLUDES := $(EMUGL_COMMON_INCLUDES)) \
+ $(eval LOCAL_PRELINK_MODULE := false)\
+ $(eval _EMUGL_INCLUDE_TYPE := $(BUILD_$2)) \
+ $(call _emugl-init-module,$1,$2,$3)
+
+# Used to end a module definition, see function definitions above
+emugl-end-module = \
+ $(eval include $(_EMUGL_INCLUDE_TYPE))\
+ $(eval _EMUGL_INCLUDE_TYPE :=) \
+ $(eval _emugl_$(_emugl_HOST)modules += $(_emugl_MODULE))\
+ $(if $(EMUGL_DEBUG),$(call emugl-dump-module))
+
+# Managing module exports and imports.
+#
+# A module can 'import' another module, by calling emugl-import. This will
+# make the current LOCAL_MODULE inherit various definitions exported from
+# the imported module.
+#
+# Module exports are defined by calling emugl-export. Here is an example:
+#
+# $(call emugl-begin-static-library,foo)
+# LOCAL_SRC_FILES := foo.c
+# $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+# $(call emugl-export,SHARED_LIBRARIES,libcutils)
+# $(call emugl-end-module)
+#
+# $(call emugl-begin-shared-library,bar)
+# LOCAL_SRC_FILES := bar.cpp
+# $(call emugl-import,foo)
+# $(call emugl-end-module)
+#
+# Here, we define a static library named 'foo' which exports an include
+# path and a shared library requirement, and a shared library 'bar' which
+# imports it.
+#
+# What this means is that:
+#
+# - 'bar' will automatically inherit foo's LOCAL_PATH in its LOCAL_C_INCLUDES
+# - 'bar' will automatically inherit libcutils in its own LOCAL_SHARED_LIBRARIES
+#
+# Note that order of declaration matters. If 'foo' is defined after 'bar' in
+# the example above, nothing will work correctly because dependencies are
+# computed at import time.
+#
+#
+# IMPORTANT: Imports are transitive, i.e. when module A imports B,
+# it automatically imports anything imported by B too.
+
+# This is the list of recognized export types we support for now.
+EMUGL_EXPORT_TYPES := \
+ CFLAGS \
+ LDLIBS \
+ LDFLAGS \
+ C_INCLUDES \
+ SHARED_LIBRARIES \
+ STATIC_LIBRARIES \
+ ADDITIONAL_DEPENDENCIES
+
+# Initialize a module in our database
+# $1: Module name
+# $2: Module type
+# $3: "HOST" for a host module, empty for a target one.
+_emugl-init-module = \
+ $(eval _emugl_HOST := $(if $3,HOST_,))\
+ $(eval _emugl_MODULE := $(_emugl_HOST)$1)\
+ $(if $(filter $(_emugl_$(_emugl_HOST)modules),$(_emugl_MODULE)),\
+ $(error There is already a $(if $3,host,) module named $1!)\
+ )\
+ $(eval _mod = $(_emugl_MODULE)) \
+ $(eval _emugl.$(_mod).type := $(patsubst HOST_%,%,$2))\
+ $(eval _emugl.$(_mod).imports :=) \
+ $(foreach _type,$(EMUGL_EXPORT_TYPES),\
+ $(eval _emugl.$(_mod).export.$(_type) :=)\
+ )
+
+# Called to indicate that a module exports a given local variable for its
+# users. This also adds this to LOCAL_$1
+# $1: Local variable type (e.g. CFLAGS, LDLIBS, etc...)
+# $2: Value(s) to append to the export
+emugl-export = \
+ $(eval _emugl.$(_emugl_MODULE).export.$1 += $2)\
+ $(eval LOCAL_$1 := $2 $(LOCAL_$1))
+
+emugl-export-outer = \
+ $(eval _emugl.$(_emugl_MODULE).export.$1 += $2)
+
+# Called to indicate that a module imports the exports of another module
+# $1: list of modules to import
+#
+emugl-import = \
+ $(foreach _imod,$1,\
+ $(call _emugl-module-import,$(_emugl_HOST)$(_imod))\
+ )
+
+_emugl-module-import = \
+ $(eval _mod := $(_emugl_MODULE))\
+ $(if $(filter-out $(_emugl_$(_emugl_HOST)modules),$1),\
+ $(info Unknown imported emugles module: $1)\
+ $(if $(_emugl_HOST),\
+ $(eval _names := $(patsubst HOST_%,%,$(_emugl_HOST_modules))),\
+ $(eval _names := $(_emugl_modules))\
+ )\
+ $(info Please one of the following names: $(_names))\
+ $(error Aborting)\
+ )\
+ $(if $(filter-out $(_emugl.$(_mod).imports),$1),\
+ $(eval _emugl.$(_mod).imports += $1)\
+ $(foreach _sub,$(_emugl.$1.imports),\
+ $(call _emugl-module-import,$(_sub))\
+ )\
+ $(foreach _type,$(EMUGL_EXPORT_TYPES),\
+ $(eval LOCAL_$(_type) := $(_emugl.$1.export.$(_type)) $(LOCAL_$(_type)))\
+ )\
+ $(if $(filter EXECUTABLE SHARED_LIBRARY,$(_emugl.$(_emugl_MODULE).type)),\
+ $(if $(filter STATIC_LIBRARY,$(_emugl.$1.type)),\
+ $(eval LOCAL_STATIC_LIBRARIES := $(1:HOST_%=%) $(LOCAL_STATIC_LIBRARIES))\
+ )\
+ $(if $(filter SHARED_LIBRARY,$(_emugl.$1.type)),\
+ $(eval LOCAL_SHARED_LIBRARIES := $(1:HOST_%=%) $(LOCAL_SHARED_LIBRARIES))\
+ )\
+ )\
+ )
+
+_emugl-dump-list = \
+ $(foreach _list_item,$(strip $1),$(info . $(_list_item)))
+
+emugl-dump-module = \
+ $(info MODULE=$(_emugl_MODULE))\
+ $(info . HOST=$(_emugl_HOST))\
+ $(info . TYPE=$(_emugl.$(_emugl_MODULE).type))\
+ $(info . IMPORTS=$(_emugl.$(_emugl_MODULE).imports))\
+ $(foreach _type,$(EMUGL_EXPORT_TYPES),\
+ $(if $(filter C_INCLUDES ADDITIONAL_DEPENDENCIES,$(_type)),\
+ $(info . EXPORT.$(_type) :=)\
+ $(call _emugl-dump-list,$(_emugl.$(_emugl_MODULE).export.$(_type)))\
+ $(info . LOCAL_$(_type) :=)\
+ $(call _emugl-dump-list,$(LOCAL_$(_type)))\
+ ,\
+ $(info . EXPORT.$(_type) := $(strip $(_emugl.$(_emugl_MODULE).export.$(_type))))\
+ $(info . LOCAL_$(_type) := $(strip $(LOCAL_$(_type))))\
+ )\
+ )\
+ $(info . LOCAL_SRC_FILES := $(LOCAL_SRC_FILES))\
+
+# This function can be called to generate the decoder source files.
+# LOCAL_MODULE and LOCAL_MODULE_CLASS must be defined or the build will abort.
+# Source files will be stored in the local intermediates directory that will
+# be automatically added to your LOCAL_C_INCLUDES.
+#
+# Usage:
+# $(call emugl-gen-decoder,<input-dir>,<basename>)
+#
+emugl-gen-decoder = \
+ $(eval _emugl_out := $(call local-intermediates-dir))\
+ $(call emugl-gen-decoder-generic,$(_emugl_out),$1,$2)\
+ $(call emugl-export,C_INCLUDES,$(_emugl_out))
+
+# This function can be called to generate the encoder source files.
+# LOCAL_MODULE and LOCAL_MODULE_CLASS must be defined or the build will abort.
+# Source files will be stored in the local intermediates directory that will
+# be automatically added to your LOCAL_C_INCLUDES.
+# Usage:
+# $(call emugl-gen-encoder,<input-dir>,<basename>)
+#
+emugl-gen-encoder = \
+ $(eval _emugl_out := $(call local-intermediates-dir)) \
+ $(call emugl-gen-encoder-generic,$(_emugl_out),$1,$2) \
+ $(call emugl-export,C_INCLUDES,$(_emugl_out))
+
+
+# This function can be called to generate the wrapper source files.
+# LOCAL_MODULE and LOCAL_MODULE_CLASS must be defined or the build will abort.
+# Source files will be stored in the local intermediates directory that will
+# be automatically added to your LOCAL_C_INCLUDES.
+# Usage:
+# $(call emugl-gen-wrapper,<input-dir>,<basename>)
+#
+emugl-gen-wrapper = \
+ $(eval _emugl_out := $(call local-intermediates-dir)) \
+ $(call emugl-gen-wrapper-generic,$(_emugl_out),$1,$2) \
+ $(call emugl-export,C_INCLUDES,$(_emugl_out))
+
+# IMPORTANT: EMUGL_EMUGEN is defined under host/tools/emugen/Android.mk
+#
+
+# DO NOT CALL DIRECTLY, USE emugl-gen-decoder instead.
+#
+# The following function can be called to generate wire protocol decoder
+# source files, Usage is:
+#
+# $(call emugl-gen-decoder-generic,<dst-dir>,<src-dir>,<basename>)
+#
+# <dst-dir> is the destination directory where the generated sources are stored
+# <src-dir> is the source directory where to find <basename>.attrib, etc..
+# <basename> is the emugen basename (see host/tools/emugen/README)
+#
+emugl-gen-decoder-generic = $(eval $(emugl-gen-decoder-generic-ev))
+
+define emugl-gen-decoder-generic-ev
+_emugl_dec := $$1/$$3
+_emugl_src := $$2/$$3
+GEN := $$(_emugl_dec)_dec.cpp \
+ $$(_emugl_dec)_dec.h \
+ $$(_emugl_dec)_opcodes.h \
+ $$(_emugl_dec)_server_context.h \
+ $$(_emugl_dec)_server_context.cpp
+
+$$(GEN): PRIVATE_PATH := $$(LOCAL_PATH)
+$$(GEN): PRIVATE_CUSTOM_TOOL := $$(EMUGL_EMUGEN) -D $$1 -i $$2 $$3
+$$(GEN): $$(EMUGL_EMUGEN) $$(_emugl_src).attrib $$(_emugl_src).in $$(_emugl_src).types
+ $$(transform-generated-source)
+
+$$(call emugl-export,ADDITIONAL_DEPENDENCIES,$$(GEN))
+LOCAL_GENERATED_SOURCES += $$(GEN)
+LOCAL_C_INCLUDES += $$1
+endef
+
+# DO NOT CALL DIRECTLY, USE emugl-gen-encoder instead.
+#
+# The following function can be called to generate wire protocol encoder
+# source files, Usage is:
+#
+# $(call emugl-gen-encoder-generic,<dst-dir>,<src-dir>,<basename>)
+#
+# <dst-dir> is the destination directory where the generated sources are stored
+# <src-dir> is the source directory where to find <basename>.attrib, etc..
+# <basename> is the emugen basename (see host/tools/emugen/README)
+#
+emugl-gen-encoder-generic = $(eval $(emugl-gen-encoder-generic-ev))
+
+define emugl-gen-encoder-generic-ev
+_emugl_enc := $$1/$$3
+_emugl_src := $$2/$$3
+GEN := $$(_emugl_enc)_entry.cpp \
+ $$(_emugl_enc)_enc.cpp \
+ $$(_emugl_enc)_enc.h \
+ $$(_emugl_enc)_ftable.h \
+ $$(_emugl_enc)_opcodes.h \
+ $$(_emugl_enc)_client_context.h \
+ $$(_emugl_enc)_client_context.cpp
+
+$$(GEN): PRIVATE_PATH := $$(LOCAL_PATH)
+$$(GEN): PRIVATE_CUSTOM_TOOL := $$(EMUGL_EMUGEN) -E $$1 -i $$2 $$3
+$$(GEN): $$(EMUGL_EMUGEN) $$(_emugl_src).attrib $$(_emugl_src).in $$(_emugl_src).types
+ $$(transform-generated-source)
+
+$$(call emugl-export,ADDITIONAL_DEPENDENCIES,$$(GEN))
+LOCAL_GENERATED_SOURCES += $$(GEN)
+LOCAL_C_INCLUDES += $$1
+endef
+
+
+# DO NOT CALL DIRECTLY, USE emugl-gen-wrapper instead.
+#
+# The following function can be called to generate GL library wrapper
+# Usage is:
+#
+# $(call emugl-gen-wrapper-generic,<dst-dir>,<src-dir>,<basename>)
+#
+# <dst-dir> is the destination directory where the generated sources are stored
+# <src-dir> is the source directory where to find <basename>.attrib, etc..
+# <basename> is the emugen basename (see host/tools/emugen/README)
+#
+emugl-gen-wrapper-generic = $(eval $(emugl-gen-wrapper-generic-ev))
+
+define emugl-gen-wrapper-generic-ev
+_emugl_wrap := $$1/$$3
+_emugl_src := $$2/$$3
+GEN := $$(_emugl_wrap)_wrapper_entry.cpp \
+ $$(_emugl_wrap)_wrapper_context.cpp \
+ $$(_emugl_wrap)_wrapper_context.h \
+ $$(_emugl_wrap)_wrapper_proc.h
+
+$$(GEN): PRIVATE_PATH := $$(LOCAL_PATH)
+$$(GEN): PRIVATE_CUSTOM_TOOL := $$(EMUGL_EMUGEN) -W $$1 -i $$2 $$3
+$$(GEN): $$(EMUGL_EMUGEN) $$(_emugl_src).attrib $$(_emugl_src).in $$(_emugl_src).types
+ $$(transform-generated-source)
+
+$$(call emugl-export,ADDITIONAL_DEPENDENCIES,$$(GEN))
+LOCAL_GENERATED_SOURCES += $$(GEN)
+LOCAL_C_INCLUDES += $$1
+
+#ifneq ($$(HOST_OS),windows)
+$$(call emugl-export,LDFLAGS,-ldl)
+#endif
+
+endef
+
+# Call this function when your shared library must be placed in a non-standard
+# library path (i.e. not under /system/lib
+# $1: library sub-path,relative to /system/lib
+# For example: $(call emugl-set-shared-library-subpath,egl)
+emugl-set-shared-library-subpath = \
+ $(eval LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$1)\
+ $(call emugl-export-outer,ADDITIONAL_DEPENDENCIES,$(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)$(TARGET_SHLIB_SUFFIX))
+
diff --git a/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk b/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk
index f5e2441..e9bc81c 100644
--- a/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk
+++ b/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk
@@ -1,45 +1,16 @@
-
LOCAL_PATH := $(call my-dir)
-### GLESv1 Decoder ###########################################
-include $(CLEAR_VARS)
+$(call emugl-begin-host-shared-library,libGLESv1_dec)
-emulatorOpengl := $(LOCAL_PATH)/../../..
-EMUGEN := $(HOST_OUT_EXECUTABLES)/emugen
+$(call emugl-import, libOpenglCodecCommon)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-export,LDLIBS,-ldl)
-LOCAL_IS_HOST_MODULE := true
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLESv1_dec
+$(call emugl-gen-decoder,$(EMUGL_PATH)/system/GLESv1_enc,gl)
-intermediates := $(local-intermediates-dir)
+LOCAL_SRC_FILES := GLDecoder.cpp
-LOCAL_SRC_FILES := \
- GLDecoder.cpp
+# for gl_types.h !
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/system/GLESv1_enc)
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/system/GLESv1_enc
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- liblog
-
-# XXX - uncomment for debug
-#LOCAL_CFLAGS := -DDEBUG_PRINTOUT -O0 -g
-LOCAL_LDLIBS := -ldl
-
-
-GEN := $(intermediates)/gl_server_context.cpp $(intermediates)/gl_dec.cpp $(intermediates)/gl_dec.h
-
-$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN) : PRIVATE_CUSTOM_TOOL := $(EMUGEN) -D $(intermediates) -i $(emulatorOpengl)/system/GLESv1_enc gl
-$(GEN) : $(EMUGEN) \
- $(emulatorOpengl)/system/GLESv1_enc/gl.attrib \
- $(emulatorOpengl)/system/GLESv1_enc/gl.in \
- $(emulatorOpengl)/system/GLESv1_enc/gl.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN)
-include $(BUILD_HOST_SHARED_LIBRARY)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk b/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk
index 72bbbc6..265bac6 100644
--- a/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk
+++ b/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk
@@ -1,47 +1,13 @@
LOCAL_PATH := $(call my-dir)
-### GLESv2 Decoder ###########################################
-include $(CLEAR_VARS)
+$(call emugl-begin-host-shared-library,libGLESv2_dec)
+$(call emugl-import, libOpenglCodecCommon libOpenglOsUtils)
+$(call emugl-gen-decoder,$(EMUGL_PATH)/system/GLESv2_enc,gl2)
-emulatorOpengl := $(LOCAL_PATH)/../../..
-EMUGEN := $(BUILD_OUT_EXECUTABLES)/emugen
+# For gl2_types.h !
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/system/GLESv2_enc)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-LOCAL_IS_HOST_MODULE := true
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLESv2_dec
+LOCAL_SRC_FILES := GL2Decoder.cpp
-intermediates := $(local-intermediates-dir)
-
-LOCAL_SRC_FILES := \
- GL2Decoder.cpp
-
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/shared \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/system/GLESv2_enc
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- libOpenglOsUtils \
- liblog
-
-# XXX - uncomment for debug
-#LOCAL_CFLAGS := -DDEBUG_PRINTOUT -O0 -g
-LOCAL_LDLIBS := -ldl
-
-
-GEN := $(intermediates)/gl2_dec.cpp $(intermediates)/gl2_dec.h $(intermediates)/gl2_server_context.cpp
-
-$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN) : PRIVATE_CUSTOM_TOOL := $(EMUGEN) -D $(intermediates) -i $(emulatorOpengl)/system/GLESv2_enc gl2
-$(GEN) : $(EMUGEN) \
- $(emulatorOpengl)/system/GLESv2_enc/gl2.attrib \
- $(emulatorOpengl)/system/GLESv2_enc/gl2.in \
- $(emulatorOpengl)/system/GLESv2_enc/gl2.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN)
-include $(BUILD_HOST_SHARED_LIBRARY)
-
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h b/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h
index 970c08d..e626db3 100644
--- a/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h
+++ b/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h
@@ -5,7 +5,7 @@
#define GLES2_LIBNAME "libGLESv2.so"
#include "gl2_dec.h"
-#include "OpenglOsUtils/osDynLibrary.h"
+#include "osDynLibrary.h"
#include "GLDecoderContextData.h"
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk b/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk
index 2fd38fa..9fcf9ce 100644
--- a/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk
+++ b/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk
@@ -1,16 +1,14 @@
LOCAL_PATH := $(call my-dir)
### EGL host implementation ########################
-include $(CLEAR_VARS)
-
-translator_path := $(LOCAL_PATH)/..
+$(call emugl-begin-host-shared-library,libEGL_translator)
+$(call emugl-import,libGLcommon)
OS_SRCS:=
-
ifeq ($(HOST_OS),linux)
OS_SRCS = EglX11Api.cpp
- LOCAL_LDLIBS := -lX11 -lGL -ldl -lpthread
+ LOCAL_LDLIBS += -lX11 -lGL -ldl -lpthread
endif
ifeq ($(HOST_OS),darwin)
@@ -18,12 +16,12 @@
MacNative.m \
MacPixelFormatsAttribs.m
- LOCAL_LDLIBS := -Wl,-framework,AppKit
+ LOCAL_LDLIBS += -Wl,-framework,AppKit
endif
ifeq ($(HOST_OS),windows)
OS_SRCS = EglWindowsApi.cpp
- LOCAL_LDLIBS := -lopengl32 -lgdi32
+ LOCAL_LDLIBS += -lopengl32 -lgdi32
endif
LOCAL_SRC_FILES := \
@@ -41,21 +39,5 @@
EglThreadInfo.cpp \
EglDisplay.cpp
-
-LOCAL_C_INCLUDES += \
- $(translator_path)/include \
- $(translator_path)/../../../shared
-
-LOCAL_CFLAGS := -g -O0
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libEGL_translator
-
-LOCAL_STATIC_LIBRARIES := \
- libGLcommon \
- libcutils \
- libutils \
- liblog \
- libOpenglOsUtils
-
-include $(BUILD_HOST_SHARED_LIBRARY)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk b/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
index b18492e..b32afff 100644
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
+++ b/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
@@ -1,38 +1,15 @@
LOCAL_PATH := $(call my-dir)
### GLES_CM host implementation (On top of OpenGL) ########################
-include $(CLEAR_VARS)
+$(call emugl-begin-host-shared-library,libGLES_CM_translator)
-translator_path := $(LOCAL_PATH)/..
+$(call emugl-import,libGLcommon)
LOCAL_SRC_FILES := \
GLEScmImp.cpp \
GLEScmUtils.cpp \
TextureUtils.cpp \
GLEScmContext.cpp \
- GLEScmValidate.cpp
+ GLEScmValidate.cpp
-LOCAL_C_INCLUDES += \
- $(translator_path)/include \
- $(translator_path)/../../../shared
-
-LOCAL_STATIC_LIBRARIES := \
- libGLcommon \
- libOpenglOsUtils \
- libutils \
- libcutils
-
-LOCAL_CFLAGS := -g -O0
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLES_CM_translator
-
-ifeq ($(HOST_OS),linux)
- LOCAL_LDLIBS := -lGL -ldl
-endif
-
-ifeq ($(HOST_OS),windows)
- LOCAL_LDLIBS := -lopengl32 -lgdi32
-endif
-
-include $(BUILD_HOST_SHARED_LIBRARY)
-
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk b/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
index 723bd38..acae242 100644
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
+++ b/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
@@ -1,9 +1,8 @@
LOCAL_PATH := $(call my-dir)
### GLES_CM host implementation (On top of OpenGL) ########################
-include $(CLEAR_VARS)
-
-translator_path := $(LOCAL_PATH)/..
+$(call emugl-begin-host-shared-library,libGLES_V2_translator)
+$(call emugl-import, libGLcommon)
LOCAL_SRC_FILES := \
GLESv2Imp.cpp \
@@ -11,27 +10,4 @@
GLESv2Validate.cpp \
ShaderParser.cpp \
-LOCAL_C_INCLUDES += \
- $(translator_path)/include \
-
-LOCAL_STATIC_LIBRARIES := \
- libGLcommon \
- libOpenglOsUtils \
- libutils \
- libcutils
-
-ifeq ($(HOST_OS),linux)
- LOCAL_LDLIBS := -lGL -ldl
-endif
-
-ifeq ($(HOST_OS),windows)
- LOCAL_LDLIBS := -lopengl32 -lgdi32
-endif
-
-LOCAL_CFLAGS := -g -O0
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLES_V2_translator
-
-
-include $(BUILD_HOST_SHARED_LIBRARY)
-
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk b/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
index 0e9cb97..1c7615b 100644
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
+++ b/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
@@ -1,8 +1,9 @@
-
LOCAL_PATH := $(call my-dir)
### EGL host implementation ########################
-include $(CLEAR_VARS)
+$(call emugl-begin-host-static-library,libGLcommon)
+
+$(call emugl-import,libOpenglOsUtils)
translator_path := $(LOCAL_PATH)/..
@@ -18,25 +19,16 @@
objectNameManager.cpp
-LOCAL_C_INCLUDES += \
- $(translator_path)/include \
- $(translator_path)/../../../shared
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglOsUtils \
- libutils \
- libcutils
-
-LOCAL_CFLAGS := -g -O0
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLcommon
ifeq ($(HOST_OS),linux)
- LOCAL_LDFLAGS := -Wl,--whole-archive
- LOCAL_LDLIBS := -lGL -ldl
+# $(call emugl-export,LDFLAGS,-Wl,--whole-archive)
+ $(call emugl-export,LDLIBS,-lGL -ldl)
endif
ifeq ($(HOST_OS),windows)
- LOCAL_LDLIBS := -lopengl32 -lgdi32
+ $(call emugl-export,LDLIBS,-lopengl32 -lgdi32)
endif
-include $(BUILD_HOST_STATIC_LIBRARY)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/../include $(EMUGL_PATH)/shared)
+$(call emugl-export,STATIC_LIBRARIES, libcutils liblog)
+
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk b/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk
index 55894c5..1e133b4 100644
--- a/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk
+++ b/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk
@@ -1,18 +1,11 @@
LOCAL_PATH := $(call my-dir)
ifneq ($(HOST_OS),darwin)
+
### libOpenglRender #################################################
-include $(CLEAR_VARS)
+$(call emugl-begin-host-shared-library,libOpenglRender)
-emulatorOpengl := $(LOCAL_PATH)/../../..
-
-LOCAL_IS_HOST_MODULE := true
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libOpenglRender
-LOCAL_ADDITIONAL_DEPENDENCIES := \
- $(HOST_OUT_SHARED_LIBRARIES)/lib_renderControl_dec$(HOST_SHLIB_SUFFIX) \
- $(HOST_OUT_SHARED_LIBRARIES)/libGLESv1_dec$(HOST_SHLIB_SUFFIX)
+$(call emugl-import,libGLESv1_dec lib_renderControl_dec libOpenglCodecCommon libOpenglOsUtils)
LOCAL_SRC_FILES := \
render_api.cpp \
@@ -30,39 +23,8 @@
ReadBuffer.cpp \
RenderServer.cpp
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/host/include \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/shared/OpenglOsUtils \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/host/libs/GLESv1_dec \
- $(emulatorOpengl)/system/GLESv1_enc \
- $(emulatorOpengl)/system/renderControl_enc \
- $(call intermediates-dir-for, SHARED_LIBRARIES, libGLESv1_dec, HOST) \
- $(call intermediates-dir-for, SHARED_LIBRARIES, lib_renderControl_dec, HOST)
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/host/include)
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- libOpenglOsUtils \
- libcutils \
- libutils \
- liblog
+$(call emugl-end-module)
-LOCAL_SHARED_LIBRARIES := \
- libGLESv1_dec \
- lib_renderControl_dec
-
-ifeq ($(HOST_OS),windows)
- LOCAL_LDLIBS := -lws2_32
-endif
-
-ifeq ($(HOST_OS),linux)
- LOCAL_LDLIBS := -ldl -lpthread -lrt
-endif
-
-# XXX - uncomment for debug
-#LOCAL_CFLAGS := -O0 -g
-
-include $(BUILD_HOST_SHARED_LIBRARY)
endif # HOST_OS != darwin
-
diff --git a/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk b/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk
index 373d2f4..889b5dd 100644
--- a/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk
+++ b/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk
@@ -1,36 +1,8 @@
-
LOCAL_PATH := $(call my-dir)
-### renderControl Decoder ###########################################
-include $(CLEAR_VARS)
-
-emulatorOpengl := $(LOCAL_PATH)/../../..
-EMUGEN := $(BUILD_OUT_EXECUTABLES)/emugen
-
-LOCAL_IS_HOST_MODULE := true
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := lib_renderControl_dec
-LOCAL_SRC_FILES :=
-#LOCAL_CFLAGS += -DDEBUG_PRINTOUT -O0 -g
-intermediates := $(local-intermediates-dir)
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- liblog
-LOCAL_C_INCLUDES += $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/system/renderControl_enc
-
-#we use only *_dec.h as a sentinel for the other generated headers
-GEN := $(intermediates)/renderControl_dec.cpp $(intermediates)/renderControl_dec.h
-$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN): PRIVATE_CUSTOM_TOOL := $(EMUGEN) -D $(intermediates) -i $(emulatorOpengl)/system/renderControl_enc renderControl
-$(GEN): $(EMUGEN) \
- $(emulatorOpengl)/system/renderControl_enc/renderControl.attrib \
- $(emulatorOpengl)/system/renderControl_enc/renderControl.in \
- $(emulatorOpengl)/system/renderControl_enc/renderControl.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN)
-include $(BUILD_HOST_SHARED_LIBRARY)
+$(call emugl-begin-host-shared-library,lib_renderControl_dec)
+$(call emugl-import,libOpenglCodecCommon)
+$(call emugl-gen-decoder,$(EMUGL_PATH)/system/renderControl_enc,renderControl)
+# For renderControl_types.h
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/system/renderControl_enc)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/tools/emugen/Android.mk b/tools/emulator/opengl/host/tools/emugen/Android.mk
index fcd7b24..9a9751d 100644
--- a/tools/emulator/opengl/host/tools/emugen/Android.mk
+++ b/tools/emulator/opengl/host/tools/emugen/Android.mk
@@ -1,10 +1,16 @@
-
LOCAL_PATH:=$(call my-dir)
-include $(CLEAR_VARS)
+$(call emugl-begin-host-executable,emugen)
-LOCAL_MODULE_TAGS := debug
-LOCAL_SRC_FILES := ApiGen.cpp EntryPoint.cpp main.cpp strUtils.cpp TypeFactory.cpp
-LOCAL_MODULE := emugen
+ LOCAL_SRC_FILES := \
+ ApiGen.cpp \
+ EntryPoint.cpp \
+ main.cpp \
+ strUtils.cpp \
+ TypeFactory.cpp
-include $(BUILD_HOST_EXECUTABLE)
+$(call emugl-end-module)
+
+# The location of the emugen host tool that is used to generate wire
+# protocol encoders/ decoders. This variable is used by other emugl modules.
+EMUGL_EMUGEN := $(LOCAL_BUILT_MODULE)
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk b/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk
index af8c163..986f9c6 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk
@@ -1,38 +1,33 @@
-
+# This build script corresponds to a library containing many definitions
+# common to both the guest and the host. They relate to
+#
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
-### OpenglCodecCommon ##############################################
+### CodecCommon guest ##############################################
+$(call emugl-begin-static-library,libOpenglCodecCommon)
-include $(CLEAR_VARS)
-
-OpenglCodecCommon := \
+LOCAL_SRC_FILES := \
GLClientState.cpp \
glUtils.cpp \
TcpStream.cpp \
TimeUtils.cpp
-LOCAL_SRC_FILES := $(OpenglCodecCommon)
-
-LOCAL_C_INCLUDES += $(emulatorOpengl)/host/include/libOpenglRender
-
LOCAL_CFLAGS += -DLOG_TAG=\"eglCodecCommon\"
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libOpenglCodecCommon
-include $(BUILD_STATIC_LIBRARY)
+$(call emugl-export,SHARED_LIBRARIES,libcutils)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-end-module)
### OpenglCodecCommon host ##############################################
-include $(CLEAR_VARS)
+$(call emugl-begin-host-static-library,libOpenglCodecCommon)
-LOCAL_SRC_FILES := $(OpenglCodecCommon)
+LOCAL_SRC_FILES := \
+ GLClientState.cpp \
+ glUtils.cpp \
+ TcpStream.cpp \
+ TimeUtils.cpp
-LOCAL_C_INCLUDES += $(emulatorOpengl)/host/include/libOpenglRender
+$(call emugl-export,STATIC_LIBRARIES,libcutils)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-end-module)
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libOpenglCodecCommon
-LOCAL_PRELINK_MODULE := false
-
-# XXX - enable the next line for host debugging - JR
-# LOCAL_CFLAGS := -O0 -g
-include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk b/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk
index 44a9994..5a53a23 100644
--- a/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk
+++ b/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk
@@ -1,42 +1,48 @@
+# This build script corresponds to a small library containing
+# OS-specific support functions for:
+# - thread-local storage
+# - dynamic library loading
+# - child process creation and wait (probably not needed in guest)
+#
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
-### OpenglOsUtils ##############################################
+### Guest library ##############################################
+$(call emugl-begin-static-library,libOpenglOsUtils)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- osProcessUnix.cpp \
- osThreadUnix.cpp \
- osDynLibrary.cpp
-
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libOpenglOsUtils
-
-include $(BUILD_STATIC_LIBRARY)
-
-### OpenglOsUtils host ##############################################
-include $(CLEAR_VARS)
-
-ifneq ($(HOST_OS),windows)
+ $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+ $(call emugl-export,LDLIBS,-ldl)
LOCAL_SRC_FILES := \
osProcessUnix.cpp \
osThreadUnix.cpp \
osDynLibrary.cpp
- LOCAL_LDLIBS := -ldl
+$(call emugl-end-module)
-else # !linux
- LOCAL_SRC_FILES := \
- osProcessWin.cpp \
- osThreadWin.cpp \
- osDynLibrary.cpp
+### Host library ##############################################
+$(call emugl-begin-host-static-library,libOpenglOsUtils)
-endif # windows
+ $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libOpenglOsUtils
+ LOCAL_SRC_FILES := osDynLibrary.cpp
-include $(BUILD_HOST_STATIC_LIBRARY)
+ ifeq ($(HOST_OS),windows)
+ LOCAL_SRC_FILES += \
+ osProcessWin.cpp \
+ osThreadWin.cpp
+
+ $(call emugl-export,LDLIBS,-lws2_32)
+ else
+ LOCAL_SRC_FILES += \
+ osProcessUnix.cpp \
+ osThreadUnix.cpp
+
+ $(call emugl-export,LDLIBS,-ldl)
+ endif
+
+ ifeq ($(HOST_OS),linux)
+ $(call emugl-export,LDLIBS,-lpthread -lrt)
+ endif
+
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/system/GLESv1/Android.mk b/tools/emulator/opengl/system/GLESv1/Android.mk
index e341292..9119c07 100644
--- a/tools/emulator/opengl/system/GLESv1/Android.mk
+++ b/tools/emulator/opengl/system/GLESv1/Android.mk
@@ -1,47 +1,58 @@
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
### GLESv1 implementation ###########################################
-include $(CLEAR_VARS)
+$(call emugl-begin-shared-library,libGLESv1_CM_emulation)
+$(call emugl-import,libOpenglSystemCommon libGLESv1_enc lib_renderControl_enc)
-# add additional depencies to ensure that the generated code that we depend on
-# is generated
-LOCAL_ADDITIONAL_DEPENDENCIES := \
- $(TARGET_OUT_SHARED_LIBRARIES)/lib_renderControl_enc$(TARGET_SHLIB_SUFFIX) \
- $(TARGET_OUT_SHARED_LIBRARIES)/libGLESv1_enc$(TARGET_SHLIB_SUFFIX)
-
-LOCAL_SRC_FILES := \
- gl.cpp
-
-
-LOCAL_PRELINK_MODULE := false
LOCAL_CFLAGS += -DLOG_TAG=\"GLES_emulation\" -DGL_GLEXT_PROTOTYPES
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/system/OpenglSystemCommon \
- $(emulatorOpengl)/system/GLESv1_enc \
- $(emulatorOpengl)/system/renderControl_enc \
- $(call intermediates-dir-for, SHARED_LIBRARIES, lib_renderControl_enc) \
- $(call intermediates-dir-for, SHARED_LIBRARIES, libGLESv1_enc)
-LOCAL_MODULE_TAGS := debug
+LOCAL_SRC_FILES := gl.cpp
+LOCAL_STATIC_LIBRARIES += libqemu
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
-LOCAL_MODULE := libGLESv1_CM_emulation
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+$(call emugl-end-module)
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- libqemu
-
-LOCAL_SHARED_LIBRARIES := \
- libcutils \
- libutils \
- libdl \
- libOpenglSystemCommon \
- libGLESv1_enc \
- lib_renderControl_enc
-
-
-include $(BUILD_SHARED_LIBRARY)
+#
+# include $(CLEAR_VARS)
+#
+# # add additional depencies to ensure that the generated code that we depend on
+# # is generated
+# LOCAL_ADDITIONAL_DEPENDENCIES := \
+# $(TARGET_OUT_SHARED_LIBRARIES)/lib_renderControl_enc$(TARGET_SHLIB_SUFFIX) \
+# $(TARGET_OUT_SHARED_LIBRARIES)/libGLESv1_enc$(TARGET_SHLIB_SUFFIX)
+#
+# LOCAL_SRC_FILES := \
+# gl.cpp
+#
+#
+# LOCAL_PRELINK_MODULE := false
+# LOCAL_CFLAGS += -DLOG_TAG=\"GLES_emulation\" -DGL_GLEXT_PROTOTYPES
+# LOCAL_C_INCLUDES += \
+# $(emulatorOpengl)/host/include/libOpenglRender \
+# $(emulatorOpengl)/shared/OpenglCodecCommon \
+# $(emulatorOpengl)/system/OpenglSystemCommon \
+# $(emulatorOpengl)/system/GLESv1_enc \
+# $(emulatorOpengl)/system/renderControl_enc \
+# $(call intermediates-dir-for, SHARED_LIBRARIES, lib_renderControl_enc) \
+# $(call intermediates-dir-for, SHARED_LIBRARIES, libGLESv1_enc)
+#
+# LOCAL_MODULE_TAGS := debug
+# LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+# LOCAL_MODULE := libGLESv1_CM_emulation
+# LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+#
+#
+# LOCAL_STATIC_LIBRARIES := \
+# libOpenglCodecCommon \
+# libqemu
+#
+# LOCAL_SHARED_LIBRARIES := \
+# libcutils \
+# libutils \
+# libdl \
+# libOpenglSystemCommon \
+# libGLESv1_enc \
+# lib_renderControl_enc
+#
+#
+# include $(BUILD_SHARED_LIBRARY)
diff --git a/tools/emulator/opengl/system/GLESv1_enc/Android.mk b/tools/emulator/opengl/system/GLESv1_enc/Android.mk
index f48b1f7..25c8c49 100644
--- a/tools/emulator/opengl/system/GLESv1_enc/Android.mk
+++ b/tools/emulator/opengl/system/GLESv1_enc/Android.mk
@@ -1,51 +1,18 @@
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
### GLESv1_enc Encoder ###########################################
-include $(CLEAR_VARS)
+$(call emugl-begin-shared-library,libGLESv1_enc)
+LOCAL_CFLAGS += -DLOG_TAG=\"emuglGLESv1_enc\"
LOCAL_SRC_FILES := \
GLEncoder.cpp \
GLEncoderUtils.cpp
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLESv1_enc
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+$(call emugl-gen-encoder,$(LOCAL_PATH),gl)
-glesv1_intermediates := $(local-intermediates-dir)
+$(call emugl-import,libOpenglCodecCommon)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-export,C_INCLUDES,$(intermediates))
-LOCAL_PRELINK_MODULE := false
-LOCAL_CFLAGS += -DLOG_TAG=\"egl_GLESv1_enc\"
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/system/renderControl_enc \
- $(call intermediates-dir-for, SHARED_LIBRARIES, lib_renderControl_enc) \
- $(glesv1_intermediates)
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- libqemu
-
-LOCAL_SHARED_LIBRARIES := \
- libcutils
-
-EMUGEN := $(HOST_OUT_EXECUTABLES)/emugen
-
-GEN_GL := \
- $(glesv1_intermediates)/gl_entry.cpp \
- $(glesv1_intermediates)/gl_enc.cpp \
- $(glesv1_intermediates)/gl_enc.h
-
-$(GEN_GL) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN_GL) : PRIVATE_CUSTOM_TOOL := \
- $(EMUGEN) -E $(glesv1_intermediates) -i $(PRIVATE_PATH) gl
-$(GEN_GL) : $(EMUGEN) \
- $(LOCAL_PATH)/gl.attrib \
- $(LOCAL_PATH)/gl.in \
- $(LOCAL_PATH)//gl.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN_GL)
-include $(BUILD_SHARED_LIBRARY)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/system/GLESv2_enc/Android.mk b/tools/emulator/opengl/system/GLESv2_enc/Android.mk
index bc9eef4..2a4d2f4 100644
--- a/tools/emulator/opengl/system/GLESv2_enc/Android.mk
+++ b/tools/emulator/opengl/system/GLESv2_enc/Android.mk
@@ -1,49 +1,18 @@
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
### GLESv2_enc Encoder ###########################################
-include $(CLEAR_VARS)
-
+$(call emugl-begin-shared-library,libGLESv2_enc)
LOCAL_SRC_FILES := \
- GL2EncoderUtils.cpp \
- GL2Encoder.cpp
+ GL2EncoderUtils.cpp \
+ GL2Encoder.cpp
+LOCAL_CFLAGS += -DLOG_TAG=\"emuglGLESv2_enc\"
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libGLESv2_enc
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+$(call emugl-gen-encoder,$(LOCAL_PATH),gl2)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-import,libOpenglCodecCommon)
-glesv2_intermediates := $(local-intermediates-dir)
-
-LOCAL_PRELINK_MODULE := false
-LOCAL_CFLAGS += -DLOG_TAG=\"egl_GLESv2_enc\"
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(glesv2_intermediates)
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon
-LOCAL_SHARED_LIBRARIES := libcutils
-
-EMUGEN := $(HOST_OUT_EXECUTABLES)/emugen
-
-GEN_GL2 := \
- $(glesv2_intermediates)/gl2_entry.cpp \
- $(glesv2_intermediates)/gl2_enc.cpp \
- $(glesv2_intermediates)/gl2_enc.h
-
-$(GEN_GL2) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN_GL2) : PRIVATE_CUSTOM_TOOL := \
- $(EMUGEN) -E $(glesv2_intermediates) -i $(PRIVATE_PATH) gl2
-$(GEN_GL2) : $(EMUGEN) \
- $(LOCAL_PATH)/gl2.attrib \
- $(LOCAL_PATH)/gl2.in \
- $(LOCAL_PATH)/gl2.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN_GL2)
-include $(BUILD_SHARED_LIBRARY)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/system/OpenglSystemCommon/Android.mk b/tools/emulator/opengl/system/OpenglSystemCommon/Android.mk
index 33fc555..f1635ad 100644
--- a/tools/emulator/opengl/system/OpenglSystemCommon/Android.mk
+++ b/tools/emulator/opengl/system/OpenglSystemCommon/Android.mk
@@ -1,41 +1,15 @@
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
-### OpenglSystemCommon ##############################################
-include $(CLEAR_VARS)
-
-# add additional depencies to ensure that the generated code that we depend on
-# is generated
-LOCAL_ADDITIONAL_DEPENDENCIES := \
- $(TARGET_OUT_SHARED_LIBRARIES)/lib_renderControl_enc$(TARGET_SHLIB_SUFFIX) \
- $(TARGET_OUT_SHARED_LIBRARIES)/libGLESv1_enc$(TARGET_SHLIB_SUFFIX)
+$(call emugl-begin-shared-library,libOpenglSystemCommon)
+$(call emugl-import,libGLESv1_enc lib_renderControl_enc)
LOCAL_SRC_FILES := \
- HostConnection.cpp \
- QemuPipeStream.cpp \
- ThreadInfo.cpp
+ HostConnection.cpp \
+ QemuPipeStream.cpp \
+ ThreadInfo.cpp
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/system/GLESv1_enc \
- $(emulatorOpengl)/system/renderControl_enc \
- $(call intermediates-dir-for, SHARED_LIBRARIES, lib_renderControl_enc) \
- $(call intermediates-dir-for, SHARED_LIBRARIES, libGLESv1_enc)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- libqemu
+LOCAL_STATIC_LIBRARIES += libqemu
-LOCAL_SHARED_LIBRARIES := \
- lib_renderControl_enc \
- libGLESv1_enc \
- libcutils \
- libutils
-
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libOpenglSystemCommon
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-
-include $(BUILD_SHARED_LIBRARY)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/system/renderControl_enc/Android.mk b/tools/emulator/opengl/system/renderControl_enc/Android.mk
index 8b704cd..96f15a2 100644
--- a/tools/emulator/opengl/system/renderControl_enc/Android.mk
+++ b/tools/emulator/opengl/system/renderControl_enc/Android.mk
@@ -1,40 +1,7 @@
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
-EMUGEN := $(HOST_OUT_EXECUTABLES)/emugen
-#### renderControl ####
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES :=
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := lib_renderControl_enc
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-
-rc_intermediates := $(local-intermediates-dir)
-
-LOCAL_C_INCLUDES += $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon
-LOCAL_SHARED_LIBRARIES := libcutils
-
-LOCAL_CFLAGS += -DDEBUG_PRINTOUT -O0 -g
-
-RC_GEN := \
- $(rc_intermediates)/renderControl_enc.cpp \
- $(rc_intermediates)/renderControl_enc.h
-
-$(RC_GEN) : PRIVATE_PATH = $(LOCAL_PATH)
-$(RC_GEN) : PRIVATE_CUSTOM_TOOL := \
- $(EMUGEN) -i $(PRIVATE_PATH) -E $(rc_intermediates) renderControl
-$(RC_GEN) : $(EMUGEN) \
- $(LOCAL_PATH)/renderControl.in \
- $(LOCAL_PATH)/renderControl.attrib \
- $(LOCAL_PATH)/renderControl.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(RC_GEN)
-include $(BUILD_SHARED_LIBRARY)
-
+$(call emugl-begin-shared-library,lib_renderControl_enc)
+$(call emugl-gen-encoder,$(LOCAL_PATH),renderControl)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-import,libOpenglCodecCommon)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk b/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk
index d22be81..19d8794 100644
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk
+++ b/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk
@@ -2,19 +2,15 @@
LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
+$(call emugl-begin-host-static-library,libEGL_host_wrapper)
LOCAL_SRC_FILES := \
egl.cpp \
egl_dispatch.cpp
-LOCAL_MODULE := libEGL_host_wrapper
-LOCAL_MODULE_TAGS := debug
+$(call emugl-export,LDLIBS,-ldl -pthread)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-OS_LDLIBS := -ldl -lpthread
+$(call emugl-end-module)
-LOCAL_LDLIBS := $(OS_LDLIBS)
-
-include $(BUILD_HOST_SHARED_LIBRARY)
-
-endif # HOST_OS == linux
\ No newline at end of file
+endif # HOST_OS == linux
diff --git a/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk b/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk
index d0b9086..8ec1b9f 100644
--- a/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk
+++ b/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk
@@ -2,16 +2,11 @@
# For now, OS X is not supported
ifneq ($(HOST_OS),darwin)
-# test opengl renderer driver ###########################
-include $(CLEAR_VARS)
-emulatorOpengl := $(LOCAL_PATH)/../..
+$(call emugl-begin-host-executable,emulator_test_renderer)
+$(call emugl-import,libOpenglRender)
-LOCAL_MODULE := emulator_test_renderer
-LOCAL_MODULE_TAGS := debug
-
-LOCAL_SRC_FILES := \
- main.cpp
+LOCAL_SRC_FILES := main.cpp
PREBUILT := $(HOST_PREBUILT_TAG)
SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
@@ -21,16 +16,8 @@
LOCAL_CFLAGS += $(SDL_CFLAGS) -g -O0
LOCAL_LDLIBS += $(SDL_LDLIBS)
-LOCAL_C_INCLUDES := $(emulatorOpengl)/host/include \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/libs/libOpenglRender
-
-LOCAL_SHARED_LIBRARIES := libOpenglRender \
- libGLESv1_dec \
- lib_renderControl_dec
-
LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
-include $(BUILD_HOST_EXECUTABLE)
+$(call emugl-end-module)
+
endif # HOST_OS != darwin
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk b/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk
index ed98543..ad38c4d 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk
@@ -1,5 +1,15 @@
LOCAL_PATH := $(call my-dir)
+#### libGLESv1_CM_emul.so
+$(call emugl-begin-shared-library,libGLESv1_CM_emul)
+$(call emugl-import,libGLESv1_enc)
+$(call emugl-gen-wrapper,$(EMUGL_PATH)/system/GLESv1_enc,gl)
+$(call emugl-set-shared-library-subpath,egl)
+
+LOCAL_SRC_FILES += glesv1_emul_ifc.cpp
+
+$(call emugl-end-module)
+
emulatorOpengl := $(LOCAL_PATH)/../..
logTag := -DLOG_TAG=\"eglWrapper\"
EMUGEN = $(BUILD_OUT_EXECUTABLES)/emugen
@@ -7,80 +17,104 @@
#debugFlags = -g -O0
#### libGLESv1_CM_emul.so
-include $(CLEAR_VARS)
-
-
-
-LOCAL_MODULE := libGLESv1_CM_emul
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_SRC_FILES := glesv1_emul_ifc.cpp
-
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_TAGS := debug
-LOCAL_SHARED_LIBRARIES := libdl libcutils
-LOCAL_CFLAGS += $(debugFlags)
-
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/system/GLESv1_enc \
- $(emulatorOpengl)/shared/OpenglCodecCommon
-
-glesv1_emul_intermediates := $(local-intermediates-dir)
-
-GEN_GLESv1_emul := \
- $(glesv1_emul_intermediates)/gl_wrapper_entry.cpp \
- $(glesv1_emul_intermediates)/gl_wrapper_context.cpp
-$(GEN_GLESv1_emul) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN_GLESv1_emul) : PRIVATE_CUSTOM_TOOL := \
- $(EMUGEN) -W $(glesv1_emul_intermediates) -i $(emulatorOpengl)/system/GLESv1_enc gl
-$(GEN_GLESv1_emul) : $(EMUGEN) \
- $(emulatorOpengl)/system/GLESv1_enc/gl.in \
- $(emulatorOpengl)/system/GLESv1_enc/gl.attrib \
- $(emulatorOpengl)/system/GLESv1_enc/gl.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN_GLESv1_emul)
-
-include $(BUILD_SHARED_LIBRARY)
+# include $(CLEAR_VARS)
+#
+#
+#
+# LOCAL_MODULE := libGLESv1_CM_emul
+# LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+# LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+# LOCAL_SRC_FILES := glesv1_emul_ifc.cpp
+#
+# LOCAL_PRELINK_MODULE := false
+# LOCAL_MODULE_TAGS := debug
+# LOCAL_SHARED_LIBRARIES := libdl libcutils
+# LOCAL_CFLAGS += $(debugFlags)
+#
+# LOCAL_C_INCLUDES += \
+# $(emulatorOpengl)/system/GLESv1_enc \
+# $(emulatorOpengl)/shared/OpenglCodecCommon
+#
+# glesv1_emul_intermediates := $(local-intermediates-dir)
+#
+# GEN_GLESv1_emul := \
+# $(glesv1_emul_intermediates)/gl_wrapper_entry.cpp \
+# $(glesv1_emul_intermediates)/gl_wrapper_context.cpp
+# $(GEN_GLESv1_emul) : PRIVATE_PATH := $(LOCAL_PATH)
+# $(GEN_GLESv1_emul) : PRIVATE_CUSTOM_TOOL := \
+# $(EMUGEN) -W $(glesv1_emul_intermediates) -i $(emulatorOpengl)/system/GLESv1_enc gl
+# $(GEN_GLESv1_emul) : $(EMUGEN) \
+# $(emulatorOpengl)/system/GLESv1_enc/gl.in \
+# $(emulatorOpengl)/system/GLESv1_enc/gl.attrib \
+# $(emulatorOpengl)/system/GLESv1_enc/gl.types
+# $(transform-generated-source)
+#
+# LOCAL_GENERATED_SOURCES += $(GEN_GLESv1_emul)
+#
+# include $(BUILD_SHARED_LIBRARY)
#### libGLESv2_CM_emul.so
-include $(CLEAR_VARS)
+$(call emugl-begin-shared-library, libGLESv2_emul)
+$(call emugl-import,libGLESv2_enc)
+$(call emugl-gen-wrapper,$(EMUGL_PATH)/system/GLESv2_enc,gl2)
+LOCAL_SRC_FILES += glesv2_emul_ifc.cpp
+$(call emugl-set-shared-library-subpath,egl)
+$(call emugl-end-module)
-LOCAL_MODULE := libGLESv2_emul
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_SRC_FILES := glesv2_emul_ifc.cpp
-
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_TAGS := debug
-LOCAL_SHARED_LIBRARIES := libdl libcutils
-LOCAL_CFLAGS += $(debugFlags)
-
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/system/GLESv2_enc \
- $(emulatorOpengl)/shared/OpenglCodecCommon
-
-glesv2_emul_intermediates := $(local-intermediates-dir)
-
-GEN_GLESv2_emul := \
- $(glesv2_emul_intermediates)/gl2_wrapper_entry.cpp \
- $(glesv2_emul_intermediates)/gl2_wrapper_context.cpp
-
-$(GEN_GLESv2_emul) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN_GLESv2_emul) : PRIVATE_CUSTOM_TOOL := \
- $(EMUGEN) -W $(glesv2_emul_intermediates) -i $(emulatorOpengl)/system/GLESv2_enc gl2
-$(GEN_GLESv2_emul) : $(EMUGEN) \
- $(emulatorOpengl)/system/GLESv2_enc/gl2.in \
- $(emulatorOpengl)/system/GLESv2_enc/gl2.attrib \
- $(emulatorOpengl)/system/GLESv2_enc/gl2.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN_GLESv2_emul)
-
-include $(BUILD_SHARED_LIBRARY)
+# include $(CLEAR_VARS)
+#
+# LOCAL_MODULE := libGLESv2_emul
+# LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+# LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+# LOCAL_SRC_FILES := glesv2_emul_ifc.cpp
+#
+# LOCAL_PRELINK_MODULE := false
+# LOCAL_MODULE_TAGS := debug
+# LOCAL_SHARED_LIBRARIES := libdl libcutils
+# LOCAL_CFLAGS += $(debugFlags)
+#
+# LOCAL_C_INCLUDES += \
+# $(emulatorOpengl)/system/GLESv2_enc \
+# $(emulatorOpengl)/shared/OpenglCodecCommon
+#
+# glesv2_emul_intermediates := $(local-intermediates-dir)
+#
+# GEN_GLESv2_emul := \
+# $(glesv2_emul_intermediates)/gl2_wrapper_entry.cpp \
+# $(glesv2_emul_intermediates)/gl2_wrapper_context.cpp
+#
+# $(GEN_GLESv2_emul) : PRIVATE_PATH := $(LOCAL_PATH)
+# $(GEN_GLESv2_emul) : PRIVATE_CUSTOM_TOOL := \
+# $(EMUGEN) -W $(glesv2_emul_intermediates) -i $(emulatorOpengl)/system/GLESv2_enc gl2
+# $(GEN_GLESv2_emul) : $(EMUGEN) \
+# $(emulatorOpengl)/system/GLESv2_enc/gl2.in \
+# $(emulatorOpengl)/system/GLESv2_enc/gl2.attrib \
+# $(emulatorOpengl)/system/GLESv2_enc/gl2.types
+# $(transform-generated-source)
+#
+# LOCAL_GENERATED_SOURCES += $(GEN_GLESv2_emul)
+#
+# include $(BUILD_SHARED_LIBRARY)
##### libEGL_emul.so ###########
+
+# THE FOLLOWING DOESN'T WORK YET
+#
+# $(call emugl-begin-shared-library,libEGL_emul)
+# $(call emugl-import,libut_rendercontrol_enc libGLESv1_enc libGLESv2_enc libOpenglSystemCommon)
+#
+# $(call emugl-set-shared-library-subpath,egl)
+# LOCAL_CFLAGS += $(logTag)
+#
+# LOCAL_SRC_FILES := \
+# egl.cpp \
+# egl_dispatch.cpp \
+# ServerConnection.cpp \
+# ThreadInfo.cpp
+#
+# $(call emugl-end-module)
+
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
diff --git a/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk b/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
index a411ccf..c1cda0a 100644
--- a/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
+++ b/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
@@ -1,7 +1,7 @@
LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-translator_path := $(LOCAL_PATH)/../../../host/libs/Translator
+$(call emugl-begin-host-executable,triangleCM)
+$(call emugl-import,libEGL_translator libGLES_CM_translator)
PREBUILT := $(HOST_PREBUILT_TAG)
SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
@@ -11,27 +11,50 @@
LOCAL_SRC_FILES:= \
triangleCM.cpp
-
-LOCAL_SHARED_LIBRARIES := \
- libEGL_translator \
- libGLES_CM_translator
-
LOCAL_CFLAGS += $(SDL_CFLAGS) -g -O0
LOCAL_LDLIBS += $(SDL_LDLIBS)
-
-LOCAL_MODULE:= triangleCM
-LOCAL_MODULE_TAGS := debug
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
+LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
ifeq ($(HOST_OS),darwin)
-
-LOCAL_LDLIBS += -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit
-LOCAL_STATIC_LIBRARIES += libMac_view
-LOCAL_C_INCLUDES += \
- $(LOCAL_PATH)/../MacCommon \
- $(translator_path)/include
+$(call emugl-import,libMac_view)
endif
-include $(BUILD_HOST_EXECUTABLE)
+$(call emugl-end-module)
+
+# include $(CLEAR_VARS)
+#
+# translator_path := $(LOCAL_PATH)/../../../host/libs/Translator
+#
+# PREBUILT := $(HOST_PREBUILT_TAG)
+# SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
+# SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
+# SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(SDL_CONFIG) --static-libs))
+#
+# LOCAL_SRC_FILES:= \
+# triangleCM.cpp
+#
+#
+# LOCAL_SHARED_LIBRARIES := \
+# libEGL_translator \
+# libGLES_CM_translator
+#
+# LOCAL_CFLAGS += $(SDL_CFLAGS) -g -O0
+# LOCAL_LDLIBS += $(SDL_LDLIBS)
+#
+#
+# LOCAL_MODULE:= triangleCM
+# LOCAL_MODULE_TAGS := debug
+# LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
+#
+# ifeq ($(HOST_OS),darwin)
+#
+# LOCAL_LDLIBS += -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit
+# LOCAL_STATIC_LIBRARIES += libMac_view
+# LOCAL_C_INCLUDES += \
+# $(LOCAL_PATH)/../MacCommon \
+# $(translator_path)/include
+# endif
+#
+# include $(BUILD_HOST_EXECUTABLE)
diff --git a/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk b/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
index 5cb5c4a..8edea7a 100644
--- a/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
+++ b/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
@@ -1,7 +1,7 @@
LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-translator_path := $(LOCAL_PATH)/../../../host/libs/Translator
+$(call emugl-begin-host-executable,triangleV2)
+$(call emugl-import,libEGL_translator libGLES_V2_translator)
PREBUILT := $(HOST_PREBUILT_TAG)
SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
@@ -11,28 +11,51 @@
LOCAL_SRC_FILES:= \
triangleV2.cpp
-
-LOCAL_SHARED_LIBRARIES := \
- libEGL_translator \
- libGLES_V2_translator
-
LOCAL_CFLAGS += $(SDL_CFLAGS) -g -O0
LOCAL_LDLIBS += $(SDL_LDLIBS)
-
-LOCAL_MODULE:= triangleV2
-LOCAL_MODULE_TAGS := debug
LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
ifeq ($(HOST_OS),darwin)
-
-LOCAL_LDLIBS += -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit
-LOCAL_C_INCLUDES += \
- $(translator_path)/include \
- $(LOCAL_PATH)/../MacCommon
-LOCAL_STATIC_LIBRARIES += libMac_view
-
+$(call emugl-import,libMac_view)
endif
-include $(BUILD_HOST_EXECUTABLE)
+$(call emugl-end-module)
+
+# include $(CLEAR_VARS)
+#
+# translator_path := $(LOCAL_PATH)/../../../host/libs/Translator
+#
+# PREBUILT := $(HOST_PREBUILT_TAG)
+# SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
+# SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
+# SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(SDL_CONFIG) --static-libs))
+#
+# LOCAL_SRC_FILES:= \
+# triangleV2.cpp
+#
+#
+# LOCAL_SHARED_LIBRARIES := \
+# libEGL_translator \
+# libGLES_V2_translator
+#
+# LOCAL_CFLAGS += $(SDL_CFLAGS) -g -O0
+# LOCAL_LDLIBS += $(SDL_LDLIBS)
+#
+#
+# LOCAL_MODULE:= triangleV2
+# LOCAL_MODULE_TAGS := debug
+# LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
+#
+# ifeq ($(HOST_OS),darwin)
+#
+# LOCAL_LDLIBS += -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit
+# LOCAL_C_INCLUDES += \
+# $(translator_path)/include \
+# $(LOCAL_PATH)/../MacCommon
+# LOCAL_STATIC_LIBRARIES += libMac_view
+#
+# endif
+#
+# include $(BUILD_HOST_EXECUTABLE)
diff --git a/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk b/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
index e72ed82..6e849a1 100644
--- a/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
+++ b/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
@@ -1,20 +1,30 @@
-
LOCAL_PATH := $(call my-dir)
ifeq ($(HOST_OS),darwin)
-include $(CLEAR_VARS)
+$(call emugl-begin-host-static-library,libMac_view)
+LIBMACVIEW_FRAMEWORKS := AppKit AudioToolbox AudioUnit
+LIBMACVIEW_PREFIX := -Wl,-framework,
-LOCAL_LDLIBS := -Wl,-framework,AppKit
+$(call emugl-export,LDLIBS,$(foreach _framework,$(LIBMACVIEW_FRAMEWORKS),$(LIBMACVIEW_PREFIX)$(_framework)))
+LOCAL_SRC_FILES := setup_gl.m
+LOCAL_CFLAGS += -g -O0
+$(call emugl-end-module)
+endif # HOST_OS == darwin
-LOCAL_SRC_FILES := setup_gl.m
-
-
-
-LOCAL_CFLAGS := -g -O0
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libMac_view
-
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-endif
+# include $(CLEAR_VARS)
+#
+#
+# LOCAL_LDLIBS := -Wl,-framework,AppKit
+#
+# LOCAL_SRC_FILES := setup_gl.m
+#
+#
+#
+# LOCAL_CFLAGS := -g -O0
+# LOCAL_MODULE_TAGS := debug
+# LOCAL_MODULE := libMac_view
+#
+#
+# include $(BUILD_HOST_STATIC_LIBRARY)
+# endif
diff --git a/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk b/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
index 673fd11..a5a01e8 100644
--- a/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
+++ b/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
@@ -1,38 +1,7 @@
-
LOCAL_PATH := $(call my-dir)
-### ut_rendercontrol Decoder ###########################################
-include $(CLEAR_VARS)
-
-emulatorOpengl := $(LOCAL_PATH)/../..
-EMUGEN := $(HOST_OUT_EXECUTABLES)/emugen
-
-LOCAL_IS_HOST_MODULE := true
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libut_rendercontrol_dec
-LOCAL_SRC_FILES :=
-#LOCAL_CFLAGS += -DDEBUG_PRINTOUT -O0 -g
-intermediates := $(local-intermediates-dir)
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- liblog
-
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(emulatorOpengl)/tests/ut_rendercontrol_enc
-
-#we use only *_dec.h as a sentinel for the other generated headers
-GEN := $(intermediates)/ut_rendercontrol_dec.cpp $(intermediates)/ut_rendercontrol_dec.h
-$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN): PRIVATE_CUSTOM_TOOL := $(EMUGEN) -D $(intermediates) -i $(emulatorOpengl)/tests/ut_rendercontrol_enc ut_rendercontrol
-$(GEN): $(EMUGEN) \
- $(emulatorOpengl)/tests/ut_rendercontrol_enc/ut_rendercontrol.attrib \
- $(emulatorOpengl)/tests/ut_rendercontrol_enc/ut_rendercontrol.in \
- $(emulatorOpengl)/tests/ut_rendercontrol_enc/ut_rendercontrol.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(GEN)
-include $(BUILD_HOST_SHARED_LIBRARY)
+$(call emugl-begin-host-shared-library,libut_rendercontrol_dec)
+$(call emugl-import, libOpenglCodecCommon)
+$(call emugl-gen-decoder,$(EMUGL_PATH)/tests/ut_rendercontrol_enc,ut_rendercontrol)
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/tests/ut_rendercontrol_enc)
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk b/tools/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk
index 29a4857..ae234b2 100644
--- a/tools/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk
+++ b/tools/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk
@@ -1,39 +1,8 @@
LOCAL_PATH := $(call my-dir)
-emulatorOpengl := $(LOCAL_PATH)/../..
-EMUGEN := $(BUILD_OUT_EXECUTABLES)/emugen
-#### ut_rendercontrol ####
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES :=
-LOCAL_MODULE_TAGS := debug
-LOCAL_MODULE := libut_rendercontrol_enc
-LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-
-ut_intermediates := $(local-intermediates-dir)
-
-LOCAL_C_INCLUDES += \
- $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/host/include/libOpenglRender
-
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon
-LOCAL_SHARED_LIBRARIES := libcutils
-
-UT_GEN := \
- $(ut_intermediates)/ut_rendercontrol_enc.cpp \
- $(ut_intermediates)/ut_rendercontrol_enc.h
-
-$(UT_GEN) : PRIVATE_PATH = $(LOCAL_PATH)
-$(UT_GEN) : PRIVATE_CUSTOM_TOOL := \
- $(EMUGEN) -i $(PRIVATE_PATH) -E $(ut_intermediates) ut_rendercontrol
-$(UT_GEN) : $(EMUGEN) \
- $(LOCAL_PATH)/ut_rendercontrol.in \
- $(LOCAL_PATH)/ut_rendercontrol.attrib \
- $(LOCAL_PATH)/ut_rendercontrol.types
- $(transform-generated-source)
-
-LOCAL_GENERATED_SOURCES += $(UT_GEN)
-include $(BUILD_SHARED_LIBRARY)
+$(call emugl-begin-shared-library,libut_rendercontrol_enc)
+$(call emugl-import,libOpenglCodecCommon)
+$(call emugl-gen-encoder,$(LOCAL_PATH),ut_rendercontrol)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/ut_renderer/Android.mk b/tools/emulator/opengl/tests/ut_renderer/Android.mk
index e4c43a2..fe8e7ac 100644
--- a/tools/emulator/opengl/tests/ut_renderer/Android.mk
+++ b/tools/emulator/opengl/tests/ut_renderer/Android.mk
@@ -1,29 +1,9 @@
-# Building this module breaks the Linux build because
-# libxcb.so is not installed in the i686-linux-glibc2.7-4.4.3
-# prebuilt sysroot. Since rebuilding it will take some time, here's a
-# quick fix to unbreak it.
-#
-ifneq (,$(BUILD_EMULATOR_OPENGL))
-
LOCAL_PATH:=$(call my-dir)
-# ut_renderer test program ###########################
-
-include $(CLEAR_VARS)
-
ifeq ($(HOST_OS), linux)
-emulatorOpengl := $(LOCAL_PATH)/../..
-
-LOCAL_MODULE := ut_renderer
-LOCAL_MODULE_TAGS := debug
-
-# add additional depencies to ensure that the generated code that we depend on
-# is generated
-LOCAL_ADDITIONAL_DEPENDENCIES := \
- $(HOST_OUT_SHARED_LIBRARIES)/libut_rendercontrol_dec$(HOST_SHLIB_SUFFIX) \
- $(HOST_OUT_SHARED_LIBRARIES)/libGLESv1_dec$(HOST_SHLIB_SUFFIX) \
- $(HOST_OUT_SHARED_LIBRARIES)/libGLESv2_dec$(HOST_SHLIB_SUFFIX)
+$(call emugl-begin-host-executable,ut_renderer)
+$(call emugl-import,libut_rendercontrol_dec libGLESv1_dec libGLESv2_dec libEGL_host_wrapper)
LOCAL_SRC_FILES := ut_renderer.cpp \
RenderingThread.cpp \
@@ -31,38 +11,20 @@
Renderer.cpp \
RendererContext.cpp \
RendererSurface.cpp \
- X11Windowing.cpp
+ X11Windowing.cpp
# define PVR_WAR to support imgtec PVR opengl-ES implementation
#
-# specifically this MACRO enables code that work arounds a bug
+# specifically this MACRO enables code that work arounds a bug
# in the implementation where glTextureParameter(...,GL_TEXTURE_RECT,...)
-# is called would cause a crash if the texture dimensions have not been
+# is called would cause a crash if the texture dimensions have not been
# defined yet.
-LOCAL_CFLAGS := -DPVR_WAR
+LOCAL_CFLAGS += -DPVR_WAR
#LOCAL_CFLAGS += -g -O0
-LOCAL_C_INCLUDES := $(emulatorOpengl)/shared/OpenglCodecCommon \
- $(emulatorOpengl)/shared \
- $(emulatorOpengl)/host/include/libOpenglRender \
- $(call intermediates-dir-for, SHARED_LIBRARIES, libut_rendercontrol_dec, HOST) \
- $(call intermediates-dir-for, SHARED_LIBRARIES, libGLESv1_dec, HOST) \
- $(call intermediates-dir-for, SHARED_LIBRARIES, libGLESv2_dec, HOST) \
- $(emulatorOpengl)/host/libs/GLESv1_dec \
- $(emulatorOpengl)/host/libs/GLESv2_dec \
- $(emulatorOpengl)/system/GLESv1_enc \
- $(emulatorOpengl)/system/GLESv2_enc \
- $(emulatorOpengl)/tests/ut_rendercontrol_enc
+LOCAL_LDLIBS += -lpthread -lX11 -lrt
-LOCAL_SHARED_LIBRARIES := libut_rendercontrol_dec libGLESv1_dec libGLESv2_dec libEGL_host_wrapper
-LOCAL_STATIC_LIBRARIES := \
- libOpenglCodecCommon \
- libcutils
-
-LOCAL_LDLIBS := -lpthread -lX11 -lrt
-include $(BUILD_HOST_EXECUTABLE)
+$(call emugl-end-module)
endif # HOST_OS == linux
-
-endif # BUILD_EMULATOR_OPENGL