aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rwxr-xr-xscripts/irq2nvic_h10
2 files changed, 17 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 7ebd769..e68f4f5 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,12 @@ generatedheaders:
./scripts/irq2nvic_h $$yamlfile ; \
done
+cleanheaders:
+ @printf " CLEANING HEADERS\n"
+ $(Q)for yamlfile in `find -name 'irq.yaml'`; do \
+ ./scripts/irq2nvic_h --remove $$yamlfile ; \
+ done
+
lib: generatedheaders
$(Q)for i in $(addprefix $@/,$(TARGETS)); do \
if [ -d $$i ]; then \
@@ -77,7 +83,7 @@ install: lib
doc:
$(Q)$(MAKE) -C doc doc
-clean:
+clean: cleanheaders
$(Q)for i in $(addprefix lib/,$(TARGETS)) \
$(addsuffix /*/*,$(addprefix examples/,$(TARGETS))); do \
if [ -d $$i ]; then \
diff --git a/scripts/irq2nvic_h b/scripts/irq2nvic_h
index 903af15..cddbfc3 100755
--- a/scripts/irq2nvic_h
+++ b/scripts/irq2nvic_h
@@ -130,12 +130,22 @@ def needs_update(infiles, outfiles):
return any(not os.path.exists(o) for o in outfiles) or max(map(timestamp, infiles)) > min(map(timestamp, outfiles))
def main():
+ if sys.argv[1] == '--remove':
+ remove = True
+ del sys.argv[1]
+ else:
+ remove = False
infile = sys.argv[1]
if not infile.startswith('./include/libopencm3/') or not infile.endswith('/irq.yaml'):
raise ValueError("Arguent must match ./include/libopencm3/**/irq.yaml")
nvic_h = infile.replace('irq.yaml', 'nvic.h')
vector_nvic_c = infile.replace('./include/libopencm3/', './lib/').replace('irq.yaml', 'vector_nvic.c')
+ if remove:
+ os.unlink(nvic_h)
+ os.unlink(vector_nvic_c)
+ sys.exit(0)
+
if not needs_update([__file__, infile], [nvic_h, vector_nvic_c]):
sys.exit(0)