The Makefile in the thirdparty build directory employs a set of macros used to create a build rule set of thirdparty library build dependencies. The standard build sequence of [source, config, build] is used to prepare thirdparty products as static libraries. Build package dependency can be specified in the Makefile std-build macro call. These Makefile macro calls define the rules used for each thirdparty build. The expanded rule definitions may be viewed by using:
make -C thirdparty rules
Individual package libraries can be rebuilt, via:
make -C thirdparty <pkg>-clean; make -C thirdparty <pkg>
The rule targets create the set of thirdparty packages which are built from local source archive copies of thirdparty source code and patches, if needed. The build rule set of dependencies allows for compiling multiple thirdparty programs simultaneously using maximum computer resources. This parallel build speeds up the process considerably. For example, these are full static build timings on the production build machine (full build includes building all thirdparty programs as well as all of CINELERRA-GG):
1 cpu | = | 61 mins | |
12 cpus | = | 7.5 mins | |
24 cpus | = | 2 mins |
The CINELERRA-GG Community, 2021