From 34536ebe15d03132540090f8bcada6428d95474f Mon Sep 17 00:00:00 2001 From: P. J. McDermott 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