#!/usr/bin/perl =head1 NAME dh_auto_install - automatically runs make install or similar =cut use strict; use warnings; use Debian::Debhelper::Dh_Lib; use Debian::Debhelper::Dh_Buildsystems; use File::Spec; use Cwd; our $VERSION = DH_BUILTIN_VERSION; =head1 SYNOPSIS B [S>] [S>] [S I>] =head1 DESCRIPTION B is a debhelper program that tries to automatically install built files. It does so by running the appropriate command for the build system it detects the package uses. For example, if there's a F and it contains a B target, then this is done by running B (or B, if the environment variable is set). If there is a F or F, it is used. Note that the Ant build system does not support installation, so B will not install files built using Ant. Unless B<--destdir> option is specified, the files are installed into debian/I/ if there is only one binary package. In the multiple binary package case, the files are instead installed into F, and should be moved from there to the appropriate package build directory using L. B is used to tell make where to install the files. If the Makefile was generated by MakeMaker from a F, it will automatically set B too, since such Makefiles need that. This is intended to work for about 90% of packages. If it doesn't work, or tries to use the wrong install target, you're encouraged to skip using B at all, and just run make install manually. =head1 OPTIONS See L> for a list of common build system selection and control options. =over 4 =item B<--destdir=>I Install files into the specified I. If this option is not specified, destination directory is determined automatically as described in the L> section. =item B<--> I Pass I to the program that is run, after the parameters that B usually passes. =back =cut my $destdir; buildsystems_init(options => { "destdir=s" => \$destdir, }); # If destdir is not specified, determine it automatically if (!$destdir) { my @allpackages=getpackages(); if (@allpackages > 1) { $destdir="debian/tmp"; } else { $destdir=tmpdir($dh{MAINPACKAGE}); } } $destdir = File::Spec->rel2abs($destdir, cwd()); if (compat(10)) { # Ensure that all debian/ directories exist install_dir(map { tmpdir($_) } @{$dh{DOPACKAGES}}); } else { install_dir($destdir); } buildsystems_do("install", $destdir); =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut