summaryrefslogtreecommitdiff
path: root/HACKING/build-system.md
blob: 40abd28e1f2141f0f4e8e76d70587025bcc5d481 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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`.