aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xscripts/irq2nvic_h7
2 files changed, 8 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 76c302d..7ebd769 100644
--- a/Makefile
+++ b/Makefile
@@ -88,5 +88,5 @@ clean:
@printf " CLEAN doxygen\n"
$(Q)$(MAKE) -C doc clean
-.PHONY: build lib examples install doc clean
+.PHONY: build lib examples install doc clean generatedheaders
diff --git a/scripts/irq2nvic_h b/scripts/irq2nvic_h
index f84c88e..903af15 100755
--- a/scripts/irq2nvic_h
+++ b/scripts/irq2nvic_h
@@ -125,6 +125,10 @@ def makeparentdir(filename):
# where is my 'mkdir -p'?
pass
+def needs_update(infiles, outfiles):
+ timestamp = lambda filename: os.stat(filename).st_mtime
+ return any(not os.path.exists(o) for o in outfiles) or max(map(timestamp, infiles)) > min(map(timestamp, outfiles))
+
def main():
infile = sys.argv[1]
if not infile.startswith('./include/libopencm3/') or not infile.endswith('/irq.yaml'):
@@ -132,6 +136,9 @@ def main():
nvic_h = infile.replace('irq.yaml', 'nvic.h')
vector_nvic_c = infile.replace('./include/libopencm3/', './lib/').replace('irq.yaml', 'vector_nvic.c')
+ if not needs_update([__file__, infile], [nvic_h, vector_nvic_c]):
+ sys.exit(0)
+
makeparentdir(nvic_h)
makeparentdir(vector_nvic_c)