Compiling of the newest svn under Debian GNU/Linux and Patch

str1442

18-08-2009 12:06:34

So I've compiled the latest svn of python-ogre yesterday using the wikipage "LinuxBuildV2". These are the obstacles
which I faced / my improvements suggestions:

1. The 00-PreReqs.sh could use aptitude instead of apt-get. Or maybe you should just list the requirements, any debian or suse user should know what to do with this information or they wouldn't try compiling something.

2. On compiling cegui, I got an error regarding ImageCodecModules/DevILImageCodec/CEGUIDevILImageCodec.cpp regarding the type ILvoid. I quickly found out that it is a bug because of some api breakage and that the newest version of it could be found on https://crayzedsgui.svn.sourceforge.net ... ches/v0-6/. I also found a debian patch, which was contained in that svn repository. I co'd all seemed to go well, but for some strange reason I could not compile because the error popped up even after changing files and deactiving the tar invocation in python-ogre/environment.py -> class cegui. After make cleans didn't work and find didn't find anything and the file was definitely untouched (I changed write permissions), I gave up and compiled with --disable-devil, since I already learned that ImageFreeCodec (or so) would be used instead.

3. ode compiled great, but as I tried to compile BuildModule.py -b -c ode, I got an error because no OPCODE dir was found.

08-18 11:57 PythonOgre.BuildModule DEBUG Traceback (most recent call last):
File "generate_code.py", line 357, in <module>
generate_code()
File "generate_code.py", line 282, in generate_code
, indexing_suite_version=2 )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 95, in __init__
, indexing_suite_version)
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 138, in __parse_declarations
decls = reader.read_files( files, compilation_mode )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/project_reader.py", line 217, in read_files
return self.__parse_file_by_file(files)
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/project_reader.py", line 238, in __parse_file_by_file
, self.__decl_factory )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/source_reader.py", line 88, in __init__
self.__config.raise_on_wrong_settings()
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/config.py", line 173, in raise_on_wrong_settings
super( gccxml_configuration_t, self ).raise_on_wrong_settings()
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/config.py", line 113, in raise_on_wrong_settings
, self.include_paths )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/config.py", line 112, in <lambda>
map( lambda idir: self.__ensure_dir_exists( idir, 'include directory' )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/config.py", line 104, in __ensure_dir_exists
raise RuntimeError( '%s("%s") does not exist!' % ( meaning, dir_path ) )
RuntimeError: include directory("/Compiling/Folder/src/PythonOgre/ode-0.10.1/OPCODE") does not exist!


OPCODE is something distributed with python-ogre, so I tried to do BuildModule.py -r (just to be sure), -b in succession, -g -c. On -g, OPC_IceHook.h was included and couldn't find Math.h and all those local ".\Ice\IceRandom.h" etc header files.

08-18 11:59 PythonOgre.BuildModule DEBUG INFO Creating xml file "/Compiling/Folder/src/PythonOgre/python-ogre/code_generators/cache/opcode_1.3_cache.xml" from source file "/Compiling/Folder/src/PythonOgre/python-ogre/code_generators/opcode/python_opcode.h" ...
INFO gccxml cmd: /Compiling/Folder/src/PythonOgre/root/usr/bin/gccxml -I"/Compiling/Folder/src/PythonOgre/python-ogre" -I"/Compiling/Folder/src/PythonOgre/root/usr/include/boost-1_38" -I"/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode" -I"/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/Ice" -D"OPCODE_EXPORTS" -D"VERSION_1.3" "/Compiling/Folder/src/PythonOgre/python-ogre/code_generators/opcode/python_opcode.h" -fxml="/Compiling/Folder/src/PythonOgre/python-ogre/code_generators/cache/opcode_1.3_cache.xml"
Traceback (most recent call last):
File "generate_code.py", line 615, in <module>
generate_code()
File "generate_code.py", line 493, in generate_code
, cflags=environment.ogre.cflags
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 95, in __init__
, indexing_suite_version)
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 138, in __parse_declarations
decls = reader.read_files( files, compilation_mode )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/project_reader.py", line 217, in read_files
return self.__parse_file_by_file(files)
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/project_reader.py", line 254, in __parse_file_by_file
reader.create_xml_file( header, prj_file.cached_source_file )
File "/Compiling/Folder/src/PythonOgre/root/usr/lib/python2.5/site-packages/pygccxml/parser/source_reader.py", line 179, in create_xml_file
raise error
pygccxml.parser.source_reader.gccxml_runtime_error_t: Error occured while running GCC-XML: In file included from /Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/Opcode.h:52,
from /Compiling/Folder/src/PythonOgre/python-ogre/code_generators/opcode/python_opcode.h:3:
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:21:19: error: Math.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:32:36: error: .\Ice\IcePreprocessor.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:37:29: error: .\Ice\IceTypes.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:38:27: error: .\Ice\IceFPU.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:39:36: error: .\Ice\IceMemoryMacros.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:43:30: error: .\Ice\IceUtils.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:44:34: error: .\Ice\IceContainer.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:45:30: error: .\Ice\IcePairs.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:46:39: error: .\Ice\IceRevisitedRadix.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:47:31: error: .\Ice\IceRandom.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:54:29: error: .\Ice\IceAxes.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:55:30: error: .\Ice\IcePoint.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:56:31: error: .\Ice\IceHPoint.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:57:34: error: .\Ice\IceMatrix3x3.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:58:34: error: .\Ice\IceMatrix4x4.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:59:30: error: .\Ice\IcePlane.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:60:28: error: .\Ice\IceRay.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:61:40: error: .\Ice\IceIndexedTriangle.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:62:33: error: .\Ice\IceTriangle.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:63:32: error: .\Ice\IceTriList.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:64:29: error: .\Ice\IceAABB.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:65:28: error: .\Ice\IceOBB.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:66:39: error: .\Ice\IceBoundingSphere.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:67:32: error: .\Ice\IceSegment.h: No such file or directory
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_IceHook.h:68:28: error: .\Ice\IceLSS.h: No such file or directory
In file included from /Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/Opcode.h:58,
from /Compiling/Folder/src/PythonOgre/python-ogre/code_generators/opcode/python_opcode.h:3:
/Compiling/Folder/src/PythonOgre/python-ogre/ThirdParty/opcode/OPC_Common.h:30: error: expected initializer before 'CollisionAABB'
/Compiling/Folder/src/PythonOgre/python-ogre/code_generators/opcode/python_opcode.h:18: error: expected `}' at end of input


I tried to change it in some ways (like changing Math.h to math.h, standard C stdlib header) and trying to manipulate the OPC_IceHook.h paths, but nothing worked, so I couldn't compile opcode. I didn't try ogreode, since I thing it depends on ode.

Ogre worked after that, since I could run the normal ogre samples (which are amazing by the way).

On BuildModule.py -g -c ogre, I got an error on auto invocation of patch on that python-ogre patch it applies. 1 Patching failed on the header development/ogre/OgreMain/include/OgreAtomicWrappers.h on line 173. On the #elif statement there, OGRE_COMP_VER >= 1400 didn't show up on the patch. I deduced that this was due to a bug or something since it's some version specific compilation and that the patch tried to add "&& !defined(__PYTHONOGRE_BUILD_CODE), since thats the only thing which seemed to have anything to do with python-ogre, so I added that manually. No problems so far.

After that, it compiled a long time and was finally successful (How's that the wrapper compiles longer than ogre itself?)

On the last stage, BuildModule.py -b install, I got an error regarding the distutils setup.py which got executed (finally something I am more famliar with) but could not find any directory named ogreoctreesm. I looked into distutils and searching for that term, but could not find anything except some hint that this is a plugin (or something). So I disabled them in setup.py along with ogrepaging and ogreterrain, the last the items on Line 80 in that PACKAGEDATA packages => <list> List. Since in the tutorial there is some notation of a plugin named ogrepaging which renderers terrain "paged", that means, partwise. After that, ogre installed flawless. After adding LD_LIBRARY_PATH and PYTHONPATH environment variables, the demos worked and I could import python-ogre.

Is this build process really necessary? Is there any chance this can be transformed to a normal configure-make-make install process, using normal system libraries instead of compiling those especially for pythonogre? Is the code_generation safe? Seems more or less fragile to me.

Finally, the BuildModule.py and environment.py are not very clear in the form in which they are now. I didn't see immediatly what's going on in BuildModule.py and at least that module should be clear and documented, since the subparts are doing complicated work and all the invocations should not interfere with something. Also, the code is not "pythonic" (python-idiomatic) and contains many flawes. So I fixed those and made a cleaner version uploaded it here:

*snip*

I didn't change the naming conventions, but those could also be changed, see PEP8, the python Styleguide: http://python.org/dev/peps/pep-0008/ . Some of the flaws I fixed were a NameError of a sidebranch in spawnTask(), which seemed to got never invocated and was therefore dead, letting trivial errors creep in. I made some parts in there intention clearer (all() and any() instead of really long and / or cascades, for example) adding FIXME's and comments, gave the module some barebone documentation and united the coding style. The code has overwritten file and dict, which are builtin names, and should never by overwritten. Some variables were badly named or reused in odd ways which leaved space for some complex errors because of that. (if, if block, "c", a StringIO(), was used in both but changed to a String in the first). Overall, I thing the intention is now much cleaner, although someone with more internal knowledge could do better. The globals seem okay.

I didn't touch environment, but it's module system looks odd. And the functions and the module level code are a mess. You generate classes and use them like namespaces. You could really use a class as an object instead and generate a module level list of module instances getting buildCmds, bases, and so on whilst using the constructor for those default arguments. I didn't look close on those code generators but they seem to use some sort of a declarative library, which looks good, but there are also great chunks of outcommented code and single letter names, generally messy style and so on. Oh, and you have Windows line endings on some files. Generally, unix fileendings are the standard. I didn't remove them.

Regards

Nosferax

18-08-2009 16:26:47

Nice efforts there man. I never bothered trying compiling the source in Linux because I knew I'd bump into a gazillion errors like you did.

Thanks for taking the time to write this, I'll have to give it a shot sooner or later.

andy

19-08-2009 02:32:00

Thanks for the feedback -- if you have specific patches can you please use the sourceforge bug tracker and post them there -- that way we don't lose them and they get applied :)

The 'ode' wrapper (native) for Linux has never worked however OgreOde should be fine....

I'll take another look at CEGUI -- I tested it on Ubuntu 9.04 only a couple of weeks ago and it worked fine.. What Linux version are you running???

I don't have an opinion on apt-get vs aptitude -- I've always used apt-get and I don't see that it causes any issues, if aptitude is available on all 'Debian' systems and offers a particular improvement over apt-get then we could look to change..

As for the overall build system if you want to create a new 'configure/make' environment then that would be great -- however it doesn't help when building on Windows systems and from my experience you end up with unreadable configuration files -- while the current environment.py is probably getting past it's use by date it's fairly easy to manage and sort out specific issues -- if we were to do a rewrite then I'd probably go down the WAF path..

Thanks
Andy

str1442

20-08-2009 16:21:26

Hi,

Done: https://sourceforge.net/tracker/index.p ... tid=916690

Please don't use the patch I posted above, it contained a bug I have fixed in SF version.

The 'ode' wrapper (native) for Linux has never worked however OgreOde should be fine....

I got this:

08-20 17:20 PythonOgre.BuildModule INFO Retrieving co https://ogreaddons.svn.sourceforge.net/svnroot/ogreaddons/trunk/ogreode /Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning 'svn --non-interactive co https://ogreaddons.svn.sourceforge.net/svnroot/ogreaddons/trunk/ogreode /Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode' in '/Compiling/Foldersrc/PythonOgre'
08-20 17:20 PythonOgre.BuildModule INFO Build Command patch -s -N -i ../../python-ogre/patch/ogreode.patch -p0
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning 'patch -s -N -i ../../python-ogre/patch/ogreode.patch -p0' in '/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
08-20 17:20 PythonOgre.BuildModule WARNING Task Failed
08-20 17:20 PythonOgre.BuildModule DEBUG 1 out of 1 hunk FAILED -- saving rejects to file prefab/src/OgreOdeRagdoll.cpp.rej
1 out of 1 hunk FAILED -- saving rejects to file src/OgreOdeDebugObject.cpp.rej
1 out of 1 hunk FAILED -- saving rejects to file src/OgreOdeTriangleMeshDataManager.cpp.rej

08-20 17:20 PythonOgre.BuildModule DEBUG
08-20 17:20 PythonOgre.BuildModule INFO Build Command chmod +x autogen.sh
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning 'chmod +x autogen.sh' in '/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
08-20 17:20 PythonOgre.BuildModule INFO Build Command ./autogen.sh
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning './autogen.sh' in '/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
08-20 17:20 PythonOgre.BuildModule INFO Build Command ./configure --without-SAMPLES --prefix=/Compiling/Foldersrc/PythonOgre/root/usr
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning './configure --without-SAMPLES --prefix=/Compiling/Foldersrc/PythonOgre/root/usr' in '/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
08-20 17:20 PythonOgre.BuildModule INFO Build Command make
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning 'make' in '/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
08-20 17:20 PythonOgre.BuildModule WARNING Task Failed
08-20 17:20 PythonOgre.BuildModule DEBUG make all-recursive
make[1]: Entering directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
Making all in include
make[2]: Entering directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/include'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/include'
Making all in src
make[2]: Entering directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/src'
/bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -DOGRE_GUI_GLX -DOGRE_CONFIG_LITTLE_ENDIAN -I/Compiling/Foldersrc/PythonOgre/root/usr/include -I/Compiling/Foldersrc/PythonOgre/root/usr/include/OGRE -I../include -I/Compiling/Foldersrc/PythonOgre/root/usr/include -L/Compiling/Foldersrc/PythonOgre/root/usr/lib -MT OgreOdeBody.lo -MD -MP -MF .deps/OgreOdeBody.Tpo -c -o OgreOdeBody.lo OgreOdeBody.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -DOGRE_GUI_GLX -DOGRE_CONFIG_LITTLE_ENDIAN -I/Compiling/Foldersrc/PythonOgre/root/usr/include -I/Compiling/Foldersrc/PythonOgre/root/usr/include/OGRE -I../include -I/Compiling/Foldersrc/PythonOgre/root/usr/include -L/Compiling/Foldersrc/PythonOgre/root/usr/lib -MT OgreOdeBody.lo -MD -MP -MF .deps/OgreOdeBody.Tpo -c OgreOdeBody.cpp -fPIC -DPIC -o .libs/OgreOdeBody.o
make[2]: Leaving directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/src'
make[1]: Leaving directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'

08-20 17:20 PythonOgre.BuildModule DEBUG In file included from OgreOdeBody.cpp:8:
../include/OgreOdeGeometry.h:548: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:548: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:548: er

../include/OgreOdeGeometry.h:565: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:565: e
../include/OgreOdeGeometry.h:566: error: ISO C++ forbids declaration of ‘list’ with n

../include/OgreOdeGeometry.h:566: error: expected ‘;’ before ‘<’ token
../include/OgreOdeGeometry.h:569: err

../include/OgreOdeGeometry.h:569: error: expected ‘;’ before ‘<’ token
../include/OgreOdeGeometry.h:584: error: expected `;' before ‘bool’
../include/OgreOdeGeometry.h:609: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:609: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:609: error: expected ‘;’ before ‘<’ token
OgreOdeBody.cpp: In member function ‘bool OgreOde::Body::collidePlaneBounds(void*, Ogre::SceneQuery::WorldFragment*)’:
OgreOdeBody.cpp:809: error: ‘list’ was not declared in this scope
OgreOdeBody.cpp:809: error: expected primary-expression before ‘>’ token
OgreOdeBody.cpp:809: error: ‘::type’ has not been declared
OgreOdeBody.cpp:809: error: expected `;' before ‘pi’
OgreOdeBody.cpp:810: error: ‘piend’ was not declared in this scope
OgreOdeBody.cpp:822: error: ‘pi’ was not declared in this scope
make[2]: *** [OgreOdeBody.lo] Fehler 1
make[1]: *** [all-recursive] Fehler 1
make: *** [all] Fehler 2

08-20 17:20 PythonOgre.BuildModule INFO Build Command make install
08-20 17:20 PythonOgre.BuildModule DEBUG Spawning 'make install' in '/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode'
08-20 17:21 PythonOgre.BuildModule WARNING Task Failed
08-20 17:21 PythonOgre.BuildModule DEBUG Making install in include
make[1]: Entering directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/include'
make[2]: Entering directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/include'
make[2]: Für das Ziel »install-exec-am« ist nichts zu tun.
test -z "/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core" || /bin/mkdir -p "/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core"
/usr/bin/install -c -m 644 'OgreOdeBody.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeBody.h'
/usr/bin/install -c -m 644 'OgreOdeCollision.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeCollision.h'
/usr/bin/install -c -m 644 'OgreOdeDebugObject.h' '/Compiling/Foldersrc/PythonOgre/ro
/usr/bin/install -c -m 644 'OgreOdeEigenSolver.h' '/media/Date
/usr/bin/install -c -m 644 'OgreOdeEntityInformer.h' '/Compiling/Foldersrc/Pyth
/usr/bin/install -c
/usr/bin/install -c -m 644 'OgreOdeGeometry.h' '/Compiling/Foldersrc/PythonOgre/root/us
/usr/bin/install -c -m 644 'OgreOdeJoint.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeJoint.h'
/usr/bin/install -c -m 644 'Og
/usr/bin/install -c -m 644 'OgreOdeMass.h' '/Compiling/Foldersrc/PythonOgre/root/us
/usr/bin/install -c -m 644 'OgreOdePreReqs.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdePreReqs.h'
/usr/bin/install -c -m 644 'OgreOdeSpace.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeSpace.h'
/usr/bin/install -c -m 644 'OgreOdeStepper.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeStepper.h'
/usr/bin/install -c -m 644 'OgreOdeUtility.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeUtility.h'
/usr/bin/install -c -m 644 'OgreOdeWorld.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOdeWorld.h'
/usr/bin/install -c -m 644 'OgreOde_Core.h' '/Compiling/Foldersrc/PythonOgre/root/usr/include/OgreOde_Core/OgreOde_Core.h'
make[2]: Leaving directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/include'
make[1]: Leaving directory `/Compiling/Foldersrc/PythonOgre/ogreaddons/ogreode/include'
Making install in src
make[1]: Entering directory `/Compiling/Foldersrc/Pytho
/bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -DOGRE_G
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -DOGRE_GUI_GLX -DOGRE_CONFIG_LITTLE_ENDIAN -I/m
make[1]: Leaving directory `/Compiling/Foldersrc/PythonOgre/ogreaddo

