# -*- mode: makefile -*- # Dune Makefile for Coq .PHONY: help voboot states world watch test-suite release apidoc ocheck ireport clean # use DUNEOPT=--display=short for a more verbose build # DUNEOPT=--display=short BUILD_CONTEXT=_build/default help: @echo "Welcome to Coq's Dune-based build system. Targets are:" @echo " - states: build a minimal functional coqtop" @echo " - world: build all binaries and libraries" @echo " - watch: build all binaries and libraries [continuous build]" @echo " - test-suite: run Coq's test suite" @echo " - release: build Coq in release mode" @echo " - apidoc: build ML API documentation" @echo " - ocheck: build for all supported OCaml versions [requires OPAM]" @echo " - ireport: build with optimized flambda settings and emit an inline report" @echo " - clean: remove build directory and autogenerated files" @echo " - help: show this message" voboot: dune build $(DUNEOPT) @vodeps dune exec coq_dune $(BUILD_CONTEXT)/.vfiles.d states: voboot dune build $(DUNEOPT) theories/Init/Prelude.vo world: voboot dune build $(DUNEOPT) @install watch: voboot dune build $(DUNEOPT) @install -w test-suite: voboot dune $(DUNEOPT) runtest release: voboot dune build $(DUNEOPT) -p coq apidoc: voboot dune build $(DUNEOPT) @doc ocheck: voboot dune build $(DUNEOPT) @install --workspace=dev/dune-workspace.all ireport: dune clean dune build $(DUNEOPT) @vodeps --profile=ireport dune exec coq_dune $(BUILD_CONTEXT)/.vfiles.d --profile=ireport dune build $(DUNEOPT) @install --profile=ireport clean: dune clean # Other common dev targets # # dune build coq.install # dune build ide/coqide.install # Packaging / OPAM targets: # # dune -p coq @install # dune -p coqide @install