Chapter 1. Introduction

PMake is a program for creating other programs, or anything else you can think of for it to do. The basic idea behind PMake is that, for any given system, be it a program or a document or whatever, there will be some files that depend on the state of other files (on when they were last modified). PMake takes these dependencies, which you must specify, and uses them to build whatever it is you want it to build.

PMake is almost fully-compatible with Make, with which you may already be familiar. PMake's most important feature is its ability to run several different jobs at once, making the creation of systems considerably faster. It also has a great deal more functionality than Make.

This tutorial is divided into three main sections corresponding to basic, intermediate and advanced PMake usage. If you already know Make well, you will only need to skim Chapter 2, The Basics of PMake (there are some aspects of PMake that I consider basic to its use that did not exist in Make). Things in Chapter 3, Short-cuts and Other Nice Things make life much easier, while those in Chapter 4, PMake for Gods are strictly for those who know what they are doing. Glossary of Jargon has definitions for the jargon I use and Chapter 5, Answers to Exercises contains possible solutions to the problems presented throughout the tutorial.

All FreeBSD documents are available for download at

Questions that are not answered by the documentation may be sent to <>.
Send questions about this document to <>.