[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Desired feature
Re: Desired feature
Thu, 04 Dec 2003 09:12:23 -0800
Bob Friesenhahn wrote:
> On Thu, 4 Dec 2003, Gary V. Vaughan wrote:
> > I would be happy if I could do this:
> I tend to disagree with you on this point. I will agree if the system
> has three levels plus a way to provide overrides......
> Automake should support
> o inheritance of standard configure flags
> o flags common across all targets
> o additional flags common to a grouping of targets
> o additional flags specific to just one target
> o a way to override common flags at any level.
The best is to be able to easily express which sets of command
options should be applied to various build rules, beit for compile,
link or any other build rule. Part of the problem is that the
expressiveness of pseudo-make variable names is rather constrained.
Anyway, the "add to higher level flag lists" versus "replace higher
level flag lists" can be solved most easily by always replacing,
but allowing the replacement to specify which of the higher level
flags to incorporate. e.g.
module_group_tool_FLAGS = $(tool_FLAGS) -x YYY
would say to ignore $(group_tool_FLAGS) when applying the "tool"
tool to the "module" module for the "group" thing. For the
C compiler, you might spell "tool_FLAGS" as "CFLAGS" for historical
purposes and spell as AM_CFLAGS at the top. So, for another example:
mumble_CFLAGS = $(AM_CFLAGS) -specific-for-mumble-modules
for specifying all the "mumble" module compiles that do not have
a $(mod_mumble_CFLAGS) set. Please, forget the "noinst_LTLIBRARIES_LDFLAGS"
stuff -- it is too obtuse for the non-automake junkies. Me. :-)
Just use mumble_LDFLAGS, stumble_LDFLAGS and grumble_LDFLAGS. If
the mumble, stumble and grumble libraries happen to be convenience
libraries, then great. If you want them to be the same, then set
them all to $(WHATEVER) and tell your clients that adding
``WHATEVER=else'' on the make line will change LD flags for the
mumble, stumble and grumble libraries.
The real deal is that the scheme needs an extremely high degree of
consistency between various build tools and it needs to be as simple
to use as absolutely possible. Automake is already too complicated. :)
Cheers - Bruce