commit a48d6b03d6e1c370bd61ac8aa70c3235ee51c626
parent 06ec56df7f951f88da05f468cdcacecba496145a
Author: Andrew Houts <ahouts4@gmail.com>
Date: Tue, 31 Mar 2020 20:11:21 -0700
add docker config
Diffstat:
2 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/Dockerfile b/Dockerfile
@@ -0,0 +1,13 @@
+FROM ubuntu:latest
+
+RUN apt update
+RUN apt install -y wget build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev bsdmainutils
+
+RUN wget https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
+RUN dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
+
+RUN mkdir /sm64
+WORKDIR /sm64
+ENV PATH="/sm64/tools:${PATH}"
+
+CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=<version> -j4'
diff --git a/README.md b/README.md
@@ -16,6 +16,33 @@ A prior copy of the game is required to extract the required assets.
## Installation
+### Docker
+
+#### 1. Copy baserom(s) for asset extraction
+
+For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at
+`./baserom.<version>.z64` for asset extraction.
+
+#### 2. Create docker image
+
+```bash
+docker build -t sm64 .
+```
+
+#### 3. Build
+
+To build we simply have to mount our local filesystem into the docker container and build.
+
+```bash
+# for example if you have baserom.us.z64 in the project root
+docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=us -j4
+
+# if your host system is linux you need to tell docker what user should own the output files
+docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user "$(id -u):$(id -g)" sm64 make VERSION=us -j4
+```
+
+Resulting artifacts can be found in the `build` directory.
+
### Linux
#### 1. Copy baserom(s) for asset extraction