Horde3D

Next-Generation Graphics Engine
It is currently 28.11.2024, 12:03

All times are UTC + 1 hour




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: Linux Support
PostPosted: 22.08.2007, 20:35 
Offline

Joined: 22.08.2007, 20:33
Posts: 2
Hey all,

Just downloaded the Horde3D lib and noticed it was windows only :P. So I created a simple Makefile to compile it. Here are the results:

Code:
[kcbanner@infiltrator Source]$ make
==== Building Horde3D ====
egAnimation.cpp
In file included from Horde3D/egResource.h:29,
                 from Horde3D/egAnimation.h:27,
                 from Horde3D/egAnimation.cpp:25:
Horde3D/egGlobalTypes.h:169:2: warning: no newline at end of file
In file included from Horde3D/egAnimation.cpp:25:
Horde3D/egAnimation.h:28:20: error: utMath.h: No such file or directory
Horde3D/egAnimation.h:68:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:27,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egCom.h:76:3: warning: no newline at end of file
In file included from Horde3D/egScene.h:28,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egPrimitives.h:208:3: warning: no newline at end of file
In file included from Horde3D/egScene.h:30,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egIntegrationLib.h:52:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egScene.h:164:3: warning: no newline at end of file
In file included from Horde3D/egRenderer.h:27,
                 from Horde3D/egSingleton.h:30,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egRendererBase.h:103:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:30,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egRenderer.h:109:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:31,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egPipeline.h:151:3: warning: no newline at end of file
