TotalRecall/Build
This document is for developers only. We provide easy installers for end-users.
Open-source software is a collaborative effort. Please inform us if anything on this page is incorrect or out of date.
The main development guide is located here.
Contents
Building TotalRecall from source
Compiling TotalRecall for use on your own computer is designed to be very easy. The following instructions have been tested on recent versions of the operating systems described. To see which exact compilers and buildtool versions we used, see the build.xml file in the project.
Fair warning: these instructions are only for getting the program running on your computer, not for packaging things into nice standalone applications/installers. So they do involve moving our shared libraries into system paths (`/usr/lib`, `C:\Windows\System32`, and `C:\Windows\SysWow64`). Don't forget they're there if you edit the source code and want to try out your changes.
Ubuntu
- Install JDK 6
sudo apt-get install default-jdk
- Install Apache Ant
sudo apt-get install ant
- Install Git (skip if you don't plan to build version straight out of repository)
sudo apt-get install git-core
- Install development headers for foreign architecture
sudo apt-get install libc6-dev-i386 #if on 64-bit machine sudo apt-get install libc6-dev-amd64 #if on 32-bit machine
- Download a nightly version of the project source from the program homepage or get it straight out of the repository
git clone git://github.com/memlab/Penn-TotalRecall.git cd Penn-TotalRecall
- Compile/install the native libraries
ant install_native
- Compile the Java portion into a jar
ant package_jar
- Run the program
java -jar dist/PennTotalRecall.jar
Mac OS X
- Install XCode developer tools. These come on your OSX installation disc. You can also download them from Apple after registering.
- Install Git using this installer (skip if you don't plan to build version straight out of repository)
- Download a nightly version of the project source from the program homepage or get it straight out of the repository
git clone git://github.com/memlab/Penn-TotalRecall.git cd Penn-TotalRecall
- Compile/install the native libraries
ant install_native
- Compile the Java portion into a jar
ant package_jar
- Run the program
java -jar dist/PennTotalRecall.jar
Windows
- Install JDK 6. Add the Java bin folder to your Path so it can be used from the command line. For example you might add `C:\Program Files\Java\jdk1.6.0_20\bin` to the Path value.
- Install Git using the msysgit installer (skip if you don't plan to build version straight out of repository). During the installation be sure to select Run Git from the Windows Command Prompt.
- Install Apache Ant. On Windows XP drag the unzipped folder to `C:\Program Files\`. On Windows Vista\7 64-bit drag to `C:\Program Files (x86)\`. Now add the Ant bin folder to your Path variable so it can be used from the command line. For example, you might add `C:\Program Files (x86)\apache-ant-1.8.0\bin`.
- Try running the command `ant` from the command line. It should succeed if you set your Path correctly. If you get a warning about being unable to find tools.jar you will have to create a system variable called `JAVA_HOME` which points to your JDK root directory. For example the value might be `C:\Program Files\Java\jdk1.6.0_20`.
- Install Microsoft Visual Studio 2008. Add the vcpackages folder to your Path so it can be used from the command line. For example, you might add `C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages`.
- Open the Windows command prompt as an administrator. This is the default behavior on Windows XP administrator accounts, but not Vista/7.
- Download a nightly version of the project source from the program homepage or get it straight out of the repository
git clone git://github.com/memlab/Penn-TotalRecall.git cd Penn-TotalRecall
- Compile/install the native libraries
ant install_native
- Compile the Java portion into a jar
ant package_jar
- Run the program
java -jar dist\PennTotalRecall.jar
The full build chain
Our build.xml does some fancy stuff like creating native executables and installers for the supported platforms. Read the documentation in build.xml to find out how. This native integration allows us (with the help of a few tricks) to avoid complex installers that tamper with users' shared libraries.