2017-07-19 15:12 GMT+08:00 Tapani Pälli <tapani.pa...@intel.com>: > Depending on build order, LOCAL_PATH maybe set or not (and can't > be trusted to have assumed path), change modifies all occurences > of LOCAL_PATH as locally defined COMPILER_PATH instead. > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > --- > src/compiler/Android.nir.gen.mk | 38 ++++++++++++++++++++------------------ > 1 file changed, 20 insertions(+), 18 deletions(-) > > diff --git a/src/compiler/Android.nir.gen.mk b/src/compiler/Android.nir.gen.mk > index 4507ac4..81511de 100644 > --- a/src/compiler/Android.nir.gen.mk > +++ b/src/compiler/Android.nir.gen.mk > @@ -27,6 +27,8 @@ ifeq ($(LOCAL_MODULE_CLASS),) > LOCAL_MODULE_CLASS := STATIC_LIBRARIES > endif > > +COMPILER_PATH := $(MESA_TOP)/src/compiler > + > intermediates := $(call local-generated-sources-dir) > > LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) > @@ -48,48 +50,48 @@ MESA_GEN_NIR_H := $(addprefix $(call > local-generated-sources-dir)/, \ > nir/nir_opcodes.h \ > nir/nir_builder_opcodes.h) > > -nir_builder_opcodes_gen := $(LOCAL_PATH)/nir/nir_builder_opcodes_h.py > +nir_builder_opcodes_gen := $(COMPILER_PATH)/nir/nir_builder_opcodes_h.py > nir_builder_opcodes_deps := \ > - $(LOCAL_PATH)/nir/nir_opcodes.py \ > - $(LOCAL_PATH)/nir/nir_builder_opcodes_h.py > + $(COMPILER_PATH)/nir/nir_opcodes.py \ > + $(COMPILER_PATH)/nir/nir_builder_opcodes_h.py > > $(intermediates)/nir/nir_builder_opcodes.h: $(nir_builder_opcodes_deps) > @mkdir -p $(dir $@) > $(hide) $(MESA_PYTHON2) $(nir_builder_opcodes_gen) $< > $@ > > -nir_constant_expressions_gen := $(LOCAL_PATH)/nir/nir_constant_expressions.py > +nir_constant_expressions_gen := > $(COMPILER_PATH)/nir/nir_constant_expressions.py > nir_constant_expressions_deps := \ > - $(LOCAL_PATH)/nir/nir_opcodes.py \ > - $(LOCAL_PATH)/nir/nir_constant_expressions.py > + $(COMPILER_PATH)/nir/nir_opcodes.py \ > + $(COMPILER_PATH)/nir/nir_constant_expressions.py > > $(intermediates)/nir/nir_constant_expressions.c: > $(nir_constant_expressions_deps) > @mkdir -p $(dir $@) > $(hide) $(MESA_PYTHON2) $(nir_constant_expressions_gen) $< > $@ > > -nir_opcodes_h_gen := $(LOCAL_PATH)/nir/nir_opcodes_h.py > +nir_opcodes_h_gen := $(COMPILER_PATH)/nir/nir_opcodes_h.py > nir_opcodes_h_deps := \ > - $(LOCAL_PATH)/nir/nir_opcodes.py \ > - $(LOCAL_PATH)/nir/nir_opcodes_h.py > + $(COMPILER_PATH)/nir/nir_opcodes.py \ > + $(COMPILER_PATH)/nir/nir_opcodes_h.py > > $(intermediates)/nir/nir_opcodes.h: $(nir_opcodes_h_deps) > @mkdir -p $(dir $@) > $(hide) $(MESA_PYTHON2) $(nir_opcodes_h_gen) $< > $@ > > -$(LOCAL_PATH)/nir/nir.h: $(intermediates)/nir/nir_opcodes.h > +$(COMPILER_PATH)/nir/nir.h: $(intermediates)/nir/nir_opcodes.h > > -nir_opcodes_c_gen := $(LOCAL_PATH)/nir/nir_opcodes_c.py > +nir_opcodes_c_gen := $(COMPILER_PATH)/nir/nir_opcodes_c.py > nir_opcodes_c_deps := \ > - $(LOCAL_PATH)/nir/nir_opcodes.py \ > - $(LOCAL_PATH)/nir/nir_opcodes_c.py > + $(COMPILER_PATH)/nir/nir_opcodes.py \ > + $(COMPILER_PATH)/nir/nir_opcodes_c.py > > $(intermediates)/nir/nir_opcodes.c: $(nir_opcodes_c_deps) > @mkdir -p $(dir $@) > $(hide) $(MESA_PYTHON2) $(nir_opcodes_c_gen) $< > $@ > > -nir_opt_algebraic_gen := $(LOCAL_PATH)/nir/nir_opt_algebraic.py > +nir_opt_algebraic_gen := $(COMPILER_PATH)/nir/nir_opt_algebraic.py > nir_opt_algebraic_deps := \ > - $(LOCAL_PATH)/nir/nir_opt_algebraic.py \ > - $(LOCAL_PATH)/nir/nir_algebraic.py > + $(COMPILER_PATH)/nir/nir_opt_algebraic.py \ > + $(COMPILER_PATH)/nir/nir_algebraic.py > > $(intermediates)/nir/nir_opt_algebraic.c: $(nir_opt_algebraic_deps) > @mkdir -p $(dir $@) > @@ -98,6 +100,6 @@ $(intermediates)/nir/nir_opt_algebraic.c: > $(nir_opt_algebraic_deps) > LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \ > $(SPIRV_GENERATED_FILES)) > > -$(intermediates)/spirv/spirv_info.c: $(LOCAL_PATH)/spirv/spirv_info_c.py > $(LOCAL_PATH)/spirv/spirv.core.grammar.json > +$(intermediates)/spirv/spirv_info.c: $(COMPILER_PATH)/spirv/spirv_info_c.py > $(COMPILER_PATH)/spirv/spirv.core.grammar.json > @mkdir -p $(dir $@) > - $(hide) $(MESA_PYTHON2) $(LOCAL_PATH)/spirv/spirv_info_c.py > $(LOCAL_PATH)/spirv/spirv.core.grammar.json $@ || ($(RM) $@; false) > + $(hide) $(MESA_PYTHON2) $(COMPILER_PATH)/spirv/spirv_info_c.py > $(COMPILER_PATH)/spirv/spirv.core.grammar.json $@ || ($(RM) $@; false)
OK. I see the real problem. The rules to build spirv_info.c are incorrectly to use $(LOCAL_PATH). Basically speaking, $(LOCAL_PATH) can't be used in the recipes[1] since it is always changing. When the recipe rules are executed its value is not you expected. (using it in targets and prerequisites is OK) The typical way to handle it is to use private variable: $(intermediates)/spirv/spirv_info.c: PRIVATE_LOCAL_PATH := $(LOCAL_PATH) Then use PRIVATE_LOCAL_PATH in the recpies. But in this case, seems it can just be simplified to $^ (which means all the prerequisites) $(intermediates)/spirv/spirv_info.c: $(COMPILER_PATH)/spirv/spirv_info_c.py $(COMPILER_PATH)/spirv/spirv.core.grammar.json @mkdir -p $(dir $@) $(hide) $(MESA_PYTHON2) $^ $@ || ($(RM) $@; false) [1]: https://www.gnu.org/software/make/manual/make.html#Recipes -- Chih-Wei Android-x86 project http://www.android-x86.org _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev