TOP := $(dir $(lastword $(MAKEFILE_LIST))) DIR = $(shell pwd) LEAN_FILES = $(shell find $(DIR) -type f -name '*.lean') OLEAN_FILES = $(LEAN_FILES:.lean=.olean) DEP_FILES = $(LEAN_FILES:.lean=.d) all: $(OLEAN_FILES) $(DEP_FILES) %.olean: %.lean @rm -f $@ $(LEAN) $(LEAN_OPTIONS) $< -o $@ -c $(@:.olean=.clean) %.d: %.lean @echo Making dependency file \'$@\' ... @rm -f $@ @rm -f $@.tmp @$(LEAN) --deps $< > $@.tmp @printf "$(basename $@).olean : $< $@ " > $@ @tr "\n" " " < $@.tmp >> $@ @rm -f $@.tmp -include $(LEAN_FILES:.lean=.d) .PHONY: all clean clean: find . -type f -name "*.olean" -delete find . -type f -name "*.clean" -delete find . -type f -name "*.d" -delete