This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
178
unikernel/duniverse/dune_/Makefile
Normal file
178
unikernel/duniverse/dune_/Makefile
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
.DEFAULT_GOAL := help
|
||||
|
||||
PREFIX_ARG := $(if $(PREFIX),--prefix $(PREFIX),)
|
||||
LIBDIR_ARG := $(if $(LIBDIR),--libdir $(LIBDIR),)
|
||||
DESTDIR_ARG := $(if $(DESTDIR),--destdir $(DESTDIR),)
|
||||
INSTALL_ARGS := $(PREFIX_ARG) $(LIBDIR_ARG) $(DESTDIR_ARG)
|
||||
BIN := ./_boot/dune.exe
|
||||
|
||||
# Dependencies recommended for developing dune locally,
|
||||
# but not wanted in CI
|
||||
DEV_DEPS := \
|
||||
core_bench \
|
||||
patdiff
|
||||
|
||||
TEST_OCAMLVERSION := 5.3.0
|
||||
# When updating this version, don't forget to also bump the number in the docs.
|
||||
|
||||
-include Makefile.dev
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@cat doc/make-help.txt
|
||||
|
||||
.PHONY: bootstrap
|
||||
bootstrap:
|
||||
$(MAKE) -B $(BIN)
|
||||
|
||||
.PHONY: test-bootstrap
|
||||
test-bootstrap:
|
||||
@ocaml boot/bootstrap.ml --boot-dir _test_boot
|
||||
|
||||
.PHONY: release
|
||||
release: $(BIN)
|
||||
@$(BIN) build @install -p dune --profile dune-bootstrap
|
||||
|
||||
$(BIN):
|
||||
@ocaml boot/bootstrap.ml
|
||||
|
||||
dev: $(BIN)
|
||||
$(BIN) build @install
|
||||
|
||||
watch: $(BIN)
|
||||
$(BIN) build @install --watch
|
||||
|
||||
all: $(BIN)
|
||||
$(BIN) build
|
||||
|
||||
.PHONY: install
|
||||
install:
|
||||
$(BIN) install $(INSTALL_ARGS) dune
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
$(BIN) uninstall $(INSTALL_ARGS) dune
|
||||
|
||||
.PHONY: reinstall
|
||||
reinstall: uninstall install
|
||||
|
||||
.PHONY: install-ocamlformat
|
||||
install-ocamlformat:
|
||||
opam install -y ocamlformat.$$(awk -F = '$$1 == "version" {print $$2}' .ocamlformat)
|
||||
|
||||
.PHONY: dev-deps
|
||||
dev-deps:
|
||||
opam install -y . --deps-only --with-dev-setup
|
||||
|
||||
.PHONY: dev-deps-sans-melange
|
||||
dev-deps-sans-melange: dev-deps
|
||||
|
||||
.PHONY: dev-switch
|
||||
dev-switch:
|
||||
opam update
|
||||
# Ensuring that either a dev switch already exists or a new one is created
|
||||
if test -d _opam ; then \
|
||||
opam install -y --update-invariant ocaml.$(TEST_OCAMLVERSION); \
|
||||
else \
|
||||
opam switch create -y . $(TEST_OCAMLVERSION) --no-install ; \
|
||||
fi
|
||||
opam pin add -y . -n --with-version=dev
|
||||
opam install -y . --deps-only --with-test --with-dev-setup
|
||||
$(MAKE) install-ocamlformat
|
||||
opam install -y $(DEV_DEPS)
|
||||
|
||||
.PHONY: test
|
||||
test: $(BIN)
|
||||
$(BIN) runtest
|
||||
|
||||
test-windows: $(BIN)
|
||||
$(BIN) build @runtest-windows
|
||||
|
||||
test-js: $(BIN)
|
||||
$(BIN) build @runtest-js
|
||||
|
||||
test-wasm: $(BIN)
|
||||
DUNE_WASM_TEST=enable $(BIN) build @runtest-wasm
|
||||
|
||||
test-coq: $(BIN)
|
||||
DUNE_COQ_TEST=enable $(BIN) build @runtest-coq
|
||||
|
||||
test-melange: $(BIN)
|
||||
$(BIN) build @runtest-melange
|
||||
|
||||
test-all: $(BIN)
|
||||
$(BIN) build @runtest @runtest-js @runtest-coq @runtest-melange
|
||||
|
||||
test-all-sans-melange: $(BIN)
|
||||
$(BIN) build @runtest @runtest-js @runtest-coq
|
||||
|
||||
.PHONY: check
|
||||
check: $(BIN)
|
||||
@$(BIN) build @check
|
||||
|
||||
.PHONY: fmt
|
||||
fmt: $(BIN)
|
||||
@$(BIN) fmt
|
||||
|
||||
.PHONY: promote
|
||||
promote: $(BIN)
|
||||
@$(BIN) promote
|
||||
|
||||
.PHONY: accept-corrections
|
||||
accept-corrections: promote
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf _boot _build
|
||||
|
||||
distclean: clean
|
||||
rm -f src/dune_rules/setup.ml
|
||||
|
||||
.PHONY: doc
|
||||
doc:
|
||||
sphinx-build -W doc doc/_build
|
||||
|
||||
# livedoc-deps: you may need to [pip3 install sphinx-autobuild] and [pip3 install -r doc/requirements.txt]
|
||||
livedoc:
|
||||
cd doc && sphinx-autobuild . _build --port 8888 -q --re-ignore '\.#.*'
|
||||
|
||||
update-jbuilds: $(BIN)
|
||||
$(BIN) build @doc/runtest --auto-promote
|
||||
|
||||
# If the first argument is "run"...
|
||||
ifeq (dune,$(firstword $(MAKECMDGOALS)))
|
||||
# use the rest as arguments for "run"
|
||||
RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
|
||||
# ...and turn them into do-nothing targets
|
||||
$(eval $(RUN_ARGS):;@:)
|
||||
endif
|
||||
|
||||
.PHONY: bench
|
||||
bench: $(BIN)
|
||||
@$(BIN) exec -- ./bench/bench.exe $(BIN)
|
||||
|
||||
.PHONY: dune
|
||||
dune: $(BIN)
|
||||
$(BIN) $(RUN_ARGS)
|
||||
|
||||
# Use this target to make sure that we always run the in source dune when making
|
||||
# the release
|
||||
.PHONY: opam-release
|
||||
opam-release: dev
|
||||
$(BIN) exec -- $(MAKE) dune-release
|
||||
|
||||
dune-release:
|
||||
dune-release tag
|
||||
dune-release distrib --skip-build --skip-lint --skip-tests
|
||||
# See https://github.com/ocamllabs/dune-release/issues/206
|
||||
DUNE_RELEASE_DELEGATE=github-dune-release-delegate dune-release publish --verbose
|
||||
dune-release opam pkg
|
||||
dune-release opam submit
|
||||
|
||||
.PHONY: docker-build-image
|
||||
docker-build-image:
|
||||
docker build -f docker/dev.Dockerfile -t dune .
|
||||
|
||||
.PHONY: docker-compose
|
||||
docker-compose:
|
||||
docker compose -f docker/dev.yml run dune bash
|
||||
Loading…
Add table
Add a link
Reference in a new issue