Hi Maxim,

    I seem to recall Autotools (aka the GNU Build System) being recommended
    as the build system for GNU packages, but can't find such guidance in
    either (info (standards)) or (info (maintain)).  

What's required, in principle, is an executable named "configure"
and various make targets:
https://www.gnu.org/prep/standards/standards.html#Configuration

Although it is most commonly implemented with Autoconf or Automake, as
mentioned there, what's in standards.texi is an interface specification,
not an implementation requirement.

Aside: in practice, the only person I'm aware of who has created an
alternative implementation is Antonio Diaz Diaz, who implemented
configure scripts for his packages (ed, ddrescue, etc.) from
scratch. (And they are super fast compared to Autoconf. :)

    some friction caused by the move of GNU Jami from Autotools to CMake,

I presume their cmake usage does not implement the given specification,
so such "friction" is not surprising. If it did, there would be no
problem.

The reason that rms made that specification in standards.texi was so, in
theory, the GNU system as a whole could be configured in a uniform
way. That's not how reality has developed over the years, but that was
the idea.

However, the above in standards.texi has never been enforced.

    the GNU Build System does not make it easy to leverage the GNU-specific

In the early years of Autoconf and Automake, it was absolutely necessary
to support a wide variety of (nonfree) systems. GNU systems did not
exist. No GNU kernel existed. The Linux kernel barely existed and was
hardly usable. Etc. Every system had its own (proprietary) compiler, its
own make, etc. If the autotools did not support this zoo, they would not
have been useful, or adopted.

By inertia, and a lack of any particular need to support gmake-specific
features, that emphasis on portability has continued to the present day.

    be passed when using a AC_GNU_MAKE macro or something on the

Thanks for the suggestion. Sure, it could be done, if there is a need
for it. In fact, the previous generation of Automake developers had an
idea that Automake 2 would require GNU make (I don't know details,
though it might be described in the source tree or an alternate git
branch somewhere), but nothing has been towards that in many years (and
it's nothing I will ever spend time on). --best, karl.

Reply via email to