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
Code:
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
Code:
sudo autoheader configure.ac
Code:
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:
Code:
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!
Code:
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/
Code:
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
Code:
cp novashell novashell.backup
copy svn compiled executable to this directory (I had both rtsvn and the new novashell folder in my home folder)
Code:
cp ../rtsvn/clanlibstuff/novashell/bin/novashell novashell
Let the fun begin!
Code:
./novashell