first commit
This commit is contained in:
41
build_kindle.sh
Executable file
41
build_kindle.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
CONTAINER_NAME=kindle_go_builder
|
||||
WORKDIR=/src
|
||||
OUTFILE=kindle_fbink_go
|
||||
|
||||
if ! docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}\$"; then
|
||||
echo "[sh] Creating container"
|
||||
docker run -dit --name ${CONTAINER_NAME} debian:bookworm sleep infinity
|
||||
fi
|
||||
|
||||
echo "[sh] Installing toolchain inside container"
|
||||
docker exec ${CONTAINER_NAME} bash -c "
|
||||
set -e
|
||||
apt-get update
|
||||
apt-get install -y golang-go curl xz-utils build-essential gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
|
||||
if [ ! -d /usr/local/arm-linux-musleabi-cross ]; then
|
||||
echo '[sh] Downloading musl cross toolchain...'
|
||||
cd /usr/local
|
||||
curl -L https://musl.cc/arm-linux-musleabi-cross.tgz | tar xz
|
||||
fi
|
||||
"
|
||||
|
||||
echo "[sh] Copying project into container"
|
||||
docker exec ${CONTAINER_NAME} rm -rf ${WORKDIR}
|
||||
docker cp ./go ${CONTAINER_NAME}:${WORKDIR}
|
||||
|
||||
echo "[sh] Building for ARMv7 soft-float (musl static)"
|
||||
docker exec ${CONTAINER_NAME} bash -c "
|
||||
set -e
|
||||
export PATH=/usr/local/arm-linux-musleabi-cross/bin:\$PATH
|
||||
cd ${WORKDIR}
|
||||
export GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 CC=arm-linux-gnueabi-gcc
|
||||
go build -ldflags '-linkmode external -extldflags "-static"' -o kindle_fbink_go .
|
||||
"
|
||||
|
||||
echo "[sh] Copying binary back to hsot"
|
||||
docker cp ${CONTAINER_NAME}:${WORKDIR}/${OUTFILE} ./${OUTFILE}
|
||||
|
||||
echo "[sh] Build complete: ${OUTFILE}"
|
||||
Reference in New Issue
Block a user