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.
If you use GNU EMACS this configuration can help.