automake
[Top][All Lists]
Advanced

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

Removal of INCLUDES in favour of AM_CPPFLAGS


From: Peter Rosin
Subject: Removal of INCLUDES in favour of AM_CPPFLAGS
Date: Fri, 01 Feb 2013 09:45:58 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Thunderbird/17.0

Hi!

>From NEWS in the master branch:

  - Support for the long-obsolete $(INCLUDES) variable has
    been finally removed, in favour of the modern equivalent
    $(AM_CPPFLAGS).



Why is this removal important? It forces changes to a hundred
(or so) Makefiles in *one* project I'm involved with. The fact
that AM_CPPFLAGS is AC_SUBSTed by the project and used mostly
for "global" flags and INCLUDES mostly for "local" stuff makes
for a pretty useful separation. But in quite a few of those
Makefiles, AM_CPPFLAGS (as AC_SUBSTed by configure) is augmented
via "AM_CPPFLAGS +=" constructs. I'm not at all confident that
I will be able to convert all of these uses without errors due
to switched include ordering or omissions or whatever. Further,
I do not have access to all relevant systems, so I'm not in a
position to check for errors. If it was 5-10 Makefiles, I would
trust myself to do it correctly, but on this scale, doing the
conversion without error would just be pure luck.

Why have I not done the conversion a lot earlier, when INCLUDES
have been deprecated since forever? Sure, there has been a
warning in the docs, since about forever, but since the support
wasn't removed yesterday, why would it be removed today?
I have not seen any warning in my project, until yesterday when
I forced a bootstrap with automake 1.12.5. You see, there is
some code that ensures that a project keeps bootstrapping with
the same version if it is rebootstrapped (at least on my
distribution), so even if I have had 1.12 installed for a few
months, it hasn't actually been used for this project, and I
haven't noticed/cared.

Buttom line is, even if stuff has been deprecated for ages,
people like me might not have noticed, even if they have been
using /bin/automake (which is a wrapper over here) on a weekly
basis. Even if I had noticed, changing a bunch of constructs
with INCLUDES into only using AM_CPPFLAGS isn't the most
rewarding or interesting thing to do, so I would probably not
have done it anyway. I would only risk stupid regressions.

When I force automake 1.12, everything keeps working, at least
as far as I can tell. But if support for INCLUDES is removed,
it will break, needless to say.

Also, this quote from commit message removing INCLUDES support:

        "So, by removing it in Automake 1.14, we will simplify
        the transition path for people that want to switch to
        Automake-NG."

is just brain-damage and completely ass-backwards, if you ask me.
Damnit, if there is a goal to make it easy to switch, that should
be the sole responsibility of Automake-NG. Especially for trivial
stuff like this. Period.

There is also a claim in some commit message, that the *code* has
warned about INCLUDES being obsolete since 2002 (which would be
automake 1.7, I suppose), but then I ask why Automake 1.9.x and
1.11.x isn't warning me about it? Oh right, because -Wobsolete
wasn't the default back then, but I guess that's not important.
(Did you catch the sarcastic tone?) Anyway, claiming that the
code has warned about it for more than a decade is a *huge*
misrepresentation. A saner statement is that Automake 1.11.6 as
of *2012* did not warn about INCLUDES.

Stop this insanely aggressive feature removal crap.

Cheers,
Peter



reply via email to

[Prev in Thread] Current Thread [Next in Thread]