<p>Because checking for compiler features, without Automake/CMake/Ninja/Bazel with only Makefile and C++ preprocessor is hard and unelegant.</p>
<p>And C++ preprocessor can't be used to make full-compile feature tests. If the compiler supports AVX256, a relatively new instruction set, that doesn't mean the assembler supports it too. There are &quot;fail if can't compile completely&quot;s in the autoconf file.</p>

CC BY-SA 4.0
2020-12-17T08:51:17.947Z
2020-12-17T09:02:32.603Z
2020-12-17T09:02:32.603Z
MCCCS
<p>Why does Bitcoin Core use <a href="https://en.wikipedia.org/wiki/GNU_Autotools" rel="nofollow noreferrer">Autotools</a> instead of checking a Makefile into source?</p>

<bitcoin-core><compiling>
Why Does Bitcoin Core Use Autotools?
justinmoon
# Why Does Bitcoin Core Use Autotools?

(Asked by: username_0 on 2020-12-17)

Why does Bitcoin Core use [Autotools](https://en.wikipedia.org/wiki/GNU_Autotools) instead of checking a Makefile into source?

**Tags:** bitcoin-core, compiling


---

## 1 answers

### Answer by username_1 on 2020-12-17. Score: 5 | Accepted answer

Because checking for compiler features, without Automake/CMake/Ninja/Bazel with only Makefile and C++ preprocessor is hard and unelegant.

And C++ preprocessor can't be used to make full-compile feature tests. If the compiler supports AVX256, a relatively new instruction set, that doesn't mean the assembler supports it too. There are "fail if can't compile completely"s in the autoconf file.


---

