Re: Using LS/LE

Alejandro Colomar <[email protected]>
Newsgroups gmane.comp.printing.groff.general,gmane.linux.man
Message-ID <aowkO-r86nquaTh8@devuan>
Hi Collin,

> Date: 2026-08-23 19:01:06-0700
> From: Collin Funk <[email protected]>
>
> "G. Branden Robinson" <[email protected]> writes:
> 
> >> Interesting.  The day someone complains again about my makefiles, I'll
> >> point to this data.  I checked a few other projects out of curiosity:
> >> 
> >> 	alx@devuan:~/src/shadow/shadow/master$ find | grep '\.am$' | grep -v gnulib | sort | xargs wc -c | tail -n1
> >> 	31885 total
> >> 	alx@devuan:~/src/gnu/glibc/master$ find | grep '\.am$' | grep -v gnulib | sort | xargs wc -c | tail -n1
> >> 	0
> >> 	alx@devuan:~/src/gnu/gcc/master$ find | grep '\.am$' | grep -v gnulib | sort | xargs wc -c | tail -n1
> >> 	1527474 total
> >> 	alx@devuan:~/src/gnu/coreutils/master$ find | grep '\.am$' | grep -v gnulib | sort | xargs wc -c | tail -n1
> >> 	8171 ./Makefile.am
> >> 	alx@devuan:~/src/gnu/findutils/master$ find | grep '\.am$' | grep -v gnulib | sort | xargs wc -c | tail -n1
> >> 	35765 total
> >> 
> >> Does glibc not use automake?  What do they use?
> >
> > Hand-written Makefiles, apparently! For a while I followed their Git
> > commits, but I'm well behind on them.  glibc and GCC saturated my
> > ability to keep up with the projects I track.
> 
> Yes, glibc uses GNU make extensively. It is quite difficult to read if
> you do not understand GNU make extensions, compared to Automake which is
> for the most part just declaring targets and sources.

'for the most part' of the text written.  Then you have to understand
everything that isn't written, which is more difficult than grepping in
the GNU Make manual for a few extensions.

You don't know '?:=' in GNU Make, then grep for '?:=' in the GNU Make
manual.  Simple.

You don't know why/how Automake is doing something?  Good luck guessing
why.

> It also requires
> more upkeep to make sure things work correctly, e.g., parallelism.

This is not true.  The shadow-utils project (which uses autotools) has
bugs open for years because `make dist -j4` doesn't work (and it hasn't
been fixed yet).

The Linux man-pages build system works fine with -j128.  Ignoring the
initial cost in writing the build system, maintenance is quite cheap.

And if a bug ever shows up in the GNU Make code, I'm confident it'll
take a few minutes to debug it and fix it.

The parallelism problem in makefiles comes from incorrect use of
makefiles.  That is, use of recursive make(1).  But recursive make(1) is
discouraged.  If you have a single make(1) process controlling
everything, it runs smoothly.

> So, I don't think pointing out that Automake files have a similar file
> size to regular Makefiles is a good comparison.

Given the same size, Automake is less readable, because it has more
implicit assumptions.  In GNU Make, there are very few assumptions, and
I bring that to zero by disabling the builtins.  If you can't read the
grammar, it's a matter of reading the documentation.  GNU Make has
pretty good documentation.


Have a lovely day!
Alex

> 
> Collin

-- 
<https://www.alejandro-colomar.es>
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEES7Jt9u9GbmlWADAi64mZXMKQwqkFAmqMJi8ACgkQ64mZXMKQ
wqkapw//SbH5waTlJnMFRhMknrWO2k0w5V6/Oea/RmfQ6FHJc2QEfdYhGcZxtGmT
oFZnOOL1EH726akSsAm015LhQV6zQ014hp1MFIqbMsn6Rf0LxgXOtghQ3zUwFaKa
hnt+UKa0oRI7kONXl3ym4Oiu/6DIqSOJ2zx6JU8VRAw9A0JkyrgDsC026cv0ZdWj
xfFl2aTd10gPoEHu+mRrf5U9PG+u5DLbaC9iXj+cXL8t30I34X25wVJhPyUws82q
WYFSyy9Sv2t4o6p05H3tVMD5S3ITGiWMZvAE0ulAFxueQdxeG/E9hPHOzHinedSq
nzRYY+D2zua8Z23xvoV/03pWv5I+X32L+tHzts41i0eeRSFqly6e0pvjZziXAwdt
jmAKyj16MT0jKCFyOB9L7W2knmh7uubfbJFAL79sdqdWvL5ey94jnickckFDVlJU
liCqVjpFTL9yr/AtrIO1dcIGJ4Jqx11JT55MF17veNt/9ozRJPErIBcFmldmwcpC
gZ6DN9sDCwTkv7/I29EeTA/7opj/l5tf6Z2Gt260d0iZfw0zp1Sed15SyRPs7szc
UehjWs0oNpA05umktchNML9mgHq9YzAV3MPyBQ5SHtbb0to4Jw3qa09p1+kJWbGy
v1NOTtsjib+dKGzJxhGr9GsYLdPFCfPvlgjmL4p6WrHuA4DoOcQ=
=tIB7
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.