You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
56 lines
1.9 KiB
1 year ago
|
# Default target
|
||
|
all: Makefile.coq
|
||
|
+@$(MAKE) -f Makefile.coq all
|
||
|
.PHONY: all
|
||
|
|
||
|
# Permit local customization
|
||
|
-include Makefile.local
|
||
|
|
||
|
# Forward most targets to Coq makefile (with some trick to make this phony)
|
||
|
%: Makefile.coq phony
|
||
|
@#echo "Forwarding $@"
|
||
|
+@$(MAKE) -f Makefile.coq $@
|
||
|
phony: ;
|
||
|
.PHONY: phony
|
||
|
|
||
|
clean: Makefile.coq
|
||
|
+@$(MAKE) -f Makefile.coq clean
|
||
|
@# Make sure not to enter the `_opam` folder.
|
||
|
find [a-z]*/ \( -name "*.d" -o -name "*.vo" -o -name "*.vo[sk]" -o -name "*.aux" -o -name "*.cache" -o -name "*.glob" -o -name "*.vio" \) -print -delete || true
|
||
|
rm -f Makefile.coq .lia.cache builddep/*
|
||
|
.PHONY: clean
|
||
|
|
||
|
# Create Coq Makefile.
|
||
|
Makefile.coq: _CoqProject Makefile
|
||
|
"$(COQBIN)coq_makefile" -f _CoqProject -o Makefile.coq $(EXTRA_COQFILES)
|
||
|
|
||
|
# Install build-dependencies
|
||
|
OPAMFILES=$(wildcard *.opam)
|
||
|
BUILDDEPFILES=$(addsuffix -builddep.opam, $(addprefix builddep/,$(basename $(OPAMFILES))))
|
||
|
|
||
|
builddep/%-builddep.opam: %.opam Makefile
|
||
|
@echo "# Creating builddep package for $<."
|
||
|
@mkdir -p builddep
|
||
|
@sed <$< -E 's/^(build|install|remove):.*/\1: []/; s/"(.*)"(.*= *version.*)$$/"\1-builddep"\2/;' >$@
|
||
|
|
||
|
builddep-opamfiles: $(BUILDDEPFILES)
|
||
|
.PHONY: builddep-opamfiles
|
||
|
|
||
|
builddep: builddep-opamfiles
|
||
|
@# We want opam to not just install the build-deps now, but to also keep satisfying these
|
||
|
@# constraints. Otherwise, `opam upgrade` may well update some packages to versions
|
||
|
@# that are incompatible with our build requirements.
|
||
|
@# To achieve this, we create a fake opam package that has our build-dependencies as
|
||
|
@# dependencies, but does not actually install anything itself.
|
||
|
@echo "# Installing builddep packages."
|
||
|
@opam install $(OPAMFLAGS) -y $(BUILDDEPFILES)
|
||
|
.PHONY: builddep
|
||
|
|
||
|
# Backwards compatibility target
|
||
|
build-dep: builddep
|
||
|
.PHONY: build-dep
|
||
|
|
||
|
# Some files that do *not* need to be forwarded to Makefile.coq.
|
||
|
# ("::" lets Makefile.local overwrite this.)
|
||
|
Makefile Makefile.local _CoqProject $(OPAMFILES):: ;
|