[Mesa-dev] [PATCH] Android: glsl: add rules to generate ir_expression*.h header files

Tapani Pälli tapani.palli at intel.com
Fri Sep 2 04:35:37 UTC 2016


Hi;

Thanks, I was trying to work on the same issue but did not quite get it 
working .. will test this one with N build.

FYI this patch contains both of these (which I believe were issues 
already before mentioned changes, just somehow revealed only with N build?):

https://patchwork.freedesktop.org/patch/107759/
https://patchwork.freedesktop.org/patch/106788/


On 09/01/2016 10:06 PM, Rob Herring wrote:
> Recent changes to generate ir_expression*.h header files broke Android
> builds. This adds the generation rules. This change is complicated due to
> creating a circular dependency between libmesa_glsl, libmesa_nir, and
> libmesa_compiler. Normally, we add static libraries so that include paths
> are added even if there's no linking dependency. That is the case here.
> Instead, we explicitly add the include path using $(MESA_GEN_GLSL_H) to
> libmesa_compiler. This in turn requires shuffling the order of make
> includes. It also uncovered missing dependency tracking of glsl_parser.h.
>
> Signed-off-by: Rob Herring <robh at kernel.org>
> ---
>  src/compiler/Android.glsl.gen.mk    | 25 +++++++++++++++++++++++++
>  src/compiler/Android.glsl.mk        |  1 -
>  src/compiler/Android.mk             | 12 ++++++++----
>  src/mesa/Android.libmesa_dricore.mk |  6 +++++-
>  src/mesa/Android.libmesa_st_mesa.mk |  4 +++-
>  src/mesa/program/Android.mk         |  6 ++++--
>  6 files changed, 45 insertions(+), 9 deletions(-)
>
> diff --git a/src/compiler/Android.glsl.gen.mk b/src/compiler/Android.glsl.gen.mk
> index 157aa27..d7623e5 100644
> --- a/src/compiler/Android.glsl.gen.mk
> +++ b/src/compiler/Android.glsl.gen.mk
> @@ -41,6 +41,15 @@ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \
>  	$(LIBGLCPP_GENERATED_FILES) \
>  	$(LIBGLSL_GENERATED_FILES))
>
> +LOCAL_EXPORT_C_INCLUDE_DIRS += \
> +	$(intermediates)/glsl \
> +
> +# Modules using libmesa_nir must set LOCAL_GENERATED_SOURCES to this
> +MESA_GEN_GLSL_H := $(addprefix $(call local-generated-sources-dir)/, \
> +	glsl/ir_expression_operation.h \
> +	glsl/ir_expression_operation_constant.h \
> +	glsl/ir_expression_operation_strings.h)
> +
>  define local-l-or-ll-to-c-or-cpp
>  	@mkdir -p $(dir $@)
>  	@echo "Mesa Lex: $(PRIVATE_MODULE) <= $<"
> @@ -73,8 +82,24 @@ $(intermediates)/glsl/glsl_lexer.cpp: $(LOCAL_PATH)/glsl/glsl_lexer.ll
>  $(intermediates)/glsl/glsl_parser.cpp: $(LOCAL_PATH)/glsl/glsl_parser.yy
>  	$(call local-yy-to-cpp-and-h,.cpp)
>
> +$(intermediates)/glsl/glsl_parser.h: $(intermediates)/glsl/glsl_parser.cpp
> +
>  $(intermediates)/glsl/glcpp/glcpp-lex.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-lex.l
>  	$(call local-l-or-ll-to-c-or-cpp)
>
>  $(intermediates)/glsl/glcpp/glcpp-parse.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-parse.y
>  	$(call glsl_local-y-to-c-and-h)
> +
> +$(LOCAL_PATH)/glsl/ir.h: $(intermediates)/glsl/ir_expression_operation.h
> +
> +$(intermediates)/glsl/ir_expression_operation.h: $(LOCAL_PATH)/glsl/ir_expression_operation.py
> +	@mkdir -p $(dir $@)
> +	$(hide) $(MESA_PYTHON2) $< enum > $@
> +
> +$(intermediates)/glsl/ir_expression_operation_constant.h: $(LOCAL_PATH)/glsl/ir_expression_operation.py
> +	@mkdir -p $(dir $@)
> +	$(hide) $(MESA_PYTHON2) $< constant > $@
> +
> +$(intermediates)/glsl/ir_expression_operation_strings.h: $(LOCAL_PATH)/glsl/ir_expression_operation.py
> +	@mkdir -p $(dir $@)
> +	$(hide) $(MESA_PYTHON2) $< strings > $@
> diff --git a/src/compiler/Android.glsl.mk b/src/compiler/Android.glsl.mk
> index 21c1065..dcc356f 100644
> --- a/src/compiler/Android.glsl.mk
> +++ b/src/compiler/Android.glsl.mk
> @@ -44,7 +44,6 @@ LOCAL_C_INCLUDES := \
>  	$(MESA_TOP)/src/gallium/auxiliary
>
>  LOCAL_STATIC_LIBRARIES := \
> -	libmesa_compiler \
>  	libmesa_nir
>
>  LOCAL_MODULE := libmesa_glsl
> diff --git a/src/compiler/Android.mk b/src/compiler/Android.mk
> index ac0ced5..1e81ca5 100644
> --- a/src/compiler/Android.mk
> +++ b/src/compiler/Android.mk
> @@ -22,7 +22,8 @@
>
>  LOCAL_PATH := $(call my-dir)
>
> -include $(LOCAL_PATH)/Makefile.sources
> +include $(LOCAL_PATH)/Android.glsl.mk
> +include $(LOCAL_PATH)/Android.nir.mk
>
>  # ---------------------------------------
>  # Build libmesa_compiler
> @@ -30,19 +31,22 @@ include $(LOCAL_PATH)/Makefile.sources
>
>  include $(CLEAR_VARS)
>
> +include $(LOCAL_PATH)/Makefile.sources
>  LOCAL_SRC_FILES := $(LIBCOMPILER_FILES)
>
>  LOCAL_C_INCLUDES := \
>  	$(MESA_TOP)/src/mapi \
>  	$(MESA_TOP)/src/mesa \
>  	$(MESA_TOP)/src/gallium/include \
> -	$(MESA_TOP)/src/gallium/auxiliary
> +	$(MESA_TOP)/src/gallium/auxiliary \
> +	$(dir $(MESA_GEN_GLSL_H))
> +
> +LOCAL_GENERATED_SOURCES += \
> +	$(MESA_GEN_GLSL_H)
>
>  LOCAL_MODULE := libmesa_compiler
>
>  include $(MESA_COMMON_MK)
>  include $(BUILD_STATIC_LIBRARY)
>
> -include $(LOCAL_PATH)/Android.glsl.mk
>
> -include $(LOCAL_PATH)/Android.nir.mk
> diff --git a/src/mesa/Android.libmesa_dricore.mk b/src/mesa/Android.libmesa_dricore.mk
> index d7647a7..86196ce 100644
> --- a/src/mesa/Android.libmesa_dricore.mk
> +++ b/src/mesa/Android.libmesa_dricore.mk
> @@ -60,7 +60,11 @@ LOCAL_C_INCLUDES := \
>  	$(MESA_TOP)/src/mesa/main \
>  	$(MESA_TOP)/src/compiler/nir \
>  	$(MESA_TOP)/src/gallium/include \
> -	$(MESA_TOP)/src/gallium/auxiliary
> +	$(MESA_TOP)/src/gallium/auxiliary \
> +	$(dir $(MESA_GEN_GLSL_H))
> +
> +LOCAL_GENERATED_SOURCES += \
> +	$(MESA_GEN_GLSL_H)
>
>  LOCAL_WHOLE_STATIC_LIBRARIES += \
>  	libmesa_program
> diff --git a/src/mesa/Android.libmesa_st_mesa.mk b/src/mesa/Android.libmesa_st_mesa.mk
> index 785b6de..3905ddc 100644
> --- a/src/mesa/Android.libmesa_st_mesa.mk
> +++ b/src/mesa/Android.libmesa_st_mesa.mk
> @@ -40,6 +40,8 @@ LOCAL_MODULE := libmesa_st_mesa
>  LOCAL_SRC_FILES := \
>  	$(MESA_GALLIUM_FILES)
>
> +LOCAL_GENERATED_SOURCES := $(MESA_GEN_GLSL_H)
> +
>  ifeq ($(strip $(MESA_ENABLE_ASM)),true)
>  ifeq ($(TARGET_ARCH),x86)
>  	LOCAL_SRC_FILES += $(X86_FILES)
> @@ -63,7 +65,7 @@ LOCAL_C_INCLUDES := \
>  LOCAL_WHOLE_STATIC_LIBRARIES += \
>  	libmesa_program
>
> -LOCAL_STATIC_LIBRARIES += libmesa_nir
> +LOCAL_STATIC_LIBRARIES += libmesa_nir libmesa_glsl
>
>  include $(LOCAL_PATH)/Android.gen.mk
>  include $(MESA_COMMON_MK)
> diff --git a/src/mesa/program/Android.mk b/src/mesa/program/Android.mk
> index 6f48543..c6470e6 100644
> --- a/src/mesa/program/Android.mk
> +++ b/src/mesa/program/Android.mk
> @@ -44,7 +44,8 @@ include $(CLEAR_VARS)
>
>  LOCAL_MODULE := libmesa_program
>  LOCAL_MODULE_CLASS := STATIC_LIBRARIES
> -LOCAL_STATIC_LIBRARIES := libmesa_nir
> +LOCAL_STATIC_LIBRARIES := libmesa_nir \
> +	libmesa_glsl
>
>  intermediates := $(call local-generated-sources-dir)
>
> @@ -80,7 +81,8 @@ LOCAL_C_INCLUDES := \
>
>  LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
>
> -LOCAL_GENERATED_SOURCES += $(MESA_GEN_NIR_H)
> +LOCAL_GENERATED_SOURCES += $(MESA_GEN_NIR_H) \
> +	$(MESA_GEN_GLSL_H)
>
>  include $(MESA_COMMON_MK)
>  include $(BUILD_STATIC_LIBRARY)
>


More information about the mesa-dev mailing list