Difference between revisions of "Compiling ScummVM/Docker"
Ccawley2011 (talk | contribs) |
Ccawley2011 (talk | contribs) |
||
Line 7: | Line 7: | ||
!Name | !Name | ||
!Target platform | !Target platform | ||
!class=unsortable|Required compiler flags | |||
!class=unsortable|Packaging command | |||
!class=unsortable|Notes | !class=unsortable|Notes | ||
|- | |- | ||
|toolchains/amigaos4 | | toolchains/amigaos4 | ||
|[[AmigaOS]] 4 | | [[AmigaOS]] 4 | ||
| <code>--host=ppc-amigaos --enable-static</code> | |||
| <code>make amigaosdist</code> | |||
| | | | ||
|- | |- | ||
|toolchains/android | | toolchains/android | ||
|[[Android]] for ARMv7, AArch64, x86 and x86_64 | | [[Android]] for ARMv7, AArch64, x86 and x86_64 | ||
| <code>--host=android-arm-v7a --enable-debug</code> | |||
<code>--host=android-arm64-v8a --enable-debug</code> | |||
<code>--host=android-x86 --enable-debug</code> | |||
<code>--host=android-x86_64 --enable-debug</code> | |||
| <code>make androiddistdebug</code> | |||
| | | | ||
|- | |- | ||
|toolchains/caanoo | | toolchains/caanoo | ||
|[[Caanoo]] | | [[Caanoo]] | ||
| <code>--host=caanoo --enable-plugins --default-dynamic --enable-vkeybd</code> | |||
| <code>make caanoo-bundle</code> | |||
| | | | ||
|- | |- | ||
|toolchains/devkit3ds | | toolchains/devkit3ds | ||
|[[Nintendo 3DS]] | | [[Nintendo 3DS]] | ||
| <code>--host=3ds --enable-plugins --default-dynamic</code> | |||
| <code>make dist_3ds</code> | |||
| | | | ||
|- | |- | ||
|toolchains/devkitnds | | toolchains/devkitnds | ||
|[[Nintendo DS]] | | [[Nintendo DS]] | ||
| <code>--host=ds --enable-plugins --default-dynamic</code> | |||
| | |||
| | | | ||
|- | |- | ||
|toolchains/devkitppc | | toolchains/devkitppc | ||
|[[Nintendo Wii]] and [[Nintendo GameCube|GameCube]] | | [[Nintendo Wii]] and [[Nintendo GameCube|GameCube]] | ||
| <code>--host=wii --enable-plugins --default-dynamic --enable-vkeybd</code> | |||
<code>--host=gamecube --enable-plugins --default-dynamic --enable-vkeybd</code> | |||
| <code>make wiidist</code> | |||
| | | | ||
|- | |- | ||
|toolchains/devkitswitch | | toolchains/devkitswitch | ||
|[[Nintendo Switch]] | | [[Nintendo Switch]] | ||
| <code>--host=switch</code> | |||
| <code>make switch_release</code> | |||
| | | | ||
|- | |- | ||
|toolchains/dreamcast | | toolchains/dreamcast | ||
|[[Dreamcast]] | | [[Dreamcast]] | ||
| <code>--host=dreamcast --enable-plugins --default-dynamic --enable-vkeybd</code> | |||
| <code>make dcdist</code> | |||
| | | | ||
|- | |- | ||
|toolchains/gcw0 | | toolchains/gcw0 | ||
|[[GCW Zero]] | | [[GCW Zero]] | ||
| <code>--host=gcw0 --enable-plugins --default-dynamic --enable-vkeybd</code> | |||
| <code>make gcw-opk</code> | |||
| | | | ||
|- | |- | ||
|toolchains/iphone | | toolchains/iphone | ||
|[[iOS]] 7 for AArch64 | | [[iOS]] 7 for AArch64 | ||
|Requires building the image from source. | | ? | ||
| <code>make ios7bundle</code> | |||
| Requires building the image from source. | |||
|- | |- | ||
|toolchains/macosx-arm64 | | toolchains/macosx-arm64 | ||
|[[macOS]] for AArch64 | | [[macOS]] for AArch64 | ||
|Requires building the image from source. | | ? | ||
| <code>make bundle</code> | |||
| Requires building the image from source. | |||
|- | |- | ||
|toolchains/macosx-i386 | | toolchains/macosx-i386 | ||
|[[macOS]] for x86 | | [[macOS]] for x86 | ||
|Requires building the image from source. | | ? | ||
| <code>make bundle</code> | |||
| Requires building the image from source. | |||
|- | |- | ||
|toolchains/macosx-x86_64 | | toolchains/macosx-x86_64 | ||
|[[macOS]] for x86_64 | | [[macOS]] for x86_64 | ||
|Requires building the image from source. | | ? | ||
| <code>make bundle</code> | |||
| Requires building the image from source. | |||
|- | |- | ||
|toolchains/mxe | | toolchains/mxe | ||
|[[Windows]] for x86 and x86_64 | | [[Windows]] for x86 and x86_64 | ||
| ? | |||
| | |||
| | | | ||
|- | |- | ||
|toolchains/open2x | | toolchains/open2x | ||
|[[GP2X]] | | [[GP2X]] | ||
| <code>--host=gp2x --enable-vkeybd</code> | |||
| <code>make gp2x-bundle</code> | |||
| Requires building with a reduced number of engines. | |||
|- | |||
| toolchains/opendingux | |||
| [[Dingux]] | |||
| <code>--host=dingux --enable-plugins --default-dynamic --enable-vkeybd --disable-theoradec</code> | |||
| | | | ||
| | | | ||
|- | |- | ||
|toolchains/openpandora | | toolchains/openpandora | ||
|[[OpenPandora]] | | [[OpenPandora]] | ||
| <code>--host=openpandora --enable-plugins --default-dynamic --enable-vkeybd</code> | |||
| <code>make op-pnd</code> | |||
| | | | ||
|- | |- | ||
|toolchains/ps3 | | toolchains/ps3 | ||
|[[PlayStation 3]] | | [[PlayStation 3]] | ||
| <code>--host=ps3</code> | |||
| <code>make ps3pkg</code> | |||
| | | | ||
|- | |- | ||
|toolchains/psp | | toolchains/psp | ||
|[[PlayStation Portable]] | | [[PlayStation Portable]] | ||
| <code>--host=psp --disable-debug --enable-plugins --default-dynamic</code> | |||
| | | | ||
| Requires building with a reduced number of engines. | |||
|- | |- | ||
|toolchains/raspberrypi | | toolchains/raspberrypi | ||
|[[Raspberry Pi]] | | [[Raspberry Pi]] | ||
| <code>--host=raspberrypi</code> | |||
| <code>make dist-generic</code> | |||
| | | | ||
|- | |- | ||
|toolchains/riscos | | toolchains/riscos | ||
|[[RISC OS]] | | [[RISC OS]] | ||
| | | <code>--host=arm-unknown-riscos</code> | ||
| <code>make riscosdist</code> | |||
| Requires building with a reduced number of engines. | |||
|- | |- | ||
|toolchains/vita | | toolchains/vita | ||
|[[PlayStation Vita]] | | [[PlayStation Vita]] | ||
| | | <code>--host=psp2</code> | ||
| <code>make psp2vpk</code> | |||
| Requires building with a reduced number of engines. | |||
|} | |} | ||
For more details on how to build ScummVM for a specific platform, see the relevant page from [[Compiling ScummVM]]. | |||
=== Installing the needed packages === | === Installing the needed packages === | ||
Line 133: | Line 189: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
where <toolchain> is the name of the toolchain you want to use, and <path-to-scummvm> is the path to the scummvm folder. This will mount the scummvm folder in the Docker image and launch a shell that can be used to build ScummVM for the relevant platform. Once | where <toolchain> is the name of the toolchain you want to use, and <path-to-scummvm> is the path to the scummvm folder. This will mount the scummvm folder in the Docker image and launch a shell that can be used to build ScummVM for the relevant platform. | ||
Once in the Docker image, the following commands should be issued in order to build ScummVM: | |||
<syntaxhighlight lang="bash"> | |||
./configure <configure-flags> | |||
make -j$(nproc) | |||
</syntaxhighlight> | |||
where <configure-flags> is the list of required compiler flags specified in the table at the top of the page. This should be followed by the packaging command if one is specified. | |||
Once done, the <code>exit</code> command can be used to leave the Docker image. |
Revision as of 20:51, 14 April 2021
Compiling ScummVM using Docker
The ScummVM buildbot uses Docker for building the toolchains. As such, this makes it possible for the individual toolchains to be used for local builds, avoiding the need to install the toolchain and required libraries manually.
The following toolchain images are available:
Name | Target platform | Required compiler flags | Packaging command | Notes |
---|---|---|---|---|
toolchains/amigaos4 | AmigaOS 4 | --host=ppc-amigaos --enable-static
|
make amigaosdist
|
|
toolchains/android | Android for ARMv7, AArch64, x86 and x86_64 | --host=android-arm-v7a --enable-debug
|
make androiddistdebug
|
|
toolchains/caanoo | Caanoo | --host=caanoo --enable-plugins --default-dynamic --enable-vkeybd
|
make caanoo-bundle
|
|
toolchains/devkit3ds | Nintendo 3DS | --host=3ds --enable-plugins --default-dynamic
|
make dist_3ds
|
|
toolchains/devkitnds | Nintendo DS | --host=ds --enable-plugins --default-dynamic
|
||
toolchains/devkitppc | Nintendo Wii and GameCube | --host=wii --enable-plugins --default-dynamic --enable-vkeybd
|
make wiidist
|
|
toolchains/devkitswitch | Nintendo Switch | --host=switch
|
make switch_release
|
|
toolchains/dreamcast | Dreamcast | --host=dreamcast --enable-plugins --default-dynamic --enable-vkeybd
|
make dcdist
|
|
toolchains/gcw0 | GCW Zero | --host=gcw0 --enable-plugins --default-dynamic --enable-vkeybd
|
make gcw-opk
|
|
toolchains/iphone | iOS 7 for AArch64 | ? | make ios7bundle
|
Requires building the image from source. |
toolchains/macosx-arm64 | macOS for AArch64 | ? | make bundle
|
Requires building the image from source. |
toolchains/macosx-i386 | macOS for x86 | ? | make bundle
|
Requires building the image from source. |
toolchains/macosx-x86_64 | macOS for x86_64 | ? | make bundle
|
Requires building the image from source. |
toolchains/mxe | Windows for x86 and x86_64 | ? | ||
toolchains/open2x | GP2X | --host=gp2x --enable-vkeybd
|
make gp2x-bundle
|
Requires building with a reduced number of engines. |
toolchains/opendingux | Dingux | --host=dingux --enable-plugins --default-dynamic --enable-vkeybd --disable-theoradec
|
||
toolchains/openpandora | OpenPandora | --host=openpandora --enable-plugins --default-dynamic --enable-vkeybd
|
make op-pnd
|
|
toolchains/ps3 | PlayStation 3 | --host=ps3
|
make ps3pkg
|
|
toolchains/psp | PlayStation Portable | --host=psp --disable-debug --enable-plugins --default-dynamic
|
Requires building with a reduced number of engines. | |
toolchains/raspberrypi | Raspberry Pi | --host=raspberrypi
|
make dist-generic
|
|
toolchains/riscos | RISC OS | --host=arm-unknown-riscos
|
make riscosdist
|
Requires building with a reduced number of engines. |
toolchains/vita | PlayStation Vita | --host=psp2
|
make psp2vpk
|
Requires building with a reduced number of engines. |
For more details on how to build ScummVM for a specific platform, see the relevant page from Compiling ScummVM.
Installing the needed packages
Debian-based distributions
The following should install all the necessary packages:
apt-get install docker.io git make m4 acl
Getting the source
- Open a Terminal and type:
git clone https://github.com/scummvm/scummvm.git
git clone https://github.com/scummvm/dockerized-bb.git
Getting the docker images
To fetch a toolchain image from the Docker Hub, issue the following command inside the dockerized-bb folder:
make <toolchain>/pull
where <toolchain> is the name of the toolchain you want to use. The following command can be used to fetch all toolchains at once:
make pull-toolchains
Using the docker images
To fetch a toolchain image from the Docker Hub, issue the following command:
docker run -v <path-to-scummvm>:/data/scummvm -w /data/scummvm -it <toolchain> /bin/bash
where <toolchain> is the name of the toolchain you want to use, and <path-to-scummvm> is the path to the scummvm folder. This will mount the scummvm folder in the Docker image and launch a shell that can be used to build ScummVM for the relevant platform.
Once in the Docker image, the following commands should be issued in order to build ScummVM:
./configure <configure-flags>
make -j$(nproc)
where <configure-flags> is the list of required compiler flags specified in the table at the top of the page. This should be followed by the packaging command if one is specified.
Once done, the exit
command can be used to leave the Docker image.