aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Coquand <marc@mccd.space>2024-05-17 16:19:32 -0500
committerMarc Coquand <marc@mccd.space>2024-05-17 16:19:32 -0500
commit51a5f347ea4826c61349c5f0890d7f984c166eac (patch)
tree1702821ca732103b75d8bd53ba5a83bcdbb4e180
parentb6ecaa98c8a07c42f55bb498ebdb8c82873c3b62 (diff)
downloadstitch-0.0.1.tar.gz
stitch-0.0.1.tar.bz2
stitch-0.0.1.zip
Setup everything for static and non-static releasev0.0.1push
-rw-r--r--Dockerfile2
-rw-r--r--README11
-rw-r--r--bin/dune8
-rw-r--r--flake.nix9
4 files changed, 15 insertions, 15 deletions
diff --git a/Dockerfile b/Dockerfile
index b5c3395..e4b9ed2 100644
--- 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
index 3f7c386..9f96ede 100644
--- 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
index b255cb0..d57f39c 100644
--- 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
index a51608b..8190cae 100644
--- 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;