chore: add build environment for static 0.2.x releases

This commit is contained in:
Marcus Holland-Moritz 2025-04-22 16:55:11 +02:00
parent 8cdc0e7698
commit 3ae2241e11
3 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,66 @@
# syntax=docker/dockerfile:1
ARG ARCH=amd64
FROM $ARCH/alpine:3.14
RUN apk update
RUN apk upgrade
RUN apk add --no-cache \
bash-completion \
build-base \
wget \
curl \
vim \
tar \
ripgrep \
py3-pip \
less \
gcc \
g++ \
git \
ccache \
samurai \
cmake \
make \
bison \
flex \
ronn \
fuse \
fuse-dev \
pkgconf \
binutils-dev \
libevent-dev \
libevent-static \
linux-headers \
date-dev \
range-v3-dev \
zlib-static \
libucontext-dev \
libdwarf-dev \
elfutils-dev \
nlohmann-json \
meson \
autoconf \
strace \
gdb \
zstd-dev \
zstd-static \
lz4-dev \
lz4-static \
eudev-dev \
gtest-dev \
xz \
xz-dev \
boost-dev \
boost-static \
sparsehash \
icu-static \
openssl-libs-static \
openssl-dev
COPY double-conversion-3.1.5.tar.gz /opt/
COPY fmt-7.1.3.tar.gz /opt/
COPY fuse-3.10.4.tar.xz /opt/
COPY glog-0.5.0.tar.gz /opt/
COPY build_libs.sh /opt/
RUN bash /opt/build_libs.sh
ENTRYPOINT /bin/bash

View File

@ -0,0 +1,18 @@
IMAGE="dwarfs-alpine-old"
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
NPROC:=$(shell nproc)
COMMON_RUN_OPTS=-it --rm \
--cap-add SYS_ADMIN --device /dev/fuse --privileged \
--mount type=bind,source=/home/mhx/git/github/dwarfs,target=/workspace,readonly \
--mount type=bind,source="$(ROOT_DIR)"/../@ccache,target=/ccache \
--mount type=bind,source="$(ROOT_DIR)"/../@home,target=/root \
--env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \
--entrypoint /bin/bash
build:
docker build -t $(IMAGE) .
run:
@docker run $(COMMON_RUN_OPTS) $(IMAGE)

View File

@ -0,0 +1,46 @@
#!/bin/bash
set -e
cd /opt
mkdir build
cd build
tar xf /opt/double-conversion-3.1.5.tar.gz
cd double-conversion-3.1.5
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF
make -j$(nproc)
make install
cd /opt/build
tar xf /opt/fmt-7.1.3.tar.gz
cd fmt-7.1.3
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF -DFMT_DOC=OFF -DFMT_TEST=OFF
make -j$(nproc)
make install
cd /opt/build
tar xf /opt/fuse-3.10.4.tar.xz
cd fuse-3.10.4
mkdir build
cd build
meson setup .. --default-library=static --prefix=/usr/local
meson configure -D utils=false -D tests=false -D examples=false
meson setup --reconfigure ..
ninja
ninja install
cd /opt/build
tar xf /opt/glog-0.5.0.tar.gz
cd glog-0.5.0
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF
make -j$(nproc)
make install
cd /opt
rm -rf build