Re: Extensions to M4sh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2022-05-04 at 08:17 -0700, Per Bothner wrote:
> On 5/4/22 05:07, Michael Orlitzky wrote:
> > The trade-off you get for writing m4 is that the build system produced
> > by autotools doesn't require you to have autotools installed, and
> > instead uses only a portable subset of standard system tools.
> 
> I think this is a very minor benefit:
> (1) To build a project from source you need to have verious development tools installed.
> The difference between "requisites are make, gcc, yacc, and xxx" vs
> "requisites are make, CMake, gcc, yacc, and xxx" seems pretty minor.

It's not just "CMake" that you need though, it's a new enough version
of CMake that has all the features you use but is also backwards-
compatible with everything else you want to build. ClamAV for example
now requires a version of CMake that many people on LTS distros don't
have.

Granted it's not a huge problem in practice, but it does introduce a
chicken-and-egg problem for end users where there need not be one, and
constitutes a fundamental design flaw in most of the proposed
replacements.


> (2) These days, how often do people build from a source "release"?
> I'm more likely to build from a git clone.  And I believe best practice
> is to not include autotools-generated scripts in the repository,
> but instead add 'autoreconfig -i' as an initial first step.

There are still a lot of users with skill levels between "only uses
binary packages" and "willing to install and use git," and the releases
are easier for them.

Releases avoid those version incompatibilities that affect CMake:
autoconf-2.7x being needed for runstatedir, for example. And when done
right, a project's releases will actually be tested, making them more
reliable than whatever half-baked evolutionary dead-end HEAD points to
today. Finally, using the releases means that the user doesn't need to
know the phrase "autoreconf -fi", which is more important than it
sounds.




[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux