37 lines
949 B
Makefile
37 lines
949 B
Makefile
#
|
|
# 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
|