Updated build instructions for Linux and commented out visibility options

that make GCC 4.1 fail to link the game.

This was SVN commit r5435.
This commit is contained in:
Matei 2007-11-09 18:48:23 +00:00
parent 14d0bf3768
commit 57ac4228d1
2 changed files with 46 additions and 9 deletions

View File

@ -134,8 +134,8 @@ function package_set_build_flags()
tinsert(package.buildoptions, { tinsert(package.buildoptions, {
-- Hide symbols in dynamic shared objects by default, for efficiency and for equivalence with -- Hide symbols in dynamic shared objects by default, for efficiency and for equivalence with
-- Windows - they should be exported explicitly with __attribute__ ((visibility ("default"))) -- Windows - they should be exported explicitly with __attribute__ ((visibility ("default")))
"-fvisibility=hidden", --"-fvisibility=hidden",
"-fvisibility-inlines-hidden", --"-fvisibility-inlines-hidden",
}) })
if OS == "macosx" then if OS == "macosx" then

View File

@ -14,7 +14,11 @@ more reasonably homogenous (both Linux, but they may even use different
distributions) machines on a LAN, you can significantly reduce build times. distributions) machines on a LAN, you can significantly reduce build times.
See URL: http://wiki.kde.org/tiki-editpage.php?page=icecream See URL: http://wiki.kde.org/tiki-editpage.php?page=icecream
Required Libraries If you are running a multicore machine, you can also run jobs in parallel
using the -j option of make. For example, make -j 4 compiles 4 files at a time
in parallel.
*Required Libraries*
$lib := directory where the compiler looks for lib files; $lib := directory where the compiler looks for lib files;
typically = /usr/lib . typically = /usr/lib .
@ -24,6 +28,7 @@ $GL := directory containing OpenGL headers.
$binaries := directory containing system/ and data/ $binaries := directory containing system/ and data/
- OpenGL extensions: - OpenGL extensions:
on older Linuxes, if you receive errors about OpenGL extensions,
copy libraries/opengl/include/GL/glext.h to $GL. copy libraries/opengl/include/GL/glext.h to $GL.
- SpiderMonkey [javascript] - SpiderMonkey [javascript]
@ -34,8 +39,7 @@ $binaries := directory containing system/ and data/
default - so don't change it to threaded) default - so don't change it to threaded)
... download the source ... download the source
either choose one from http://ftp.mozilla.org/pub/mozilla.org/js/ choose one from http://ftp.mozilla.org/pub/mozilla.org/js/
or take http://www.wildfiregames.com/~code/libraries/linux/js-1.5-rc6a.tar.gz
... unpack in a temporary directory (let's call it $temp) ... unpack in a temporary directory (let's call it $temp)
... chdir into $temp/js/src/ ... chdir into $temp/js/src/
... make -f Makefile.ref all ... make -f Makefile.ref all
@ -50,25 +54,32 @@ $binaries := directory containing system/ and data/
won't be neccessary to build the engine. won't be neccessary to build the engine.
- OpenAL: [sound] - OpenAL: [sound]
<No instructions here yet> you will need the openal, libogg and libvorbis packages for your distribution
- cryptopp - cryptopp
this package is typically available as libcrypto++; if it isn't, then
unzip libraries/cryptopp/source_and_build_and_test_files.zip to a temp dir unzip libraries/cryptopp/source_and_build_and_test_files.zip to a temp dir
copy header files from libraries/cryptopp/include/cryptlib into the same dir copy header files from libraries/cryptopp/include/cryptlib into the same dir
compile per cryptopp instructions (see website) compile per cryptopp instructions (see website)
These libraries should have packages available for your distribution. You will The following libraries should have packages available for your distribution.
need to get the corresponding -dev or -devel package for each library. You will need to get the corresponding -dev or -devel package for each library.
- SDL - SDL
- boost
- boost-signals
- zlib (libz) [resource decompression] - zlib (libz) [resource decompression]
- libpng [PNG texture loading] - libpng [PNG texture loading]
- FAM [file alteration monitor] - FAM [file alteration monitor] or gamin
FAM consists of a daemon and a client library. Both will need to be installed FAM consists of a daemon and a client library. Both will need to be installed
to build/run PS. You'll need the devel package for the library too. to build/run PS. You'll need the devel package for the library too.
On some distributions, e.g. Ubuntu, FAM has been replaced by gamin.
- Xerces-C++ (xercesc, xerces-c, xerces-c++, whatever your distro might call it) - Xerces-C++ (xercesc, xerces-c, xerces-c++, whatever your distro might call it)
If you have to build Xerces-C++ by yourself, just make sure that the headers If you have to build Xerces-C++ by yourself, just make sure that the headers
and libraries get installed in $lib and $include. No special config should be and libraries get installed in $lib and $include. No special config should be
necessary otherwise. necessary otherwise.
- wxWidgets (for Atlas)
- The Binary File Descriptor (BFD) library for debug utilities, typically called
binutils-dev.
*Notes for the Release Person* *Notes for the Release Person*
@ -83,3 +94,29 @@ set by a script before launching the actual ps executable.
FAM: Pyrogenesis benefits from a running FAM daemon. Either we include the FAM: Pyrogenesis benefits from a running FAM daemon. Either we include the
daemon exec in the distribution and launch it in the start script, or we daemon exec in the distribution and launch it in the start script, or we
just add it as a prereq (i.e. leave it to the user to install). just add it as a prereq (i.e. leave it to the user to install).
*Detailed Instructions for Ubuntu 7.10*
On Ubuntu 7.10, you can install the required packages with the following
command:
sudo apt-get install libsdl1.2-dev libxerces27-dev zlib1g-dev libpng12-dev libjpeg62-dev libgamin-dev nasm libwxgtk2.8-dev libboost-dev libboost-signals-dev libopenal-dev libalut-dev libvorbis-dev libogg-dev libcrypto++-dev binutils-dev
You also need build-essential for the make tools and g++.
You will also need to install SpiderMonkey manually. To do this, run:
wget http://ftp.mozilla.org/pub/mozilla.org/js/
tar -xzf js-1.60.tar.gz
cd js/src
make -f Makefile.ref
make -f Makefile.ref export
cd ../../dist/Linux_All_DBG.OBJ
sudo cp lib/* /usr/lib
sudo mkdir /usr/include/js
sudo cp include/* /usr/include/js
ldconfig
You should now be able to build premake and then build the game itself as per
the instructions above.