summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-10-08 15:42:28 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-10-08 15:42:28 (EDT)
commit2bbe38c57c2498ef801f195f2cce41241bbfcba6 (patch)
tree889dd7ed0b8d637ee04726f75e44b7f9d700ee80
parent6415d13e09bc23006fe9b47918230b68e6583be5 (diff)
Document the build makefile.
-rw-r--r--specs/spf-2.0/buildsys.mdwn44
1 files changed, 43 insertions, 1 deletions
diff --git a/specs/spf-2.0/buildsys.mdwn b/specs/spf-2.0/buildsys.mdwn
index 77f1eea..e99794f 100644
--- a/specs/spf-2.0/buildsys.mdwn
+++ b/specs/spf-2.0/buildsys.mdwn
@@ -1,7 +1,49 @@
Build Makefile [build]
======================
-TODO
+A file named `build` directs the process of building and installing data files
+to be provided by binary packages. It must be a makefile, and it must be
+executable by all users.
+
+The first line of this file must name a **make**(1) interpreter in a magic
+number sample as follows:
+
+ #! /usr/bin/make -f
+
+Any number of spaces and/or tabs may be used after the `#!` magic number and
+before the `-f` argument.
+
+The following targets are required:
+
+ * `build`
+
+ The `build` target should perform all the configuration and compilation
+ needed to produce files for installation into binary packages.
+
+ The `build` target should create a file named `build` in the build work area
+ to prevent configuration and compilation from being performed multiple
+ times.
+
+ The `build` target must not do anything that might require superuser
+ privilege.
+
+ * `install`
+
+ The `install` target should install data files into the data directories of
+ binary packages (see $[sectlink][work-area] for information on these
+ directories).
+
+ The `install` target should depend on the `build` target.
+
+ The `install` target shall be invoked as the superuser.
+
+The required targets and their dependencies must not require interactive user
+input.
+
+Additional targets may exist in the `build` makefile.
+
+Certain environment variables (see $[sectlink][env-vars]) shall be set when the
+`build` makefile is executed.
Build Work Area [work-area]