-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.dune
66 lines (50 loc) · 1.72 KB
/
Makefile.dune
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- 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