diff options
author | Marc Coquand <marc@mccd.space> | 2024-05-17 16:19:32 -0500 |
---|---|---|
committer | Marc Coquand <marc@mccd.space> | 2024-05-17 16:19:32 -0500 |
commit | 51a5f347ea4826c61349c5f0890d7f984c166eac (patch) | |
tree | 1702821ca732103b75d8bd53ba5a83bcdbb4e180 | |
parent | b6ecaa98c8a07c42f55bb498ebdb8c82873c3b62 (diff) | |
download | stitch-0.0.1.tar.gz stitch-0.0.1.tar.bz2 stitch-0.0.1.zip |
-rw-r--r-- | Dockerfile | 2 | ||||
-rw-r--r-- | README | 11 | ||||
-rw-r--r-- | bin/dune | 8 | ||||
-rw-r--r-- | flake.nix | 9 |
4 files changed, 15 insertions, 15 deletions
@@ -22,4 +22,4 @@ RUN git config --global --add safe.directory /tmp/build RUN opam install . --update-invariant --yes COPY . . -CMD eval `opam env` && dune build --profile release +CMD eval `opam env` && dune build --profile release-static @@ -87,6 +87,10 @@ _________________ dune build + Optimized build with + + dune build --profile release + And to run: dune exec -- stitch @@ -95,11 +99,10 @@ _________________ dune exec -- stitch --help=groff - To prepare for release, we need to statically link the binary, which - unless you use a musl based distro it will not do out of the box. + When the system is built with Nix, it will be dynamically linked. - There is a Dockerfile included that prepares the release, use it with - podman: + To build a static release, There is a Dockerfile included that + compiles it with musl, use it with podman: podman pull docker.io/alpine:edge podman build . -t stitch:latest @@ -1,7 +1,7 @@ (executable (public_name stitch) (package stitch) - (flags (:standard -cclib -static -cclib -no-pie)) + (name main) (libraries stitch @@ -13,7 +13,11 @@ shexp.process lambda-term)) - +(env + (release-static + (ocamlc_flags (-g)) + (ocamlopt_flags (-g)) + (flags (:standard -cclib -static -cclib -no-pie -w -40)))) ; Rule to generate a man page for stitch (rule (target stitch.1) @@ -33,14 +33,7 @@ ${package} = prev.${package}.overrideAttrs (_: { # Prevent the ocaml dependencies from leaking into dependent environments doNixSupport = false; - buildInputs = [ - pkgs.glibc.static - pkgs.zlib.static - pkgs.binutils-unwrapped - pkgs.ocaml - pkgs.musl - pkgs.gcc - ]; + buildInputs = []; }); }; scope' = scope.overrideScope' overlay; |