08-20 17:21 PythonOgre.BuildModule DEBUG In file included from OgreOdeBody.cpp:8:
../include/OgreOdeGeometry.h:548: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:548: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:548: error: expected ‘;’ before ‘<’ token
../include/OgreOdeGeometry.h:565: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:565: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:565: error: expected ‘;’ before ‘<’ token
../include/OgreOdeGeometry.h:566: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:566: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:566: error: expected ‘;’ before ‘<’ token
../include/OgreOdeGeometry.h:569: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:569: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:569: error: expected ‘;’ before ‘<’ token
../include/OgreOdeGeometry.h:584: error: expected `;' before ‘bool’
../include/OgreOdeGeometry.h:609: error: ISO C++ forbids declaration of ‘list’ with no type
../include/OgreOdeGeometry.h:609: error: invalid use of ‘::’
../include/OgreOdeGeometry.h:609: error: expected ‘;’ before
OgreOdeBody.cpp: In memb

OgreOdeBody.cpp:809: error: expected primary-expression before ‘>’
OgreOdeBody.cpp:809: error: ‘::type’ has not been declared
OgreOdeBody.cpp:809: error: expected `;' before ‘pi’
OgreOdeBody.cpp:810: error: ‘piend’ was not declared in this scope
OgreOdeBody.cpp:822: error: ‘pi’ was not declared in this scope
make[1]: *** [OgreOdeBody.lo] Fehler 1
make: *** [install-recursive] Fehler 1


