Why no autotools anymore? #513

Open
opened 2026-01-29 20:44:59 +00:00 by claunia · 3 comments
Owner

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?

Originally created by @mpsuzuki on GitHub (Jul 31, 2024). On 2023-Jul-10, autotools are dropped by a [commit](https://github.com/google/brotli/commit/d1fadddc940a23de3fad34c02879d7cfa6f86460). 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?
Author
Owner

@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.

@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](https://trac.macports.org/ticket/65069) to avoid the need for the second CMake, but now that option is no longer available to us.
Author
Owner

@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.

@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.
Author
Owner

@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.

@mpsuzuki commented on GitHub (Aug 10, 2024): I made [a repository whose c subdirectory has autotools](https://github.com/mpsuzuki/brotli-c-autotool) 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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/brotli#513