Skip to end of metadata
Go to start of metadata
- Located in
- This makefile system follows the structuring conventions recommended by Peter Miller in his excellent paper: Recursive Make Considered Harmful
- Essentially one Makefile, with includes at various places in the project directory
GNUmakefile is the root Makefile
- Included bits are called
- No special magic here - this is simply direct expansion of the file contents.
- Means all
Makefrag contents are still relative to the working directory of the make invocation (which there is only one of in this style of build system).
- One can refer to the working directory of make via
$(TOP) which is declared in the top level Makefile
- Keep in mind
- There is no scoping here, if you declare something in a
Makefrag that conflicts with something in another
Makefrag or something in the
GNUmakefile collisions are resolved just as they would be in a single Makefile (i.e. one definition will override the other depending on the order in which they are included.
make - build the RAMCloud server and client software
- Replace 'master' with the git local branch name you are on if it is not 'master'
make unit-test - build and run RAMCloud unit tests (requires CppUnit)
make test - a simple smoke test that runs
unit-test and builds a simple application to ensure the install information is sufficient
make check - currently runs Google style checker against files in the src directory; subject to check as style evolves
- Run via
- Builds and runs the tests in a single shot
Simple Style/Static Checking
- Run via
- Uses cpplint.py to check that the style is the agreed-upon style.