.PHONY: patch svd2rust form check clean-rs clean-patch clean-html clean
.PRECIOUS: svd/%.svd .deps/%.d
SHELL := /usr/bin/env bash
DEVICES ?= imxrt1011 imxrt1015 imxrt1021 imxrt1051 imxrt1052 imxrt1061 imxrt1062 imxrt1064
all: patch crate check
DEVICE_YAMLS := $(foreach device, $(DEVICES), \
$(wildcard devices/$(device)*.yaml))
ARCH_YAMLS := $(wildcard cortex_m/*.yaml)
DEVICE_PATCHED_SVDS := $(patsubst devices/%.yaml, svd/%.svd.patched, $(DEVICE_YAMLS))
ARCH_PATCHED_SVDS := $(patsubst cortex_m/%.yaml, cortex_m/%.svd.patched, $(ARCH_YAMLS))
DEVICE_FORMATTED_SVDS := $(patsubst devices/%.yaml, svd/%.svd.formatted, $(DEVICE_YAMLS))
ARCH_FORMATTED_SVDS := $(patsubst cortex_m/%.yaml, cortex_m/%.svd.formatted, $(ARCH_YAMLS))
svd/%.svd.patched: devices/%.yaml svd/%.svd .deps/%.d
svd patch $<
cortex_m/%.svd.patched: cortex_m/%.yaml cortex_m/%.svd
svd patch $<
svd/%.svd.formatted: svd/%.svd.patched
xmllint $< --format -o $@
cortex_m/%.svd.formatted: cortex_m/%.svd.patched
xmllint $< --format -o $@
patch: $(DEVICE_PATCHED_SVDS) $(ARCH_PATCHED_SVDS)
format: $(DEVICE_FORMATTED_SVDS) $(ARCH_FORMATTED_SVDS)
check:
cargo check
html/index.html: $(PATCHED_SVDS)
@mkdir -p html
python3 scripts/makehtml.py html/ svd/stm32*.svd.patched
html: html/index.html
clean-patch:
rm -f $(DEVICE_PATCHED_SVDS)
rm -f $(ARCH_PATCHED_SVDS)
rm -f $(DEVICE_FORMATTED_SVDS)
rm -f $(ARCH_FORMATTED_SVDS)
clean-html:
rm -rf html
clean: clean-patch clean-html
rm -rf .deps
venv:
python3 -m venv venv
update-venv:
venv/bin/pip install -U pip
venv/bin/pip install -U -r requirements.txt
.deps/%.d: devices/%.yaml
@mkdir -p .deps
python3 scripts/makedeps.py $< > $@
crate: patch
python3 imxrtral.py . svd/imxrt*.svd.patched cortex_m/armv*.svd.patched
-include .deps/*