diff options
| author | Théo Zimmermann | 2018-09-05 13:04:00 +0200 |
|---|---|---|
| committer | Théo Zimmermann | 2018-09-05 13:04:00 +0200 |
| commit | 579f30a53809f9cf73aa3d7c69960b50fc51c7fc (patch) | |
| tree | da69bfd576092da56f66c04ae800db5ae0042c33 /kernel | |
| parent | dc78205a55fe1825c8744d3acb7bb43e08d39c4e (diff) | |
| parent | 920723ab4c1707c0a98c978cdd7742d47e58582f (diff) | |
Merge PR #6857: [build] Preliminary support for building with `dune`.
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/byterun/dune | 10 | ||||
| -rwxr-xr-x | kernel/byterun/make_jumptbl.sh | 3 | ||||
| -rw-r--r-- | kernel/dune | 15 | ||||
| -rwxr-xr-x | kernel/make_opcodes.sh | 4 |
4 files changed, 32 insertions, 0 deletions
diff --git a/kernel/byterun/dune b/kernel/byterun/dune new file mode 100644 index 0000000000..3a714a8a59 --- /dev/null +++ b/kernel/byterun/dune @@ -0,0 +1,10 @@ +(library + (name byterun) + (synopsis "Coq's Kernel Abstract Reduction Machine [C implementation]") + (public_name coq.vm) + (c_names coq_fix_code coq_memory coq_values coq_interp)) + +(rule + (targets coq_jumptbl.h) + (deps (:h-file coq_instruct.h)) + (action (run ./make_jumptbl.sh %{h-file} %{targets}))) diff --git a/kernel/byterun/make_jumptbl.sh b/kernel/byterun/make_jumptbl.sh new file mode 100755 index 0000000000..eacd4daac8 --- /dev/null +++ b/kernel/byterun/make_jumptbl.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +sed -n -e '/^ /s/ \([A-Z]\)/ \&\&coq_lbl_\1/gp' -e '/^}/q' ${1} > ${2} diff --git a/kernel/dune b/kernel/dune new file mode 100644 index 0000000000..011af9c28c --- /dev/null +++ b/kernel/dune @@ -0,0 +1,15 @@ +(library + (name kernel) + (synopsis "The Coq Kernel") + (public_name coq.kernel) + (wrapped false) + (modules_without_implementation cinstr nativeinstr) + (libraries clib config lib byterun)) + +(rule + (targets copcodes.ml) + (deps (:h-file byterun/coq_instruct.h) make-opcodes) + (action (run ./make_opcodes.sh %{h-file} %{targets}))) + +(documentation + (package coq)) diff --git a/kernel/make_opcodes.sh b/kernel/make_opcodes.sh new file mode 100755 index 0000000000..bb8aba2f07 --- /dev/null +++ b/kernel/make_opcodes.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +script_dir="$(dirname "$0")" +tr -d "\r" < "${1}" | sed -n -e '/^enum/p' -e 's/,//g' -e '/^ /p' | awk -f "$script_dir"/make-opcodes > "${2}" |
