From 75f185b439b5e67491770295c121437435a662dd Mon Sep 17 00:00:00 2001
From: P. J. McDermott <pjm@nac.net>
Date: Sat, 25 Feb 2012 17:47:00 -0500
Subject: Document the source package build file format.

---
diff --git a/specs/source-package-format-1.0.txt b/specs/source-package-format-1.0.txt
index 4555edb..352880c 100644
--- a/specs/source-package-format-1.0.txt
+++ b/specs/source-package-format-1.0.txt
@@ -86,6 +86,44 @@ source package:
           Package sources (for native packages).
 
 
+Build File Format
+=================
+
+An executable file named 'build' should direct the process of building one or
+more binary packages from a source package.  This file should be a makefile with
+a target for each binary package (whose name is that of the binary package) and
+a target for each build stamp (whose name is that of the build stamp file).
+
+Build Stamps
+------------
+
+A build stamp is a file the existence of which indicates that one or more
+packages were successfully built.  It is located in the package building work
+area directory, and its name ends in ".buildstamp".
+
+In a makefile that directs the building of binary packages, each package target
+should depend on one build stamp target.  Actual building of packages should be
+done in build stamp targets.  After successfully building one or more binary
+packages, a build stamp target should create its build stamp file in the work
+area directory.
+
+Multiple and Split Binary Packages
+----------------------------------
+
+Some source packages generate multiple binary packages from a single build of
+the packaged software.  In the build makefiles of such source packages, the
+targets for these binary packages should all depend on the same build stamp
+target.  This is called a split binary package configuration.
+
+Some source packages generate a set of one or more binary packages that is built
+independently of all other packages.  In the build makefiles of such source
+packages, the target or targets for this set of binary packages should depend on
+a build stamp on which no other binary package targets depend.  This is called a
+multiple binary package configuration.
+
+Note that both configurations may be used in a single source package.
+
+
 Control File Format
 ===================
 
--
cgit v0.9.1