The .rej files:

OgreOdeDebugObject.cpp.rej:
***************
*** 16,21 ****

if (!_materials_created)
{
ager::getSingleton().create("OgreOdeDebugLines/Disabled","OgreOde");
= MaterialManager::getSingleton().create("OgreOdeDebugLines/Enabled","OgreOde");
ager::getSingleton().create("OgreOdeDebugLines/Static","OgreOde");
--- 16,22 ----

if (!_materials_created)
{
+ ager::getSingletonPtr()->createResourceGroup("OgreOde");
ager::getSingleton().create("OgreOdeDebugLines/Disabled","OgreOde");
= MaterialManager::getSingleton().create("OgreOdeDebugLines/Enabled","OgreOde");
ager::getSingleton().create("OgreOdeDebugLines/Static","OgreOde");


OgreOdeTriangleMeshDataManager.cpp.rej:
***************
*** 1,106 ****
- #include "OgreOdePrecompiledHeaders.h"
-
- #include "OgreOdeTriangleMeshDataManager.h"
-

using namespace Ogre;
- using namespace OgreOde;
-
- template<> TriangleMeshDataManager *Ogre::Singleton<TriangleMeshDataManager>::ms_Singleton = 0;
-
- namespace OgreOde
- {
- //-----------------------------------------------------------------------
- TriangleMeshDataManager::TriangleMeshDataManager()
- {
- }
-
- //-----------------------------------------------------------------------
- TriangleMeshDataManager::~TriangleMeshDataManager()
- {
- gleMeshDataMap.clear();
- }
-
- //-----------------------------------------------------------------------
- TriangleMeshDataManager *TriangleMeshDataManager::getSingletonPtr ()
- {
- ms_Singleton;
- }
-
- //-----------------------------------------------------------------------
- TriangleMeshDataManager &TriangleMeshDataManager::getSingleton ()
- {
- gleton);
- (*ms_Singleton);
- }
-
-
- //-----------------------------------------------------------------------
- void TriangleMeshDataManager::addTriangleMeshData(const String& name, TriangleMeshDataPtr shape, Vector3 scale)
- {
-
- gleMeshDataMap[name][scale] = shape;
- t so when Ode::Geometry changes its dataPtr or is deleted we arn't
- signed int* count = shape.useCountPointer();
- t)--;
- gleMeshDataManager::removeTriangleMeshData(const String& name, Vector3 scale)
- {
- gleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name);
- gleMeshDataMap.end())
- OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2;
- d.find(scale);
- != itr->second.end() )
- tf ("no TriangleMeshData for scale so erase it
");
- d.erase(itr2);
- d.setNull();
- d.size() == 0)
- tf ("have no TriangleMeshData for this mesh so erase it from map
");
- gleMeshDataMap.erase(itr);
- for mesh name then size or returns a NULL TriangleMeshDataPtr
- */
- //-----------------------------------------------------------------------
- TriangleMeshDataPtr TriangleMeshDataManager::getTriangleMeshData(const String& name, Vector3 scale)
- {
-
- gleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name);
- gleMeshDataMap.end())
- d.find(scale);
- != itr->second.end() )
- itr2->second;
- tf ("TriangleMeshDataManager::getTriangleMeshData not found
");
- NULL;
-
- }
-
- }
--- 1,106 ----
+ #include "OgreOdePrecompiledHeaders.h"

