# 
# Arch Makefile
# =============
# 
# This makefile is designed to process architecture files
#
SHELL = bash
PYTHON_EXEC ?= python3
ARCH_UPDATER = ../scripts/arch_file_updater.py

.SILENT:

.ONESHELL:

# Put it first so that "make" without argument is like "make help".
export COMMENT_EXTRACT

# Put it first so that "make" without argument is like "make help".
help:
	@${PYTHON_EXEC} -c "$$COMMENT_EXTRACT"

v1p1_to_v1p2:
# This commands will update all the architecture file from v1.1 to v1.2
	for f in `ls *.xml`; \
	do ${PYTHON_EXEC} ${ARCH_UPDATER} --input_file $${f} --output_file $${f} || exit 1; \
	done;

# Functions to extract comments from Makefiles
define COMMENT_EXTRACT
import re
with open ('Makefile', 'r' ) as f:
    matches = re.finditer('^([a-zA-Z-_]*):.*\n#(.*)', f.read(), flags=re.M)
    for _, match in enumerate(matches, start=1):
        header, content = match[1], match[2]
        print(f"  {header:10} {content}")
endef