1
# This file provides a quick overview of this build system. The idea is
2
# to convert ./debian/rules into a framework, which abstracts most of
3
# the work required to create a Debian package into this common set of
6
# The rules file would look like this:
8
## Include dpkg-architecture generated variables
9
# This make snippet uses dpkg-architecture to set the various
10
# DEB_BUILD* and DEB_HOST* variables. It also adds a couple of DEBUG
11
# macros for use in the rules file.
12
include debian/common/archvars.mk
14
## variables useful for perl packages
15
# This sets things like the installed location of the private lib,
16
# arch dependent lib, and vendor library directories.
17
include debian/common/perlvars.mk
20
# This sets the convenience macros install_{file,script,program} and
21
# a make directory macro, all run as root, for the install and binary
22
# targets. It also includes a macro to create the md5sum for
24
include debian/common/install_cmds.mk
26
## Per package variable settings.
27
# This file sets the Make variables on a per package basis. Things
28
# like include files, C, C++, and LD flags are set here, as well as
29
# installation paths or, really, anything else that would be needed
30
# during packaging operations
31
include debian/local-vars.mk
33
## Setting C compiler flags.
34
# This file takes care of setting C compiler flags, setting the
35
# compiler if a cross compilation effort is detected, and either
36
# arranges for binaries to be stripped or not based on
38
include debian/common/copt.mk
40
## Set automake configuration flags
41
# This file sets confflags variable with the proper --host and
42
# --build options if it detects a cross compilation effort underway.
43
include debian/common/automake.mk
45
# Set up the default target.
47
@echo nothing to be done
49
## Include the common targets
50
# This file sets up the flow of control during a Debian package build
51
# process, taking into account policy requirements (mandatory
52
# targets, ordering targets). It sets up rules for each package found
53
# in ./debian/control file in the package, and arranges package build
54
# to follow the order of configuration, building, installation, and
55
# binary package creation (and of course, clean).
57
# The details of the targets can be seen visually by running dot on
58
# the accompanying targets.dot file. In the figure, the legend is:
60
# filled == Work target (most work is done in dependencies added
61
# to these targets). These are the targets referred to
62
# in the local.mk file
63
# Octagon == Phony target
64
# Oval == Real target based on a time stamp
65
# Double lines denote a mandatory target
67
# Edge attributes: A Red line indicates the target is called using
68
# $(MAKE) -f ./debian/rules <target>. So the targets connected by the
69
# red lines are run after all the dependencies have been updated, but
70
# before anything else is done.
72
include debian/common/targets.mk
74
## The bulk of packaging
75
# This file adds dependencies to the double-colon rules set up in
76
# targets.mk above, and perform the bulk of the packaging.
77
include debian/local.mk