path: root/HACKING/
diff options
authorLuke Shumaker <>2016-03-01 19:15:29 -0500
committerLuke Shumaker <>2016-03-01 19:15:29 -0500
commitc83d2b58e1776982a7ce45009fb373ec5702c521 (patch)
tree5e6cae25f11846392936895f2c2a8ca019c21bbb /HACKING/
parent47004c9601147b4c5c55c2bd6401bda8b6be0406 (diff)
improve HACKING documentation
Diffstat (limited to 'HACKING/')
1 files changed, 24 insertions, 0 deletions
diff --git a/HACKING/ b/HACKING/
new file mode 100644
index 0000000..93770cc
--- /dev/null
+++ b/HACKING/
@@ -0,0 +1,24 @@
+The build system is built around an automake-like system for GNU Make
+that I wrote. It is documented in `automake.txt`. It provides all of
+the standard targets and such; you tell it what to do by setting a
+series of `am_whatever` variables. I'm just going to call it
+"automake" here.
+I also hook into non-exposed parts of automake with a couple of
+`_am_whatever` variables. Hopefully I will come up with good ways to
+expose the needed functionality in the future.
+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)/ |
+| LIBRETOOLS_VERSION | $(topsrcdir)/ |
+| LIBRETOOLS_COMMIT | $(topsrcdir)/ |
+| DEVTOOLS_VERSION | $(topsrcdir)/ |
+| DEVTOOLS_COMMIT | $(topsrcdir)/ |
+`srcfiles` basically becomes `am_src_files`.