The idea is to discuss the different possibilities for making a unique procedure to build the entire project. Currently, our global build script is lacking of two features:
- Allowing to change global options such that the output destination
- Being able to use a submodule as a dependency for another one, to avoid code duplication (by sharing .a, .so and symbol files between modules that need it)
There are several build systems that could be used for a project like this one. However, as autotool is widely used in the project, it may be logical to create globals autoconf/makefile scripts which would then call each subproject build system. This would allow us to deal with the dependencies and configurations once for all with only one call to autoconf. Moreover, the option AC_CONFIG_SUBDIRS seems to allow the point 2 previously exposed.
Of course, there are others solutions for achieving such purpose. One of them is to use a modern build systems like ninja build which can be used in conjunction with other build systems and seems really faster than autotool. Ninja build allow to easily deploy configuration into submodules and to create dependencies between them.
The last option we have is to improve our build script to add the two missing features. Personally if think that we could save time by using an existing build solution instead of implementing our custom one.
What do you think about these solutions ? Are they other features you want to see in our build system ?