|
|
(28 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| Terminus Est is John's awesome space shooter. See [http://soloforge.com his Soloforge website]. | | Terminus Est is John's awesome space shooter. See [http://soloforge.com his Soloforge website]. |
|
| |
|
| Mike is hoping to help John build Terminus under linux. Here's John's "getting started" list... | | Mike is hoping to help John build Terminus under linux. |
| | We'll need fmod and SDL. |
|
| |
|
| There is some stuff in here on getting set up to build SDL apps with
| | [[Terminus SDL and fmod under linux]] (done) |
| KDeveloper: http://gpwiki.org/index.php/SDL
| |
|
| |
| You will need SDL, plus the SDL_image and SDL_gfx support libs.
| |
| Available from: http://www.libsdl.org/index.php
| |
|
| |
| And the FMOD sound system from http://www.fmod.org.
| |
|
| |
|
| Typically I'll be using either Fedora or Gentoo during my porting effort.
| | [[Terminus autotools setup]] (done) |
|
| |
|
| | [[Terminus Making the code portable to linux]] (done) |
|
| |
|
| '''FEDORA'''
| | Go to [http://soloforge.com Soloforge] for the latest updates! |
| | |
| | |
| '''1''' Install SDL and fmod:
| |
| | |
| yum install SDL-devel
| |
| yum install SDL_gfx
| |
| yum install SDL_gfx-devel
| |
| yum install SDL_image
| |
| yum install SDL_image-devel
| |
| yum install fmod
| |
| yum install fmod-devel
| |
|
| |
| Mar 19 22:42:01 Installed: SDL_gfx.i386 2.0.13-2.2.fc4.rf
| |
| Mar 19 22:45:23 Installed: SDL_image.i386 1.2.4-1.2.fc4.rf
| |
| Mar 19 23:11:05 Installed: fmod.i386 3.74.1-1.2.fc4.rf
| |
| Mar 20 21:22:26 Installed: fmod-devel.i386 3.74.1-1.2.fc4.rf
| |
| Mar 20 21:24:32 Installed: alsa-lib-devel.i386 1.0.10-27.rhfc4.at
| |
| Mar 20 21:24:41 Installed: SDL-devel.i386 1.2.8-4
| |
| Mar 20 21:24:41 Installed: SDL-devel.i386 1.2.8-4
| |
| Mar 20 21:27:59 Installed: SDL_gfx-devel.i386 2.0.13-2.2.fc4.rf
| |
| | |
| Mike's comments will occasionally be <span style="color:orange">marked in orange</span>, John's comments <span style="color:green">in green</span>, when we're not feeling lazy.
| |
| | |
| <span style="color:green">
| |
| Huh. Does that yum app go out and get the latest version too? Slick.
| |
| I will get some source control up and running today.
| |
| </span>
| |
| | |
| <span style="color:orange">
| |
| Yep it auto-updates everything to the latest stable versions, including tracking down dependencies.
| |
| </span>
| |
| | |
| | |
| '''2''' Grab the source - John is using subversion - very l337!
| |
| | |
| yum install subversion
| |
| Mar 20 20:00:03 Installed: subversion.i386 1.2.3-2.1
| |
|
| |
| cd development
| |
| mkdir terminus
| |
| cd terminus
| |
| svn checkout http://xxxxx/terminus/
| |
| | |
| and there it is!
| |
| | |
| | |
| '''3''' Build it
| |
| | |
| sdl-config tells you what you need on the gcc command line:
| |
| | |
| [m@thedigitalmachine terminus]$ sdl-config --libs
| |
| -L/usr/lib -lSDL -lpthread
| |
| [m@thedigitalmachine terminus]$ sdl-config --static-libs
| |
| -L/usr/lib -lSDL -lpthread -lm -ldl -lasound -L/usr/X11R6/lib -lX11 -lXext
| |
| | |
| So let's try this:
| |
| | |
| g++ main.cpp -o main `sdl-config --cflags --static-libs`
| |
| | |
| Here's what we got so far:
| |
| | |
| In file included from system.hpp:17,
| |
| from startup.hpp:8,
| |
| from main.cpp:8:
| |
| util/audio.hpp:82: error: syntax error before `*' token
| |
| util/audio.hpp:145: error: `FMOD_SOUND' was not declared in this scope
| |
|
| |
| | |
| <font style="color:orange">
| |
| Looks like the version of fmod that Fedora wants to pull down is old (3.74). I believe we need to go with FMOD Ex 4 (4.03.03 as of this writing). I will pull down the code from fmod.org and build a local version.
| |
| </font>
| |
| | |
| <font style="color:green">
| |
| Hmmm... There are two versions of FMOD Ex, the C and the C++ version. I had to use the C version because the C++ version is not compatable with Dev-C++ and MinGW. Check and make sure that you have the C version of the lib installed too.
| |
| | |
| FYI, here is my linker options:
| |
| | |
| -lmingw32 -lSDLmain -lSDL -mwindows
| |
| ../../Dev-Cpp/lib/libSDL_image.a
| |
| ../../Dev-Cpp/lib/libfmodex.a
| |
| ../../Dev-Cpp/lib/libSDL_gfx.a
| |
| | |
| <br>Try this:<br><br>
| |
| Download the linux tar.gz from http://www.fmod.org<br>
| |
| Notice there is both a fmod.h and an fmod.hpp in the inc dir.<br>
| |
| Put into the compile path, the compiler should compile in the correct one (fmod.h) since that is what is in my files.<br>
| |
| There are two .03 files in the lib dir, is one of those the C version of the lib and the other the CPP?
| |
| </font>
| |
| | |
| <font style="color:orange">
| |
| OK I'm getting to the bottom of this. :> Looks like FMOD Ex 4 is not open source. The download includes pre-built libraries but no source code. The "makefile" just copies the pre-built libraries into place. I think that will be OK but I have to make sure I know what it's doing. From the "makefile" script:
| |
| | |
| VERSION = 4.03.03
| |
| LIBDIR = api/lib
| |
| HDRDIR = api/inc
| |
| DESTLIBDIR = /usr/local/lib
| |
| DESTHDRDIR = /usr/local/include/fmodex
| |
| | |
| I am going to uninstall Fedora's fmod 3.74 then try the makefile.
| |
| </font>
| |
| | |
| <font style="color:green">
| |
| FMOD is the one "pay for" piece to the game. The built-in SDL sound libs were problomatic. That, and FMOD allows me to use a compressed XM file format that will save me about 5M off my downloadable size. I think that I will pay about $100 per OS license, once for Win, once for Mac, and once for Linux. To me, it was a close call, borderline, but in the end I deemed it worth it.
| |
| </font>
| |
| | |
| <font style="color:orange">
| |
| Sounds good to me. Removing the older (open-source?) fmod:
| |
| | |
| yum remove fmod
| |
| Removing:
| |
| fmod i386 3.74.1-1.2.fc4.rf installed 431 k
| |
| Removing for dependencies:
| |
| fmod-devel i386 3.74.1-1.2.fc4.rf installed 1.8 M
| |
| | |
| Then, I believe I won't need to run the "Makefile", I should be able to use the libraries and includes from my local copy, with a little stupid trickery.
| |
| | |
| cd /home/m/development/terminus
| |
| ls
| |
| fmodapi40303linux fmodapi40303linux.tar.gz terminus
| |
| ln -s fmodapi40303linux fmod
| |
| cd fmod/api
| |
| ln -s inc fmod
| |
| cd ../../terminus
| |
| g++ main.cpp -o main `sdl-config --cflags --static-libs` -I../fmod/api/ -L../fmod/api/lib/libfmodex.so
| |
| | |
| </font>
| |