diff options
author | Graham Percival <graham@percival-music.ca> | 2011-03-04 11:22:11 +0000 |
---|---|---|
committer | Graham Percival <graham@percival-music.ca> | 2011-03-04 11:54:15 +0000 |
commit | 5d0224b481dab52576cb99cc07193f789e2ecf5c (patch) | |
tree | 8784e501023956b736d31d93b68d075f8e8bea70 | |
parent | a3cb316f14549de435c809a3b5cd11e7746a7a01 (diff) |
CG: begin "build system" chapter.
-rw-r--r-- | Documentation/contributor.texi | 2 | ||||
-rw-r--r-- | Documentation/contributor/build-notes.itexi | 80 |
2 files changed, 82 insertions, 0 deletions
diff --git a/Documentation/contributor.texi b/Documentation/contributor.texi index 579000dfc3..26b3a26fbb 100644 --- a/Documentation/contributor.texi +++ b/Documentation/contributor.texi @@ -60,6 +60,7 @@ Copyright @copyright{} 2007--2011 by the authors. * Regression tests:: * Programming work:: * Release work:: +* Build system notes:: * Administrative policies:: Appendices @@ -85,6 +86,7 @@ Appendices @include contributor/regressions.itexi @include contributor/programming-work.itexi @include contributor/release-work.itexi +@include contributor/build-notes.itexi @include contributor/administration.itexi @include fdl.itexi diff --git a/Documentation/contributor/build-notes.itexi b/Documentation/contributor/build-notes.itexi new file mode 100644 index 0000000000..1cd849be2e --- /dev/null +++ b/Documentation/contributor/build-notes.itexi @@ -0,0 +1,80 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + + +@node Build system notes +@chapter Build system notes + +@warning{This chapter is in high flux, and is being run in a +@qq{wiki-like} fashion. Do not trust anything you read in this +chapter.} + +@menu +* Build system overview:: +* Doc build:: +* Website build:: +@end menu + + +@node Build system overview +@section Build system overview + +Build system is currently GNU make, with an extra "stepmake" layer +on top. Look at files in @file{make/} and @file{stepmake/} and +all @file{GNUmakefile}s. + +There is wide-spread dissatisfaction with this system, and we are +considering changing. This would be a huge undertaking (estimated +200+ hours). This change will probably involve not using GNU make +any more -- but a discussion about the precise build system will +have to wait. Before we reach that point, we need to figure out +(at least approximately) what the current build system does. + +Fundamentally, a build system does two things: + +@enumerate +@item +Constructs command-line commands, for example: + +@example +lilypond-book \ + --tons --of --options \ + pitches.itely +texi2pdf \ + --more --imperial --and --metric --tons --of --options \ + pitches.texi +@end example + +@item +If there was a previous build, it decides which parts of the +system need to be rebuilt. + +@end enumerate + +When I try to do anything in the build system, it helps to remind +myself of this. The "end result" is just a series of command-line +commands. All the black magick is just an attempt to construct +those commands. + + +@node Doc build +@section Doc build + +@menu +* Building a bibliography:: +@end menu + +@node Building a bibliography +@subsection Building a bibliography + + + +@node Website build +@section Website build + +Start here: @file{make/website.make} + +Website build includes @ref{Building a bibliography}. + + + + |