mirror of
https://github.com/google/brotli.git
synced 2026-07-08 17:56:58 +00:00
Why no autotools anymore? #513
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @mpsuzuki on GitHub (Jul 31, 2024).
On 2023-Jul-10, autotools are dropped by a commit. It seems that the current developers suggest to use CMake.
It is hard to have working CMake on some ancient platforms (without sufficiently modern C++ compilers), although it seems that C sources of Brotli are still able to be compiled with such platforms.
I wish if autotools are restored, even if it is only c/ subdirectory. What was the critical reason to drop autotools?
@ryandesign commented on GitHub (Aug 4, 2024):
One problem caused by requiring CMake is that it can cause a dependency cycle. CMake can optionally use curl and in some package managers like MacPorts this functionality is enabled. Curl can optionally use brotli and since this seemed to be desirable it is also enabled in MacPorts. Brotli depends on CMake, and thus there exists a dependency cycle that cannot be satisfied. In MacPorts this cycle is broken by offering a second CMake port with only minimal functionality (e.g. no curl support) and brotli is made to use that, but users have complained of the need to have two CMakes. In my view it would be preferable for MacPorts to build brotli with autotools to avoid the need for the second CMake, but now that option is no longer available to us.
@cooljeanius commented on GitHub (Aug 5, 2024):
Yeah, autotools has the advantage that its generated build system doesn't require any external dependencies (outside of basic system utilities like a working shell) in order to work.
@mpsuzuki commented on GitHub (Aug 10, 2024):
I made a repository whose c subdirectory has autotools to build C implementation. I hope if it could be better than nothing for the people having circular dependency problem of C or C++ programs.