Difference between revisions of "Compiling ScummVM/macOS"
m (Csnover moved page Compiling ScummVM/Mac OS X to Compiling ScummVM/macOS) |
(Fix outdated compilation instructions) |
||
Line 1: | Line 1: | ||
== Compiling ScummVM under | == Compiling ScummVM under macOS == | ||
Compiling ScummVM under | Compiling ScummVM under macOS requires setting up the build environment first, and then compiling the sources either via command line, or the XCode GUI | ||
== Things needed == | == Things needed == | ||
=== | === Xcode === | ||
This can be installed from the | This can be installed from the [https://itunes.apple.com/us/app/xcode/id497799835?mt=12 Mac App Store]. | ||
=== Xcode command line tools === | |||
After installing Xcode, open a terminal and type: | |||
<source lang="bash"> | <source lang="bash"> | ||
xcode-select --install | xcode-select --install | ||
Line 15: | Line 16: | ||
=== Package manager === | === Package manager === | ||
Getting the required libraries is easier with a package manager. The three most well-known ones are [ | Getting the required libraries is easier with a package manager. The three most well-known ones are [http://brew.sh/ Homebrew], [https://www.macports.org/ MacPorts], and [http://www.finkproject.org/ Fink]. | ||
==== 1. | ==== 1. Homebrew (recommended) ==== | ||
Install Homebrew by pasting the following into a terminal: | |||
<source lang="bash"> | <source lang="bash"> | ||
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | ||
</source> | </source> | ||
==== 2. MacPorts ==== | |||
Install MacPorts by downloading and running the installer from the [https://www.macports.org/install.php MacPorts installation page]. | |||
==== 3. Fink ==== | ==== 3. Fink ==== | ||
Install Fink by downloading and building the source from the [http://www.finkproject.org/download/srcdist.php Fink Source Release] page. | |||
== Obtaining the required libraries == | == Obtaining the required libraries == | ||
After downloading the XCode command line tools and a package manager, enter the following command to install all the required libraries: | After downloading the XCode command line tools and a package manager, enter the following command to install all the required libraries: | ||
=== 1. | === 1. Homebrew === | ||
<source lang="bash"> | <source lang="bash"> | ||
brew install sdl2 sdl2_net jpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng theora faad2 freetype lzlib fluid-synth | |||
</source> | </source> | ||
=== 2. | === 2. MacPorts === | ||
<source lang="bash"> | <source lang="bash"> | ||
sudo port install libsdl2 libsdl2_net libjpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng libtheora faad2 freetype zlib fluidsynth | |||
</source> | </source> | ||
Line 167: | Line 169: | ||
Also if you run scummvm from the command line, you will need to set the Theme path in the ScummVM options so that it finds the modern theme. The themes are in gui/themes/ in the source code repository. | Also if you run scummvm from the command line, you will need to set the Theme path in the ScummVM options so that it finds the modern theme. The themes are in gui/themes/ in the source code repository. | ||
== Compiling ScummVM via the | == Compiling ScummVM via the Xcode GUI == | ||
=== Creating an | === Creating an Xcode project === | ||
* Compile '''create_project''' inside devtools/create_project | * Compile '''create_project''' inside devtools/create_project | ||
<source lang="bash"> | <source lang="bash"> | ||
make devtools/create_project | make devtools/create_project | ||
</source> | </source> | ||
Or alternatively you can use the | Or alternatively you can use the Xcode project in devtools/create_project/xcode. Open it in Xcode or run the following command: | ||
<source lang="bash"> | <source lang="bash"> | ||
cd devtools/create_project/xcode; xcodebuild | cd devtools/create_project/xcode; xcodebuild | ||
</source> | </source> | ||
* | * Run create_project '''from the root ScummVM directory''': | ||
<source lang="bash"> | <source lang="bash"> | ||
./create_project . --xcode | ./devtools/create_project/create_project . --xcode | ||
</source> | </source> | ||
=== Build the | Note that `create_project` accepts most of the same flags that `configure` accepts. | ||
* Open | |||
* | === Build the Xcode project === | ||
* | * Open the Xcode project | ||
* Go to Product -> Scheme and set the scheme to "ScummVM-macOS" | |||
* Go to Product -> Scheme -> Edit Scheme -> Run tab -> Options tab and uncheck "Allow debugging when using document Versions Browser" | |||
* Build with Product -> Build or Product -> Run | |||
== Further reading == | == Further reading == | ||
* [https://github.com/scummvm/scummvm/blob/master/README#L2416 ScummVM README, Section 9.0] | * [https://github.com/scummvm/scummvm/blob/master/README#L2416 ScummVM README, Section 9.0] |
Revision as of 16:17, 27 November 2016
Compiling ScummVM under macOS
Compiling ScummVM under macOS requires setting up the build environment first, and then compiling the sources either via command line, or the XCode GUI
Things needed
Xcode
This can be installed from the Mac App Store.
Xcode command line tools
After installing Xcode, open a terminal and type:
xcode-select --install
Package manager
Getting the required libraries is easier with a package manager. The three most well-known ones are Homebrew, MacPorts, and Fink.
1. Homebrew (recommended)
Install Homebrew by pasting the following into a terminal:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. MacPorts
Install MacPorts by downloading and running the installer from the MacPorts installation page.
3. Fink
Install Fink by downloading and building the source from the Fink Source Release page.
Obtaining the required libraries
After downloading the XCode command line tools and a package manager, enter the following command to install all the required libraries:
1. Homebrew
brew install sdl2 sdl2_net jpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng theora faad2 freetype lzlib fluid-synth
2. MacPorts
sudo port install libsdl2 libsdl2_net libjpeg-turbo libmpeg2 libogg libvorbis flac libmad libpng libtheora faad2 freetype zlib fluidsynth
3. Fink
TODO
4. Manual compilation
Get the source code from the libraries. With this method you will not only need to get the libraries ScummVM uses directly, but also those they depend on.
- Required:
- Optional:
All the libraries are compiled and installed in the same way:
cd thelib-src
./configure --prefix=/path/to/install
make
make install
The default installation path is /usr/local, but you will need admin privileges to install the libraries in this location.
cd thelib-src
./configure
make
sudo make install
If you want your compilation to be compatible with older system, use the -mmacosx-version-min flag (for example -mmacosx-version-min=10.5). To force compilation in 32 bits use -arch i386. You can do that by setting environment variables before compiling all the libraries and ScummVM:
export LDFLAGS="-arch i386 -mmacosx-version-min=10.5"
export CFLAGS="-arch i386 -mmacosx-version-min=10.5"
export CXXFLAGS="-arch i386 -mmacosx-version-min=10.5"
bzip2 is an exception. There is no configure and you directly call make with options. For example:
make CFLAGS="-arch i386 -mmacosx-version-min=10.5 -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64" LDFLAGS="-arch i386 -mmacosx-version-min=10.5"
make install PREFIX=/Users/criezy/Dev/scummvm-releases/libs
If you plan to build the ScummVM app bundle, you will need to generate static libraries. For most of the libraries this is done by default, but for a few you need to specify you want static libraries when invoking configure. Here are suggested configure options for each library. If the library is not listed in the table below this means the default is fine.
Library | configure flags | Comments |
---|---|---|
pkg-config | --with-internal-glib | |
glib | --enable-static | |
libmpeg2 | --disable-sdl |
Need to add -std=gnu89 to CFLAGS (for example 'export CFLAGS="-std=gnu89"' before invoking configure) |
FLAC | --enable-static --disable-asm-optimizations | |
Theora | --disable-examples |
|
Compiling ScummVM via the command line
Configuring ScummVM
Run the configure script:
./configure
If no errors come up, you should be ready to compile ScummvM. For a list of optional features (eg additional, not yet enabled engines) run:
./configure --help
Here is a list of some options you may want to use:
- --enable-all-engines or --enable-engine=foo,bar to enable unsupported engines (not compiled by default)
- --with-staticlib=/path/to/install/dir if your libraries are not in a standard place (e.g. you compiled the libraries manually with a custom installation directory). This is only used when building the application bundle.
- --enable-updates --with-sparkle-prefix=/path/to/sparkle to enable Sparkle (disabled by default). The path should be the path to the directory that contains the Sparkle.framework and not the path to the Sparkle.framework itself.
Note: If you want to use Sparkle, there are some additional steps to do such as setting up DSA signatures. See [1] for details. ScummVM expects to find the DSA public key in dist/macosx.dsa_pub.pem.
Compiling ScummVM
Just run make (with -j to compile several files in parallel). For example
make -j4
To recompile everything and not just the modified files:
make clean
make -j4
Installing ScummVM
You can run ScummVM from the command line in the build directory:
./scummvm
You can also generate an application bundle and move this one anywhere you want:
make bundle
Some features such as dock integration are only available if you build the bundle.
Also if you run scummvm from the command line, you will need to set the Theme path in the ScummVM options so that it finds the modern theme. The themes are in gui/themes/ in the source code repository.
Compiling ScummVM via the Xcode GUI
Creating an Xcode project
- Compile create_project inside devtools/create_project
make devtools/create_project
Or alternatively you can use the Xcode project in devtools/create_project/xcode. Open it in Xcode or run the following command:
cd devtools/create_project/xcode; xcodebuild
- Run create_project from the root ScummVM directory:
./devtools/create_project/create_project . --xcode
Note that `create_project` accepts most of the same flags that `configure` accepts.
Build the Xcode project
- Open the Xcode project
- Go to Product -> Scheme and set the scheme to "ScummVM-macOS"
- Go to Product -> Scheme -> Edit Scheme -> Run tab -> Options tab and uncheck "Allow debugging when using document Versions Browser"
- Build with Product -> Build or Product -> Run