Re: How to build Oolite source on Ubuntu
Posted: Sat Oct 11, 2014 6:32 am
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..
For information and discussion about Oolite.
https://bb.oolite.space/
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..
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..
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
Code: Select all
cd oolite/oolite.app
./oolite
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"
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.
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.
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
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
'pkg-posix-*'
build targets do not support debug-mode yet.'debug'
. 'distclean'
target built is also needed before a 'debug'
target built.'deps/Linux-deps/x86*/lib/libespeak.so.1.pulseaudio'
, 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
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 ?
libglu1-mesa-dev
installed.. (just like I didn't have libnspr4-dev
and libvorbis-dev
, as well! )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?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
Code: Select all
src/Core/OOPolygonSprite.m:259: error: ‘GLUtesselator’ undeclared (first use in this function)
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! )...