+ #include "OgreOdeTriangleMeshDataManager.h"
+
+
using namespace Ogre;
+ using namespace OgreOde;
+
+ template<> Og

+ namespace OgreOde
+ {
+ //--------------------
+ TriangleMes
+
+ }
+
+ //-----------------------------------------------------------------------
+ TriangleMeshDataManager::~TriangleMeshDataManager()
+ {
+ gleMeshDataMap.clear();
+ }
+
+ //-----------------------------------------------------------------------
+ TriangleMeshDataManager *TriangleMeshDataManager::getSingletonPtr ()
+ {
+ ms_Singleton;
+ }
+
+ //-----------------------------------------------------------------------
+ TriangleMeshDataManager &TriangleMeshDataManager::getSingleton ()
+ {
+ gleton);
+ (*ms_Singleton);
+ }
+
+
+ //-----------------------------------------------------------------------
+ void TriangleMeshDataManager::addTriangleMeshData(const String& name, TriangleMeshDataPtr shape, Vector3 scale)
+ {
+
+ gleMeshDataMap[name][scale] = shape;
+ t so when Ode::Geometry changes its da
+ one on a referance coun
+
+
+ gleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name);
+ gleMeshDataMap
+ OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2;
+ ( itr2 != itr->second.end() )
+ tf ("no TriangleMeshData for scale so erase it
");
+ d.erase(itr
+ d.setNull();
+ d.size() == 0)
+ tf ("have no TriangleMeshData for this mesh so erase it from map
");
+ gleMeshDataMap.erase(itr);
+ for mesh name then size or returns a NULL TriangleMeshDataPtr
+ */
+ //-----------------------------------------------------------------------
+ TriangleMeshDataPtr TriangleMeshDataManager::getTriangleMeshData(const String& name, Vector3 scale)
+ {
+
+ gleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name);
+ gleMeshDataMap.end())
+ gleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2;
+ d.find(scale);
+ != itr->second.end() )
+ itr2->second;
+ tf ("TriangleMeshDataManager::getTriangleMeshData not found
");
+ NULL;
+
+ }
+
+ }


