From a405ab117a7db1228ae834268e9029a6ec882646 Mon Sep 17 00:00:00 2001 From: Ralf Jung <jung@mpi-sws.org> Date: Tue, 10 Oct 2017 12:47:09 +0200 Subject: [PATCH] update build system --- Makefile | 4 ++-- build/opam-ci.sh | 22 ++++++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 2238350..4e67817 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ Makefile.coq: _CoqProject Makefile awk.Makefile # Install build-dependencies build-dep/opam: opam Makefile - # Create the build-dep package. + # Creating the build-dep package. @mkdir -p build-dep @sed <opam -E 's/^(build|install|remove):.*/\1: []/; s/^name: *"(.*)" */name: "\1-builddep"/' >build-dep/opam @fgrep builddep build-dep/opam >/dev/null || (echo "sed failed to fix the package name" && exit 1) # sanity check @@ -34,7 +34,7 @@ build-dep: build-dep/opam phony @# Upgrading is needed in case the pin already exists, but the builddep package changed. @BUILD_DEP_PACKAGE="$$(egrep "^name:" build-dep/opam | sed 's/^name: *"\(.*\)" */\1/')"; \ echo "# Pinning build-dep package." && \ - opam pin add "$$BUILD_DEP_PACKAGE".dev "$$(pwd)/build-dep" -k path $(OPAMFLAGS) && \ + opam pin add -k path $(OPAMFLAGS) "$$BUILD_DEP_PACKAGE".dev build-dep && \ echo "# Updating build-dep package." && \ opam upgrade "$$BUILD_DEP_PACKAGE" diff --git a/build/opam-ci.sh b/build/opam-ci.sh index 27ae623..b5607a1 100755 --- a/build/opam-ci.sh +++ b/build/opam-ci.sh @@ -14,22 +14,28 @@ export OPAM_EDITOR="$(which false)" # Make sure we got a good OPAM. test -d "$OPAMROOT" || (mkdir "$OPAMROOT" && run_and_print opam init --no-setup -y) eval `opam conf env` -# Delete old pins from opam.pins times. -run_and_print opam pin remove coq-stdpp -n -run_and_print opam pin remove coq-iris -n + # Make sure the pin for the builddep package is not stale. run_and_print make build-dep/opam -# Get us all the latest repositories +# Update repositories if test $(find "$OPAMROOT/repo/package-index" -mtime +0); then # last update was more than a day ago run_and_print opam update else - # only update iris-dev + # only update iris-dev, and only if it already exists if test -d "$OPAMROOT/repo/iris-dev"; then run_and_print opam update iris-dev; fi fi -test -d "$OPAMROOT/repo/coq-extra-dev" && run_and_print opam repo remove coq-extra-dev -test -d "$OPAMROOT/repo/coq-core-dev" || run_and_print opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev -p 5 +# Make sure we got the right set of repositories registered +if echo "$@" | fgrep "dev"; then + # We are compiling against a dev version of something. Get ourselves the dev repositories. + test -d "$OPAMROOT/repo/coq-extra-dev" || run_and_print opam repo add coq-extra-dev https://coq.inria.fr/opam/extra-dev -p 0 + test -d "$OPAMROOT/repo/coq-core-dev" || run_and_print opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev -p 5 +else + # No dev version, make sure we do not have the dev repositories. + test -d "$OPAMROOT/repo/coq-extra-dev" && run_and_print opam repo remove coq-extra-dev + test -d "$OPAMROOT/repo/coq-core-dev" && run_and_print opam repo remove coq-core-dev +fi test -d "$OPAMROOT/repo/coq-released" || run_and_print opam repo add coq-released https://coq.inria.fr/opam/released -p 10 test -d "$OPAMROOT/repo/iris-dev" || run_and_print opam repo add iris-dev https://gitlab.mpi-sws.org/FP/opam-dev.git -p 20 echo @@ -48,7 +54,7 @@ while (( "$#" )); do # while there are arguments left echo "[opam-ci] $PACKAGE already pinned to $VERSION" else echo "[opam-ci] Pinning $PACKAGE to $VERSION" - run_and_print opam pin add "$PACKAGE" "$VERSION" -k version -y + run_and_print opam pin add -y -k version "$PACKAGE" "$VERSION" fi done -- GitLab