Project setup
-------------
The nice thing about PMake is that it does not enforce you to a certain fixed project setup. It allows to do both an in-source as an out-source build. The way you structure your project is entirely up to you. There is even no real need to keep track of the relative location of the packages as they are determined by PMake. This means you can simply reorganize your source tree and only need to invoke *make* from the build folder to generate a new *make2* executable.
Each PMake.txt file can refer to a single package, although even this is not mandatory, but rather more practical. As demonstrated in the sample project in this documentation, one can even define multiple packages within a single PMake.txt file. Unlike CMake there is no need to create PMake.txt files simply to forward the build chain over the different folders. Instead you only put PMake.txt files where it's appropriate and let PMake find them recursively. The most important thing to remember here is to invoke PMake and supply the path to the root location of the source tree. If you call PMake higher up in the source tree then you might miss on some of the dependencies and building might fail.
