Skip to content

Commit 27ce213

Browse files
author
okay
committed
[kobo] add Dockerfile for kobo
the Docker image uses kobo env from koxtoolchain
1 parent 35d1808 commit 27ce213

File tree

6 files changed

+53
-10
lines changed

6 files changed

+53
-10
lines changed

Diff for: Dockerfile.kobo

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM ghcr.io/toltec-dev/python:v1.1
2+
3+
RUN pip3 install okp
4+
5+
WORKDIR /opt/
6+
RUN apt update
7+
RUN apt-get install -y wget unzip git
8+
RUN wget https://github.com/koreader/koxtoolchain/releases/download/2021.12/kobo.zip
9+
RUN unzip kobo.zip
10+
RUN tar -xvzf kobo.tar.gz
11+
RUN rm kobo.zip kobo.tar.gz
12+
13+
ARG NGCONFIG="arm-kobo-linux-gnueabihf"
14+
ARG CHOST="arm-linux-gnueabihf"
15+
16+
ENV ARCH=arm \
17+
CHOST="$CHOST" \
18+
CROSS_COMPILE="$CHOST-" \
19+
PATH="$PATH:/opt/x-tools/$NGCONFIG/bin" \
20+
PKG_CONFIG_LIBDIR="/opt/x-tools/$NGCONFIG/$NGCONFIG/sysroot/usr/lib/pkgconfig:/opt/x-tools/$NGCONFIG/$NGCONFIG/sysroot/lib/pkgconfig:/opt/x-tools/$NGCONFIG/$NGCONFIG/sysroot/opt/lib/pkgconfig" \
21+
PKG_CONFIG_SYSROOT_DIR="/opt/x-tools/$NGCONFIG/$NGCONFIG/sysroot" \
22+
SYSROOT="/opt/x-tools/$NGCONFIG/$NGCONFIG/sysroot" \
23+
NGCONFIG="$NGCONFIG" \
24+
TARGET_PREFIX="$CHOST"
25+
26+
WORKDIR /rmkit/
27+
COPY . /rmkit/
28+
RUN rm src/build -fr
29+
30+
# vim: syntax=dockerfile

Diff for: Makefile

+8-4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ INSTALL_APPS=$(foreach app, $(APPS), install_$(app))
1111
RESIM_APPS=$(foreach app, $(APPS), resim_$(app))
1212
RUN_APPS=$(foreach app, $(APPS), run_$(app))
1313
DOCKER_APPS=$(foreach app, $(APPS), $(app)_docker)
14+
DOCKERBUILD=rmkit:${TARGET}
1415

1516
SHA=$(shell git rev-parse --short HEAD)
1617

@@ -27,7 +28,7 @@ $(RUN_APPS): %: rmkit.h
2728
cd src/$(@:run_%=%) && make run
2829

2930
$(DOCKER_APPS): %:
30-
docker build --tag rmkit:latest .
31+
docker build --tag ${DOCKERBUILD} . -f ${DOCKERFILE}
3132
bash scripts/build/docker_build.sh $(@:%_docker=%)
3233

3334
$(CLEAN_APPS): %:
@@ -47,7 +48,10 @@ install: rmkit.h dest_dir
4748

