diff --git a/src/broadcom/Android.genxml.mk b/src/broadcom/Android.genxml.mk index fc5494fb673..908569fcc76 100644 --- a/src/broadcom/Android.genxml.mk +++ b/src/broadcom/Android.genxml.mk @@ -42,26 +42,30 @@ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/broadcom/, $(BROADCOM_GE define header-gen @mkdir -p $(dir $@) @echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))" - $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_SCRIPT_FLAGS) $(PRIVATE_XML) > $@ + $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_SCRIPT_FLAGS) $(PRIVATE_XML) $(PRIVATE_VER) > $@ endef $(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v21.xml +$(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: PRIVATE_VER := 21 $(intermediates)/broadcom/cle/v3d_packet_v21_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v21.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) $(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v33.xml +$(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: PRIVATE_VER := 33 $(intermediates)/broadcom/cle/v3d_packet_v33_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v33.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) $(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v41.xml +$(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: PRIVATE_VER := 41 $(intermediates)/broadcom/cle/v3d_packet_v41_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v41.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) $(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py $(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v42.xml +$(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: PRIVATE_VER := 42 $(intermediates)/broadcom/cle/v3d_packet_v42_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v42.xml $(LOCAL_PATH)/cle/gen_pack_header.py $(call header-gen) diff --git a/src/broadcom/Makefile.genxml.am b/src/broadcom/Makefile.genxml.am index 6cfabaebcb8..7949bf6f705 100644 --- a/src/broadcom/Makefile.genxml.am +++ b/src/broadcom/Makefile.genxml.am @@ -30,7 +30,7 @@ $(BROADCOM_GENXML_GENERATED_FILES): cle/gen_pack_header.py .xml_pack.h: $(MKDIR_GEN) - $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< > $@ || ($(RM) $@; false) + $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< `echo $@ | sed -r 's|.*_v([0-9][0-9])_pack.h|\1|g'` > $@ || ($(RM) $@; false) GEN_ZIPPED = $(srcdir)/../intel/genxml/gen_zipped_file.py cle/v3d_xml.h: $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES) diff --git a/src/broadcom/cle/gen_pack_header.py b/src/broadcom/cle/gen_pack_header.py index 5fde7bb07ad..df547fb5ab1 100644 --- a/src/broadcom/cle/gen_pack_header.py +++ b/src/broadcom/cle/gen_pack_header.py @@ -392,7 +392,7 @@ class Value(object): self.value = int(attrs["value"]) class Parser(object): - def __init__(self): + def __init__(self, ver): self.parser = xml.parsers.expat.ParserCreate() self.parser.StartElementHandler = self.start_element self.parser.EndElementHandler = self.end_element @@ -403,6 +403,7 @@ class Parser(object): # Set of enum names we've seen. self.enums = set() self.registers = {} + self.ver = ver def gen_prefix(self, name): if name[0] == "_": @@ -415,8 +416,7 @@ class Parser(object): def start_element(self, name, attrs): if name == "vcxml": - self.platform = "V3D {}".format(attrs["gen"]) - self.ver = attrs["gen"].replace('.', '') + self.platform = "V3D {}.{}".format(self.ver[0], self.ver[1]) print(pack_header % {'license': license, 'platform': self.platform, 'guard': self.gen_guard()}) elif name in ("packet", "struct", "register"): default_field = None @@ -579,5 +579,5 @@ if len(sys.argv) < 2: input_file = sys.argv[1] -p = Parser() +p = Parser(sys.argv[2]) p.parse(input_file) diff --git a/src/broadcom/cle/meson.build b/src/broadcom/cle/meson.build index b1ff8322524..a45538c986f 100644 --- a/src/broadcom/cle/meson.build +++ b/src/broadcom/cle/meson.build @@ -26,8 +26,18 @@ v3d_versions = [ ] v3d_xml_files = [] -foreach v: v3d_versions - v3d_xml_files += 'v3d_packet_v@0@.xml'.format(v) +v3d_xml_pack = [] +foreach v : v3d_versions + f = 'v3d_packet_v@0@.xml'.format(v) + _name = '@0@_pack.h'.format(f.split('.')[0]) + v3d_xml_files += f + v3d_xml_pack += custom_target( + _name, + input : ['gen_pack_header.py', f], + output : _name, + command : [prog_python2, '@INPUT@', '@0@'.format(v)], + capture : true, + ) endforeach v3d_xml_h = custom_target( @@ -38,18 +48,6 @@ v3d_xml_h = custom_target( capture : true, ) -v3d_xml_pack = [] -foreach f : v3d_xml_files - _name = '@0@_pack.h'.format(f.split('.')[0]) - v3d_xml_pack += custom_target( - _name, - input : ['gen_pack_header.py', f], - output : _name, - command : [prog_python2, '@INPUT@'], - capture : true, - ) -endforeach - libbroadcom_cle = static_library( ['broadcom_cle', v3d_xml_h], 'v3d_decoder.c',