example.com -> example.org
[Seppo.git] / chkr / dune
blob5e641a6ccc39cefb20cb13ca0a7ef206b0db2ea5
1 ;; https://discuss.ocaml.org/t/dune-how-to-link-statically-on-linux-not-on-others/8537/4?u=mro
3 (rule
4  (with-stdout-to
5   flags.sexp
6   (run sh %{dep:gen_flags.sh})))
8 (rule
9  (with-stdout-to
10   version.ml
11  ; (run echo "let dune_project_num = \"%{version:seppo}\"")
12   (run sh %{dep:gen_version.sh} "%{version:seppo}" # ${build-number}) ; https://github.com/ocaml/dune/issues/255#issuecomment-372077123
13  ))
15 ; https://stackoverflow.com/a/53325230/349514
17 (executable
18  (name apchk)
19  (public_name apchk)
20  (package apchk)
21  (libraries
22   seppo_lib
23   cohttp-lwt
24   ezjsonm
25   lwt.unix
26   mirage-crypto-rng-lwt
27   ptime.clock.os
28   result
29   uri)
30  (preprocess
31   (pps lwt_ppx))
32  ; https://discuss.ocaml.org/t/lwt-ppx-binary-footprint/11818/2
33  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34  ;; Prepare for static linking
35  ;
36  ; http://rgrinberg.com/posts/static-binaries-tutorial/
37  ; https://discuss.ocaml.org/t/statically-link/1464/9
38  ; Issue https://discuss.ocaml.org/t/statically-link/1464/13
39  ; https://www.systutorials.com/how-to-statically-link-ocaml-programs/
40  ;
41  ; $ date
42  ; Tue Mar 24 11:36:40 CET 2020
43  ; $ uname -o -m
44  ; x86_64 GNU/Linux
45  ; $ cat /etc/issue
46  ; Devuan GNU/Linux 1 \n \l
47  ;
48  ; # on Ubuntu Bionic note
49  ; # https://github.com/ocaml/ocaml/issues/9131#issuecomment-599765888
50  ; $ sudo add-apt-repository ppa:avsm/musl
51  ;
52  ; $ sudo apt-get install musl-tools
53  ; $ eval (opam env)
54  ; $ opam switch create 4.11.2+musl+static+flambda
55  ; $ opam switch 4.11.2+musl+static+flambda
56  ; $ eval (opam env)
57  ; $ cat */deps | xargs opam install --yes
58  ; $ make test clean build
59  ; $ file _build/default/chkr/*.exe
60  ; _build/default/chkr/apchk.exe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
61  (flags
62   (:include flags.sexp)))