Les lignes de commandes ci-dessous devraient pouvoir être utilisées avec les distributions ocaml-4.14.0 ou 4.13.1 proposées sur ce site : remplacer partout 5.0.0 par 4.14.0 ou 4.13.1 ci-dessous.
On suppose que le répertoire d'OCaml, avec au premier niveau 'bin/' et 'lib/', est
'/opt/amd64/ocaml-5.0.0' dans le cas d'un MAC ou LINUX à processeur intel
'/opt/arm64/ocaml-5.0.0' dans le cas d'un MAC à processeur M1
et que c'est 'C:\ocamlmgw64' dans le cas de Windows 10 ou 11 avec utilisation de MSYS2-MINGW64
et 'C:\ocamlms64' dans le cas de Windows 10 ou 11 avec utilisation des outils en ligne de commande Microsoft. 

On suppose aussi que les outils de développement en ligne de commande sont installés et au moins aussi récents que ceux utilisés pour compiler OCaml.

Placer la ligne de commande sur le répertoire contenant ce fichier et le fichier pi_opt.ml et entrer les lignes de commandes proposées ci-dessous suivant le cas.

On obtient dans ce répertoire l'exécutable en ligne de commande nommé pi_zarith qu'on lance en entrant
./pi_zarith
dans les cas MAC, LINUX, ou Windows 10 ou 11 avec MSYS2-MINGW64,
pi_zarith
dans le cas de Windows 10 ou 11 avec outils en ligne de commande de Microsoft. 



1. MAC OU LINUX :

1. a) MAC M1 ou LINUX arm64 :

export PATH=/opt/arm64/ocaml-5.0.0/bin:$PATH
ocamlopt -o pi_zarith -I +unix -I /opt/arm64/ocaml-5.0.0/lib/ocaml/site-lib/unix unix.cmxa -I /opt/arm64/ocaml-5.0.0/lib/ocaml/site-lib/zarith zarith.cmxa pi_opt.ml


1. b) MAC ou LINUX intel :

export PATH=/opt/amd64/ocaml-5.0.0/bin:$PATH
ocamlopt -o pi_zarith -I +unix -I /opt/amd64/ocaml-5.0.0/lib/ocaml/site-lib/unix unix.cmxa -I /opt/amd64/ocaml-5.0.0/lib/ocaml/site-lib/zarith zarith.cmxa pi_opt.ml

IMPORTANT : si sous LINUX ça ne marche pas et qu'un message d'erreur provenant de l'éditeur de liens ld comporte le terme PIE (Position Independent Executable) essayer la commande complétée suivante

ocamlopt -o pi_zarith -I +unix -I /opt/amd64/ocaml-5.0.0/lib/ocaml/site-lib/unix unix.cmxa -I /opt/amd64/ocaml-5.0.0/lib/ocaml/site-lib/zarith zarith.cmxa pi_opt.ml -ccopt -no-pie



2. WINDOWS 10 (intel)

2. a) avec invite de commandes MSYS2-MINGW64 et les outils de développement installés (gcc, ld, ...) (et libgmp.a accessible dans C:\ocamlmgw64\lib\ocaml\site-lib\zarith)

export PATH=/c/ocamlmgw64/bin:$PATH  
ocamlopt.exe -o pi_zarith.exe -I +unix -I c:/ocamlmgw64/lib/ocaml/site-lib/unix unix.cmxa -I c:/ocamlmgw64/lib/ocaml/site-lib/zarith zarith.cmxa pi_opt.ml


2. b1) avec invite de commande Windows basique et outils en ligne de commande de Visual Studio community 2022 (et mpir.lib accessible dans C:\ocamlms64\lib\ocaml\site-lib\zarith) :

call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o pi_zarith.exe -I +unix -I C:\ocamlms64\lib\ocaml\site-lib\unix unix.cmxa -I C:\ocamlms64\lib\ocaml\site-lib\zarith zarith.cmxa libzarith.lib pi_opt.ml


2. b2) avec invite de commande Windows basique et outils en ligne de commande de Visual Studio community xxxx avec xxxx = 2017 ou 2019 (et mpir.lib accessible dans C:\ocamlms64\lib\ocaml\site-lib\zarith) :

call "C:\Program Files (x86)\Microsoft Visual Studio\xxxx\Community\VC\Auxiliary\Build\vcvars64.bat"
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o pi_zarith.exe -I +unix -I C:\ocamlms64\lib\ocaml\site-lib\unix unix.cmxa -I C:\ocamlms64\lib\ocaml\site-lib\zarith zarith.cmxa pi_opt.ml


2. b3) avec invite de commande Windows basique et outils en ligne de commande de Microsoft Visual Studio 2015 express (vc 14.0)  (et mpir.lib accessible dans C:\ocamlms64\lib\ocaml\site-lib\zarith) :

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o pi_zarith.exe -I +unix -I C:\ocamlms64\lib\ocaml\site-lib\unix unix.cmxa -I C:\ocamlms64\lib\ocaml\site-lib\zarith zarith.cmxa libzarith.lib pi_opt.ml



3. WINDOWS 11 (intel ou émulation intel sur arm64)

3. a) avec invite de commandes MSYS2-MINGW64 et les outils de développement installés (gcc, ld, ...) (et libgmp.a accessible dans C:\ocamlmgw64\lib\ocaml\site-lib\zarith)

export PATH=/c/ocamlmgw64/bin:$PATH  
ocamlopt.exe -o pi_zarith.exe -I +unix -I c:/ocamlmgw64/lib/ocaml/site-lib/unix unix.cmxa -I c:/ocamlmgw64/lib/ocaml/site-lib/zarith zarith.cmxa pi_opt.ml


3. b) avec invite de commande Windows basique et outils en ligne de commande de Visual Studio community 2022 (et mpir.lib accessible dans C:\ocamlms64\lib\ocaml\site-lib\zarith) (on se limite ici au dernier windows kit de Windows 10 : le 10.0.19041.0) :

call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 10.0.19041.0
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o pi_zarith.exe -I +unix -I C:\ocamlmgw64/\lib/\ocaml/\site-lib/\unix unix.cmxa -I C:\ocamlms64\lib\ocaml\site-lib\zarith zarith.cmxa pi_opt.ml
