1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
<html>
<head>
<title>The Makefile</title>
</head>
<body>
<h1>The Makefile</h1>
<p>A quick overview of the debian-cd Makefile: what it does, and
how.</p>
<h2>Variable setup and checking</h2>
<p>Simple sanity checking that all the needed variables from CONF.sh
are present and correct, and also set up some more internal
variables:</p>
<ul>
<li><code>BUILD_DATE</code> - simply, the date and time of the build
<li><code>ARCHES_NOSRC</code> - the list of arches specified, minus
source
<li><code>SOURCEONLY</code> - set only if we're building source and no
binaries
<li><code>INC_SOURCE</code> - set if we're building source at all
<li><em>lots of variables pointing to the helper scripts</em>
<li><code>BDIR</code> - the working dir for temporary files
<li><code>ADIR</code> - an alias for APTTMP, as set in CONF.sh
<li><code>DB_DIR</code> - points to a debootstrap temp dir under BDIR
<li><code>PATH</code> - we add the debootstrap /usr/sbin dir to the
path
<li><code>LATEST_DB</code> - the full path to the most recent version
of debootstrap in the archive
<h3><code>default:</code></h3>
<p>There is not a sensible default action for the Makefile (e.g. make
all), so simply print a message and return.</p>
<h3><code>ok:</code></h3>
<p>Simple sanity checking.</p>
<h2>General initialisation and cleanup</h2>
<h3><code>init:</code></h3>
<p>Depends on a group of trivial small rules - make the temp dirs as
necesssary, and extract the latest debootstrap deb from LATEST_DB
above.</p>
<h3><code>clean: and dir-clean:</code></h3>
<p>Clean up build tress.</p>
<h3><code>realclean: and distclean:</code></h3>
<p>Delete all temporary state.</p>
<h2>Package lists and apt setup</h2>
<h3><code>$(CODENAME)_status:</code></h3>
<p>Use the (maybe provided) default starting package list for
$(CODENAME). If that doesn't exist, fall back to "make status".</p>
<h3><code>status:</code> and <code>$(ADIR)/status:</code></h3>
<p>Create an initial list of the packages desired.</p>
<p>First, for BC and NETINST (aka INSTALLER_CD=1 or INSTALLER_CD=2),
simply create an empty list. For other CDs, grab the list of
Required/Important/Standard/Base packages from the Packages file.</p>
<p>Secondly, create/update the temporary apt db using
<code>apt-selection</code>.</p>
<p>Finally, use <code>apt-selection</code> to check the consistency of
the standard system in terms of dependencies. If needed, run
<code>make correctstatus</code> to add/remove packages.
<h3><code>correctstatus:</code></h3>
<p>Add/remove packages as needed to fix up the dependencies.</p>
<h3><code>apt-update:</code></h3>
<p>After setting up the default list of packages, run
<code>apt-selection update</code> for each of the arches, so we're
ready to ask apt to do real work for us.</p>
<h3><code>deletelist:</code></h3>
<p>Simple list cleanup</p>
<h3><code>packagelists:</code></h3>
<p>Helper for dependencies</p>
<h3><code>$(BDIR)/rawlist:</code></h3>
<p>Using debootstrap and the task file specified, generate a "raw"
(i.e. not cleanly formatted) list of the packages desired.</p>
<h3><code>genlist:</code>, <code>$(BDIR)/list</code>
<p>Clean up the rawlist files ready for use.</p>
<h2>Tree and image building</h2>
<h3><code>image-trees:</code></h3>
<p>Does a lot of work, via three scripts:</p>
<ul>
<li>Sort the output from genlist into dependency order using
<code>list2cds</code> for each arch in turn, outputting to
$(BDIR)/packages.$ARCH.
<li>Merge the output of those separate package lists (if necessary),
outputting to $(BDIR)/packages using <code>merge_package_lists</code>.
<li>Now we have a sorted list of (potentially multi-arch) packages
ready to start using. Make the temporary trees using that list - call
<code>make_disc_trees.pl</code>
</ul>
<h3><code>images:</code></h3>
<p>Using the trees from <code>image-trees:</code>, convert those trees
into CD/DVD ISO/jigdo files as required.</p>
<h3><code>image:</code> and <code>check-number-given:</code></h3>
<p>If you're short on space, will allow you to create images one ISO
at a time - specify <code>CD=n</code> on the make command line to just
make CD number n.</p>
<h3><code>imagesums:</code></h3>
<p>Use the <code>imagesums</code> script to generate md5sums for the
output images.</p>
<h2>Misc targets</h2>
<h3><code>update-popcon</code></h3>
<p>Update the sorting order for packages using usage stats from
popcon.debian.org.</p>
<h3><code>official_images:</code></h3>
<p>Simple wrapper that depends on all the needed bits in the right
order.</p>
<hr>
(c) Steve McIntyre <steve@einval.com>, December 2006. GPL v2<br>
<a href="running.html">Prev - Running</a><br>
<a href="helpers.html">Next - The helper scripts, where most of the
work happens</a>
</body>
</html>
|