The build system is built around an Automake-replacing Makefile snippet system for GNU Make that I wrote, called Autothing. It is documented in `build-aux/Makfile.README.txt`. It provides all of the standard targets and such; you tell it what to do by setting a series of `at.whatever` or `std.whatever` variables. There are a couple of variables that get automatically set from git. This happens by `include`ing a hidden makefile that sets them; if `$(topsrcdir)/.git` exists, it knows to use git to generate it; otherwise it expects the file to exist: | variable | file | |--------------------+----------------------------------------| | srcfiles | $(srcdir)/.srcfiles.mk | | LIBRETOOLS_VERSION | $(topsrcdir)/.srcversion-libretools.mk | | LIBRETOOLS_COMMIT | $(topsrcdir)/.srcversion-libretools.mk | | DEVTOOLS_VERSION | $(topsrcdir)/.srcversion-devtools.mk | | DEVTOOLS_COMMIT | $(topsrcdir)/.srcversion-devtools.mk | `srcfiles` basically becomes `std.src_files`.