Have tried that just now, though.

What Linux version are you running???

I'm running the latest Debian testing, using a self compiled kernel.org Kernel 2.6.30.4. If you need to know anything specific, feel free to ask. :)

I don't have an opinion on apt-get vs aptitude -- I've always used apt-get and I don't see that it causes any issues, if aptitude is available on all 'Debian' systems and offers a particular improvement over apt-get then we could look to change..

Oh, I thought aptitude was generally considered the successor of apt-get, but it just turned out that this assumption was wrong - I don't know why they both exist, but apt-get has had a problem with package-dependencies, which seemed to go unresolved some time, but that is now fixed. So then, it doesn't really matter.

Hm, right, didn't thought about windows - Well, I never wrote Makefiles myself (but can read them), and don't really know much about autoconf, so I can only say that there should exist a solution for windows, considering the mass of projects that rely on make and autoconf

Nosferax

02-09-2009 01:30:37

I just tried it myself and also got an error while compiling CEGUI (under Ubuntu 9.04):


directfb-renderer.cpp: In member function ‘void CEGUI::DirectfbRenderer::sortQuads()’:
directfb-renderer.cpp:264: error: ‘stable_sort’ is not a member of ‘std’


People on the CEGUI forums say latest version on svn fixes this, will be included in an eventual 0.6.3 version.

