Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
220 lines (147 sloc) 6.46 KB
Quick start: Build Stage from RTV's Github
Tested 2011.8.5 on:
- OS X 10.7 Lion
- Ubuntu 11.04
1) Install Stage's dependencies:
FLTK >=1.1
On the Mac I use Homebrew, since MacPorts installs way more than Stage needs (
$ brew install --HEAD fltk cmake git pkg-config
If you want to use Player/Stage, install and test Player now.
2) Get and build Stage
$ mkdir stage4
$ cd stage4
$ git clone git://
$ export STG=$HOME/stg
$ make
3) Install and set up environment
$ make install
On OS X:
On Linux:
$ export LD_LIBRARY_PATH=$STG/lib
4) Run Stage
$ stage Stage/worlds/
5) Please report build issues, bugs or other problems using the tracker at
--- Longer instructions ------------------------------------------
Build system
Stage is now built using the CMake build system (version 2.4.7 or
newer). This has two main advantages over the old GNU
autoconf/automake system: (i) it is much faster; (ii) CMake can create
native build files for Windows and Mac OS X, which will help Stage
become more portable.
Building Stage requires the following tools and libraries:
- pkg-config
- FLTK 1.1.x
- OpenGL
- libpng
- ltdl (Libtool)
The optional Player plugin requires Player >= 2.1.
The optional Avonstage web-enabled binary requires Avon >= 0.1.
On a typical Debian based Linux distribution (like Ubuntu & Mint) you can install above dependencies using this command: (assuming that you have already installed build tools like cmake and build-essentials)
sudo apt-get install pkg-config libfltk1.1-dev libgl1-mesa-dev libglu1-mesa-dev libpng12-dev libtool
Please note that OpenGL libraries (gl1 & glu1) come with graphics card drivers and they are vendor based, therefore you need to inatall required drivers for your graphics card first.
Configuring the build
Unpack the distribution or check it out from Git. Change directory to
the top level of the Stage source tree.
First, you may need to help CMake find your the libraries on which
Stage depends. For example, if you use MacPorts on OS X, packages are
usually installed in `/opt/local`, which is not in CMake's default
system search path. Add your non-standard software directories to
CMake's search paths by setting environment variables, e.g. in bash:
$ export CMAKE_INCLUDE_PATH=/opt/local/include
$ export CMAKE_LIBRARY_PATH=/opt/local/lib
If you want to use Player with Stage, install Player first, then make
sure that pkg-config can find it. Test it like so:
$ pkg-config --modversion playercore
This should output the version number of the Player installation
(probably 2.2.0 or later). If not, add the location of Player's
pkg-config file to your `PKG_CONFIG_PATH`, eg. in bash, and replacing <Player installation prefix> with the correct directory, do:
$ export PKG_CONFIG_PATH+=<Player installation prefix>/lib/pkgconfig
Now that the supporting software is set up, you can decide where you
want to install Stage. The default installation directory varies by
system, but is often `/usr/local` on Unix variants. This is easy and is
often a good choice, but has the disadvantage that installation needs
root/sudo priviliges. To install in the default location, do:
$ cmake .
If you wish to install Stage elsewhere, define the `CMAKE_INSTALL_PATH`
path variable when invoking cmake. To do this, use this command,
substituting `<prefix>` with your chosen installation
$ cmake -DCMAKE_INSTALL_PREFIX=<prefix> .
For example to install in `$HOME/playerstage`, do:
$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/playerstage .
Cmake will generate makefiles specifically for your machine. When this
is done, you can inspect and edit the build settings by using ccmake:
$ ccmake .
or by editing the file CMakeCache.txt manually.
In the top level directory of the source tree, do:
$ make
In the top level directory of the source tree, do:
$ make install
(You may need to run this command as root or sudo, depending on the
install location).
Stage will install its components in various directories, for example:
<prefix>/bin (executables, including the 'stage' program)
<prefix>/lib (libraries, including libstage)
<prefix>/share (contains data resources, such as images)
You must ensure that the dynamic library (or
libstage.dylib, or libstage.dll, depending on your platform) can be
found by your system's library loader. The method for doing this
varies by platform.
On Linux, using bash:
$ export LD_LIBRARY_PATH=<prefix>/lib
On OS X, using bash:
$ export DYLD_LIBRARY_PATH=<prefix>/lib
If you plan to use Stage plugins, you also need to set the `STAGEPATH`
environment variable to include the directory that contains your
plugins. E.g. in bash, do:
$ export STAGEPATH=/usr/local/lib
If you installed Stage somewhere other than `/usr/local`, substitute
your install prefix:
$ export STAGEPATH=<stage install prefix>/lib
If you are using Stage with Player, you probably don't need to set the
`STAGEPATH`. However, you may need to set the `PLAYERPATH` to include
Stage's installed lib directory instead.
To test your Stage installation, do:
$ <prefix>/bin/stage worlds/
You should see a window appear, showing some robots. You can change
the camera point of view by holding down the 'ctrl' key and moving the
mouse pointer. If this works, you are ready to write your own robot
simulations using libstage.
If you plan to use Stage plugins, you can test that plugins are
$ <prefix>/bin/stage worlds/
You should see a window appear, showing some robots. Try pressing the
'p' key to pause and un-pause the simulation, to check that the robots
are working. If this works, you are ready to write Stage plugins.
(If the stage window is flicking or some texts are not shown properly on Linux, try to disable compiz, if it is enabled)
Next steps
- read the Stage manual, available from the Player Project website
(also buildable from the docsrc directory in the source tree
(requires doxygen)).
- look at the examples provided in the worlds and examples
Enjoy using Stage -- rtv
"All the world's a stage, and all the men and women merely players"
Wm. Shakespeare - "As you like it"
Jump to Line
Something went wrong with that request. Please try again.