PDA

View Full Version : Compiling Novashell from SVN checkout Ubuntu 8.10



rgrwkmn
12-21-2008, 08:18 AM
Finally did it! Here was how it went for me on a fresh 32bit Ubuntu 8.10 Intrepid Ibex install:

sudo apt-get install clanlib automake gcc g++ libxxf86vm libxml2-dev libasound2-dev

checkout novashell from svn

sudo apt-get install subversion
svn checkout svn://rtsoft.com/rtsvn
I checked it out to my home folder: ~/rtsvn

download boost http://www.boost.org/users/download/
move the boost folder into rtsvn/clanlibstuff/novashell/source

navigate to folder: rtsvn/SharedLib/lua

sudo autoheader configure.ac


gedit rtsvn/SharedLib/luabind/luabind/detail/policy.hpp
The bottom of policy.hpp has a 3 level if/elseif/else statement that looks like this:

namespace luabind { namespace
{
#if defined(__BORLANDC__) || (BOOST_VERSION >= 103400 && defined(__GNUC__))
static inline boost::arg<0> return_value()
{
return boost::arg<0>();
}

static inline boost::arg<0> result()
{
return boost::arg<0>();
}
# define LUABIND_PLACEHOLDER_ARG(N) boost::arg<N>(*)()
#elif defined(BOOST_MSVC) || defined(__MWERKS__)
static boost::arg<0> return_value;
static boost::arg<0> result;
# define LUABIND_PLACEHOLDER_ARG(N) boost::arg<N>
#else
boost::arg<0> return_value;
boost::arg<0> result;
# define LUABIND_PLACEHOLDER_ARG(N) boost::arg<N>
#endif
}}
Comment out all but the contents of the else. why? I don't know, found this solution somewhere and it worked!

namespace luabind { namespace
{
/*#if defined(__BORLANDC__) || (BOOST_VERSION >= 103400 && defined(__GNUC__))
static inline boost::arg<0> return_value()
{
return boost::arg<0>();
}

static inline boost::arg<0> result()
{
return boost::arg<0>();
}
# define LUABIND_PLACEHOLDER_ARG(N) boost::arg<N>(*)()
#elif defined(BOOST_MSVC) || defined(__MWERKS__)
static boost::arg<0> return_value;
static boost::arg<0> result;
# define LUABIND_PLACEHOLDER_ARG(N) boost::arg<N>
#else*/
boost::arg<0> return_value;
boost::arg<0> result;
# define LUABIND_PLACEHOLDER_ARG(N) boost::arg<N>
/*#endif*/
}}

theseFiles =

rtsvn/SharedLib/Box2D/Source/Dynamics/Contacts/

b2PolyContact.cpp
b2CircleContact.cpp
b2PolyAndCircleContact.cpp
rtsvn/SharedLib/Box2D/Source/Common/

b2BlockAllocator.cpp
SharedLib/Box2D/Source/Collision/

/b2BroadPhase.cpp

for (i = 0; i < theseFiles.length; i++) {

#include <string.h> //the version of gcc in Intrepid wants this in theseFiles so badly
}

from rtsvn/

sudo sh linux_installer.sh
This will install everything and if you are lucky you won't get any compile errors.

But wait, there's more!
Download the pre-compiled linux version of novashell from the novashell homepage.
In the new novashell directory
back up novashell executable

cp novashell novashell.backup
copy svn compiled executable to this directory (I had both rtsvn and the new novashell folder in my home folder)

cp ../rtsvn/clanlibstuff/novashell/bin/novashell novashell

Let the fun begin!

./novashell