Skip to content
Latchkey

Make "Nothing to be done for 'all'" in CI

make believes there is nothing to build for the requested target. Either it is running in the wrong directory, the tree was never configured/generated, or the targets are genuinely up to date - but in CI it usually means the build never actually ran.

What this error means

A build step prints "make: Nothing to be done for 'all'" and exits 0, yet no binaries appear and later steps fail because the artifacts are missing. The "success" is misleading.

make output
make: Nothing to be done for 'all'.

Common causes

Running make in the wrong directory

make found a Makefile (or none, falling back) whose all target has no prerequisites here - often because the real build lives in a subdirectory or a separate build tree.

Tree not configured / generator not run

For CMake/autotools projects, make must run in the generated build directory. Running it in the source root before configuring leaves nothing wired up.

How to fix it

Configure, then build the build directory

Generate the build tree first and run make (or cmake --build) against it.

Terminal
cmake -S . -B build
cmake --build build        # not "make" in the source root

Run make in the correct directory or target

  1. Confirm where the real Makefile/build tree is and cd there (or use make -C build).
  2. Name the actual target if all is empty (e.g. make app).
  3. Force a clean rebuild to confirm the build wiring with make clean && make.

How to prevent it

  • Build via cmake --build <dir> so the build directory is unambiguous.
  • Run make -C <build-dir> rather than relying on the current directory.
  • Assert expected artifacts exist after the build step to catch silent no-ops.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →