-
Notifications
You must be signed in to change notification settings - Fork 19
/
Makefile
151 lines (110 loc) · 4.13 KB
/
Makefile
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# OASIS_START
# DO NOT EDIT (digest: 4c293511860bb966e727ba6f0ecc8197)
SETUP = ./setup.exe
build: setup.data $(SETUP)
$(SETUP) -build $(BUILDFLAGS)
doc: setup.data $(SETUP) build
$(SETUP) -doc $(DOCFLAGS)
test: setup.data $(SETUP) build
$(SETUP) -test $(TESTFLAGS)
all: $(SETUP)
$(SETUP) -all $(ALLFLAGS)
install: setup.data $(SETUP)
$(SETUP) -install $(INSTALLFLAGS)
uninstall: setup.data $(SETUP)
$(SETUP) -uninstall $(UNINSTALLFLAGS)
reinstall: setup.data $(SETUP)
$(SETUP) -reinstall $(REINSTALLFLAGS)
clean: $(SETUP)
$(SETUP) -clean $(CLEANFLAGS)
distclean: $(SETUP)
$(SETUP) -distclean $(DISTCLEANFLAGS)
$(RM) $(SETUP)
setup.data: $(SETUP)
$(SETUP) -configure $(CONFIGUREFLAGS)
configure: $(SETUP)
$(SETUP) -configure $(CONFIGUREFLAGS)
setup.exe: setup.ml _oasis
ocamlfind ocamlopt -o $@ -linkpkg -package oasis.dynrun setup.ml || ocamlfind ocamlc -o $@ -linkpkg -package oasis.dynrun setup.ml || true
$(RM) setup.cmi setup.cmo setup.cmx setup.o
.PHONY: build doc test all install uninstall reinstall clean distclean configure
# OASIS_STOP
rst_doc:
@echo "build Sphinx documentation (into _build/doc)"
sphinx-build doc _build/doc
mkdir -p gh-pages/rst/
cp -r _build/doc/*.html _build/doc/*.js _build/doc/_static gh-pages/rst
open_doc: rst_doc
firefox _build/doc/contents.html
push_doc: doc rst_doc
rsync -tavu logtk.docdir/* cedeela.fr:~/simon/root/software/logtk/
rsync -tavu _build/doc/* cedeela.fr:~/simon/root/software/logtk/rst/
test-all: build
./run_tests.native --verbose
# ./tests/quick/all.sh # FIXME?
INTERFACE_FILES = $(shell find src -name '*.mli')
IMPLEMENTATION_FILES = $(shell find src -name '*.ml')
VERSION=$(shell awk '/^Version:/ {print $$2}' _oasis)
update_next_tag:
@echo "update version to $(VERSION)..."
zsh -c 'sed -i "s/NEXT_VERSION/$(VERSION)/g" src/**/*.ml{,i}(.)'
zsh -c 'sed -i "s/NEXT_RELEASE/$(VERSION)/g" src/**/*.ml{,i}(.)'
tags:
otags $(IMPLEMENTATION_FILES) $(INTERFACE_FILES)
dot:
for i in *.dot; do dot -Tsvg "$$i" > "$$( basename $$i .dot )".svg; done
TEST_FILES = tests/ examples/
frogtest:
frogtest run -c ./tests/conf.toml $(TEST_FILES)
frogtest-zipper:
frogtest run -p zipperposition -c ./tests/conf.toml $(TEST_FILES)
frogtest-hornet:
frogtest run -p hornet -c ./tests/conf.toml $(TEST_FILES)
tip-benchmarks:
git submodule update --init tip-benchmarks
frogtest-tip: tip-benchmarks
@[ -d tip-benchmarks ] || (echo "missing tip-benchmarks/" && exit 1)
frogtest run --meta=`git rev-parse HEAD` -c ./data/tip.toml
# restricted version of frogtest-tip
frogtest-tip-isaplanner: tip-benchmarks
@[ -d tip-benchmarks ] || (echo "missing tip-benchmarks/" && exit 1)
frogtest run --meta=`git rev-parse HEAD` -c ./data/tip.toml \
tip-benchmarks/benchmarks/isaplanner/
frogtest-thf:
frogtest run -c data/bench.toml --profile=thf
BENCH_DIR="bench-$(shell date -Iminutes)"
frogtest-tptp:
@echo "start benchmarks in ${BENCH_DIR}"
mkdir -p ${BENCH_DIR}
cp zipperposition.native hornet.native ${BENCH_DIR}/
ln -s ../tptp/ ${BENCH_DIR}/tptp
cp data/bench.toml ${BENCH_DIR}/conf.toml
cd ${BENCH_DIR} && frogtest run --meta=`git rev-parse HEAD` \
-c conf.toml
TARBALL=zipperposition.tar.gz
package: clean
rm $(TARBALL) || true
oasis setup
tar cavf $(TARBALL) _oasis setup.ml configure myocamlbuild.ml _tags \
Makefile pelletier_problems README.md src/ tests/ utils/
WATCH?=all
watch:
while find src/ tests/ -print0 | xargs -0 inotifywait -e delete_self -e modify ; do \
echo "============ at `date` ==========" ; \
make $(WATCH); \
done
ocp-indent:
@which ocp-indent > /dev/null || { \
echo 'ocp-indent not found; please run `opam install ocp-indent`'; \
exit 1 ; \
}
reindent: ocp-indent
@find src '(' -name '*.ml' -or -name '*.mli' ')' -print0 | xargs -0 echo "reindenting: "
@find src '(' -name '*.ml' -or -name '*.mli' ')' -print0 | xargs -0 ocp-indent -i
gallery.svg:
for i in gallery/*.dot ; do dot -Tsvg "$$i" > "gallery/`basename $${i} .dot`.svg" ; done
clean-generated:
rm myocamlbuild.ml || true
find \( -name '*.mldylib' -or -name '*.mlpack' \
-or -name '*.mllib' -or -name '*.odocl' \) -delete
.PHONY: push_doc dot package tags rst_doc open_doc test-all clean-generated