Now only the a.o module needs recompiling, since the options for b.o and c.o haven't changed. Makepp notices that it can use b.o and c.o from the repository, so it just links those in. However, it will recompile a.o in the no-unrolling directory. Once the compilation is finished, the two different versions of the program can be benchmarked. Now suppose we want to make a change to a.c and benchmark the program before and after the change.
Repositories can help again.
Make some modifications just to this module. Here we have created a new directory that just contains the single source file we want to modify. Repositories can thus be used as a quick way to build variants of a program, without adding complicated conditions to the makefile. A repository is actually not just a single directory, it's a whole directory hierarchy. Makepp automatically creates any directories that exist in the repository but not in the current directory.