Horde3D/egAnimation.cpp:27:19: error: utSTL.h: No such file or directory
Horde3D/egAnimation.cpp:29:21: error: utDebug.h: No such file or directory
Horde3D/egAnimation.cpp:148:2: warning: no newline at end of file
In file included from Horde3D/egAnimation.cpp:25:
Horde3D/egAnimation.h:33: error: ‘Quaternion’ does not name a type
Horde3D/egAnimation.h:34: error: ‘Vec3f’ does not name a type
Horde3D/egAnimation.h:35: error: ‘Matrix4f’ does not name a type
Horde3D/egAnimation.h:42: error: ‘Matrix4f’ does not name a type
In file included from Horde3D/egScene.h:28,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egPrimitives.h:37: error: ‘Vec3f’ does not name a type
Horde3D/egPrimitives.h:41: error: ISO C++ forbids declaration of ‘Vec3f’ with no type
Horde3D/egPrimitives.h:41: error: expected ‘;’ before ‘&’ token
Horde3D/egPrimitives.h:42: error: expected `;' before ‘Vec3f’
Horde3D/egPrimitives.h:42: error: ISO C++ forbids declaration of ‘Vec3f’ with no type
Horde3D/egPrimitives.h:42: error: expected ‘;’ before ‘&’ token
Horde3D/egPrimitives.h:44: error: expected `;' before ‘void’
Horde3D/egPrimitives.h:51: error: expected ‘,’ or ‘...’ before ‘&’ token
Horde3D/egPrimitives.h:51: error: ISO C++ forbids declaration of ‘Matrix4f’ with no type
Horde3D/egPrimitives.h: In member function ‘void BoundingBox::clear()’:
Horde3D/egPrimitives.h:46: error: ‘_minCoords’ was not declared in this scope
Horde3D/egPrimitives.h:46: error: ‘Vec3f’ was not declared in this scope
Horde3D/egPrimitives.h:47: error: ‘_maxCoords’ was not declared in this scope
Horde3D/egPrimitives.h: In member function ‘void BoundingBox::transform(int)’:
Horde3D/egPrimitives.h:71: error: ‘Vec3f’ was not declared in this scope
Horde3D/egPrimitives.h:71: error: expected `;' before ‘minCoords’
Horde3D/egPrimitives.h:72: error: expected `;' before ‘maxCoords’
Horde3D/egPrimitives.h:75: error: ‘_minCoords’ was not declared in this scope
Horde3D/egPrimitives.h:75: error: ‘m’ was not declared in this scope
Horde3D/egPrimitives.h:76: error: ‘_maxCoords’ was not declared in this scope
Horde3D/egPrimitives.h:78: error: ‘minCoords’ was not declared in this scope
Horde3D/egPrimitives.h:79: error: ‘maxCoords’ was not declared in this scope
Horde3D/egPrimitives.h:80: error: ‘minf’ was not declared in this scope
Horde3D/egPrimitives.h:81: error: ‘maxf’ was not declared in this scope
Horde3D/egPrimitives.h: In member function ‘bool BoundingBox::makeUnion(BoundingBox&)’:
Horde3D/egPrimitives.h:138: error: ‘_minCoords’ was not declared in this scope
Horde3D/egPrimitives.h:138: error: ‘_maxCoords’ was not declared in this scope
Horde3D/egPrimitives.h:141: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:142: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:144: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:144: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:146: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:146: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:147: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:147: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:148: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:148: error: ‘class BoundingBox’ has no member named ‘_minCoords’
Horde3D/egPrimitives.h:150: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:150: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:151: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:151: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:152: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h:152: error: ‘class BoundingBox’ has no member named ‘_maxCoords’
Horde3D/egPrimitives.h: At global scope:
Horde3D/egPrimitives.h:164: error: ‘Vec3f’ does not name a type
Horde3D/egPrimitives.h:165: error: ‘Plane’ does not name a type
Horde3D/egPrimitives.h:166: error: ‘Vec3f’ does not name a type
Horde3D/egPrimitives.h:170: error: ISO C++ forbids declaration of ‘Vec3f’ with no type
Horde3D/egPrimitives.h:170: error: expected ‘;’ before ‘&’ token
Horde3D/egPrimitives.h:172: error: expected `;' before ‘void’
Horde3D/egPrimitives.h:172: error: expected ‘,’ or ‘...’ before ‘&’ token
Horde3D/egPrimitives.h:172: error: ISO C++ forbids declaration of ‘Matrix4f’ with no type
Horde3D/egPrimitives.h:173: error: expected ‘,’ or ‘...’ before ‘&’ token
Horde3D/egPrimitives.h:174: error: ISO C++ forbids declaration of ‘Matrix4f’ with no type
Horde3D/egPrimitives.h:174: error: ‘void Frustum::buildViewFrustum(int)’ cannot be overloaded
Horde3D/egPrimitives.h:172: error: with ‘void Frustum::buildViewFrustum(int)’
Horde3D/egPrimitives.h:175: error: ‘Vec3f’ has not been declared
Horde3D/egPrimitives.h:176: error: ‘Vec3f’ has not been declared
In file included from Horde3D/egScene.h:30,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egIntegrationLib.h:31: error: expected initializer before ‘NodeAttachment’
make[1]: *** [obj/Debug/egAnimation.o] Error 1
make: *** [Horde3D] Error 2
[kcbanner@infiltrator Source]$


As you can see windows is quite lazy with its newlines at the end of files (it doesn't comply to POSIX :P).

Anyway I can see there were quite a few headers not found. I assume these are windows only headers?

Anyway thats my results.

-kcbanner


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 22.08.2007, 20:41 
Offline

Joined: 22.08.2007, 20:33
Posts: 2
Oops! I didn't realize I needed to include the Shared folder for .h files.

Here is the results:

Code:
==== Building Horde3D ====
egAnimation.cpp
In file included from Horde3D/egResource.h:29,
                 from Horde3D/egAnimation.h:27,
                 from Horde3D/egAnimation.cpp:25:
Horde3D/egGlobalTypes.h:169:2: warning: no newline at end of file
In file included from Horde3D/egAnimation.h:28,
                 from Horde3D/egAnimation.cpp:25:
Shared/utMath.h:769:2: warning: no newline at end of file
In file included from Horde3D/egAnimation.cpp:25:
Horde3D/egAnimation.h:68:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:27,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egCom.h:76:3: warning: no newline at end of file
In file included from Horde3D/egScene.h:28,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egPrimitives.h:208:3: warning: no newline at end of file
In file included from Horde3D/egScene.h:30,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egIntegrationLib.h:52:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egScene.h:164:3: warning: no newline at end of file
In file included from Horde3D/egRenderer.h:27,
                 from Horde3D/egSingleton.h:30,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egRendererBase.h:103:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:30,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egRenderer.h:109:3: warning: no newline at end of file
In file included from Horde3D/egSingleton.h:31,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egPipeline.h:151:3: warning: no newline at end of file
In file included from Horde3D/egAnimation.cpp:27:
Shared/utSTL.h:29:20: warning: hash_map: No such file or directory
In file included from Horde3D/egAnimation.cpp:29:
Shared/utDebug.h:41:7: warning: no newline at end of file
Horde3D/egAnimation.cpp:148:2: warning: no newline at end of file
In file included from Horde3D/egScene.h:30,
                 from Horde3D/egSingleton.h:28,
                 from Horde3D/egAnimation.cpp:26:
Horde3D/egIntegrationLib.h:31: error: expected initializer before ‘NodeAttachment’
make[1]: *** [obj/Debug/egAnimation.o] Error 1
make: *** [Horde3D] Error 2


Ideas?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 23.08.2007, 00:11 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Hello,

Marc Schuba, a student researcher from the University of Bielefeld, has recently successfully ported Horde3D to Linux. Luckily only a few changes were necessary. We are currently integrating these to the Horde main branch, so the next version should be much easier to compile under Linux and other platforms.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 23.08.2007, 12:02 
Offline

Joined: 23.08.2007, 11:44
Posts: 2
Location: New Zealand
marciano wrote:
Hello,

Marc Schuba, a student researcher from the University of Bielefeld, has recently successfully ported Horde3D to Linux. Luckily only a few changes were necessary. We are currently integrating these to the Horde main branch, so the next version should be much easier to compile under Linux and other platforms.
Hi.

Good to hear of the port for Linux. I have been trying to port it myself, but now I guess I'll drop it and wait for the next release. :wink:
If you need any help integrating code and/or seting up a build for Linux, I would be happy to try and help.

By the way, is there a IRC/other channel set up for Horde3D?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 23.08.2007, 20:26 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Thanks for offering your help! I myself have only little experience with Linux programming, but at the moment everything looks quite good. If there are still problems I will come back to your offer.

Currently there is no chat system set up for Horde. With the community still being quite small at the moment, I think the forums should be enough.


BTW, I am abroad for five days now and so I probably won't be able to post here...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 01.09.2007, 09:36 
Offline

Joined: 23.08.2007, 11:44
Posts: 2
Location: New Zealand
Hey marciano.

Just thought I'd ask, what build system are you thinking of using for Linux? I reakon it would be good to use something relitvely simple and compact to match the engine.

Maybe just simple Makefiles? I reakon it would be pretty simple/compact, at least for a start. But then it might get overly complex to maintain (and large) in the future?

Automake? It might be the most complex/bloated. It's a pretty good build system in general I reakon, just maybe not suited to Horde3D?

Or maybe another one like Jam, Cmake, or Scons? With somewhat limited experience with Jam, so far, it seems pretty good to me (more simple, less files) compared to Automake. I haven't really got into the other two (or any thing else).

Just wondering out of interest.

Also, what build system(s) for Linux does everyone else think would be a good match for the engine?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 04.09.2007, 08:44 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Hi.

As a windows and Visual Studio user I don't have any experience with build systems so I can't say much about that. I hope someone else will take care of that, my goal now is to make the code completely platform independent. But as you already said it should be something that fits the project, thus lightweight and easy to use. Might be a simple make file would really be a good start. Horde will still grow a bit but one of the goals is that it should always remain lightweight and uncomplicated.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 05.09.2007, 06:19 
Offline

Joined: 08.11.2006, 03:10
Posts: 384
Location: Australia
It would be nice to use a meta-build system like MPC.
We use MPC at my work to generate Visual Studio project/solution files, but AFAIK it can also produce makefiles for *nix and workspaces for other IDEs.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 01.10.2007, 22:48 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
I'm glad to announce that Horde is officially cross-platform now :)

The new version compiles fine under Linux (at least our Ubuntu test system). We just use simple make files which were quite easy to write after reading some good tutorials...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 26.10.2007, 18:58 
Offline

Joined: 26.10.2007, 18:53
Posts: 2
Location: Norway
Hi

Tried to build the 0.12 release on a 7.10 Ubuntu installation and got a lot of messages like this :

eirik@pcubuntuamd:~/Builds/Horde3D SDK [0.12.0]$ make all
#
#
#
# Building Horde3D Engine
#
cd Source/Horde3D\ Engine; make CFLAGS=""
make[1]: Entering directory `/home/eirik/Builds/Horde3D SDK [0.12.0]/Source/Horde3D Engine'
g++ -c egRendererBase.cpp -oegRendererBase.o -I../../Dependencies/Include -I../Shared -fPIC
utOpenGL.h:153: error: ‘void (* glBlendColor)(GLclampf, GLclampf, GLclampf, GLclampf)’ redeclared as different kind of symbol
/usr/include/GL/gl.h:1662: error: previous declaration of ‘void glBlendColor(GLclampf, GLclampf, GLclampf, GLclampf)’
utOpenGL.h:154: error: ‘void (* glBlendEquation)(GLenum)’ redeclared as different kind of symbol
/usr/include/GL/gl.h:1659: error: previous declaration of ‘void glBlendEquation(GLenum)’
...
...
...

Looks like there are some functions that have been redeclared with different notation. Any idea hove to resolve this ?

Regards
Eirik


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 27.10.2007, 17:58 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Hello, the code was working on Ubuntu 7.04; obviously there must have been some changes to the GL headers.

I have completely removed dependency from gl.h now. Luckily I had the chance to test it on Ubuntu 7.10 and it is working now. Here is the updated file:

http://www.nextgen-engine.net/tmp/utOpenGL.h

Hope that helps!


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 27.10.2007, 21:04 
Offline

Joined: 26.10.2007, 18:53
Posts: 2
Location: Norway
Thanks ! :D

Replaced the headerfile and everything compiled ok.

Regards
Eirik


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group