diff options
author | Eric Anholt <[email protected]> | 2018-06-27 10:46:04 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2018-06-29 13:36:28 -0700 |
commit | 6f7ad7ed11d92a302e309c3bc042cc76547cd2f7 (patch) | |
tree | a29dfbff969b056ac47e1f390a05bad831200f08 | |
parent | a99c9e63a07477634ab73945e5da5b9f580e5828 (diff) |
v3d: Pass the version being generated to the pack generator script.
It turns out that most V3D versions change very few packets, so keeping
separate copies of the XML per version makes changing the XML a pain as
you have to replicate your changes to each one. This is the start of
changing it so that one XML can generate headers for multiple versions.
-rw-r--r-- | src/broadcom/Android.genxml.mk | 6 | ||||
-rw-r--r-- | src/broadcom/Makefile.genxml.am | 2 | ||||
-rw-r--r-- | src/broadcom/cle/gen_pack_header.py | 8 | ||||
-rw-r--r-- | src/broadcom/cle/meson.build | 26 |
4 files changed, 22 insertions, 20 deletions
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,30 +26,28 @@ v3d_versions = [ ] v3d_xml_files = [] -foreach v: v3d_versions - v3d_xml_files += 'v3d_packet_v@[email protected]'.format(v) -endforeach - -v3d_xml_h = custom_target( - 'v3d_xml.h', - input : ['../../intel/genxml/gen_zipped_file.py', v3d_xml_files], - output : 'v3d_xml.h', - command : [prog_python2, '@INPUT@'], - capture : true, -) - v3d_xml_pack = [] -foreach f : v3d_xml_files +foreach v : v3d_versions + f = 'v3d_packet_v@[email protected]'.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@'], + command : [prog_python2, '@INPUT@', '@0@'.format(v)], capture : true, ) endforeach +v3d_xml_h = custom_target( + 'v3d_xml.h', + input : ['../../intel/genxml/gen_zipped_file.py', v3d_xml_files], + output : 'v3d_xml.h', + command : [prog_python2, '@INPUT@'], + capture : true, +) + libbroadcom_cle = static_library( ['broadcom_cle', v3d_xml_h], 'v3d_decoder.c', |