Compliling a 'To Do' list is right at the top of mineDiziet Sma wrote:.. my own 'to-do' list is both long and in a continual state of flux..
How to build Oolite source on Ubuntu
Moderators: winston, another_commander, Getafix
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
Re: How to build Oolite source on Ubuntu
Commander Smivs, the friendliest Gourd this side of Riedquat.
- Norby
- ---- E L I T E ----
- Posts: 2577
- Joined: Mon May 20, 2013 9:53 pm
- Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
- Contact:
Re: How to build Oolite source on Ubuntu
I have a long list also (over 1500 lines) and my next task selection algorithm is somewhat random within the first few hundred lines to avoid the boring "must do this now" and keep up the freedom to change which seems to be the most interesting at the moment.Diziet Sma wrote:my own 'to-do' list is both long and in a continual state of flux..
About source building I use script files in my Linux.
First I get the source with this (one time only):
Code: Select all
git clone https://github.com/OoliteProject/oolite.git
cd oolite
git submodule update --init
Code: Select all
cd oolite
git pull
git submodule update
. /usr/share/GNUstep/Makefiles/GNUstep.sh
make -j4 -fMakefile release-snapshot
Then run Oolite with this script:
Code: Select all
cd oolite/oolite.app
./oolite
Btw here is my nightly updater script which put back my modified keyconfig after each update:
Code: Select all
~/GNUstep/Applications/Oolite-trunk/oolite.app/oolite-update $@
c=~/GNUstep/Applications/Oolite-trunk/oolite.app/Resources/Config
cp "$c/keyconfig.plist" "$c/keyconfig.plist.orig"
cp "$c/keyconfig.plist-norby" "$c/keyconfig.plist"
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
So where can I find a list of the exact library versions used for the nightly builds?Getafix wrote:To circumvent this, I have setup a Linux 8.04 development environment (vbox),
where I have compiled and installed from source, all the libraries distributed.
This environment is also used for the nightly build.
(I'm currently trying to set up a Debian install to create distributable custom Linux binaries, for the Rescaling Project.)
Edit:
Never mind.. think I've got all the relevant info now..
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
Having abandoned the Debian build environment mentioned above, I'm currently setting up an Ubuntu 8.04.4 build environment, as used by Getafix, and have a question regarding building Spidermonkey.
At the moment I've built both optimised and debug builds of Spidermonkey using the above macro definitions, and am unsure which version of the library I should be installing.
Edit:
More questions.
Is there something I'm missing here? What exactly should I be doing with the 2 versions of this library?
Other than this, all the necessary library builds have been (relatively) straightforward.
When it says "debug builds", is it referring to a debug build of Spidermonkey, or Oolite?3. SpiderMonkey v1.85 (all platforms)
- Specific build settings for Oolite are required. Library rebuilt with the following macros defined as shown below:
JS_THREADSAFE defined on Mac and Linux debug builds.
MOZ_TRACE_JSCALLS defined in order to enable full JavaScript profiling.
At the moment I've built both optimised and debug builds of Spidermonkey using the above macro definitions, and am unsure which version of the library I should be installing.
Edit:
More questions.
So I compiled libespeak against libportaudio, and installed that.. then I re-compiled it against pulseaudio, but in both instances the end result is namedlibespeak.so.1
(compiled to use libportaudio.so.2 also pre-packaged)
libespeak.so.1.pulseaudio
(compiled to use PulseAudio as an alternative if libespeak.so.1 fails)
libespeak.so.1
Is there something I'm missing here? What exactly should I be doing with the 2 versions of this library?
Other than this, all the necessary library builds have been (relatively) straightforward.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
- Getafix
- Quite Grand Sub-Admiral
- Posts: 979
- Joined: Tue Apr 01, 2008 12:55 pm
- Location: A small ice asteroid, orbiting Oresrati in Galaxy 8 (a.k.a. northwest Armorica).
- Contact:
Re: How to build Oolite source on Ubuntu
Hi,
for Linux (for Mac I don't know) libjs is built automatically when building Oolite.
If debug build is requested for Oolite, a debug build is also performed for libjs.
As per below extract of libjs.make script:...'threadsafe' is always enabled. (Perhaps Ahruman could enlighten us here...)
The
In order to have a debug-mode build the target to be used is
I think a
Now, concerning the libespeak, the only libespeak that you need installed, is the one built with portaudio.
The one build with pulseaudio, I just build it (and not install it) and copy it as
in order to be packaged with the rest of the pre-built libraries.
for Linux (for Mac I don't know) libjs is built automatically when building Oolite.
If debug build is requested for Oolite, a debug build is also performed for libjs.
As per below extract of libjs.make script:
Code: Select all
LIBJS_CONFIG_FLAGS = --disable-shared-js
LIBJS_CONFIG_FLAGS += --enable-threadsafe
LIBJS_CONFIG_FLAGS += --with-system-nspr
LIBJS_CONFIG_FLAGS += --disable-tests
ifeq ($(OO_JAVASCRIPT_TRACE),yes)
LIBJS_CONFIG_FLAGS += --enable-trace-jscalls
endif
ifeq ($(debug),yes)
LIBJS_BUILD_DIR = $(LIBJS_SRC_DIR)/build-debug
LIBJS_CONFIG_FLAGS += --enable-debug
LIBJS_CONFIG_FLAGS += --disable-optimize
LIBJS_BUILD_FLAGS =
else
LIBJS_BUILD_DIR = $(LIBJS_SRC_DIR)/build-release
LIBJS_BUILD_FLAGS =
endif
LIBJS = $(LIBJS_BUILD_DIR)/libjs_static.a
LIBJS_BUILD_STAMP = $(LIBJS_BUILD_DIR)/build_stamp
LIBJS_CONFIG_STAMP = $(LIBJS_BUILD_DIR)/config_stamp
The
'pkg-posix-*'
build targets do not support debug-mode yet.In order to have a debug-mode build the target to be used is
'debug'
. I think a
'distclean'
target built is also needed before a 'debug'
target built.Now, concerning the libespeak, the only libespeak that you need installed, is the one built with portaudio.
The one build with pulseaudio, I just build it (and not install it) and copy it as
'deps/Linux-deps/x86*/lib/libespeak.so.1.pulseaudio'
, in order to be packaged with the rest of the pre-built libraries.
"Any sufficiently advanced information is indistinguishable from noise." [Newman, Lachmann, Moore]
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
So in other words, I'm basically good to go.. many thanks for the clarifications.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
Well.. this is.. irritating.
I began, as mentioned above, by installing the 64bit version of Ubuntu 8.04.4, that being the system Getafix uses to create the nightly Linux builds (and the release builds), and updated the system to the final versions of all standard libraries and programs available for it, before support for 8.04.4 was dropped. Carefully following the directions in the README.TXT for Linux, I then compiled and/or installed all the necessary dependencies.
So now, when I do
Most annoying. And it's been a long time since I've seen so many compiler warnings, too.. pretty much all along the lines of:
It wrapped up with:
Any thoughts/suggestions would be most appreciated.
If it helps, the entire 45kb of output can be downloaded here.
I began, as mentioned above, by installing the 64bit version of Ubuntu 8.04.4, that being the system Getafix uses to create the nightly Linux builds (and the release builds), and updated the system to the final versions of all standard libraries and programs available for it, before support for 8.04.4 was dropped. Carefully following the directions in the README.TXT for Linux, I then compiled and/or installed all the necessary dependencies.
So now, when I do
make -j4 -fMakefile release-snapshot
, it bombs out with the following error:
Code: Select all
make[1]: *** [oolite.all.objc-program.variables] Error 2
make[1]: Leaving directory `/home/diziet/Projects/oolite'
make: *** [release-snapshot] Error 2
Code: Select all
/usr/local/include/SDL/SDL_opengl.h:47:58: warning: GL/glu.h: No such file or directory
Code: Select all
src/Core/OOPolygonSprite.m:86: error: expected ‘)’ before ‘*’ token
src/Core/OOPolygonSprite.m: In function ‘-[OOPolygonSprite loadPolygons:outlineWidth:]’:
src/Core/OOPolygonSprite.m:259: error: ‘GLUtesselator’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:259: error: (Each undeclared identifier is reported only once
src/Core/OOPolygonSprite.m:259: error: for each function it appears in.)
src/Core/OOPolygonSprite.m:259: error: ‘tesselator’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:276: warning: implicit declaration of function ‘gluNewTess’
src/Core/OOPolygonSprite.m:286: warning: implicit declaration of function ‘gluTessCallback’
src/Core/OOPolygonSprite.m:286: error: ‘GLU_TESS_BEGIN_DATA’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:287: error: ‘GLU_TESS_VERTEX_DATA’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:288: error: ‘GLU_TESS_END_DATA’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:289: error: ‘GLU_TESS_ERROR_DATA’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:290: error: ‘GLU_TESS_COMBINE_DATA’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:292: warning: implicit declaration of function ‘gluTessBeginPolygon’
src/Core/OOPolygonSprite.m:305: warning: implicit declaration of function ‘SubmitVertices’
src/Core/OOPolygonSprite.m:308: warning: implicit declaration of function ‘gluTessEndPolygon’
src/Core/OOPolygonSprite.m:335: warning: implicit declaration of function ‘gluDeleteTess’
src/Core/OOPolygonSprite.m:359: warning: implicit declaration of function ‘gluTessProperty’
src/Core/OOPolygonSprite.m:359: error: ‘GLU_TESS_WINDING_RULE’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m:359: error: ‘GLU_TESS_WINDING_POSITIVE’ undeclared (first use in this function)
src/Core/OOPolygonSprite.m: At top level:
src/Core/OOPolygonSprite.m:418: error: expected ‘)’ before ‘*’ token
src/Core/OOPolygonSprite.m: In function ‘ErrorCallback’:
src/Core/OOPolygonSprite.m:787: warning: implicit declaration of function ‘gluErrorString’
src/Core/OOPolygonSprite.m:787: warning: cast to pointer from integer of different size
make[2]: *** [obj.spk/OOPolygonSprite.m.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from src/Core/OOOpenGLOnly.h:58,
from src/Core/OOOpenGL.h:31,
from src/Core/OOMaths.h:59,
from src/Core/Materials/OOPixMap.h:30,
from src/Core/OOConvertCubeMapToLatLong.h:30,
from src/Core/OOConvertCubeMapToLatLong.m:30:
/usr/local/include/SDL/SDL_opengl.h:47:58: warning: GL/glu.h: No such file or directory
make[1]: *** [oolite.all.objc-program.variables] Error 2
make[1]: Leaving directory `/home/diziet/Projects/oolite'
make: *** [release-snapshot] Error 2
If it helps, the entire 45kb of output can be downloaded here.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
Re: How to build Oolite source on Ubuntu
http://mesa3d.org/relnotes/9.0.html
With mesa 9 (okt 2012) , GLU was separated from mesa into it's own project.
Maybe you updated mesa from pre-9 to a post-9 version and now you no longer have GLU installed ?
With mesa 9 (okt 2012) , GLU was separated from mesa into it's own project.
Maybe you updated mesa from pre-9 to a post-9 version and now you no longer have GLU installed ?
OS : Arch Linux 64-bit - rolling release
OXPs : My user page
Retired, reachable at [email protected]
OXPs : My user page
Retired, reachable at [email protected]
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
Damn.. you're probably right.. thanks for the suggestion, I'll check it out after I get a few hours sleep ('tis almost 2.30am here).
(that's what I love about having Arch Linux folks around.. they are seriously clued-up on such things!)
(that's what I love about having Arch Linux folks around.. they are seriously clued-up on such things!)
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
So much for getting to sleep..
I just can't drop off with a problem buzzing around in my brain.
Turns out that somehow I didn't have
Anyway, with all those problems dealt with, compilation is now mostly problem-free, except for one thing which doesn't really become apparent until the linker fails, with:
Looking back near the beginning of the process, I came across this:
Any thoughts on what's up with `obj.spk/oolite' and the png problems? Is
I just can't drop off with a problem buzzing around in my brain.
It turned out that no, that wasn't quite it, (Ubuntu 8.04.4 has mesa 7.0.3) but you did put me on the right track.Lone_Wolf wrote:http://mesa3d.org/relnotes/9.0.html
With mesa 9 (okt 2012) , GLU was separated from mesa into it's own project.
Maybe you updated mesa from pre-9 to a post-9 version and now you no longer have GLU installed ?
Turns out that somehow I didn't have
libglu1-mesa-dev
installed.. (just like I didn't have libnspr4-dev
and libvorbis-dev
, as well! )Anyway, with all those problems dealt with, compilation is now mostly problem-free, except for one thing which doesn't really become apparent until the linker fails, with:
Code: Select all
Linking objc_program oolite ...
./obj.spk/OOPNGTextureLoader.m.o: In function `-[OOPNGTextureLoader(OOPrivate) doLoadTexture]':
/home/diziet/Projects/oolite/src/Core/Materials/OOPNGTextureLoader.m:101: undefined reference to `png_set_longjmp_fn'
./obj.spk/OOPNGTextureLoader.m.o: In function `PNGError':
/home/diziet/Projects/oolite/src/Core/Materials/OOPNGTextureLoader.m:228: undefined reference to `png_set_longjmp_fn'
./obj.spk/MyOpenGLView.m.o: In function `-[MyOpenGLView pngSaveSurface:withSurface:]':
/home/diziet/Projects/oolite/src/SDL/MyOpenGLView.m:1154: undefined reference to `png_set_longjmp_fn'
collect2: ld returned 1 exit status
make[2]: *** [obj.spk/oolite] Error 1
make[1]: *** [oolite.all.objc-program.variables] Error 2
make[1]: Leaving directory `/home/diziet/Projects/oolite'
make: *** [release-snapshot] Error 2
Code: Select all
diziet@ubuntu-hardy-laptop:~/Projects/oolite$ make clean
This is gnustep-make 2.0.8. Type 'make print-gnustep-make-help' for help.
rm -rf ./*~ ./obj
rm -f -rf obj obj.spk obj.dbg obj.spk.dbg
diziet@ubuntu-hardy-laptop:~/Projects/oolite$ make -j4 -fMakefile release-snapshot
usage: git-rev-list [OPTION] <commit-id>... [ -- paths... ]
limiting output:
--max-count=nr
--max-age=epoch
--min-age=epoch
--sparse
--no-merges
--remove-empty
--all
--stdin
--quiet
ordering output:
--topo-order
--date-order
formatting output:
--parents
--objects | --objects-edge
--unpacked
--header | --pretty
--abbrev=nr | --no-abbrev
--abbrev-commit
--left-right
special purpose:
--bisect
--bisect-vars
--bisect-all
make -f libjs.make debug=no
make[1]: Entering directory `/home/diziet/Projects/oolite'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/diziet/Projects/oolite'
make -f GNUmakefile SNAPSHOT_BUILD=yes VERSION_STRING=1.81.0.-141213-84e97c1 debug=no
This is gnustep-make 2.0.8. Type 'make print-gnustep-make-help' for help.
make[1]: Entering directory `/home/diziet/Projects/oolite'
/usr/GNUstep/System/Library/Makefiles/mkinstalldirs oolite.app
Making all for objc_program oolite...
/usr/GNUstep/System/Library/Makefiles/mkinstalldirs oolite.app/Resources
Compiling file src/Core/legacy_random.c ...
Compiling file src/BSDCompat/strlcpy.c ...
tools/mkmanifest.sh > oolite.app/Resources/manifest.plist
cp -rf -u Resources/README.TXT oolite.app/Resources
Compiling file src/Core/Debug/OOTCPStreamDecoder.c ...
cp -rf -u Resources/InfoPlist.strings oolite.app/Resources
cp -rf -u Resources/AIs oolite.app/Resources
cp -rf -u Resources/Config oolite.app/Resources
Compiling file src/Core/OOPlanetData.c ...
cp -rf -u Resources/Scenarios oolite.app/Resources
cp -rf -u Resources/Scripts oolite.app/Resources
cp -rf -u Resources/Shaders oolite.app/Resources
cp -rf -u Resources/Binary/Images oolite.app/Resources
cp -rf -u Resources/Binary/Models oolite.app/Resources
cp -rf -u Resources/Binary/Music oolite.app/Resources
Compiling file src/Core/MiniZip/ioapi.c ...
cp -rf -u Resources/Binary/Sounds oolite.app/Resources
cp -rf -u Resources/Binary/Textures oolite.app/Resources
cp -rf -u Schemata oolite.app/Resources
cp -rf -u src/Cocoa/Info-Oolite.plist oolite.app/Resources/Info-gnustep.plist
cp -rf -u obj.spk/oolite oolite.app/oolite
cp: cannot stat `obj.spk/oolite': No such file or directory
make[1]: *** [after-all] Error 1
Compiling file src/Core/MiniZip/unzip.c ...
make[1]: *** Waiting for unfinished jobs....
Compiling file src/Core/Debug/OODebugMonitor.m ...
Compiling file src/Core/Debug/OODebugStandards.m ...
libpng12-0
, which comes with Ubuntu 8.04.4, (or libpng12-dev
, which is also installed, for some reason) somehow messing things up for the libpng-1.4.7
I installed as part of setting up the dev environment?Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
Re: How to build Oolite source on Ubuntu
I would advise not doing the -j4 for now. There's presumably a missing dependency of the post-compile steps on the compile step somewhere in the Makefile, but if you go for a serial build it should work.Diziet Sma wrote:diziet@ubuntu-hardy-laptop:~/Projects/oolite$ make -j4 -fMakefile release-snapshot
(-j4 will get you virtually no speedup even if it worked, as the slow bit is the GNUstep compile which doesn't parallelise anyway)
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Re: How to build Oolite source on Ubuntu
Ok.. thanks for that.. I borrowed the -j4 bit from Norby's post above.. hadn't used it before.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
-
- ---- E L I T E ----
- Posts: 299
- Joined: Mon Apr 27, 2015 9:03 pm
Re: How to build Oolite source on Ubuntu
on Trusty with oolite 1.82.x, reinstalled OS (no upgrade from precise)
gnustep-core-devel isn't exactly needed, libgnustep-base-dev is enough to build & run oolite, spares a number of gnustep gui related packages, also installes gobjc
Aside from that you obviously need git instead of subversion, copied oolite-saves, GNUstep and .Oolite folders from my old home directory to the new one and works.
EDIT
I also had to install libopenal-dev for Al.h, appears to be missing. As oolite isn't the first project to build on this system, it's totally possible the previous projects did require things oolite needs as well (e.g. sdlmixer already was installed).
gnustep-core-devel isn't exactly needed, libgnustep-base-dev is enough to build & run oolite, spares a number of gnustep gui related packages, also installes gobjc
Aside from that you obviously need git instead of subversion, copied oolite-saves, GNUstep and .Oolite folders from my old home directory to the new one and works.
EDIT
I also had to install libopenal-dev for Al.h, appears to be missing. As oolite isn't the first project to build on this system, it's totally possible the previous projects did require things oolite needs as well (e.g. sdlmixer already was installed).
warning sound if a missile is inbound: Missile warning
Re: How to build Oolite source on Ubuntu
Code: Select all
src/Core/OOPolygonSprite.m:259: error: ‘GLUtesselator’ undeclared (first use in this function)
Not sure how to solve this.
--
EDIT: Had SDL2 instead of SDL 1.2 installed... it's compiling but not linking. I'll figure out.
- Getafix
- Quite Grand Sub-Admiral
- Posts: 979
- Joined: Tue Apr 01, 2008 12:55 pm
- Location: A small ice asteroid, orbiting Oresrati in Galaxy 8 (a.k.a. northwest Armorica).
- Contact:
Re: How to build Oolite source on Ubuntu
Hello Pleiadian and apologies for not coming back earlier on this.
The problem might be that you miss some dev libraries.
Please, check the following post by Dizie; he had a pretty similar case as yours.
http://bb.aegidian.org/viewtopic.php?p=230772#p230772
EDIT 2017.03.27
I quote for your convenience:
The problem might be that you miss some dev libraries.
Please, check the following post by Dizie; he had a pretty similar case as yours.
http://bb.aegidian.org/viewtopic.php?p=230772#p230772
EDIT 2017.03.27
I quote for your convenience:
Diziet Sma wrote: ↑Fri Dec 12, 2014 5:09 pm...Turns out that somehow I didn't havelibglu1-mesa-dev
installed.. (just like I didn't havelibnspr4-dev
andlibvorbis-dev
, as well! )...
"Any sufficiently advanced information is indistinguishable from noise." [Newman, Lachmann, Moore]