Difference between revisions of "Compiling ScummVM/Docker"

Jump to navigation Jump to search
→‎Using the docker images: remove outdated info
(→‎Using the docker images: remove outdated info)
(6 intermediate revisions by one other user not shown)
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-plugins --default-dynamic --enable-detection-dynamic</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>
| <code>make dsdist</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
| <code>--host=i686-w64-mingw32.static --enable-debug --enable-updates</code>
 
<code>--host=x86_64-w64-mingw32.static --enable-debug --enable-updates</code>
| <code>make win32dist-mingw DESTDIR=win32dist-mingw</code>
|
|
|-
|-
|toolchains/open2x
| toolchains/n64
|[[GP2X]]
| [[Nintendo 64]]
| <code>--host=n64 --enable-vkeybd</code>
| <code>make n64-dist</code>
| Requires building with a reduced number of engines.
|-
| toolchains/open2x
| [[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>
| <code>make dingux-dist</code>
|
|
|-
|-
|toolchains/opendingux
| toolchains/openpandora
|[[Dingux]]
| [[OpenPandora]]
| <code>--host=openpandora --enable-plugins --default-dynamic --enable-vkeybd</code>
| <code>make op-pnd</code>
|
|
|-
|-
|toolchains/openpandora
| toolchains/ps3
|[[OpenPandora]]
| [[PlayStation 3]]
| <code>--host=ps3</code>
| <code>make ps3pkg</code>
|
|
|-
|-
|toolchains/ps3
| toolchains/psp
|[[PlayStation 3]]
| [[PlayStation Portable]]
| <code>--host=psp --disable-debug --enable-plugins --default-dynamic</code>
|
|
| Requires building with a reduced number of engines.
|-
|-
|toolchains/psp
| toolchains/raspberrypi
|[[PlayStation Portable]]
| [[Raspberry Pi]]
| <code>--host=raspberrypi</code>
| <code>make dist-generic</code>
|
|
|-
|-
|toolchains/raspberrypi
| toolchains/riscos
|[[Raspberry Pi]]
| [[RISC OS]]
|
| <code>--host=arm-unknown-riscos</code>
 
<code>--host=arm-vfp-riscos</code>
| <code>make riscosdist</code>
| Requires building with a reduced number of engines.
|-
|-
|toolchains/riscos
| toolchains/vita
|[[RISC OS]]
| [[PlayStation Vita]]
|
| <code>--host=psp2</code>
| <code>make psp2vpk</code>
| Requires building with a reduced number of engines.
|-
|-
|toolchains/vita
| toolchains/windows-9x
|[[PlayStation Vita]]
| [[Windows]] 95/98/ME
| <code>--host=mingw32 --disable-windows-unicode</code>
| <code>make win32dist-mingw DESTDIR=win32dist-mingw</code>
|
|
|}
|}
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 102: Line 174:
The following should install all the necessary packages:
The following should install all the necessary packages:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
apt-get install docker.io git make m4 acl
apt-get install docker.io git
</syntaxhighlight>
</syntaxhighlight>


Line 110: Line 182:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git clone https://github.com/scummvm/scummvm.git
git clone https://github.com/scummvm/scummvm.git
git clone https://github.com/scummvm/dockerized-bb.git
</syntaxhighlight>
</syntaxhighlight>


=== Getting the docker images ===
=== Using the docker images ===
To fetch a toolchain image from the Docker Hub, issue the following command inside the dockerized-bb folder:
To fetch a toolchain image from the Docker Hub, issue the following command from the ScummVM source directory:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
make <toolchain>/pull
./devtools/docker.sh <toolchain>
</syntaxhighlight>
</syntaxhighlight>


where <toolchain> is the name of the toolchain you want to use. The following command can be used to fetch all toolchains at once:
where <toolchain> is the name of the toolchain you want to use. This will fetch the requested toolchain from the Docker Hub if it isn't installed, mount the scummvm folder in the Docker image and launch a shell that can be used to build ScummVM for the relevant platform. Alternatively, you can use the following command to fetch updates for an already installed toolchain before launching the shell:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
make pull-toolchains
./devtools/docker.sh --update <toolchain>
</syntaxhighlight>
</syntaxhighlight>


=== Using the docker images ===
Once in the Docker image, the following commands should be issued in order to build ScummVM:
To fetch a toolchain image from the Docker Hub, issue the following command:
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
docker run -v <path-to-scummvm>:/data/scummvm -w /data/scummvm -it <toolchain> /bin/bash
./configure <configure-flags>
make -j$(nproc)
</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 done, the <code>exit</code> command can be used to leave the Docker image.
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.


For more details on how to build ScummVM for a given platform, see the relevant page from [[Compiling ScummVM]].
Once done, the <code>exit</code> command can be used to leave the Docker image.
TrustedUser
2,147

edits

Navigation menu