This chapter describes the design of the PETSc makefiles, which are the key to managing our code portability across a wide variety of UNIX systems.