Once you have configured the build, you are ready to compile. The build system downloads all source archives automatically, so an internet connection is required for the first build.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/openwrt/openwrt/llms.txt
Use this file to discover all available pages before exploring further.
Full build
world target, which runs the complete build pipeline: tools → toolchain → kernel → packages → firmware images.
Parallel build
Pass-j to use multiple CPU cores and significantly reduce build time:
Verbose output
AppendV=s to see every compiler invocation:
Capturing a build log
build.log for ERROR: or error: to find the root cause of a failure.
Individual component targets
Packages
You can build, install, or clean a single package without rebuilding everything:<name> with the package’s directory name under package/ or package/feeds/. For example:
Kernel
Toolchain
Build output
Completed firmware images are written to:ath79 target, generic subtarget produces files such as:
.ipk or .apk files) are placed under bin/packages/.
Cleaning
| Command | What it removes |
|---|---|
make clean | Build output: build_dir/, staging_dir/ (except host tools), bin/, build logs |
make dirclean | Everything clean removes plus the host tools and toolchain (staging_dir/host/, staging_dir/toolchain-*/) and the temporary directory |
make distclean | Everything dirclean removes, plus .config*, dl/ (downloaded sources), feeds/, and signing keys |
First-build considerations
The first build downloads a large number of source archives. Expect it to take 1–3 hours on modern hardware, depending on internet speed, CPU speed, and the number of selected packages. Subsequent builds reuse cached build artifacts and are much faster.
Recommended first-build sequence
V=sc shows compiler output (c) and skips duplicate status messages (s), giving a more readable log than V=s alone.