4849
clean:
4950
$(foreach app, $(APPS), cd src/${app} && make clean; cd ${ROOT}; )
50-
rm src/build/*
51+
rm src/build/* 2>/dev/null || true
52+
ifdef FBINK
53+
cd src/vendor/FBInk/ && make distclean
54+
endif
5155

5256
default: build
5357

@@ -67,14 +71,14 @@ rmkit.h:
6771
cd src/rmkit && make
6872

6973
docker:
70-
docker build --tag rmkit:latest .
74+
docker build --tag ${DOCKERBUILD} . -f ${DOCKERFILE}
7175
bash scripts/build/docker_release.sh
7276
ifeq ($(ARCH),kobo)
7377
bash scripts/build/build_kobo_root.sh
7478
endif
7579

7680
docker_test:
77-
docker build --tag rmkit:latest .
81+
docker build --tag ${DOCKERBUILD} . -f ${DOCKERFILE}
7882
bash scripts/build/docker_test.sh
7983

8084
docker_install: docker

Diff for: scripts/build/docker_build.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
OUTDIR=artifacts
22
PACKAGE="${1}"
33
TARGET=${TARGET:-rm}
4+
FBINK=${FBINK}
45
mkdir ${OUTDIR}
56
docker run -i --rm -v "${PWD}/${OUTDIR}:/mnt/artifacts" rmkit /bin/bash << COMMANDS
67
mkdir -p src/build
7-
TARGET=${TARGET} make ${PACKAGE}
8+
FBINK=${FBINK} TARGET=${TARGET} make ${PACKAGE}
89
mkdir -p /mnt/artifacts/${TARGET}/
910
cp -r src/build/* /mnt/artifacts/${TARGET}/
1011
chown -R $(id -u):$(id -u) /mnt/artifacts

Diff for: scripts/build/docker_release.sh

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
OUTDIR=artifacts
22
TARGET=${TARGET:-rm}
3+
FBINK=${FBINK}
4+
35
mkdir ${OUTDIR}
46
docker run -i --rm -v "${PWD}/${OUTDIR}:/mnt/artifacts" rmkit /bin/bash << COMMANDS
7+
cd /rmkit/
58
mkdir -p src/build
6-
TARGET=${TARGET} make
7-
TARGET=${TARGET} make strip
8-
TARGET=${TARGET} make bundle
9+
echo "CURRENT DIR IS"
10+
pwd
11+
FBINK=${FBINK} TARGET=${TARGET} make
12+
FBINK=${FBINK} TARGET=${TARGET} make strip
13+
FBINK=${FBINK} TARGET=${TARGET} make bundle
914
mkdir -p /mnt/artifacts/${TARGET}/
1015
cp -r src/build/* /mnt/artifacts/${TARGET}/
1116
rm /mnt/artifacts/${TARGET}/stb.*

Diff for: src/actions.make

+4-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ endif
2323
ifdef FBINK
2424
CPP_FLAGS+=-L${ROOT_DIR}/src/vendor/FBInk/Release -l:libfbink.a -D"RMKIT_FBINK=1"
2525
libfbink:
26-
cd ../vendor/FBInk/ && BITMAP=1 make staticlib
26+
git submodule init
27+
git submodule update
28+
cd ${SRC_DIR}/vendor/FBInk/ && BITMAP=1 make staticlib
2729
else
2830
libfbink:
2931
echo "Skipping FBInk compilation"
@@ -32,7 +34,7 @@ endif
3234
clean-default:
3335
rm ${SRC_DIR}/build/${EXE}
3436
compile_kobo: ../build/stb.arm.o libfbink
35-
compile_kobo: export CPP_FLAGS += -O2 -static -static-libstdc++ -static-libgcc
37+
compile_kobo: export CPP_FLAGS += -O2 -static -static-libstdc++ -static-libgcc
3638
compile_kobo: export OKP_FLAGS += ../build/stb.arm.o
3739
compile_kobo:
3840
CXX=${CXX_BIN} okp ${OKP_FLAGS} -- -D"KOBO=1" -D${RMKIT_IMPL} ${CPP_FLAGS}

Diff for: src/common.make

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CXX_BIN?=arm-linux-gnueabihf-g++
55
CC_BIN?=arm-linux-gnueabihf-gcc
66
STRIP_BIN?=arm-linux-gnueabihf-strip
77
CPP_FLAGS=-ldl -pthread -lpthread -fdata-sections -ffunction-sections -Wl,--gc-sections
8+
DOCKERFILE?=Dockerfile
89

910
# BUILD STUFF
1011
ROOT=${PWD}

0 commit comments

Comments
 (0)