- 1 Dependencies
- 2 Building Sirikata
- 3 Running Sirikata
Sirikata depends on quite a bit of external libraries. Dependencies gives a list of required and optional libraries and a brief description of how they are used.
When building Sirikata you have two options: handle installing dependencies yourself or use our install scripts or precompiled binaries (depending on platform and library) to help you build and install the required libraries. If you want to perform the installation or need to write new scripts for a new platform, see Dependencies for instructions on how to do so.
These instructions explain how to use our install script or precompiled binaries.
Some dependency files are quite large, especially the precompiled binaries. When you run the install commands, it may appear the script has hung, but its likely just checking out the packages.
Throughout we'll be using the standard set of dependencies, which includes support for graphics, embedded browsers, scripting languages, and physics simulation via Bullet. If you don't need all these features, for example because you are only running the space server, you can use a different dependency target. Where depends is used, you can replace the following to get a different set of dependencies:
- minimal-depends - the minimal dependencies required to get the system building
- minimal-graphics-depends - the minimal dependencies required to get 3D graphics working, i.e. to get a client running. Note that not all features of the client will be enabled by this
- full-depends - all dependencies, enabling all features of the system, and enables use of root to install system packages
We use CMake on all platforms to check for dependencies and generate a build script. The Linux dependencies will install CMake from your system's package manager if you allow it to use root. Otherwise and for all Mac and Windows platforms, CMake is not installed automatically. You should use the install tool from the CMake website or install it using your system's package manager. CMake 2.4 or higher is required, CMake 2.6 or higher is preferred.
Because of their size, dependencies are stored in subversion repositories. If you want to use our automated dependency scripts, you'll need Subversion installed. It is installed on Mac by default, Linux users can use their distributions system package, and Windows users can either install it via Cygwin or use TortoiseSVN.
Simple Method: Makefile
On all platforms, if you have the right tools (make and subversion, on Windows provided by Cygwin) a Makefile is provided in the root directory which checks out and either builds or extracts dependencies to sirikata/dependencies/:
cd sirikata/ make depends
The simple method requires Cygwin. All dependencies are installed locally in the Sirikata checkout. No root access is needed.
The Windows dependencies support Visual Studio 2008 and later, including Express editions. Visual Studio 2005 and earlier are no longer supported.
Without Cygwin (manual)
If you do not have Cygwin and do not want to install it, you can perform the steps manually. Using a subversion client, checkout
Go into the dependencies folder and unzip all of the packages directly into the dependencies directory. Make sure to select "Extract Here". If that option is not available, remove the name of the zip file from the end to indicate where to extract, so it just ends with "dependencies". The extracted directories should not have the same name as the zip files.
With the release of Apple's Snow Leopard (10.6) operating system comes the opportunity to have software compiled for two different architectures running on the same machine. These are the 32-bit i386 and the 64-bit x86_64 (k8). Though the Intel hardware has always had the capability to run in a 64 bit address space prior to 10.6, the operating system didn't support it. Unfortunately, the default architecture is 64, but not all libraries and dependencies are 64-bit savvy, so it is best to compile for the 32 bit architecture.
XCode and Developer Tools
You need XCode Tools 3.2.x to build Sirikata. You can install these in parallel to XCode 4.0 if you already have that version. In particular, you need gcc-4.0 and g++-4.0. Version 4.2 won't work.
You can either download XCode at  or use the Snow Leopard DVD: under “Optional Installs”, install “Xcode.mpkg” to get 3.2. Use all default options.
We highly recommend at least 3.2.2 as previous versions had issues with hanging.
If you have already installed XCode 4, gcc and g++ were upgraded to 4.2 and your gcc and g++ 4.0 files were moved to /Developer-old. You can find the gcc-4.0 and g++-4.0 binaries in /Developer-old/usr/bin. Copy them to Developer/usr/bin. If you can't find the binaries, they are bundled with Xcode 3.2. Download XCode 3.2 here and run the install package.
You may get errors of the following form: "CMake Error: The following variables are used in this project, but they are set to NOTFOUND." For the Boost_INCLUDE_DIR variable, you can edit CMakeCache.txt to set the variable to the directory containing the Boost header files. It should be something like Sirikata/Dependencies/boost_1_45_0/boost.
The install script expects an Ubuntu system, 8.04 or greater.
If you want to install the system package dependencies directly, issue the following command:
sudo apt-get install \ git-core cmake sed unzip zip automake1.9 nvidia-cg-toolkit jam g++ \ libzzip-dev libxt-dev libxaw7-dev libxxf86vm-dev libxrandr-dev libfreetype6-dev \ libxext-dev autoconf libtool libpcre3-dev flex bison patch libbz2-dev gawk \ libglu1-mesa-dev tofrodos libglut3-dev freeglut3-dev scons libexpat1-dev \ libgtk2.0-dev libnss3-dev libgconf2-dev gperf libasound2-dev subversion \ libtool autoconf ruby flex libgsl0-dev libssl-dev libspeex-dev libxss-dev \ libdbus-glib-1-dev libgnome-keyring-dev libxml2-dev libjpeg62-dev libcups2-dev
These packages should cover everything you need for the entire system, including the graphical client and all scripting plugins.
We use CMake to generate our build scripts. Make is used on Mac and Linux and Visual Studio is used on Windows to perform the actual build. All three builds follow the same basic steps:
- Run cmake, possibly modifying the configuration.
- Run your build tool.
Start up CMake and point both paths to sirikata/build/cmake. Hit configure twice. If you installed any dependencies in non-standard locations, point CMake to them now. To generate the build files, hit Generate. On Windows Vista or later you might want to change CMAKE_INSTALL_PREFIX to the directory where you want to install your compiled binaries and hit configure again, because by default CMake will generate Visual Studio project that will try to install compiled binaries into %PROGRAMFILES%. This requires administrative privileges, which is why build will fail (unless you run Visual Studio with administrative privileges or have disabled UAC).
Now browse to sirikata/build/cmake. Open Sirikata.sln and run Build All.
This should result in all libraries, plugins, and binaries in the sirikata/build/cmake/debug or sirikata/build/cmake release, depending on which configuration you built.
- There aren't standard locations to search for dependencies on Windows. Obviously we've setup the build system to work cleanly with the dependency install script. The easiest way to get a manual installation of dependencies on Windows to work is to use the same layout as the install script, where all dependencies are located in sirikata/dependencies. If you don't do this, you will almost certainly need to manually specify the locations of some libraries in CMake.
- The build is known to work for VS2008, for both regular and Express versions.
- If you get error 0xc0000022, check the permissions of the sirikata top-level directory. If you used Cygwin's version of git, it will remove execute permissions for security purposes. You may enable execute by doing "chmod -R +x sirikata" in cygwin, or Granting yourself Full Control in Right Click->Properties->Security (make sure to click the Replace All Entries in Child Objects checkbox).
DLL Path under windows
In order to get Sirikata to find the required DLLs, you must copy all DLL files from these directories into the "build/cmake" directory:
Note that Sirikata currently does not work in Windows 2000, due to the lack of a few raw input functions (RegisterRawInputDevice) that SDL 1.3 uses. This will hopefully be fixed in SDL at some point to make it use the old DirectX raw input system.
Mac and Linux
For convenience we provide a top level makefile which performs the standard build operations. If you want a default build and have used the install script for dependencies, do:
cd sirikata/ make
If you'd like to run the build manually, do the following (essentially what is in the makefile):
cd sirikata/build/cmake cmake . [-DCMAKE_BUILD_TYPE=Debug|Release] make
To interactively adjust settings, for instance to point CMake to a different version of libraries:
cd sirikata/build/cmake ccmake .
When the build completes you should have the libraries, plugins, and binaries in sirikata/build/cmake.
If you're planning on developing Sirikata, it can be helpful to use ccache or a distributed compiler tool like distcc. These tools speed up compilation, either avoiding duplicate work after running make clean or by distributed compile jobs across the network. We provide a wrapper script that tries to use these automatically. Instead of the steps above, use this script:
cd sirikata/build/cmake rm CMakeCache.txt # We need to clear out old settings if you already ran CMake ./cmake_with_tools.sh .
The script passes other settings along to CMake, so you can add any parameters you would normally pass to CMake to this command as well.
Mac XCode Project
Many mac developers prefer to use the XCode programming environment. To do this, cmake will need to be configured to use XCode
1. test -d build/cmake/Debug || mkdir build/cmake/Debug 1. The directory for XCode build products. 2. python csv_converter.py build/cmake/Debug/scene.csv scene.db 1. Generate a scene for use by the XCode project. 3. cd build/cmake 4. ln -s ../../dependencies/Frameworks Frameworks 1. To fix brittle paths in Xcode project. 5. cmake -G Xcode . 6. cd Debug 7. ln -s ../Sirikata.Protocol.dll Sirikata.Protocol.dll 8. ln -s ../Sirikata.Runtime.dll Sirikata.Runtime.dll 9. cd .. 10. Launch Xcode 11. Open Sirikata.xcodeproj 12. Edit project settings 1. General tab 2. Choose project root 3. Select build/cmake directory. Click OK. Value should just be <Project File Directory>. 1. This fixes a problem that prevents debugger from working. 13. Project menu 1. Select active target ALL_BUILD 2. Select active project executable cppoh 3. Select active build configuration Debug 14. Close XCode to save the project 15. Reopen Sirikata.xcodeproj 16. Build it 17. Debugger 1. Confirm that you can set a break point. 2. Run debugger 3. Confirm that it stops at a break point. 4. Confirm that it displays source code. 5. (trouble shoot back to step 10)
Assuming the previous steps have completed successfully, you should have a few binaries built and you are ready to run Sirikata.