# dpkg manual page - dpkg-buildtree(1)
#
# Copyright © 2023 Guillem Jover <guillem@debian.org>
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

=encoding utf8

=head1 NAME

dpkg-buildtree - helper for build tree operations during package builds

=head1 SYNOPSIS

B<dpkg-buildtree> [I<option>...] [I<command>]

=head1 DESCRIPTION

B<dpkg-buildtree> is a tool to perform common operations on the build tree
for a source package.

This program was introduced in dpkg 1.22.3.

=head1 COMMANDS

=over

=item B<clean>

Removes all artifacts generated during a build by the various dpkg tools,
and pathnames used or controlled by dpkg tools that are safe to clean.
These files are used to track state between package build runs,
and are in many cases internal implementation details the packager should
not be concerned about,
or are staging directories containing build artifacts.

=item B<is-rootless>

Checks whether the build tree can be built with no root privileges
(since dpkg 1.22.12).

This command can be used safely even with versions where the command was not
yet available as the default will then be the historic one where root was
required.

=item B<--help>

Show the usage message and exit.

=item B<--version>

Show the version and exit.

=back

=head1 ENVIRONMENT

=over

=item B<DPKG_COLORS>

Sets the color mode.
The currently accepted values are: B<auto> (default), B<always> and
B<never>.

=item B<DPKG_NLS>

If set, it will be used to decide whether to activate Native Language Support,
also known as internationalization (or i18n) support.
The accepted values are: B<0> and B<1> (default).

=back

=head1 FILES

=head2 Cleaned files

=over

=item F<debian/files>

=item F<debian/files.new>

Files generated by L<dpkg-distaddfile(1)>.

=item F<debian/substvars>

=item F<debian/substvars.new>

Files generated by L<dpkg-shlibdeps(1)>.

=item F<debian/tmp>

Staging directory containing the contents to be used when creating a package.
Both L<dpkg-gencontrol(1)> and L<dpkg-gensymbols(1)> generate files within.

=back

=head1 EXAMPLES

=head2 Usage in debian/rules

You can call B<dpkg-buildtree clean> from the F<debian/rules> B<clean> target,
after having performed other necessary cleanups.

For example for an autoconf-like build system:

=over

  clean:
  	[ ! -f Makefile ] || $(MAKE) distclean
  	dpkg-buildtree clean

=back
