summaryrefslogtreecommitdiffstats
path: root/specs
diff options
context:
space:
mode:
Diffstat (limited to 'specs')
-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]