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)
.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)
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
# Set of enum names we've seen.
self.enums = set()
self.registers = {}
+ self.ver = ver
def gen_prefix(self, name):
if name[0] == "_":
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
input_file = sys.argv[1]
-p = Parser()
+p = Parser(sys.argv[2])
p.parse(input_file)
]
v3d_xml_files = []
-foreach v: v3d_versions
- v3d_xml_files += 'v3d_packet_v@0@.xml'.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@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@'],
+ 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',