This behaviour is backwards-compatible with previous releases of gnustep-make and it's important to know about it (later on we'll explain how you do a parallel build in this case by moving the instances into different subdirectories and using the new parallel-subdirectories.make makefile).
For example, if your GNUmakefile builds a library and a tool, they will be always be built separately and in serial order. If you include tool.make before library.make, the tool will be built first; if you include library.make first, the library will be built first.
Let's look at a quick example -
include $(GNUSTEP_MAKEFILES)/common.make LIBRARY_NAME = HelloMoon HelloMoon_OBJC_FILES = HelloMoon.m HelloMars.m TOOL_NAME = HelloWorld HelloWorld_OBJC_FILES = HelloWorld.m main1.m include $(GNUSTEP_MAKEFILES)/library.make include $(GNUSTEP_MAKEFILES)/tool.make
In this case, the HelloMoon library will be built before the HelloWorld tool because library.make is included before tool.make.
So, the building in this case will work as follows:
Step 0. Execute before-all:: if it exists Step 1. Build HelloMoon Step 2. Build HelloWorld Step 3. Execute after-all:: if it exists