e7fd8f54c4
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
40 lines
1.1 KiB
Makefile
40 lines
1.1 KiB
Makefile
TOP := $(dir $(lastword $(MAKEFILE_LIST)))
|
|
DIR := $(shell pwd)
|
|
LEAN_FILES := $(shell cd $(DIR); find . -type f -name '*.lean' -not -name 'flycheck*')
|
|
OLEAN_FILES := $(LEAN_FILES:.lean=.olean)
|
|
ILEAN_FILES := $(LEAN_FILES:.lean=.ilean)
|
|
DEP_FILES := $(LEAN_FILES:.lean=.d)
|
|
LEAN_BIN_DIR := $(dir $(LEAN))
|
|
LEAN_VERSION_FILE := $(LEAN_BIN_DIR)version
|
|
LTAGS := $(LEAN_BIN_DIR)ltags
|
|
|
|
all: $(OLEAN_FILES) $(DEP_FILES)
|
|
|
|
%.olean: %.lean $(LEAN_VERSION_FILE)
|
|
@rm -f $@
|
|
$(LEAN) $(LEAN_OPTIONS) $< -o $@ -c $(@:.olean=.clean) -i $(@:.olean=.ilean)
|
|
|
|
%.d: %.lean $(LEAN_VERSION_FILE)
|
|
@echo Making dependency file \'$@\' ...
|
|
$(eval DEPS := $(shell $(LEAN) --deps $<))
|
|
$(eval DEPS := $(subst $(DIR)/,, $(DEPS)))
|
|
$(eval DEPS := $(subst "\n", " ", $(DEPS)))
|
|
@printf "$(basename $@).olean : $< $@ $(DEPS)\n" > $@
|
|
|
|
%.ilean: %.lean %.olean $(LEAN_VERSION_FILE)
|
|
$(LEAN) $(LEAN_OPTIONS) $< -i $@
|
|
|
|
etags tags: TAGS
|
|
|
|
TAGS: $(ILEAN_FILES)
|
|
$(LTAGS)
|
|
|
|
-include $(LEAN_FILES:.lean=.d)
|
|
|
|
.PHONY: all clean tags etags gtags
|
|
|
|
clean:
|
|
find . -type f -name "*.olean" -delete
|
|
find . -type f -name "*.clean" -delete
|
|
find . -type f -name "*.ilean" -delete
|
|
find . -type f -name "*.d" -delete
|