This is an experimental Build environment to build Turbine with
Eclipse without Maven.

To try this out, change into this directory and run
"install.sh". 

Sorry, this is *ix only yet (I don't do Windows. ;-) )

	-- henning

