mirror of
https://github.com/Z3Prover/z3
synced 2025-06-15 02:16:16 +00:00
added build and test scripts and READMEs to distribute
This commit is contained in:
parent
6e1eb7044b
commit
83e92c2dd7
12 changed files with 192 additions and 0 deletions
22
ml/README-linux
Normal file
22
ml/README-linux
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
The OCaml API for Z3 was tested using OCaml 3.12.1.
|
||||||
|
You also need CamlIDL to be able to generate the OCaml API.
|
||||||
|
|
||||||
|
- To download OCaml:
|
||||||
|
http://caml.inria.fr/ocaml/
|
||||||
|
|
||||||
|
- To download CamlIDL:
|
||||||
|
http://forge.ocamlcore.org/projects/camlidl/
|
||||||
|
|
||||||
|
- To build the OCaml API for Z3:
|
||||||
|
./build-lib.sh
|
||||||
|
|
||||||
|
Remark: The OCaml and C compiler tool chains must be configured in your environment.
|
||||||
|
|
||||||
|
Remark: Building the OCaml API copies some pathnames into files,
|
||||||
|
so the OCaml API must be recompiled if the Z3 library files are moved.
|
||||||
|
|
||||||
|
See ../examples/ocaml/build-test.sh for an example of how to compile and link with Z3.
|
||||||
|
|
||||||
|
Acknowledgements:
|
||||||
|
The OCaml interface for Z3 was written by Josh Berdine and Jakob Lichtenberg.
|
||||||
|
Many thanks to them!
|
22
ml/README-osx
Normal file
22
ml/README-osx
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
The OCaml API for Z3 was tested using OCaml 3.12.1.
|
||||||
|
You also need CamlIDL to be able to generate the OCaml API.
|
||||||
|
|
||||||
|
- To download OCaml:
|
||||||
|
http://caml.inria.fr/ocaml/
|
||||||
|
|
||||||
|
- To download CamlIDL:
|
||||||
|
http://forge.ocamlcore.org/projects/camlidl/
|
||||||
|
|
||||||
|
- To build the OCaml API for Z3:
|
||||||
|
./build-lib.sh
|
||||||
|
|
||||||
|
Remark: The OCaml and C compiler tool chains must be configured in your environment.
|
||||||
|
|
||||||
|
Remark: Building the OCaml API copies some pathnames into files,
|
||||||
|
so the OCaml API must be recompiled if the Z3 library files are moved.
|
||||||
|
|
||||||
|
See ../examples/ocaml/build-test.sh for an example of how to compile and link with Z3.
|
||||||
|
|
||||||
|
Acknowledgements:
|
||||||
|
The OCaml interface for Z3 was written by Josh Berdine and Jakob Lichtenberg.
|
||||||
|
Many thanks to them!
|
17
ml/README-test-linux
Normal file
17
ml/README-test-linux
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
This directory contains scripts to build the test application using
|
||||||
|
OCaml. You also need CamlIDL to be able to generate the OCaml API.
|
||||||
|
|
||||||
|
- To download OCaml:
|
||||||
|
http://caml.inria.fr/ocaml/
|
||||||
|
|
||||||
|
- To download CamlIDL:
|
||||||
|
http://forge.ocamlcore.org/projects/camlidl/
|
||||||
|
|
||||||
|
- One must build the OCaml library before compiling the example.
|
||||||
|
Go to directory ../ocaml
|
||||||
|
|
||||||
|
- Use 'build-test.sh' to build the test application using the OCaml compiler.
|
||||||
|
|
||||||
|
Remark: The OCaml and C compiler tool chains must be configured in your environment.
|
||||||
|
|
||||||
|
- Use 'exec.sh' to execute test_mlapi. The script sets LD_LIBRARY_PATH, and invokes test_mlapi.
|
17
ml/README-test-osx
Normal file
17
ml/README-test-osx
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
This directory contains scripts to build the test application using
|
||||||
|
OCaml. You also need CamlIDL to be able to generate the OCaml API.
|
||||||
|
|
||||||
|
- To download OCaml:
|
||||||
|
http://caml.inria.fr/ocaml/
|
||||||
|
|
||||||
|
- To download CamlIDL:
|
||||||
|
http://forge.ocamlcore.org/projects/camlidl/
|
||||||
|
|
||||||
|
- One must build the OCaml library before compiling the example.
|
||||||
|
Go to directory ../ocaml
|
||||||
|
|
||||||
|
- Use 'build-test.sh' to build the test application using the OCaml compiler.
|
||||||
|
|
||||||
|
Remark: The OCaml and C compiler tool chains must be configured in your environment.
|
||||||
|
|
||||||
|
- Use 'exec.sh' to execute test_mlapi. The script sets DYLD_LIBRARY_PATH, and invokes test_mlapi.
|
23
ml/README-test-win
Normal file
23
ml/README-test-win
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
This directory contains scripts to build the test application using
|
||||||
|
OCaml. You also need CamlIDL to be able to generate the OCaml API.
|
||||||
|
|
||||||
|
- To download OCaml:
|
||||||
|
http://caml.inria.fr/ocaml/
|
||||||
|
|
||||||
|
- To download CamlIDL:
|
||||||
|
http://forge.ocamlcore.org/projects/camlidl/
|
||||||
|
|
||||||
|
- One must build the OCaml library before compiling the example.
|
||||||
|
Go to directory ../ocaml
|
||||||
|
|
||||||
|
- Use 'build-test.cmd' to build the test application using the OCaml compiler.
|
||||||
|
|
||||||
|
Remark: The OCaml and C compiler tool chains must be configured in your environment.
|
||||||
|
Running from the Visual Studio Command Prompt configures the Microsoft C compiler.
|
||||||
|
|
||||||
|
- The script 'exec.cmd' adds the bin directory to the path. So,
|
||||||
|
test_mlapi.exe can find z3.dll.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
23
ml/README-win
Normal file
23
ml/README-win
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
The OCaml API for Z3 was tested using OCaml 3.12.1.
|
||||||
|
You also need CamlIDL to be able to generate the OCaml API.
|
||||||
|
|
||||||
|
- To download OCaml:
|
||||||
|
http://caml.inria.fr/ocaml/
|
||||||
|
|
||||||
|
- To download CamlIDL:
|
||||||
|
http://forge.ocamlcore.org/projects/camlidl/
|
||||||
|
|
||||||
|
- To build the OCaml API for Z3:
|
||||||
|
.\build-lib.cmd
|
||||||
|
|
||||||
|
Remark: The OCaml and C compiler tool chains must be configured in your environment.
|
||||||
|
Running from the Visual Studio Command Prompt configures the Microsoft C compiler.
|
||||||
|
|
||||||
|
Remark: Building the OCaml API copies some pathnames into files,
|
||||||
|
so the OCaml API must be recompiled if the Z3 library files are moved.
|
||||||
|
|
||||||
|
See ..\examples\ocaml\build-test.cmd for an example of how to compile and link with Z3.
|
||||||
|
|
||||||
|
Acknowledgements:
|
||||||
|
The OCaml interface for Z3 was written by Josh Berdine and Jakob Lichtenberg.
|
||||||
|
Many thanks to them!
|
3
ml/build-lib.cmd
Normal file
3
ml/build-lib.cmd
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
call .\compile_mlapi.cmd ..\include ..\bin ..\bin
|
31
ml/build-lib.sh
Normal file
31
ml/build-lib.sh
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script to compile the Z3 OCaml API
|
||||||
|
# Expects to find ../lib/libz3{,_dbg}.{a,so,dylib}
|
||||||
|
|
||||||
|
CFLAGS="-ccopt -Wno-discard-qual -ccopt -I../include"
|
||||||
|
XCDBG="-g -ccopt -g $CFLAGS"
|
||||||
|
XCOPT="-ccopt -O3 -ccopt -fomit-frame-pointer $CFLAGS"
|
||||||
|
|
||||||
|
|
||||||
|
ocamlc -c $XCDBG z3_stubs.c z3_theory_stubs.c z3.mli z3.ml
|
||||||
|
|
||||||
|
ocamlopt -c $XCDBG z3_stubs.c z3_theory_stubs.c z3.mli z3.ml
|
||||||
|
|
||||||
|
ar rcs libz3stubs_dbg.a z3.o z3_stubs.o z3_theory_stubs.o
|
||||||
|
|
||||||
|
ocamlopt -c $XCOPT z3_stubs.c z3_theory_stubs.c z3.mli z3.ml
|
||||||
|
|
||||||
|
ar rcs libz3stubs.a z3.o z3_stubs.o z3_theory_stubs.o
|
||||||
|
|
||||||
|
ocamlc -custom -a $XCDBG -cclib -L$PWD/../lib -cclib -lz3_dbg -cclib -lcamlidl -cclib -lz3stubs_dbg z3.cmo -o z3_dbg.cma
|
||||||
|
|
||||||
|
ocamlc -custom -a $XCDBG -cclib -L$PWD/../lib -cclib -lz3 -cclib -lcamlidl -cclib -lz3stubs z3.cmo -o z3.cma
|
||||||
|
|
||||||
|
ocamlopt -a $XCDBG -cclib -L$PWD/../lib -cclib -lz3_dbg -cclib -lcamlidl -cclib -lz3stubs_dbg z3.cmx -o z3_dbg.cmxa
|
||||||
|
|
||||||
|
ocamlopt -a $XCOPT -cclib -L$PWD/../lib -cclib -lz3 -cclib -lcamlidl -cclib -lz3stubs z3.cmx -o z3.cmxa
|
||||||
|
|
||||||
|
ocamlmktop -o ocamlz3 z3.cma -cclib -L.
|
||||||
|
|
||||||
|
rm z3.cm{o,x} *.o
|
19
ml/build-test.cmd
Normal file
19
ml/build-test.cmd
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
if not exist ..\..\ocaml\z3.cmxa (
|
||||||
|
echo "YOU MUST BUILD OCAML API! Go to directory ..\ocaml"
|
||||||
|
goto :EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
REM ocaml (>= 3.11) calls the linker through flexlink
|
||||||
|
ocamlc -version >> ocaml_version
|
||||||
|
set /p OCAML_VERSION= <ocaml_version
|
||||||
|
if %OCAML_VERSION% GEQ 3.11 (
|
||||||
|
set XCFLAGS=
|
||||||
|
) else (
|
||||||
|
set XCFLAGS=/nologo /MT /DWIN32
|
||||||
|
)
|
||||||
|
|
||||||
|
ocamlc -w A -ccopt "%XCFLAGS%" -o test_mlapi_byte.exe -I ..\..\ocaml z3.cma test_mlapi.ml
|
||||||
|
|
||||||
|
ocamlopt -w A -ccopt "%XCFLAGS%" -o test_mlapi.exe -I ..\..\ocaml z3.cmxa test_mlapi.ml
|
6
ml/build-test.sh
Normal file
6
ml/build-test.sh
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ocamlc -o test_mlapi.byte -I ../../ocaml/ z3.cma test_mlapi.ml
|
||||||
|
ocamlopt -o test_mlapi -I ../../ocaml/ z3.cmxa test_mlapi.ml
|
||||||
|
|
||||||
|
rm *.cm{i,o,x} *.o
|
5
ml/exec.cmd
Normal file
5
ml/exec.cmd
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
@echo off
|
||||||
|
SETLOCAL
|
||||||
|
set PATH=..\..\bin;%PATH%
|
||||||
|
test_mlapi.exe
|
||||||
|
ENDLOCAL
|
4
ml/exec.sh
Normal file
4
ml/exec.sh
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
export LD_LIBRARY_PATH=../../lib:$LD_LIBRARY_PATH # for linux
|
||||||
|
export DYLD_LIBRARY_PATH=../../lib:$DYLD_LIBRARY_PATH # for osx
|
||||||
|
./test_mlapi
|
Loading…
Add table
Add a link
Reference in a new issue