The following list of targets is not exhaustive (e.g. the detailed clean-*
targets are omitted).
Instead the list is focused on feature-oriented targets.
See make help
for a full list of targets available for your specific project configuration.
clean
: remove built filesdist
: build distribution targets (e.g. a Python or deb
package)dist-deb
: build deb
packagesdist-python
: build Python packagesdjango-migrate
: create and apply Django migrationsdjango-translate
: translate a Django projecthelp
: show available Makefile
targetsinit-deb
: populate the debian/
directory with example contentinstall
: install the projectinstall-python
: install the Python packagelint
: run all linter programs (check for style and other issues)lint-deb
: check the style of the deb
packageslint-python
: check the style of Python fileslint-python-black
: check the style of Python files with black
lint-python-flake8
: check the style of Python files with flake8
lint-shell
: check the style of shell filesrelease-major
: increase the version to the next major releaserelease-minor
: increase the version to the next minor releaserelease-patch
: increase the version to the next patch releaserelease-push
: push git
tags to the remote repositoryrelease-tar
: create a release tarballrelease-tar-sign
: create a release tarball and a hash checksum filerelease-undo
: remove the current release commitreport
: create a code coverage reportstyle
: apply formatting rules (e.g. black
for Python code)style-python
: apply formatting rules for Python codetags
: create a ctags
filetest
: run teststest-python
: run Python-based testsupload
: upload distribution files (e.g. Python or deb
packages)upload-deb
: upload deb
packages to a repositoryupload-python
: upload Python packages to a pypi-like repositoryMakefile
DISABLE_*
) are interpreted as true for the value 1
Location of the activate
script used for entering a virtualenv
context for Python projects.
Default: bin/activate
below the virtualenv
Arguments to be used when executing black.
Default: empty
Command to be used for executing black.
Default: black
List of files or directories to be checked by black
.
Project files or directories should be added manually.
Default: setup.py
Location of a bumpversion configuration file.
Default: .bumpversion.cfg
List of files which are expected to change during a release (i.e. all files containing the current version string). This automatically generated list of filenames rarely needs to be overwritten.
Default: automatically assembled list of related files
Regular expression used by bumpversion for parsing a release string.
Default: (?P<major>\d+)\.(?P<minor>\d+)(?:\.(?P<patch>\d+))?
Browser name to be used for automatically opening html-based coverage reports. Set to an empty value in order to prevent the browser from being started.
Default: xdg-open
Location of the file containing the raw version string of the latest release.
Default: VERSION
Location of the dput
configuration file used for uploading deb
files.
Default: ~/.dput.cf
Override the default unstable
release distribution name.
Set to an empty value in order to fall back to debchange
's default behavior (which is sadly
unpredictable for Ubuntu-derived systems).
Default: unstable
Command to be used for uploading deb
packages to a repository.
Default: dput
Directories which are not sourced from additional git repositories (git submodules
).
These directories require special treatment when building a deb
package.
Default: empty
Command to be used for building deb
packages.
This variable is commonly overwritten in CI contexts in order to skip gpg-based signatures
(e.g. DEBIAN_BUILDPACKAGE_COMMAND = dpkg-buildpackage --unsigned-source --unsigned-changes
).
Default: dpkg-buildpackage
Hostname for uploading deb
package files (via upload-deb
).
This value must be overwritten, if the upload feature is needed.
Default: custom
Target directory for make install
.
Default: root
Directory to be used as a default location for files to be built.
Default: build
Target directory for deb
packages being built.
Default: build/debian
Target directory for storing built deb
files.
The files in this directory are simplified (lacking the version number) in order to provide
predictable filenames.
Default: build/debian/export
Target directory for locales manged in Django projects.
Default: locale
Target directory for files being built by pypi2deb.
Default: build/pypi2deb
Target directory for storing built Python packages.
Default: build/python-lib
Target directory for html-based coverage report.
Default: build/coverage-html
Location of the directory containing the setup.py
for a Python package.
Default: .
Target directory for storing release archives.
Default: .
Do not create a virtualenv
for the project (e.g. below build/
).
By default a virtualenv
is used, if a requirements.txt
file is found.
Default: 0
Disable flake8
for the lint-python
target (enabled by default).
Default: 0
Disable Python-based tests.
Default: 0
Any non-empty value prevents shellcheck from being used.
Default: 0
List of locale names (e.g. de fr
) to be compiled.
The locales do not need to be specified, if they were compiled at least once.
In this case the set of previously built locales is used again.
Default: determined automatically, if locales already exist
Enable black --check
for the lint-python
target.
black
is disabled by default, since its --check
is not guaranteed to be stable
(not even with a given --target-version
).
You should enable it only, if you enforce a specific version of black
to be used.
Default: 0
Command for executing flake8 checks.
Default: either flake8
(if it exists) or python3 -m flake8
List of files or directories to be checked by flake8
.
Project files or directories should be added manually.
Default: setup.py
Arguments for the lintian tool used by lint-deb
.
Default: empty
Force Python features to be enabled, even if no setup.py
was found
(e.g. for virtualenv
support).
Default: empty
Configure make
's
output synchronization
in case of parallel execution of multiple jobs (e.g. if multiple CPU cores are available).
See the FAQ ("Running a single target in single-job mode") for hints regarding
interactive make
targets (e.g. running a local development webserver).
Default: line
Number of make
jobs to be executed in parallel.
Default: number of CPU cores
Command to be used for executing an editor for maintaining a gettext translation file ("PO file").
Set to an empty value, if you do not want to run the PO editor automatically during the
django-translate
target.
Default: virtaal
or poedit
(if one of them is found)
The project name is used for the name of files created by makefilet
(e.g. release archives).
Default: name of the directory containing the Makefile
Names of pypi packages to be used for building simple deb
packages.
Default: empty
Package name prefix to be used for packages generated via pypi2deb
.
Default: python3
Target for uploading Python packages.
Default: https://pypi.python.org/pypi
Python executable to be used.
Default: python3
Build system to be used for various operations in a Python project.
Options: setuptools
/ hatchling
/ poetry
Default: automatically determined based on the presence of PYTHON_SETUP_FILE
or the content of
PYTHON_PYPROJECT_FILE
Procedure for verifying formatting issues.
Options: hatch
/ generic
Default: automatically determined based on the content of PYTHON_PYPROJECT_FILE
PEP-0518 defines the content of this project description file.
Default: ./pyproject.toml
Location of the setup.py
-like file for a Python project.
Default: ./setup.py
Procedure for applying automated formatting rules issues.
Options: hatch
/ generic
Default: automatically determined based on the content of PYTHON_PYPROJECT_FILE
Arguments to be used when starting Python-based tests.
Default: -m unittest discover
or manage.py test
(for Django projects)
Runner to be used for executing tests in a Python project.
Options: tox
/ hatch
/ poetry
/ django
/ generic
Default: automatically determined based on the presence of PYTHON_TOX_FILE
, the content of
PYTHON_PYPROJECT_FILE
or other properties.
Location of the tox.ini
file to be used for a running tests in a Python project.
Default: ./tox.ini
Command to be executed for running tests in a poetry
-based Python project.
Default: pytest
Create a virtualenv
for the project (e.g. below build/
) and use it for most Python-based
operations.
This setting replaces the deprecated setting DISABLE_CUSTOM_VIRTUALENV
.
Set PYTHON_VIRTUALENV_ENABLE = 0
in order to disable virtual environments
(until 'DISABLE_CUSTOM_VIRTUALENV' is removed).
Default: empty
Compression to be used for the release tarball.
Options: bzip2
/ gzip
/ xz
/ zstd
Default: gzip
Hash function to be used for generating the hash for a release tarball. The name is interpreted as an executable as well as a filename extension for the signature file.
Default: sha256sum
Arguments for shellcheck.
Default: -x
Names of files to be checked via shellcheck.
Default: all files below SHELL_FILES_DIRECTORIES
containing a shell-like shebang
Names of files to be interpreted as bash
scripts by
shellcheck.
Default: automatically determined based on SHELL_FILES_ALL
Names of files to be interpreted as dash
scripts by
shellcheck.
Default: automatically determined based on SHELL_FILES_ALL
Directory containing shell scripts, which should be scanned via shellcheck.
Default: .
Set this variable in order to use a specific GPG key for signing the release tarball
(e.g. make release-tar-sign SIGNATURE_EMAIL=author@example.org
).
The local default GPG key is used, if the variable is empty.
Default: empty
Target filename to be used for storing Ctags data.
Default: ./tags
Directories containing source files to be parsed for building a ctags
file.
Default: src
(if it exists)
Arguments to be used when creating a virtualenv
.
Default: empty
List of Python packages which are required for creating a virtualenv
.
A helpful error message is emitted, if any of these packages are missing.
Default: venv wheel
Location of a requirements
file for Python dependencies.
Default: requirements.txt