Necessary Tools
- GNU Make (Anything reasonably recent)
- GNU g++ (>= 4.3)
- git (>= 1.6.0)
- CppUnit (>=1.12)
- Perl (Anything reasonably recent)
- For mergedeps.pl, which automatically inserts included headers in source files into the make dependencies.
- Python 2.4
- For cpplint.py
To get a working toolchain Debian (and probably Ubuntu):
aptitude install build-essential git-core libcppunit-dev
Source Code
For Contributors
For read-only repository access:
git clone git://fiz.stanford.edu/git/ramcloud.git
Don't worry about having read-only access; it really shouldn't impede you. We'd prefer to pull changes from you or have you send patches (see git-format-patch and git-send-email. This lets us ensure that the fiz repo is generally in a working state and is making forward progress.
For Core Developers
For those with fiz accounts clone from here for write access:
git clone ssh://fiz.stanford.edu/git/ramcloud.git
Compiling
cd ramcloud; make
Interesting Targets
make
- build the RAMCloud server and client software- Output
obj.master/client/client, obj.master/server/server
- Replace 'master' with the git local branch name you are on if it is not 'master'
- Output
make tests
- build and run RAMCloud unit tests (requires CppUnit)make check
- currently runs Google style checker against files in the src directory; subject to check as style evolves
Style Rules
We have a comprehensive style guide for how code should be formatted in RAMCloud. Please check it out or we'll probably ask you to reformat your patches.