Otherwise if you don't want to do either you just need to add the following line

#include <algorithm>

to the top of the file CEGUI-0.6.2/RendererModules/directfbRenderer/directfb-renderer.cpp

Nosferax

02-09-2009 03:37:41

Also, why does Boost install itself in ~/development/boost_1_38_0 ?

extract from log.out upon running:

python python-ogre/BuildModule.py -b boost

09-01 22:49 PythonOgre.BuildModule INFO Build Command make install
09-01 22:49 PythonOgre.BuildModule DEBUG Spawning 'make install' in '/home/jc/development/boost_1_38_0'


Setup crashes at step 5 when trying to run

python python-ogre/BuildModule.py -g -c ogre ois cegui

Here are the first lines from my log.out, up to the one error which is troubling me :

09-01 22:32 PythonOgre.BuildModule INFO Building Source code for ogre
09-01 22:32 PythonOgre.BuildModule DEBUG Spawning 'python generate_code.py' in '/home/jc/development/python-ogre/code_generators/ogre'
09-01 22:32 PythonOgre.BuildModule WARNING Task Failed
09-01 22:32 PythonOgre.BuildModule DEBUG Using the 1 cores

09-01 22:32 PythonOgre.BuildModule DEBUG ../common_utils/__init__.py:7: DeprecationWarning: the md5 module is deprecated; use hashlib instead
import md5
Traceback (most recent call last):
File "generate_code.py", line 1576, in <module>
generate_code()
File "generate_code.py", line 1364, in generate_code
, cflags=environment.ogre.cflags
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 95, in __init__
, indexing_suite_version)
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 138, in __parse_declarations
decls = reader.read_files( files, compilation_mode )
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/project_reader.py", line 217, in read_files
return self.__parse_file_by_file(files)
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/project_reader.py", line 238, in __parse_file_by_file
, self.__decl_factory )
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/source_reader.py", line 88, in __init__
self.__config.raise_on_wrong_settings()
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/config.py", line 173, in raise_on_wrong_settings
super( gccxml_configuration_t, self ).raise_on_wrong_settings()
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/config.py", line 113, in raise_on_wrong_settings
, self.include_paths )
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/config.py", line 112, in <lambda>
map( lambda idir: self.__ensure_dir_exists( idir, 'include directory' )
File "/home/jc/development/root/usr/lib/python2.6/site-packages/pygccxml/parser/config.py", line 104, in __ensure_dir_exists
raise RuntimeError( '%s("%s") does not exist!' % ( meaning, dir_path ) )
RuntimeError: include directory("/home/jc/development/root/usr/include/boost-1_38") does not exist!

Nosferax

02-09-2009 18:43:54

Should I post this kind of stuff to the developer's mailing list ?

Nosferax

04-09-2009 19:22:45

There was a line in bjam config that was preventing boost from compiling, THUS preventing it from installing itself properly, thus making everything else fail.

Soooo that's what a 'make' command returned :


jc@jc-laptop:~/development/boost_1_38_0$ make
../root/usr/bin/bjam --user-config=user-config.jam --with-python --with-thread --with-date_time
error: at /home/jc/development/boost_1_38_0/tools/build/v2/build/project.jam:862
error: duplicate initialization of gcc with the following parameters:
error: version = 4.3.3
error: previous initialization at /home/jc/development/boost_1_38_0/tools/build/v2/build/project.jam:862

Not all Boost libraries built properly.


After browsing on the internets, I found a solution which was to remove a line from user-config.jam : http://www.nabble.com/Build-error:-%22duplicate-initialization-of-gcc%22-td20874443.html

The line [ using gcc ; ] was causing the error. I have no idea why it's there, what removing it implies (apparently nothing) but anyways it works now.

Nosferax

09-09-2009 13:57:47

I'd like to add one more thing :

at step 5 in the LinuxBuildV2 wiki page, the python path specified is for python2.5 although now I believe people (or at least newcomers) should be compiling to python2.6. Should this be changed, or is there an obscure reason for keeping 2.5 instead of 2.6?



also, why did you put the libs and python packages in ~/development/root/usr ? Is this common practice ? I don't understand the reason for this (especially the root), anyone kind enough to explain ?