summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey>1999-09-03 21:12:04 +0000
committerjoey <joey>1999-09-03 21:12:04 +0000
commitda7d6c32c080678dc672f7c6e680c11569f46eda (patch)
tree437e68fc95e8b49b4339f30ae9ca111a005e72b3
parent60037371809ab782c2d675ea1bfc849c2772fce2 (diff)
r265: * It turns out it's possible to set up make variables that are specific to
a single target of a Makefile. This works tremendously well with DH_OPTIONS: no need to put "-i" or "-pfoo" after every debhelper command anymore. * debhelper.1: mentioned above technique. * examples/rules.multi: use the above method to get rid of -i's and -a's. * examples/rules.multi2: new file, example of a multi-binary package that works for arch-indep and arch-dependant packages, and also allows building of single binary packages independntly, via binary-<package> targets. It accomplishes all this using only one list of debhelper commands. * examples/*: removed source and diff targets. They've been obsolete for 2 years -- or is it 3? No need for a nice error message on failure anymore.
-rw-r--r--debhelper.160
-rw-r--r--debian/changelog18
-rwxr-xr-xdh_compress147
-rw-r--r--dh_compress.169
-rwxr-xr-xexamples/rules61
-rwxr-xr-xexamples/rules.indep51
-rwxr-xr-xexamples/rules.multi128
-rwxr-xr-xexamples/rules.multi296
8 files changed, 494 insertions, 136 deletions
diff --git a/debhelper.1 b/debhelper.1
index f329666..e7e03c9 100644
--- a/debhelper.1
+++ b/debhelper.1
@@ -3,7 +3,7 @@
debhelper \- overview of the debhelper commands
.SH SYNOPSIS
.B dh_*
-.I "[-v] [-a] [-i] [--no-act] [-ppackage] [-Npackage] [-Ptmpdir]"
+.I "[-v] [-a] [-i] [-s] [--no-act] [-ppackage] [-Npackage] [-Ptmpdir]"
.SH "DESCRIPTION"
Debhelper is a collection of programs that can be used in debian/rules files
to automate common tasks related to building debian binary packages. All the
@@ -12,6 +12,7 @@ document those options and to document debhelper as a whole. For additional
options, and documentation for each individual command, see the commands' own
man pages.
.SH "SHARED DEBHLPER OPTIONS"
+The following command line options are supported by all debhelper programs.
.TP
.B \-v, \--verbose
Verbose mode: show all commands that modify the package build directory.
@@ -29,12 +30,35 @@ Act on all architecture independent packages.
.B \-ppackage, \--package=package
Act on the package named "package".
.TP
+.B \-s, \--same-arch
+This is a smarter version of the -a flag, that is used in some rare
+circumstances. It understands that if the control file lists "Architecture: i386"
+for the package, the package should not be acted on on other architectures. So
+this flag makes the command act on all "Architecture: any" packages, as well
+as on any packages that have the current architecture explicitly specified.
+Constrast to the -a flag, which makes the command work on all packages that
+are not architecture independant.
+.TP
.B \-Npackage, \--no-package=package
Do not act on the specified package even if an -a, -i, or -p option lists
the package as one that should be acted on.
.TP
.B \-Ptmpdir, \--tmpdir=tmpdir
Use "tmpdir" for package build directory.
+.SH "COMMON DEBHELPER OPTIONS"
+The following command line options are supported by some debhelper programs.
+See the man page of each program for a complete explination of what the
+option does.
+.TP
+.B \-n
+Do not modify postinst/postrm/etc scripts.
+.TP
+.B \-Xitem, \--exclude=item
+Exclude an item from processing.
+.TP
+.B \-A, \-all
+Makes files or other items that are specified on the command line take effect
+in ALL packages acted on, not just the first.
.SH NOTES
.TP
.B Multiple binary package support
@@ -52,8 +76,10 @@ are acted on by debhelper programs, all debhelper programs accept the
.B -a
,
.B -i
-, and
+,
.B -p
+, and
+.B -s
parameters. These parameters are cumulative. If none are given,
debhelper programs default to acting on all packages listed in the control
file.
@@ -68,7 +94,8 @@ for an example of how to use this.
By default, all debhelper programs assume that the temporary directory used
for assembling the tree of files in a package is debian/tmp for the first
package listed in debian/control, and debian/<packagename> for each
-additional package.
+additional package. If DH_COMPAT=2, debian/<packagename> is always used,
+even for the first package.
.P
Sometimes, you might want to use some other temporary directory. This is
supported by the
@@ -83,16 +110,36 @@ binary package the debhelper program will act on.
.B Other notes
In general, if any debhelper program needs a directory to exist under
debian/, it will create it. I haven't bothered to document this in all the
-man pages, but for example, dh_installdeb knows to make debian/tmp/DEBIAN/
+man pages, but for example, dh_installdeb knows to make debian/<foo>/DEBIAN/
before trying to put files there, dh_installmenu knows you need a
-debian/tmp/usr/lib/menu/ before installing the menu files, etc.
+debian/<foo>/usr/lib/menu/ before installing the menu files, etc.
+.SH "DEBHELPER COMMANDS"
+Here is the complete list of available debhelper commands.
+#LIST#
.SH ENVIRONMENT
.TP
.I DH_VERBOSE
Enables verbose mode.
.TP
+.I DH_COMPAT
+Specifies what compatability level debhelper should run at. The default is 1,
+which makes debhelper behave in a manner compatable with the 1.x series of
+debhelper. If set to 2, debhelper's behavior will change to use the new
+features of the 2.x series. Use this with caution, as the 2.x series makes
+major changes that will break most packages. For documentation on these
+changes, read /usr/doc/debhelper/v2
+.TP
.I DH_NO_ACT
Enables no-act mode.
+.TP
+.I DH_OPTIONS
+Anything in this variable will be prepended to the command line
+arguments of all debhelper commands. This in useful in some situations,
+for example, if you need to pass -p to all debhelper commands that will be
+run. If you use DH_OPTIONS, be sure to use "dh_testversion 1.1.17" - older
+debhelpers will ignore it and do things you don't want them to. One very
+good way to set DH_OPTIONS is by using "Target-specific Variable Values" in
+your debian/rules file. See the make documentation for details on doing this.
.SH "SEE ALSO"
.TP
.BR /usr/doc/debhelper/README
@@ -100,5 +147,8 @@ An introduction to debhelper.
.TP
.BR /usr/doc/debhelper/examples/
A set of example debian/rules files that use debhelper.
+.TP
+.BR http://kitenet.net/programs/debhelper/
+Debhelper web site.
.SH AUTHOR
Joey Hess <joeyh@master.debian.org>
diff --git a/debian/changelog b/debian/changelog
index 8e15c7e..089539d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,21 @@
+debhelper (2.0.30) unstable; urgency=low
+
+ * It turns out it's possible to set up make variables that are specific to
+ a single target of a Makefile. This works tremendously well with
+ DH_OPTIONS: no need to put "-i" or "-pfoo" after every debhelper command
+ anymore.
+ * debhelper.1: mentioned above technique.
+ * examples/rules.multi: use the above method to get rid of -i's and -a's.
+ * examples/rules.multi2: new file, example of a multi-binary package that
+ works for arch-indep and arch-dependant packages, and also allows
+ building of single binary packages independntly, via binary-<package>
+ targets. It accomplishes all this using only one list of debhelper
+ commands.
+ * examples/*: removed source and diff targets. They've been obsolete for 2
+ years -- or is it 3? No need for a nice error message on failure anymore.
+
+ -- Joey Hess <joeyh@master.debian.org> Fri, 3 Sep 1999 11:28:24 -0700
+
debhelper (2.0.29) unstable; urgency=low
* dh_shlibdeps: Fixed quoting problem that made it fail on weird file names.
diff --git a/dh_compress b/dh_compress
index e1f8ed6..847bcb6 100755
--- a/dh_compress
+++ b/dh_compress
@@ -1,40 +1,115 @@
-#!/bin/sh -e
+#!/usr/bin/perl -w
#
# Compresses files and makes sure that symlinks pointing to the
# compressed files get fixed.
-PATH=debian:$PATH:/usr/lib/debhelper
-source dh_lib
-
-# The config file is a sh script that outputs the files to be compressed
-# (typically using find).
-if [ -f debian/compress ]; then
- files=`sh debian/compress 2>/dev/null`
-else
- # By default fall back on what the policy manual says to compress.
- files=`
- find debian/tmp/usr/info debian/tmp/usr/man \
- debian/tmp/usr/X11*/man -type f 2>/dev/null ;
- find debian/tmp/usr/doc -type f -size +4k \
- ! -name "*.htm*" ! -name "*.gif" \
- ! -name "debian/tmp/usr/doc/*/copyright" 2>/dev/null
- `
-fi
-
-if [ "$files" ]; then
- # This is just a cosmetic fix.
- files=`echo $files | tr "\n" " "`
-
- doit "gzip -9 $files" || true
-fi
-
-# Fix up symlinks that were pointing to the uncompressed files.
-for file in `find debian/tmp -type l`; do
- DIRECTORY=`expr $file : "\(.*\)/[^/]*"`
- NAME=`expr $file : ".*/\([^/]*\)"`
- LINKVAL=`ls -l $DIRECTORY/$NAME | awk '{ print $11;}'`
- if [ ! -e $DIRECTORY/$LINKVAL -a -f $DIRECTORY/$LINKVAL.gz ]; then
- doit "rm $DIRECTORY/$NAME"
- doit "ln -s $LINKVAL.gz $DIRECTORY/$NAME.gz"
- fi
-done
+use Cwd;
+BEGIN { push @INC, "debian", "/usr/share/debhelper" }
+use Dh_Lib;
+init();
+
+foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
+ $TMP=tmpdir($PACKAGE);
+ $compress=pkgfile($PACKAGE,"compress");
+
+ # Run the file name gathering commands from within the directory
+ # structure that will be effected.
+ $olddir=getcwd();
+ verbose_print("cd $TMP");
+ chdir($TMP) || error("Can't cd to $TMP: $!");
+
+ # Figure out what files to compress.
+ @files=();
+ # First of all, deal with any files specified right on the command line.
+ if (($PACKAGE eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @files,#ARGV;
+ }
+ if ($compress) {
+ # The config file is a sh script that outputs the files to be compressed
+ # (typically using find).
+ push @files, split(/\n/,`sh $olddir/$compress 2>/dev/null`);
+ }
+ else {
+ # By default, fall back to what the policy manual says to compress.
+ # Note that all the excludes of odd things like _z are because
+ # gzip refuses to compress such files, assumming they are zip files.
+ # I looked at the gzip source to get the complete list of such
+ # extentions: ".gz", ".z", ".taz", ".tgz", "-gz", "-z", "_z"
+
+ push @files, split(/\n/,`
+ find usr/info usr/share/info usr/man usr/share/man usr/X11*/man -type f ! -name "*.gz" 2>/dev/null || true;
+ find usr/doc usr/share/doc -type f \\( -size +4k -or -name "changelog*" \\) \\
+ \\( -name changelog.html -or ! -name "*.htm*" \\) \\
+ ! -name "*.gif" ! -iname "*.gz" \\
+ ! -iname "*.taz" ! -iname "*.tgz" ! -iname "*.z" \\
+ ! -iname "*-gz" ! -iname "*-z" ! -iname "*_z" \\
+ ! -name "copyright" 2>/dev/null || true
+ `);
+ }
+
+ # Exclude files from compression.
+ if (@files && defined($dh{EXCLUDE}) && $dh{EXCLUDE}) {
+ @new=();
+ foreach (@files) {
+ $ok=1;
+ foreach $x (@{$dh{EXCLUDE}}) {
+ if (/\Q$x\E/) {
+ $ok='';
+ last;
+ }
+ }
+ push @new,$_ if $ok;
+ }
+ @files=@new;
+ }
+
+ # Look for files with hard links. If we are going to compress both,
+ # we can preserve the hard link across the compression and save
+ # space in the end.
+ my @f=();
+ my %hardlinks;
+ foreach (@files) {
+ ($dev, $inode, undef, $nlink)=stat($_);
+ if ($nlink > 1) {
+ if (! $seen{"$inode.$dev"}) {
+ $seen{"$inode.$dev"}=$_;
+ push @f, $_;
+ }
+ else {
+ # This is a hardlink.
+ $hardlinks{$_}=$seen{"$inode.$dev"};
+ }
+ }
+ else {
+ push @f, $_;
+ }
+ }
+
+ if (@f) {
+ xargs(\@f,"gzip","-9f");
+ }
+
+ # Now change over any files we can that used to be hard links so
+ # they are again.
+ foreach (keys %hardlinks) {
+ # Remove old file.
+ doit("rm","-f","$_");
+ # Make new hardlink.
+ doit("ln","$hardlinks{$_}.gz","$_.gz");
+ }
+
+ verbose_print("cd $olddir");
+ chdir($olddir);
+
+ # Fix up symlinks that were pointing to the uncompressed files.
+ open (FIND,"find $TMP -type l |");
+ while (<FIND>) {
+ chomp;
+ ($directory)=m:(.*)/:;
+ $linkval=readlink($_);
+ if (! -e "$directory/$linkval" && -e "$directory/$linkval.gz") {
+ doit("rm","-f",$_);
+ doit("ln","-sf","$linkval.gz","$_.gz");
+ }
+ }
+}
diff --git a/dh_compress.1 b/dh_compress.1
index 06087b8..92f5b51 100644
--- a/dh_compress.1
+++ b/dh_compress.1
@@ -1,9 +1,9 @@
-.TH DH_COMPRESS 1
+.TH DH_COMPRESS 1 "" "Debhelper Commands" "Debhelper Commands"
.SH NAME
dh_compress \- compress files and fix symlinks in package build directories
.SH SYNOPSIS
.B dh_compress
-.I "[-v] [-a] [-i] [-ppackage]"
+.I "[debhelper options] [-Xitem] [-A] [file ...]"
.SH "DESCRIPTION"
dh_compress is a debhelper program that is responsible for compressing
the files in package build directories, and makes sure that any symlinks
@@ -13,56 +13,61 @@ to the new files.
By default, dh_compress compresses files that debian policy mandates should
be compressed, namely all files in usr/info, usr/man, usr/X11R6/man, and
all files in usr/doc that are larger than 4k in size, except
-the copyright file, .html files and .gif files.
+the copyright file, .html files and .gif files, and all changelog files. It
+skips any files that appear to be already compressed (based on their
+extentions).
.P
-If a debian/compress file exits, however, it will be ran as a shell script,
-and all filenames that the shell script outputs will be compressed instead
-of the default files. Note that the shell script will be run from inside the
-package build directory.
+If a debian/package.compress file exists (debian/compress may be used for the
+first binary package in debian/control), however, it will be ran as a shell
+script, and all filenames that the shell script outputs will be compressed
+instead of the default files. Note that the shell script will be run from
+inside the package build directory.
.SH EXAMPLE
Here is a sample debian/compress file that causes dh_compress to compress
the same files as it would by default. This is a good starting point for
customization of what files are compressed:
.PP
- find usr/info usr/man usr/X11*/man -type f
- find usr/doc -type f -size +4k \\
- ! -name "*.htm*" ! -name "*.gif" \\
+ find usr/info usr/share/info usr/man usr/share/man usr/X11*/man -type f ! -name "*.gz"
+ find usr/doc usr/share/doc -type f \\
+ \\( -size +4k -or -name "changelog*" \\) \\
+ \\( -name changelog.html -or ! -name "*.htm*" \\) \\
+ ! -name "*.gif" ! -iname "*.gz" \\
+ ! -iname "*.taz" ! -iname "*.tgz" ! -iname "*.z" \\
! -name "copyright"
.SH OPTIONS
.TP
-.B \-v
-Verbose mode; show all commands that modify the package build directory.
+.B debhelper options
+See
+.BR debhelper (1)
+for a list of options common to all debhelper commands.
.TP
-.B \-a
-Compress files for all architecture dependent packages.
+.B \-Xitem, \--exclude=item
+Exclude files that contain "item" anywhere in their filename from being
+compressed. For example, -X.jpeg will exclude jpeg's from compression.
+You may use this option multiple times to build up a list of things to
+exclude. You can accomplish the same thing by using a debian/compress file,
+but this is easier.
.TP
-.B \-i
-Compress files for all architecture independent packages.
+.B \-A, \--all
+Compress all files specified by command line parameters in ALL packages
+acted on.
.TP
-.B \-ppackage
-Compress files for the package named "package".
+.B file ...
+Add these files to the list of files to compress.
.SH NOTES
-The
-.B \-a
-.B \-i
-and
-.B \-p
-arguments are cumulative. If none are specified, then all packages listed in
-the control file will have their files compressed.
-.P
The debian/compress file applies to the first binary package listed in your
control file. For the other packages, you can make files named
debian/package.compress, where "package" is the name of the package they
-apply to.
+apply to. (This works for the first binary package too.)
.SH ENVIRONMENT
-.TP
-.I DH_VERBOSE
-Enables verbose mode
+See
+.BR debhelper (1)
+for a list of environment variables that affect all debhelper commands.
.SH "SEE ALSO"
-.BR /usr/doc/debhelper/README
+.BR debhelper (1)
.SH BUGS
Filenames with spaces in them may not properly be compressed.
.SH "CONFORMS TO"
-Debian policy, version 2.3.0.0
+Debian policy, version 3.0.0.0
.SH AUTHOR
Joey Hess <joeyh@master.debian.org>
diff --git a/examples/rules b/examples/rules
index e6ebf0b..926c38c 100755
--- a/examples/rules
+++ b/examples/rules
@@ -1,41 +1,78 @@
#!/usr/bin/make -f
-# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=1
build: build-stamp
build-stamp:
dh_testdir
- # Add here commands to compile the pacckage.
+
+ # Add here commands to compile the package.
#$(MAKE)
+
touch build-stamp
clean:
dh_testdir
dh_testroot
- dh_cleantmp
+ rm -f build-stamp install-stamp
+
# Add here commands to clean up after the build process.
+ #-$(MAKE) clean
#-$(MAKE) distclean
- rm -f build-stamp
+
+ dh_clean
+
+install: install-stamp
+install-stamp: build-stamp
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp.
+ #$(MAKE) prefix=`pwd`/debian/tmp/usr install
+
+ touch install-stamp
# Build architecture-independent files here.
-binary-indep: build
- # We have nothing to do by default.
+binary-indep: build install
+# We have nothing to do by default.
# Build architecture-dependent files here.
-binary-arch: build
+binary-arch: build install
+# dh_testversion
dh_testdir
dh_testroot
- dh_cleantmp
- # Add here commands to install the files into debian/tmp
- #$(MAKE) PREFIX=debian/tmp install
dh_installdocs
dh_installexamples
dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+ dh_installcron
dh_installmanpages
+ dh_installinfo
+# dh_undocumented
dh_installchangelogs
+ dh_link
+ dh_strip
dh_compress
- dh_installdebfiles
dh_fixperms
+ # You may want to make some executables suid here.
+ dh_suidregister
+# dh_makeshlibs
+ dh_installdeb
+# dh_perl
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/examples/rules.indep b/examples/rules.indep
index a257a19..55802f3 100755
--- a/examples/rules.indep
+++ b/examples/rules.indep
@@ -1,56 +1,77 @@
#!/usr/bin/make -f
-# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
-# This version is for packages that are architecure independant.
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+#
+# This version is for packages that are architecture independent.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+# This is the debhelper compatability version to use.
+export DH_COMPAT=1
+
build: build-stamp
build-stamp:
dh_testdir
- # Add here commands to compile the pacckage.
+
+ # Add here commands to compile the package.
#$(MAKE)
+
touch build-stamp
clean:
dh_testdir
dh_testroot
- rm -f build-stamp
+ rm -f build-stamp install-stamp
+
# Add here commands to clean up after the build process.
+ #-$(MAKE) clean
#-$(MAKE) distclean
+
dh_clean
-# Build architecture-independent files here.
-binary-indep: build
+install: install-stamp
+install-stamp: build-stamp
dh_testdir
dh_testroot
- dh_clean
+ dh_clean -k
dh_installdirs
- # Add here commands to install the files into debian/tmp
- #$(MAKE) PREFIX=debian/tmp install
+
+ # Add here commands to install the package into debian/tmp.
+ #$(MAKE) prefix=`pwd`/debian/tmp/usr install
+
+ touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+# dh_testversion
+ dh_testdir
+ dh_testroot
dh_installdocs
dh_installexamples
dh_installmenu
+# dh_installemacsen
+# dh_installpam
# dh_installinit
dh_installcron
# dh_installmanpages
+ dh_installinfo
# dh_undocumented
dh_installchangelogs
+ dh_link
dh_compress
dh_fixperms
+ # You may want to make some executables suid here.
dh_suidregister
dh_installdeb
+# dh_perl
dh_gencontrol
- dh_du
dh_md5sums
dh_builddeb
# Build architecture-dependent files here.
-binary-arch: build
+binary-arch: build install
# We have nothing to do by default.
-source diff:
- @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
-
binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/examples/rules.multi b/examples/rules.multi
index 118737c..6c6c406 100755
--- a/examples/rules.multi
+++ b/examples/rules.multi
@@ -1,60 +1,116 @@
#!/usr/bin/make -f
-# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 by Joey Hess.
+#
# This version is for a hypothetical package that builds an
-# architecture-dependant package, as well as an architecture-independant
+# architecture-dependant package, as well as an architecture-independent
# package.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+# This is the debhelper compatability version to use.
+export DH_COMPAT=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
build: build-stamp
build-stamp:
dh_testdir
- # Add here commands to compile the pacckage.
+
+ # Add here commands to compile the package.
#$(MAKE)
+
touch build-stamp
clean:
dh_testdir
dh_testroot
- rm -f build-stamp
- dh_clean
+ rm -f build-stamp install-stamp
+
# Add here commands to clean up after the build process.
+ #-$(MAKE) clean
#-$(MAKE) distclean
+ dh_clean
+
+install: install-stamp
+install-stamp: DH_OPTIONS=
+install-stamp: build-stamp
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp.
+ #$(MAKE) prefix=`pwd`/debian/tmp/usr install
+
+ dh_movefiles
+ touch install-stamp
+
# Build architecture-independent files here.
-binary-indep: build
- dh_testdir -i
- dh_testroot -i
- dh_clean -i
- # Add here commands to install the files into debian/tmp
- #$(MAKE) PREFIX=debian/tmp install
- dh_installdocs -i
- dh_installexamples -i
- dh_installmenu -i
-# dh_installmanpages -i
- dh_installchangelogs -i
- dh_compress -i
- dh_installdebfiles -i
- dh_fixperms -i
- dh_builddeb -i
+# Pass -i to all debhelper commands in this target to reduce clutter.
+binary-indep: DH_OPTIONS="-i"
+binary-indep: build install
+ # Need this version of debhelper for DH_OPTIONS to work.
+ dh_testversion 1.1.17
+ dh_testdir
+ dh_testroot
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+ dh_installinfo
+# dh_undocumented
+ dh_installchangelogs
+ dh_link
+ dh_compress
+ dh_fixperms
+ # You may want to make some executables suid here.
+ dh_suidregister
+ dh_installdeb
+# dh_perl
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
# Build architecture-dependent files here.
-binary-arch: build
- dh_testdir -a
- dh_testroot -a
- dh_clean -a
- # Add here commands to install the files into debian/tmp
- #$(MAKE) PREFIX=debian/tmp install
- dh_installdocs -a
- dh_installexamples -a
- dh_installmenu -a
- dh_installmanpages -a
- dh_installchangelogs -a
- dh_compress -a
- dh_installdebfiles -a
- dh_fixperms -a
- dh_builddeb -a
+# Pass -a to all debhelper commands in this target to reduce clutter.
+binary-indep: DH_OPTIONS="-a"
+binary-arch: build install
+ # Need this version of debhelper for DH_OPTIONS to work.
+ dh_testversion 1.1.17
+ dh_testdir
+ dh_testroot
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+ dh_installinfo
+# dh_undocumented
+ dh_installchangelogs
+ dh_strip
+ dh_link
+ dh_compress
+ dh_fixperms
+ # You may want to make some executables suid here.
+ dh_suidregister
+ dh_installdeb
+# dh_makeshlibs
+# dh_perl
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/examples/rules.multi2 b/examples/rules.multi2
new file mode 100755
index 0000000..30c9b41
--- /dev/null
+++ b/examples/rules.multi2
@@ -0,0 +1,96 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+#
+# This version is for a multibinary package. It also allows you to build any
+# of the binary packages independantly, via binary-<package> targets.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+build: build-stamp
+build-stamp:
+ dh_testdir
+
+ # Add here commands to compile the package.
+ #$(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp install-stamp
+
+ # Add here commands to clean up after the build process.
+ #-$(MAKE) clean
+ #-$(MAKE) distclean
+
+ dh_clean
+
+install: DH_OPTIONS=
+install:
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp.
+ #$(MAKE) prefix=`pwd`/debian/tmp/usr install
+
+ dh_movefiles
+ touch install-stamp
+
+# This single target is used to build all the packages, all at once, or
+# one at a time. So keep in mind: any options passed to commands here will
+# affect _all_ packages. Anything you want to only affect one package
+# should be put in another target, such as the install target.
+binary-common:
+ # Need this version of debhelper for DH_OPTIONS to work.
+ dh_testversion 1.1.17
+ dh_testdir
+ dh_testroot
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+ dh_installinfo
+# dh_undocumented
+ dh_installchangelogs
+ dh_link
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+# dh_makeshlibs
+ dh_installdeb
+# dh_perl
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+# Build architecture independant packages using the common target.
+# (Comment this out if you have none to build.)
+binary-indep: DH_OPTIONS=-i
+binary-arch: build install binary-common
+
+# Build architecture dependant packages using the common target.
+binary-arch: DH_OPTIONS=-a
+binary-arch: build install binary-common
+
+# Any other binary targets build just one binary package at a time.
+binary-%: build install
+ make -f debian/rules binary-common DH_OPTIONS=-p$*
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install