From efce73f815ddbfb5f06fc45d34e6fe62b014d8e4 Mon Sep 17 00:00:00 2001 From: chrysn Date: Tue, 23 Oct 2012 01:38:27 +0200 Subject: [PATCH] make `make clean` work again the irq2nvic_h generates files in a way make doesn't understand, so it now also provides an option to clean up again --- Makefile | 8 +++++++- scripts/irq2nvic_h | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 7ebd7699..e68f4f5b 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 903af15e..cddbfc34 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)