only generate irq headers on demand
as header file generation is not directly controlled by make (which, by the way, makes the generatedheaders target phony), the script has to take care of not needlessly generating files itself lest to have make rebuild everything everytime
This commit is contained in:
parent
0a1cf977eb
commit
2ad04777bf
2
Makefile
2
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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user