src/Core/Entities/Entity.m:53: error: static declaration of 'class_getInstanceSize' follows non-static declaration
# eix -cI gnustep gnustep-base/gnustep-base (1.20.0@11.05.2010): A library of general-purpose, non-graphical Objective C objects. gnustep-base/gnustep-gui (0.18.0@11.05.2010): Library of GUI classes written in Obj-C gnustep-base/gnustep-make (2.4.0@11.05.2010): GNUstep Makefile Package
Is this the only error you get? It builds successfully on other distributions of Linux, plus Win and Mac as is.
Things I would check:
1. What version of GCC are you running? Versions 3.4.2 (used on Windows) and 4.0 and 4.2 (used on Mac (I think)) do fine there.
2. You seem to be building with 'make use_distro_deps'. Try building using gnustep-base 1.18 by running just make, all necessary files should be included in the trunk tree. It could be some gnustep-1.20 incompatibility.
3. What is OOINLINE defined as in your system?
1. What version of GCC are you running? Versions 3.4.2 (used on Windows) and 4.0 and 4.2 (used on Mac (I think)) do fine there.
4.4.3
another_commander wrote:
2. You seem to be building with 'make use_distro_deps'. Try building using gnustep-base 1.18 by running just make, all necessary files should be included in the trunk tree. It could be some gnustep-1.20 incompatibility.
src_compile() {
cd deps/Cross-platform-deps/SpiderMonkey/js/src
BUILD_OPT=1 make -f Makefile.ref || die "make failed"
cd "${S}"
make debug=no || die "make failed"
}
ok, i've rolled back to gnustep-base-0.18 and gnustep-gui-0.16 and Entity.m compiled w/o errors. so yes its compatibility issue.
but i got another error:
In file included from /usr/include/zlib.h:35,
from deps/Linux-deps/include/png.h:392,
from src/SDL/MyOpenGLView.m:43:
/usr/include/zconf.h:333: error: duplicate 'unsigned'
/usr/include/zconf.h:333: error: two or more data types in declaration specifiers
In file included from deps/Linux-deps/include/png.h:396,
from src/SDL/MyOpenGLView.m:43:
deps/Linux-deps/include/pngconf.h:366: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
deps/Linux-deps/include/pngconf.h:367: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'include'
make[3]: *** [obj.spk/oolite.obj/MyOpenGLView.m.o] Error 1
make[2]: *** [internal-objc_program-all_] Error 2
make[1]: *** [oolite.all.objc-program.variables] Error 2
make: *** [internal-all] Error 2
i have zlib 1.2.5 and bunch of programs compiled with it if it makes sense.
related line of zconf.h looks like
Good to know that it was gnustep-1.20 that was the problem and it's fixed with 1.18.
The other error you are getting now (zconf.h line 333) is under investigation. The pngconf.h one in line 366 is due to setjmp.h being included in some other header and libpng does not allow its inclusion again. Yesterday I commited some code for saving PNG screenshots and, apparently, either including png.h in MyOpenGLView.m or something in the PNG saving code itself is causing Linux to blow up, although Windows seem to go fine with it. We hope to be able to resolve this relatively quickly. Unfortunately, I do not have a Linux system to run checks on, so I need to wait for one of our Linux gurus to comment.
Oh, and don't worry about OOINLINE, it looks like it was unrelated after all.
Unfortunately, I do not have a Linux system to run checks on, so I need to wait for one of our Linux gurus to comment.
So install Sun VirtualBox, then you can run any number of Linux flavours inside Windows.. (or vice-versa..)
I do both.. it's very handy for testing.. especially the way you can revert to a snapshot of the system if you break something..
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
In file included from /usr/include/zlib.h:35,
from deps/Linux-deps/include/png.h:392,
from src/SDL/MyOpenGLView.m:43:
/usr/include/zconf.h:333: error: duplicate 'unsigned'
/usr/include/zconf.h:333: error: two or more data types in declaration specifiers
In file included from deps/Linux-deps/include/png.h:396,
from src/SDL/MyOpenGLView.m:43:
deps/Linux-deps/include/pngconf.h:366: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
deps/Linux-deps/include/pngconf.h:367: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'include'
make[3]: *** [obj.spk/oolite.obj/MyOpenGLView.m.o] Error 1
make[2]: *** [internal-objc_program-all_] Error 2
make[1]: *** [oolite.all.objc-program.variables] Error 2
make: *** [internal-all] Error 2
Fixed in r3317.
"Any sufficiently advanced information is indistinguishable from noise." [Newman, Lachmann, Moore]
now it fails on pulseaudio linking, which is not installed on my system at all.
as far as i see, oolite itself doesn't use pulseaudio, but espeak can be linked with it (at least on gentoo). so probably its better to make pulseaudio optional or exclude it at all.
Suggestion #1
Install the missing library libpulse-dev.
Suggestion #2
Do not install libpulse-dev, but build with distro-release option.
In that case you will most probably need to install the libespeak-dev library (with all its dependencies).
"Any sufficiently advanced information is indistinguishable from noise." [Newman, Lachmann, Moore]
Suggestion #1
Install the missing library libpulse-dev.
not acceptable on gentoo since there is no separate library. moreover i don't want to have whole pulseaudio installed just to make oolite linkable
Getafix wrote:
Suggestion #2
Do not install libpulse-dev, but build with distro-release option.
In that case you will most probably need to install the libespeak-dev library (with all its dependencies).
distro-release option ? can you give me example?
i looked in makefile and pulse is hardcoded there when espeak is enabled, so oolite won't link w/o libpulse in any case.
and i have gentoo system. so i already have dev packages installed for everything
to make it work either with pulseaudio or w/o it its enough to just remove -lpulse string from makefile.
i can't say anything about other systems except gentoo though.
Thanks rion! I'm not sure when we're going to go from our present - fairly old - gnustep build system to a more recent one, but when we do we'll definitely use your work!
Thanks rion! I'm not sure when we're going to go from our present - fairly old - gnustep build system to a more recent one, but when we do we'll definitely use your work!
this patch does not abolish support for old versions of gnustep-base. so its safe to apply it, but probably i'd made it more proper if had experience in gnustep programming.
anyway it just works =)