Skip to content
Latchkey

./configure: The Autotools Configure Step

./configure inspects the build environment and writes Makefiles tailored to it, the first step of the classic configure && make && make install flow.

GNU Autotools projects ship a generated ./configure script. It detects the compiler, libraries, and headers, then produces Makefiles. In CI you feed it a prefix and any feature toggles.

What it does

./configure runs a battery of feature tests (does the compiler work, are these headers present, does this function exist) and substitutes the results into Makefile.in to produce Makefiles and a config.h. It fails early if the toolchain is missing.

Common usage

Terminal
./configure --prefix=/usr/local
./configure --prefix="$PWD/stage" --disable-shared --enable-static
./configure --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc
make -j$(nproc) && make install

Options

FlagWhat it does
--prefix=<path>Base install location baked into the Makefiles
--host=<triplet>Target triplet for cross-compilation
--build=<triplet>The machine doing the building
--enable-<feat> / --disable-<feat>Toggle optional features
--with-<pkg> / --without-<pkg>Point at or drop an optional dependency
CC=, CFLAGS=, LDFLAGS=Override the compiler and flags via env-style args

In CI

Install a full toolchain first (build-essential on Debian/Ubuntu). Pass a scratch --prefix so make install needs no root. For cross builds set --host and the matching CC. If ./configure is missing, the project ships only autotools sources; run autoreconf -i first.

Common errors in CI

"configure: error: C compiler cannot create executables" (see config.log) means no working compiler or a broken CC/CFLAGS; install gcc/clang and check the flags. "configure: error: no acceptable C compiler found in $PATH" means no compiler at all. "configure: error: Package requirements (foo) were not met" is a missing pkg-config dependency; install its -dev package. "configure: command not found" means you forgot the ./ prefix or the script is not executable.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →