822 lines
34 KiB
Plaintext
822 lines
34 KiB
Plaintext
|
Table of contents
|
||
|
-----------------
|
||
|
|
||
|
WARNING: Only intended for developers who'll build Speed Dreams from sources.
|
||
|
|
||
|
I - Pre-requisites
|
||
|
|
||
|
II - Linux Installation from sources
|
||
|
|
||
|
1 - Introduction
|
||
|
2 - Installation from the official tarballs
|
||
|
3 - Installation from SVN (developers only)
|
||
|
4 - Run Speed-Dreams
|
||
|
5 - Getting Help
|
||
|
|
||
|
III - Windows Installation from sources
|
||
|
|
||
|
1 - CMake and MS VC++ 2010 (10) and newer under Windows
|
||
|
|
||
|
IV - FreeBSD Installation from sources
|
||
|
|
||
|
V - MacOS X installation from sources
|
||
|
1 - CMake and McPorts
|
||
|
2 - CMake and XCode (TODO)
|
||
|
|
||
|
VI - Haiku
|
||
|
(TODO)
|
||
|
|
||
|
VII - Historical Windows CMake and MinGW : (NOTE: outdated!)
|
||
|
|
||
|
|
||
|
I - Pre-requisites
|
||
|
------------------
|
||
|
|
||
|
- Working OpenGL Driver and header files / associated libraries
|
||
|
- CMake https://cmake.org/download/
|
||
|
- Java development kit (for sd2-trackeditor)
|
||
|
|
||
|
|
||
|
- SDL 2.x.x http://www.libsdl.org/
|
||
|
- PLIB 1.8.5 http://plib.sourceforge.net/
|
||
|
Linux: Be careful to compile plib with -fPIC on AMD64 if you run a 64 bit version.
|
||
|
- OpenAL soft 1.18 https://www.openal-soft.org/openal-releases/
|
||
|
- libOGG 1.3.x http://downloads.xiph.org/releases/ogg/
|
||
|
- libVorbis 1.3.x http://downloads.xiph.org/releases/vorbis/
|
||
|
- ENet 1.3.x http://enet.bespin.org
|
||
|
Linux: Be careful to compile ENet with -fPIC on AMD64 if you run a 64 bit build.
|
||
|
- Expat 2 https://github.com/libexpat/libexpat/releases
|
||
|
- libpng https://sourceforge.net/projects/libpng/files/
|
||
|
- zlib https://sourceforge.net/projects/libpng/files/zlib/ OR https://github.com/madler/zlib/releases
|
||
|
- libjpeg https://ijg.org/files
|
||
|
- cURL 7.x https://curl.se/download/ OR https://github.com/curl/curl/releases
|
||
|
- OpenSceneGraph https://github.com/openscenegraph/OpenSceneGraph/tags
|
||
|
- FreeSOLID 2.1.2 http://sourceforge.net/projects/freesolid
|
||
|
- FreeType 2 https://sourceforge.net/projects/freetype/files/
|
||
|
- SDL2_mixer 2.x.x https://github.com/libsdl-org/SDL_mixer/releases
|
||
|
|
||
|
WARNING: Under Windows, be careful to compile everything for multi-threaded DLL integration (/MD[d])
|
||
|
|
||
|
For Windows pre-compiled versions of the above dependencies are available
|
||
|
for Visual Studio 2015 and newer at https://sourceforge.net/projects/speed-dreams/files/3rd%20party/MSVC/
|
||
|
|
||
|
There is also a CMake script for downloading and building them at:
|
||
|
https://sourceforge.net/p/speed-dreams/code/HEAD/tree/trunk/packaging/3rdParty-devel/CMakeLists.txt
|
||
|
|
||
|
|
||
|
On a fresh install of Linux Mint 19 the following packages were needed to be installed
|
||
|
(a good starting point on any Ubuntu 18.04 variant):
|
||
|
- build-essential
|
||
|
- cmake-curses-gui or cmake
|
||
|
- libopenscenegraph-3.4-dev
|
||
|
- freeglut3-dev
|
||
|
- libvorbis-dev
|
||
|
- libsdl2-dev
|
||
|
- libopenal-dev
|
||
|
- libenet-dev
|
||
|
- libexpat1-dev
|
||
|
- libjpeg-dev
|
||
|
- libplib-dev
|
||
|
- libpng-dev
|
||
|
- libcurl4-openssl-dev
|
||
|
- subversion (only when you want to build the development version from the repository)
|
||
|
These will install all other required packages as their dependencies.
|
||
|
|
||
|
|
||
|
II - Linux installation from sources
|
||
|
------------------------------------
|
||
|
|
||
|
1 - Introduction
|
||
|
|
||
|
There are 2 ways of building and installing Speed Dreams from sources :
|
||
|
- from the official source tarballs,
|
||
|
- from the subversion repository.
|
||
|
|
||
|
Pick only one of the above options. If you have trouble during the installation,
|
||
|
have a look in the FAQ on the above sites. In case you get stuck,
|
||
|
please learn how to report the problem in the FAQ before filing a bug or contact us.
|
||
|
|
||
|
Have fun,
|
||
|
|
||
|
The Speed Dreams Team.
|
||
|
|
||
|
|
||
|
2 - Installation from the official tarballs
|
||
|
|
||
|
a - get these tarballs : please go to our SF.net download page at
|
||
|
|
||
|
https://sourceforge.net/projects/speed-dreams/files/2.2.2/,
|
||
|
|
||
|
and you should find :
|
||
|
|
||
|
speed-dreams-src-base-2.2.2-r6545.tar.xz
|
||
|
speed-dreams-src-hq-cars-and-tracks-2.2.2-r6545.tar.xz
|
||
|
speed-dreams-src-more-hq-cars-and-tracks-2.2.2-r6545.tar.xz
|
||
|
speed-dreams-src-wip-cars-and-tracks-2.2.2-r6545.tar.xz
|
||
|
speed-dreams-src-unmaintained-2.2.2-r6545.tar.xz
|
||
|
|
||
|
and
|
||
|
|
||
|
speed-dreams-src-partial-build-patch-2.2.2-r6545.tar.xz
|
||
|
|
||
|
At this point, you have 2 options :
|
||
|
1. you want full game contents : you need to download the 4 first source packages
|
||
|
("base", "hq-cars-and-tracks", "more-hq-cars-and-tracks", "wip-cars-and-tracks"),
|
||
|
and even the 5th "unmaintained" one (if you really need it, you know it :-)
|
||
|
2. you don't need full game contents : you need at least the "base" package,
|
||
|
along with the "partial-build-patch" one ; you can optionally add 1 or more of any
|
||
|
of the other source packages to your basket, as you like.
|
||
|
|
||
|
Let's say that you downloaded your packages in $HOME/sd
|
||
|
and that we'll extract them in the "2.2.2" folder
|
||
|
(you can do as you like, but we'll use this folder in the explanations below).
|
||
|
|
||
|
b - extract the tarballs :
|
||
|
|
||
|
Whatever the chosen option (1 or 2) :
|
||
|
|
||
|
$ cd $HOME/sd
|
||
|
$ mkdir 2.2.2
|
||
|
$ cd 2.2.2
|
||
|
$ for file in ../*.xz; do tar xvfa $file; done
|
||
|
|
||
|
If you chose option 2 (selected content), then you also have to :
|
||
|
$ tar xvfa speed-dreams-src-partial-build-patch-2.2.2-r6545.tar.xz
|
||
|
|
||
|
You should now see "cmake", "data" and "src" folders (among others).
|
||
|
|
||
|
Advanced: If you chose option 2, and want to add another source package
|
||
|
after following the above extraction instructions, always
|
||
|
extract again at the end the "partial-build-patch" package
|
||
|
before configuring and building; you can even add contents
|
||
|
like this after configuring and building ... of course you'll
|
||
|
then need to configure and build again.
|
||
|
|
||
|
c - configure :
|
||
|
|
||
|
1. create the build dir for CMake
|
||
|
|
||
|
$ mkdir build
|
||
|
$ cd build
|
||
|
|
||
|
2. run CMake :
|
||
|
|
||
|
- for a Release (optimised) build using default 3rd party libs
|
||
|
|
||
|
Option 1 (full contents) :
|
||
|
$ cmake -D OPTION_OFFICIAL_ONLY:BOOL=ON ..
|
||
|
|
||
|
Option 2 (selected contents) :
|
||
|
$ cmake .. # Don't care about "missing files / folder" messages, this is expected :-)
|
||
|
|
||
|
- you may also want to override some default settings :
|
||
|
|
||
|
for that, you can use the -D option of cmake :
|
||
|
|
||
|
Example :
|
||
|
|
||
|
$ cmake -D SD_LOCALDIR:STRING=~/dev/.sd-settings \
|
||
|
-D CMAKE_PREFIX_PATH:STRING=/usr/local \
|
||
|
-D CMAKE_BUILD_TYPE:STRING=Debug ..
|
||
|
|
||
|
or else you can use ccmake to change the variables interactively :
|
||
|
|
||
|
$ ccmake ..
|
||
|
|
||
|
* press (t) for advanced options if needed
|
||
|
* in order to change a variable :
|
||
|
* select the associated line using the up/down arrow keys
|
||
|
* press (enter)
|
||
|
* edit the value
|
||
|
* press (enter)
|
||
|
* press (c) for configure
|
||
|
* press (g) for generate
|
||
|
* press (e) to exit
|
||
|
|
||
|
Note, that usually you need to configure cmake / ccmake twice, before build files
|
||
|
can be generated. So, if you do not see the (g) option appearing after configuration,
|
||
|
try to configure it again without leaving ccmake. After changing variables in ccmake,
|
||
|
another configuration is required before it can generate build files.
|
||
|
|
||
|
|
||
|
Usefull CMake variables for Speed Dreams (note that some might be "advanced" ones) :
|
||
|
|
||
|
- CMAKE_BUILD_TYPE:STRING :
|
||
|
Debug, Release, RelWithDebInfo, MinSizeRel (def: Release)
|
||
|
|
||
|
- OPTION_OFFICIAL_ONLY:BOOL :
|
||
|
Build/install only official contents (def: OFF)
|
||
|
|
||
|
- SD_LOCALDIR:STRING :
|
||
|
User settings dir for run-time (def: ~/.speed-dreams-2)
|
||
|
|
||
|
- CMAKE_PREFIX_PATH:STRING :
|
||
|
Path prefixes for additional 3rdParty libraries (def:empty)
|
||
|
(use /usr/local if you compiled some 3rdParty libs yourself)
|
||
|
or (use /opt/local for MacPorts on OS X).
|
||
|
|
||
|
- CMAKE_INSTALL_PREFIX:PATH :
|
||
|
Install path for Speed Dreams (def: /usr/local)
|
||
|
|
||
|
- OPTION_3RDPARTY_EXPAT:BOOL :
|
||
|
Enable building against 3rd party Expat 2 library, rather than bundled txml (def: ON)
|
||
|
Disable if "Expat 2 dev" is not available for your distro.
|
||
|
|
||
|
- OPTION_3RDPARTY_SOLID:BOOL :
|
||
|
Enable building against 3rd party Free Solid 2 library, rather than bundled one (def: OFF)
|
||
|
Note: This is not set by default, because Free Solid 2 dev is not yet available
|
||
|
on most Linux distros (amongst the big ones only Fedora has it right now, in 2018, August)
|
||
|
Ask the dev team for any hint about building it ...
|
||
|
|
||
|
- OPTION_OSGGRAPH:BOOL :
|
||
|
Enable building of the WIP new OpenSceneGraph-based graphics module 'osggraph' (def: ON)
|
||
|
Note: This requires new 3rd party libs : OpenSceneGraph
|
||
|
Hint: Once built, to load it at race-time, goto Options->OpenGL
|
||
|
|
||
|
- OPTION_TRACE:BOOL :
|
||
|
Full run-time traces if ON (def: ON)
|
||
|
|
||
|
- OPTION_TRACE_LEVEL:STRING :
|
||
|
Run-time traces level integer threshold, only if OPTION_TRACE is ON
|
||
|
(traces with higher level are not logged ;
|
||
|
0=Fatal, 1=Error, 2=Warning, 3=Info, 4=Trace, 5=Debug, ...) (def: 5)
|
||
|
|
||
|
- OPTION_UNLOAD_SSGGRAPH:BOOL :
|
||
|
The 'ssggraph' graphics engine module will never be unloaded if OFF (def: ON)
|
||
|
Usefull under some Linux configurations where this unloading badly crashes XOrg
|
||
|
(see http://sourceforge.net/p/speed-dreams/tickets/209),
|
||
|
or simply makes SD crash because PLib is shipped as a set of shared libraries
|
||
|
(see http://sourceforge.net/p/speed-dreams/tickets/459).
|
||
|
|
||
|
- OPTION_FORCE_DEBUG:BOOL :
|
||
|
Enable debug symbols even in Release builds (def: OFF)
|
||
|
(see http://sourceforge.net/p/speed-dreams/tickets/356).
|
||
|
|
||
|
- OPTION_WEBSERVER:BOOL :
|
||
|
Enable the WIP Webserver/Laplogger (def: ON)
|
||
|
(see http://sourceforge.net/p/speed-dreams/tickets/912).
|
||
|
|
||
|
Tips reported about some issues :
|
||
|
- sometimes, ENET_INCLUDE_DIR is not detected correctly, resulting in something like
|
||
|
/usr/include/enet or so, and, consequently, in bad compilation errors because
|
||
|
/usr/include/enet contains a special time.h header file that conflicts with the standard
|
||
|
one in /usr/include. Removing the "enet" postfix from ENET_INCLUDE_DIR should fix this
|
||
|
(in cmake command line or interactively through ccmake).
|
||
|
|
||
|
d - build:
|
||
|
|
||
|
$ make
|
||
|
|
||
|
e - install:
|
||
|
|
||
|
$ sudo make install
|
||
|
|
||
|
Notes:
|
||
|
* sudo is only useful if your install PREFIX is a read-only folder (like default /usr/local)
|
||
|
* sudo configuration : you may ask your system administrator to enable you to run
|
||
|
'sudo make install' ; if he doesn't know how, you can tell him/her
|
||
|
to add a line like this in /etc/sudoers (or something less permissive ;-) :
|
||
|
<your login name> ALL=(ALL) NOPASSWD: ALL
|
||
|
|
||
|
3 - Installation from SVN
|
||
|
|
||
|
Before you start, be aware that the SVN trunk / branches might crash or even not compile
|
||
|
sometimes.
|
||
|
|
||
|
For the moment,
|
||
|
- the developments for the next release are located in the trunk ;
|
||
|
you can checkout the current _development_ state through :
|
||
|
$ svn co https://svn.code.sf.net/p/speed-dreams/code/trunk sd-trunk
|
||
|
- we make branches under the "branches" root dir ; as an exemple,
|
||
|
you can get the "1.4.x" release maintenance branch current state through :
|
||
|
$ svn co https://svn.code.sf.net/p/speed-dreams/code/branches/1.4.x sd-1.4.x
|
||
|
- we make release tags under the "tags" root dir ;
|
||
|
as an exemple, you can get the "2.0.0 RC 1" pre-release through :
|
||
|
$ svn co https://svn.code.sf.net/p/speed-dreams/code/tags/2.0.0-rc1 sd-2.0.0-rc1
|
||
|
|
||
|
See configure, build and install method above (2)
|
||
|
(note however that branches/1.4.x and tags/1.4.0 are not built through cmake :
|
||
|
please refer to the dedicated INSTALL file for these).
|
||
|
|
||
|
4 - Run Speed-Dreams
|
||
|
|
||
|
If the default CMake settings were kept, Speed Dreams is normally installed in /usr/local.
|
||
|
|
||
|
So, if /usr/local/games is already in your PATH variable, simply try :
|
||
|
|
||
|
$ speed-dreams-2
|
||
|
|
||
|
If /usr/local/games is not already in your PATH variable, you probably want to add it ;
|
||
|
to do so, simply add the line "export PATH=$PATH:/usr/local/games" to your ~/.bashrc file ;
|
||
|
you can use :
|
||
|
|
||
|
$ echo "export PATH=$PATH:/usr/local/games" >> ~/.bashrc" for that
|
||
|
|
||
|
Then, the above startup command should work now :
|
||
|
|
||
|
$ speed-dreams-2
|
||
|
|
||
|
If not or if the game crashes, see right below "5 - Known run-time issues".
|
||
|
|
||
|
Runtime options : type this command to get them explained :
|
||
|
|
||
|
$ speed-dreams-2 --help
|
||
|
|
||
|
Note: Running the next-generation graphics module "osggraph" :
|
||
|
There's currently no GUI for selecting the graphics engine ;
|
||
|
you have to manually change the "graphic" attribute of the "Modules" section
|
||
|
in <user settings>/config/raceengine.xml, and give it the "osggraph" value,
|
||
|
where <user settings> is what you set in SD_LOCALDIR,
|
||
|
by default it is ~/.speed-dreams-2.
|
||
|
|
||
|
5 - Known run-time issues :
|
||
|
|
||
|
* Under some Linux configurations, the game crashes after restarting a race,
|
||
|
or when exiting; we have a build-time workaround for this :
|
||
|
see above, in II-2-c-2, the OPTION_UNLOAD_SSGGRAPH CMake option.
|
||
|
|
||
|
* If you get all white rectangles or ugly fonts in the menus,
|
||
|
it's likely that some game data was not properly installed;
|
||
|
check again carefully the build and install instructions.
|
||
|
|
||
|
6 - Getting Help
|
||
|
|
||
|
From inside the game, press F1 at any time, you'll get a help page explaining
|
||
|
the available keyboard shorcuts.
|
||
|
|
||
|
If you are stuck please report problems through speed-dreams-users mailing list
|
||
|
or our bug tracker at http://sourceforge.net/p/speed-dreams/tickets.
|
||
|
|
||
|
|
||
|
III - Windows installation from sources
|
||
|
---------------------------------------
|
||
|
|
||
|
Note that these instructions work under Windows Vista, Windows 7 SP1, Windows 8, Windows 8.1;
|
||
|
some tweaks might be needed for newer versions.
|
||
|
|
||
|
0) Initial steps, common to all build methods
|
||
|
|
||
|
a. Install CMake v2.8 or higher (recommend 3.4) http://www.cmake.org/cmake/resources/software.html
|
||
|
|
||
|
b. Download the official Speed Dreams tarballs from SF.net
|
||
|
http://sourceforge.net/projects/speed-dreams/files/2.2.2
|
||
|
(speed-dreams-src-<package>-<version>.tar.xz)
|
||
|
|
||
|
Note: See II.2.a above about which packages you really need.
|
||
|
|
||
|
or
|
||
|
|
||
|
Get the latest trunk from SVN (needed for building with MinGW : was not supported by 2.0.0).
|
||
|
|
||
|
TODO: Add instructions explaining how to do so, including the minimal list
|
||
|
of files and sub-dirs needed (not all trunk is needed, from far).
|
||
|
|
||
|
c. Extract their contents to your local disk all in the same target folder
|
||
|
(7Zip is an excellent tool for that http://www.7-zip.org/).
|
||
|
|
||
|
Note: See II.2.b above about the order in which you need to extract the packages.
|
||
|
|
||
|
|
||
|
|
||
|
2) CMake and MS VC++ 2010 (10) / 2012 (11) on Windows Vista 32, Windows 7, Windows 8, Windows 8.1
|
||
|
|
||
|
a.b.c. See above 0) Initial steps, common to all build methods
|
||
|
|
||
|
d. Download the apprpriate "3rdParty" binary package from SF.net for your compiler
|
||
|
http://sourceforge.net/projects/speed-dreams/files/3rd%20party
|
||
|
(they contain necessary 3rd party libs compiled with/for a specific MSVC compiler)
|
||
|
(if your compiler is not listed See the Note below to compile your own)
|
||
|
e. Extract from the zip file the "3rdParty" directory to where speed-dreams sources
|
||
|
are installed.
|
||
|
Example: If sources are in c:\gamesources\speed-dreams\src-2.2.0
|
||
|
(inside which you should find at least the "src" and "data" folders),
|
||
|
then extract 3rd party zip in c:\gamesources\speed-dreams\3rdParty
|
||
|
(inside which you should find at least the "include" and "lib" folders),
|
||
|
f. Startup CMake GUI and set :
|
||
|
* "Where is the source code" to c:\gamesources\speed-dreams\src-2.2.0
|
||
|
* "Where to build the binaries" to c:\gamesources\speed-dreams\src-2.2.0\build
|
||
|
(if you follow the folder specs above).
|
||
|
g. Press "Configure" button, answer "Yes, create the ...\build folder",
|
||
|
select the right MSVC compiler version and don't change the "Use native compilers" option.
|
||
|
Press the "Configure" button again, until the "Generate" button is no more greyed.
|
||
|
h. Press the "Generate" button. CMake will generate the solution file "speed-dreams-2.sln"
|
||
|
and associated project files (*.vcxproj) in the ...\build folder
|
||
|
(Note : .sln/.vcxproj are OK for MSVC 2010, but you might get other files extensions
|
||
|
for different MSVC versions).
|
||
|
i. Load speed-dreams-2.sln in MSVC IDE.
|
||
|
j. Select the build configuration (Debug, Release, ...).
|
||
|
k. Build the whole Solution (Build / Build Solution)
|
||
|
l. (optional)Build the 'INSTALL' project (right click on it and select Build).
|
||
|
m. Double-click on speed-dreams-2.exe in c:\speed-dreams-2-build\bin
|
||
|
|
||
|
Note: First-ever startups sometimes fail to correctly write the necessary stuff
|
||
|
into <My documents>\speed-dreams-2.settings and this prevents the game from starting.
|
||
|
If this happens, simply remove the <My documents>\speed-dreams-2.settings folder
|
||
|
with Windows explorer, and restart the game : it should now work.
|
||
|
|
||
|
Note : If you need to compile the 3rdParty package from sources:
|
||
|
As of r6211 there is a work in progress CMake script at:
|
||
|
https://svn.code.sf.net/p/speed-dreams/code/trunk/packaging/3rdParty-devel/CMakeLists.txt
|
||
|
|
||
|
Please note: this CMake script uses CMake's ExternalProject module. It downloads the needed
|
||
|
sources and builds them. This can use considerable bandwith! (and take a long time).
|
||
|
Please see the readme.txt in that directory.
|
||
|
|
||
|
|
||
|
IV - FreeBSD installation from sources
|
||
|
--------------------------------------
|
||
|
|
||
|
1 - Install CMake & Subversion
|
||
|
sudo pkg install cmake
|
||
|
sudo pkg install subversion
|
||
|
|
||
|
2 - Get the dependencies
|
||
|
sudo pkg install sdl2
|
||
|
sudo pkg install sdl2_mixer
|
||
|
sudo pkg install openal-soft
|
||
|
sudo pkg install plib
|
||
|
sudo pkg install enet
|
||
|
sudo pkg install libogg
|
||
|
sudo pkg install libvorbis
|
||
|
sudo pkg install expat
|
||
|
sudo pkg install zip
|
||
|
sudo pkg install png
|
||
|
sudo pkg install freetype2
|
||
|
sudo pkg install curl
|
||
|
sudo pkg install osg
|
||
|
sudo pkg install openjdk8 OR sudo pkg install openjdk18
|
||
|
|
||
|
3 - Get the source code
|
||
|
Download Snapshot from:
|
||
|
(https://sourceforge.net/p/speed-dreams/code/HEAD/tree/)
|
||
|
OR checkout the Speed-Dreams sources from
|
||
|
From a Terminal:
|
||
|
1) cd /home/source/speed-dreams
|
||
|
2) svn co svn://svn.code.sf.net/p/speed-dreams/code/trunk .
|
||
|
|
||
|
4 - Build and Install
|
||
|
From a Terminal:
|
||
|
1) cd /home/source/speed-dreams
|
||
|
2) mkdir build
|
||
|
3) cd build
|
||
|
4) cmake -G"Unix Makefiles" -D OPTION_OFFICIAL=true -D CMAKE_BUILD_TYPE=Release ..
|
||
|
5) sudo make install
|
||
|
|
||
|
V - MacOS X installation from sources
|
||
|
--------------------------------------
|
||
|
|
||
|
1 - CMake and McPorts via Terminal
|
||
|
|
||
|
a. install xcode (from app store)
|
||
|
|
||
|
1. If you haven't used it before, run xcode at least once. It might prompt you to agree to an Apple user agreement.
|
||
|
|
||
|
b. xcode command-line tools (xcode-select --install)
|
||
|
|
||
|
c. install Macports (https://www.macports.org/install.php)
|
||
|
|
||
|
d. install CMake (http://www.cmake.org/download/) OR from Macports
|
||
|
|
||
|
e. install the dependencies (via Macports)
|
||
|
sudo port -t install subversion
|
||
|
sudo port -t install cmake
|
||
|
sudo port -t install python27
|
||
|
sudo port -t install libsdl2
|
||
|
sudo port -t install libsdl2_mixer
|
||
|
sudo port -t install openal-soft
|
||
|
sudo port -t install plib
|
||
|
sudo port -t install FreeSOLID
|
||
|
sudo port -t install libenet
|
||
|
sudo port -t install libogg
|
||
|
sudo port -t install libvorbis
|
||
|
sudo port -t install expat
|
||
|
sudo port -t install zlib
|
||
|
sudo port -t install libpng
|
||
|
sudo port -t install jpeg
|
||
|
sudo port -t install jasper
|
||
|
sudo port -t install freetype
|
||
|
sudo port -t install curl
|
||
|
sudo port -t install OpenSceneGraph
|
||
|
sudo port -t install openjdk8
|
||
|
|
||
|
|
||
|
f. Download or checkout the Speed-Dreams sources from
|
||
|
(https://sourceforge.net/p/speed-dreams/code/HEAD/tree/)
|
||
|
|
||
|
g. Unpack the source somewhere (eg /home/source/speed-dreams)
|
||
|
h. From a Terminal:
|
||
|
1) cd /home/source/speed-dreams
|
||
|
2) mkdir build
|
||
|
3) cd build
|
||
|
4) cmake -G"Unix Makefiles" -D CMAKE_INSTALL_PREFIX=speed-dreams-2.app -D OPTION_OFFICIAL=true -D CMAKE_BUILD_TYPE=Release ..
|
||
|
5) make install
|
||
|
6) Double-click on speed-dreams-2.app in Finder or drag speed-dreams-2.app into your Apllications folder.
|
||
|
|
||
|
|
||
|
2 - CMake and XCode (TODO)
|
||
|
|
||
|
VI - Haiku
|
||
|
----------
|
||
|
(TODO)
|
||
|
|
||
|
|
||
|
--------------------------------------
|
||
|
VII - Historical Windows CMake and MinGW : (NOTE: outdated!)
|
||
|
-----------------------------------------------------------
|
||
|
|
||
|
Notes:
|
||
|
* Tested with success with CMake 2.8.2 and 2.8.8 + MinGW 2012 April (gcc 4.7.0),
|
||
|
* Also worked well with the version of MinGW shipped with Nokia Qt Creator 2.4.1 (gcc 4.4.0)
|
||
|
(but needs a dedicated 3rd party binary package which has not been published).
|
||
|
* Be aware that there are 2 different ways of building with CMake and MinGW :
|
||
|
- through "MSYS Makefiles" CMake generator : you'll then run all the build commands
|
||
|
(cmake and make) from the MSYS shell, (sort of a minimal "Linux + bash" environment)
|
||
|
- through "MinGW Makefiles" CMake generator : it is not compatible with the MSYS way,
|
||
|
but it works from inside the QtCreator IDE.
|
||
|
|
||
|
a.b.c. See above 0) Initial steps, common to all build methods
|
||
|
|
||
|
d. Install MinGW (and optionaly MSYS)
|
||
|
|
||
|
Here's a simpler version of the instructions of http://www.mingw.org/wiki/Getting_Started
|
||
|
(example here for the official release of 2012, April, featuring gcc 4.7.0) :
|
||
|
|
||
|
* Download and run the latest mingw-get-inst version from
|
||
|
https://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/
|
||
|
=> mingw-get-inst-20120426.exe
|
||
|
* Select the directory where to install MinGW, remembering the advice
|
||
|
that the path to this directory should not contain any spaces.
|
||
|
=> C:\MinGW
|
||
|
* Select the "Download latest repository catalogues" option
|
||
|
in order to get the latest Gcc (4.7.0 as of now)
|
||
|
(if you choose "Use pre-packaged catalogues", you'll get an old Gcc 4.6.2,
|
||
|
which is _not_ compatible with the below mentioned 3rd party binary package.
|
||
|
* Select the minimal set of components to install :
|
||
|
* C compiler (always)
|
||
|
* C++ compiler (always)
|
||
|
* MSYS (if you don't plan to use QtCreator).
|
||
|
|
||
|
If you installed MSYS, then you might be interested in the following,
|
||
|
otherwise, skip it and go to e.
|
||
|
|
||
|
* Run MSYS, the MinGW Shell (bash) :
|
||
|
Start Menu / Programs / MinGW / MinGW Shell
|
||
|
|
||
|
Note: PATH is already configured for using all useful tools
|
||
|
(try the command "echo $PATH")
|
||
|
|
||
|
* Optional but usefull additional components :
|
||
|
* rxvt (a Linux-like terminal) : mingw-get install msys-rxvt
|
||
|
- customize rxvt terminal : in C:\MinGW\MSYS\1.0\msys.bat, line 98 : "start %WD%rxvt ...",
|
||
|
. -geometry 120x40
|
||
|
. -sl 9999
|
||
|
- change MSYS Shell shortcut command : msys.bat --rxvt
|
||
|
* vim (text elditor for Linux geeks) : mingw-get install msys-vim
|
||
|
* patch : mingw-get install msys-patch
|
||
|
* xargs and co : mingw-get install msys-findutils
|
||
|
* bzip2 : mingw-get install msys-bzip2
|
||
|
* xz : mingw-get install msys-xz
|
||
|
* diff and co : mingw-get install msys-diffutils
|
||
|
|
||
|
* Optional tweaks to /etc/profile (C:\MinGW\msys\1.0\etc\profile)
|
||
|
* add your usual aliases : alias xx='command'
|
||
|
* a simpler prompt : export PS1='\w $ '
|
||
|
|
||
|
* Direct X 7 SDK for MinGW : Optional for building SD, but mandatory if you want
|
||
|
to build yourself the 3rd party libraries SDL, PLib, and OpenAL :
|
||
|
* download it from http://alleg.sourceforge.net/files/dx70_min.zip
|
||
|
* extract it somewhere on your hard disk (let's say C:\dx7_mingw)
|
||
|
* add the following line to /etc/fstab (C:\MinGW\msys\1.0\etc\fstab)
|
||
|
C:\dx7_mingw /dxsdk # DX7 SDK for compiling SDL, PLib, OpenAL
|
||
|
|
||
|
Note: The other newer versions from http://alleg.sourceforge.net/files didn't work for me.
|
||
|
|
||
|
e. If you didn't install MSYS, you need to install QtCreator
|
||
|
|
||
|
* Download and install the latest version :
|
||
|
- the simplest way is to get the standalone version from
|
||
|
http://qt.nokia.com/downloads/downloads#qt-creator
|
||
|
- you can also get the much heavier full Qt SDK, from
|
||
|
http://qt.nokia.com/downloads (on-line or off-line installed, as you will)
|
||
|
which bundles QtCreator itself ... along with the Qt libraries and other dev. tools ...
|
||
|
which are not needed for building SD.
|
||
|
Note: It also ships a working MinGW, but probably not the version that we used
|
||
|
for building the "3rdParty" binary package for SD (MinGW 4.7.0) ;
|
||
|
so if you plan to use this version, be ready to build yourself (from sources)
|
||
|
your own "3rdParty" binary package for SD
|
||
|
(see http://sourceforge.net/projects/speed-dreams/files/3rd%20party/Sources/post-2.0.0/).
|
||
|
|
||
|
* Configure it for using your MinGW installation (if not using the auto-detected one bundled with Qt SDK) :
|
||
|
- start it,
|
||
|
- Tools / Options opens the Options windows,
|
||
|
- Select "Compile & Run" in the list of the left,
|
||
|
- Select the "Compile chain" tab,
|
||
|
- Click on the "Add / MinGW" button on the top right corner,
|
||
|
- fill in the fields at the bottom :
|
||
|
. Path to compiler : Browse and select the MinGW c++ compiler executable
|
||
|
(C:\MinGW\bin\mingw32-c++.exe if you installed MinGW 4.7 as explained above)
|
||
|
. Debugger : Browse and select the MinGW debugger executable
|
||
|
(C:\MinGW\bin\gdb.exe if you installed MinGW 4.7 as explained above)
|
||
|
. ABI, mkspec : leave as is,
|
||
|
- Apply (at the bottom right corner),
|
||
|
- Select the "CMake" tab,
|
||
|
- Browse and select your CMake executable (ex: C:\Program Files\CMake 2.8\bin\cmake.exe),
|
||
|
- OK (at the bottom right corner).
|
||
|
|
||
|
f. Download the "MinGW 4.7.0" release of the Speed Dreams "3rdParty" binary package from SF.net
|
||
|
http://sourceforge.net/projects/speed-dreams/files/3rd%20party/MinGW%204.7.0/
|
||
|
(it contains necessary 3rd party libs compiled with/for MinGW 4.7.0)
|
||
|
Note: If you plan to also build and run the new OpenSceneGraph-base graphics module (osggraph),
|
||
|
you should also download the "OSG extension" of this 3rdparty package (same location).
|
||
|
|
||
|
g. Install it in the right folder :
|
||
|
|
||
|
* If you are using MSYS, extract it to the /usr folder from the MSYS shell :
|
||
|
|
||
|
$ cd /usr
|
||
|
$ tar xvfz .../3rdParty-2.1-win32-mingw470-g-O2.tar.gz
|
||
|
# And if you plan to build osggraph (see above) :
|
||
|
$ tar xvfz .../3rdParty-2.1-osg-win32-mingw470-O2.tar.gz
|
||
|
|
||
|
Note: this will populate the MSYS /usr/local tree, just as under Linux :-)
|
||
|
|
||
|
Or
|
||
|
|
||
|
* If you are using QtCreator, extract it into the "3rdParty" folder,
|
||
|
in the same folder as the one which contains your SD source tree :
|
||
|
- let's say (as an example) that your SD trunk source tree is inside the "sd" folder :
|
||
|
(so in this folder, you have the "trunk" folder, containing "src", "data", "credits.xml" and so on),
|
||
|
- open 3rdParty-2.1-win32-mingw470-g-O2.tar.gz in your favorite archive manager
|
||
|
(7zip is an excellent tool for this : http://www.7-zip.org/),
|
||
|
- extract the whole "local" folder into the "sd" folder,
|
||
|
- (same for 3rdParty-2.1-osg-win32-mingw470-O2.tar.gz if needed)
|
||
|
- rename it to "3rdParty".
|
||
|
|
||
|
|
||
|
h. Run CMake to configure the build (here we assume CMake 2.8, but newer versions should work) :
|
||
|
|
||
|
* If you are using MSYS, in the MSYS shell :
|
||
|
|
||
|
$ cd /path/to/sd/sources/trunk
|
||
|
$ mkdir build
|
||
|
$ cd build
|
||
|
$ /c/Program\ Files/CMake\ 2.8/bin/cmake -G "MSYS Makefiles" -DOPTION_OFFICIAL_ONLY:BOOL=On -DCMAKE_PREFIX_PATH:STRING=/usr/local -DCMAKE_BUILD_TYPE:STRING=Release ..
|
||
|
|
||
|
Note: The 'Release' build gives you -O3-optimised binaries.
|
||
|
|
||
|
Note: See II.2.c above for more about possible / useful CMake arguments.
|
||
|
|
||
|
Or
|
||
|
|
||
|
* If you are using QtCreator (solution 1) :
|
||
|
|
||
|
- Start QtCreator,
|
||
|
- File / Open a file or project ...
|
||
|
- Browse and select the master CMakeLists.txt of Speed Dreams
|
||
|
(at the top of the source tree, next to the src and data folders)
|
||
|
|
||
|
- Then the CMake wizard opens up :
|
||
|
. Build location page :
|
||
|
+ Browse and select a build folder (CMake will create and use it for building)
|
||
|
(ex: <path to CMakeLists.txt/../build)
|
||
|
. Next
|
||
|
. Run CMake page : use :
|
||
|
+ CMake generator : "MinGW generator" (mandatory choice here !)
|
||
|
+ CMake arguments :
|
||
|
-DOPTION_OFFICIAL_ONLY:BOOL=On -DCMAKE_BUILD_TYPE:STRING=Release
|
||
|
+ Click on the Run CMake button
|
||
|
|
||
|
Note: See II.2.c above for more about possible / useful CMake arguments.
|
||
|
|
||
|
Note: The 'Release' build gives you -O3-optimised binaries.
|
||
|
|
||
|
Apart from "won't build" or "won't install" message (don't care),
|
||
|
all should go smoothly, especially the detection of the 3rd party libraries.
|
||
|
|
||
|
. Done
|
||
|
|
||
|
- Then QtCreator opens your brand new project !
|
||
|
|
||
|
Note:
|
||
|
. Later on, when starting again QtCreator, the project will be automatically
|
||
|
loaded in the default session.
|
||
|
. If you need to re-run CMake (sometimes, QtCreator can't detect it, like after adding
|
||
|
new / removing files in the source tree, or if you need to change the configuration
|
||
|
settings), simply use the menu : Compile / Run CMake.
|
||
|
|
||
|
Or
|
||
|
|
||
|
* If you are using QtCreator (solution 2) :
|
||
|
|
||
|
You can also use standard CMake GUI to do this before opening the master CMakeLists.txt in QtCreator,
|
||
|
but you have to first add C:\MinGW\bin to your PATH environment variable
|
||
|
otherwise CMake GUI won't propose you the "MinGW generator", which is the one you have to use
|
||
|
("MSYS makefiles" does not work with QtCreator).
|
||
|
|
||
|
- See below 2)f.g.h for how to use CMake GUI, but BEWARE, you have to select
|
||
|
the "MinGW generator" as the "compiler" (mandatory choice).
|
||
|
|
||
|
Note: The 'Release' build gives you -O3-optimised binaries.
|
||
|
|
||
|
Note: Apart from "won't build" or "won't install" message (don't care),
|
||
|
all should go smoothly, especially the detection of the 3rd party libraries.
|
||
|
|
||
|
- Start QtCreator,
|
||
|
- File / Open a file or project ...
|
||
|
- Browse and select the master CMakeLists.txt of Speed Dreams
|
||
|
(at the top of the source tree, next to the src and data folders)
|
||
|
|
||
|
- Then the CMake wizard opens up :
|
||
|
. Build location page :
|
||
|
+ Browse and select the build folder you chose when running CMake GUI
|
||
|
. Next
|
||
|
. Run CMake page : you normally don't need to change anything,
|
||
|
as QtCreator read it from the CMake generated CMakeCache.txt file :
|
||
|
+ CMake generator : "MinGW generator" (mandatory choice here !)
|
||
|
+ CMake arguments : <leave empty>
|
||
|
+ Click on the Run CMake button
|
||
|
(Yes, CMake already ran, but needed again because ... hmmm ...
|
||
|
TODO : discover and then explain why :-)
|
||
|
|
||
|
Apart from "won't build" or "won't install" message (don't care),
|
||
|
all should go smoothly, especially the detection of the 3rd party libraries.
|
||
|
|
||
|
. Done
|
||
|
|
||
|
- Then QtCreator opens the project !
|
||
|
|
||
|
Note:
|
||
|
. Later on, when starting again QtCreator, the project will be automatically
|
||
|
loaded in the default session (or any session you saved it in).
|
||
|
. If you need to re-run CMake (sometimes, QtCreator can't detect it, like after adding
|
||
|
new / removing files in the source tree, or if you need to change the configuration
|
||
|
settings), simply use the menu : Compile / Run CMake.
|
||
|
|
||
|
i. Configure the build and deployment steps of your project
|
||
|
|
||
|
* click on the "Projects" button on the left vertical bar
|
||
|
in order to get the projects configuration panel
|
||
|
|
||
|
* select your project's tab on the top
|
||
|
|
||
|
* in the "Compile settings" sub-tab :
|
||
|
- stay with the default" "all" compile configuration (we need only this)
|
||
|
- don't change "CMake" section (note that you can re-run CMake from here,
|
||
|
you'd get into the wizard we used at the beginning)
|
||
|
- in the "Compilation steps" section, click on the "Details" button of the 1st step,
|
||
|
and add some arguments to the default "mingw32-make.exe" command :
|
||
|
. at least the "all" target, at the end of the argument line,
|
||
|
. and may be some "-j2" of "-j4" boosting option if you own a dual/quad-core CPU :-)
|
||
|
- leave the other sections as is, they are OK.
|
||
|
|
||
|
* in the "Run settings" sub-tab :
|
||
|
- in the "Deployment" section,
|
||
|
. (cosmetic) change the name of the "Method" : "No deployment" => "Install"
|
||
|
. click on the "Add the deployment step" button, and select "Make",
|
||
|
. add the "install" argument to the default "mingw32-make.exe" command.
|
||
|
|
||
|
j. Build
|
||
|
|
||
|
* If you are using MSYS, in the MSYS shell :
|
||
|
|
||
|
$ make # use -j2 or even -j4 if you own a dual/quad-core CPU
|
||
|
|
||
|
* If you are using QtCreator :
|
||
|
|
||
|
- "Build / Compile all" through the menu (or Shift-Ctrl-B)
|
||
|
|
||
|
k. Install
|
||
|
|
||
|
* If you are using MSYS, in the MSYS shell :
|
||
|
|
||
|
$ make install
|
||
|
|
||
|
* If you are using QtCreator :
|
||
|
|
||
|
you have to "Run" Speed Dreams (no separate Install function :-(,
|
||
|
it'll install le software before running it (see i. above)
|
||
|
|
||
|
l. Run (and debug) Speed Dreams
|
||
|
|
||
|
* Of course you can simply double click on the installed speed-dreams-2.exe executable
|
||
|
(should be in /speed-dreams-2-build/bin with default CMake settings) ...
|
||
|
|
||
|
* But you can run it from QtCreator : usefull for debugging it :-)
|
||
|
|
||
|
* For this, you need one last configuration step in QtCreator :
|
||
|
|
||
|
- click on the "Projects" button on the left vertical bar
|
||
|
in order to get the projects configuration panel
|
||
|
|
||
|
- select your project's tab on the top
|
||
|
|
||
|
- in the "Run settings" sub-tab :
|
||
|
. in the "Run" section, add a custom configuration
|
||
|
(we can't run the generated speed-dreams-2.exe in place,
|
||
|
we must use the "installed" one) :
|
||
|
click on the "Add" button, and select "Custom executable",
|
||
|
. Executable : Browse and select it
|
||
|
(should be in /speed-dreams-2-build/bin with default CMake settings)
|
||
|
. Check the "Run in a terminal" option, to get the run-time traces in a console.
|
||
|
|
||
|
* You can now "Compile / Run" or "Debug / Start debugging / Start debugging" from the menu !
|