stitch
Note taking for messy minimalists
git clone git://mccd.space/stitchcommit 51a5f347ea4826c61349c5f0890d7f984c166eac
parent b6ecaa98c8a07c42f55bb498ebdb8c82873c3b62
Author: Marc Coquand <marc@mccd.space>
Date: Fri, 17 May 2024 16:19:32 -0500
Setup everything for static and non-static release
Diffstat:
4 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/Dockerfile b/Dockerfile
@@ -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
diff --git a/README b/README
@@ -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
diff --git a/bin/dune b/bin/dune
@@ -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)
diff --git a/flake.nix b/flake.nix
@@ -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;