feat(build): cread .d (dependency) files for .lean files
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
466dd11d1b
commit
b279c94037
2 changed files with 16 additions and 11 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,6 +4,7 @@
|
||||||
*.md.lua
|
*.md.lua
|
||||||
*.md.lean
|
*.md.lean
|
||||||
*.olean
|
*.olean
|
||||||
|
*.d
|
||||||
a.out
|
a.out
|
||||||
build
|
build
|
||||||
GPATH
|
GPATH
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
TOP := $(dir $(lastword $(MAKEFILE_LIST)))
|
TOP := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||||
EXTRACT_DEPS = $(TOP)/extract_deps
|
LEAN_FILES = $(shell find . -type f -name '*.lean')
|
||||||
LEAN_FILES = $(wildcard *.lean)
|
|
||||||
OLEAN_FILES = $(LEAN_FILES:.lean=.olean)
|
OLEAN_FILES = $(LEAN_FILES:.lean=.olean)
|
||||||
DEPS = make.deps
|
DEP_FILES = $(LEAN_FILES:.lean=.d)
|
||||||
|
SED = sed
|
||||||
|
|
||||||
all: $(OLEAN_FILES) $(DEPS)
|
all: $(OLEAN_FILES) $(DEP_FILES)
|
||||||
|
|
||||||
%.olean: %.lean
|
%.olean: %.lean
|
||||||
$(LEAN) $(LEAN_OPTIONS) $< -o $@
|
$(LEAN) $(LEAN_OPTIONS) $< -o $@
|
||||||
|
@ -12,14 +12,18 @@ all: $(OLEAN_FILES) $(DEPS)
|
||||||
%.olean: %.lua
|
%.olean: %.lua
|
||||||
$(LEAN) $(LEAN_OPTIONS) $< -o $@
|
$(LEAN) $(LEAN_OPTIONS) $< -o $@
|
||||||
|
|
||||||
|
%.d: %.lean
|
||||||
|
@echo Making dependency file \'$@\' ...
|
||||||
|
@echo -n "$(basename $@).olean : $< $@ " > $@.tmp.1
|
||||||
|
@$(LEAN) --deps $< | $(SED) -e ':a;N;$$!ba;s/\n/ /g' > $@.tmp.2
|
||||||
|
@cat $@.tmp.1 $@.tmp.2 > $@
|
||||||
|
@rm -f $@.tmp.1
|
||||||
|
@rm -f $@.tmp.2
|
||||||
|
|
||||||
|
include $(LEAN_FILES:.lean=.d)
|
||||||
|
|
||||||
.PHONY: all clean
|
.PHONY: all clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f *.olean $(DEPS)
|
rm -f *.olean *.d *.d.tmp.1 $.d.tmp.2
|
||||||
|
|
||||||
$(DEPS): $(LEAN_FILES)
|
|
||||||
LEAN=$(LEAN) $(EXTRACT_DEPS) $(LEAN_FILES) > make.deps
|
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
|
||||||
-include $(DEPS)
|
|
||||||
endif
|
|
||||||
|
|
Loading…
Reference in a new issue