I am setting up a project based on autotools for the first time and I need to build the project for two platform (using two different toolchains).
Currently when I want to build for one tool chain, I restart from scratch because I am not sure to fully understand how it works. (autoconf, configure, make).
But is the autoconf / configure part required each time? If I create two build directories, and call configure from each directory (with different flags for each one), can I just then call make without performing all process?
Thanks
But is the autoconf / configure part required each time? If I create two build directories, and call configure from each directory (with different flags for each one), can I just then call make without performing all process?
Autoconf is for building the (cross-platform) build system. There is no reason to think that running the same version of Autoconf with the same inputs (your configure.ac
and any custom macros bundled with your project, mostly) would yield different outputs. So no, you don't need to run autoconf
separately for each build, and in fact it is the standard Autotools model that you not run autoconf
at each build.
So yes, it is absolutely natural and expected usage to create two build directories, and in each one run configure; make
. Moreover, if indeed you are creating separate build directories instead of building in the source directory, then you will be able to see that configure
writes all its output to the build directory. Thus, in that case, one build cannot interfere with another.