Autotools
Warning
These tools are still experimental (so subject to breaking changes) but with very stable syntax. We encourage the usage of it to be prepared for Conan 2.0.
The Autotools
build helper is a wrapper around the command line invocation of autotools. It will abstract the
calls like ./configure
or make
into Python method calls.
The Autotools
helper can be used like:
from conans import conanfile
from conan.tools.gnu import Autotools
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
def build(self):
autotools = Autotools(self)
autotools.configure()
autotools.make()
It will read the conanbuild.conf
file generated by the AutotoolsToolchain
to know read the arguments for calling the configure and make scripts:
configure_args: Arguments to call the
configure
script.make_args: Arguments to call the
make
script.
Methods
constructor
def __init__(self, conanfile, namespace=None):
conanfile
: the current recipe object. Always useself
.namespace
: this argument avoids collisions when you have multiple toolchain calls in the same recipe. By setting this argument, the conanbuild.conf file used to pass information to the toolchain will be named as: <namespace>_conanbuild.conf. The default value isNone
meaning that the name of the generated file is conanbuild.conf. This namespace must be also set with the same value in the constructor of the AutotoolsToolchain so that it reads the information from the proper file.
configure(self, build_script_folder=None, args=None):
def configure(self):
Call the configure script.
build_script_folder
(Optional, Defaulted toNone
): Subfolder where the configure script is located.If
None
,conanfile.source_folder
will be used.
- args (Optional, Defaulted to
None
): List of arguments to use for the configure
call.
- args (Optional, Defaulted to
autoreconf(self, args=None):
def autoreconf(self, target=None)
Call the autoreconf
program.
- Parameters:
target (Optional, Defaulted to
None
): Choose which target to build. This allows building of e.g., docs, shared libraries or install for some AutoTools projects.- args (Optional, Defaulted to
None
): List of arguments to use for the autoreconf
call.
- args (Optional, Defaulted to
make(self, target=None, args=None):
def make(self, target=None)
Call the make
program.
- Parameters:
target (Optional, Defaulted to
None
): Choose which target to build. This allows building of e.g., docs, shared libraries or install for some AutoTools projects.args (Optional, Defaulted to
None
): List of arguments to use for themake
call. By default an argumentDESTDIR=self.package_folder
is added to the call if the passed value isNone
.
install(self, args=None):
def install(self)
This is just an “alias” of self.make(target="install")