diff --git a/tools/emulator/opengl/Android.mk b/tools/emulator/opengl/Android.mk new file mode 100644 index 000000000..ba9f93a11 --- /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 000000000..71478026c --- /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 000000000..012ecf1a2 --- /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,) +# 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,,) +# +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,,) +# +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,,) +# +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,,,) +# +# is the destination directory where the generated sources are stored +# is the source directory where to find .attrib, etc.. +# 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,,,) +# +# is the destination directory where the generated sources are stored +# is the source directory where to find .attrib, etc.. +# 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,,,) +# +# is the destination directory where the generated sources are stored +# is the source directory where to find .attrib, etc.. +# 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 f5e244144..e9bc81c1e 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 72bbbc62b..265bac673 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 - -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) +LOCAL_SRC_FILES := GL2Decoder.cpp +$(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 970c08d2f..e626db306 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 2fd38fad2..9fcf9ceb7 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 @@ ifeq ($(HOST_OS),darwin) 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 @@ LOCAL_SRC_FILES := \ 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 b18492efa..b32afff3b 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 - -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) + GLEScmValidate.cpp +$(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 723bd384e..acae24228 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 @@ LOCAL_SRC_FILES := \ 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 0e9cb9706..1c7615b43 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 @@ LOCAL_SRC_FILES := \ 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 55894c58a..1e133b423 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 @@ LOCAL_SRC_FILES := \ 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 373d2f437..889b5dd65 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 fcd7b242c..9a9751d44 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 af8c16351..986f9c633 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 44a9994c4..5a53a2314 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 e34129257..9119c070f 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 f48b1f7a8..25c8c4921 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 bc9eef4c8..2a4d2f4af 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 - - -LOCAL_MODULE_TAGS := debug -LOCAL_MODULE := libGLESv2_enc -LOCAL_MODULE_CLASS := SHARED_LIBRARIES - -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) + GL2EncoderUtils.cpp \ + GL2Encoder.cpp + +LOCAL_CFLAGS += -DLOG_TAG=\"emuglGLESv2_enc\" + +$(call emugl-gen-encoder,$(LOCAL_PATH),gl2) +$(call emugl-export,C_INCLUDES,$(LOCAL_PATH)) +$(call emugl-import,libOpenglCodecCommon) + +$(call emugl-end-module) diff --git a/tools/emulator/opengl/system/OpenglSystemCommon/Android.mk b/tools/emulator/opengl/system/OpenglSystemCommon/Android.mk index 33fc555c8..f1635ad6e 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 8b704cdc1..96f15a2a3 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 d22be8118..19d8794f2 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 @@ ifeq ($(HOST_OS),linux) 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 d0b908615..8ec1b9f85 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 @@ LOCAL_PATH:=$(call my-dir) # 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 @@ SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(SDL_CONFIG) --static-libs)) 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 ed98543e2..ad38c4dec 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 @@ EMUGEN = $(BUILD_OUT_EXECUTABLES)/emugen #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 a411ccf0d..c1cda0a68 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 @@ 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 +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 5cb5c4abc..8edea7ad5 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 @@ 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 - +$(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 e72ed828e..6e849a108 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 673fd1184..a5a01e83d 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 29a485792..ae234b2c4 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 e4c43a2ac..fe8e7acc8 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 @@ LOCAL_SRC_FILES := ut_renderer.cpp \ 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