automake
[Top][All Lists]
Advanced

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

Re: automake's Per-Object Flags Emulation --- CFLAGS override or just pr


From: Michele Martone
Subject: Re: automake's Per-Object Flags Emulation --- CFLAGS override or just prepend ?
Date: Sat, 9 Mar 2013 18:26:16 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On address@hidden:58, Stefano Lattarini wrote:
> On 03/09/2013 04:43 PM, Michele Martone wrote:
> > Hi,
> > 
> > I'm using the "Per-Object Flags Emulation" functionality of automake
> > to build a single library (.a) file from two .a files, each made of .o
> > files compiled with different flags.
> > 
> > In order to apply the example of
> >  
> > http://www.gnu.org/software/automake/manual/automake.html#Per_002dObject-Flags
> >  
> > in my Makefile.am, I declare something similar to
> >   libfoo_a_CFLAGS = -some -other -flags
> > expecting that libfoo.a will be compiled with -some -other -flags 
> > rather than CFLAGS.
> > 
> > However in the resulting Makefile I see that something like the
> > following:
> >  libfoo_a-foo.o: foo.c
> >          $(CC) ... $(libfoo_a_CFLAGS) $(CFLAGS) ...
> > is being generated instead.
> > In other words, CFLAGS is not being replaced by libfoo_a_CFLAGS: only
> > prepended:
> >
> This is correct: CFLAGS is a user-reserved variable, so it should always
> be honoured and should never be overridden by Automake rules (nor by
> package developers).  The correct developer-reserved variable to specify
> extra C compilation flags is AM_CFLAGS -- and *that* is being correctly
> overwritten.

Thanks Stefano -- makes sense to me, although this was not clear from the
manual.
(maybe it needs a correction ? I would suggest using 
 "will be compiled using also" instead of "will be compiled using").

But, is there a clean way for preventing CFLAGS being used for some
library files ?

In a way to get in Makefile rules like:
 libfoo_a-foo.o: foo.c
         $(CC) ... $(libfoo_a_CFLAGS)  ...
instead of:
 libfoo_a-foo.o: foo.c
         $(CC) ... $(libfoo_a_CFLAGS) $(CFLAGS) ...

or at least to get a custom "AM_POST_CFLAGS" appended *after* CFLAGS:
 libfoo_a-foo.o: foo.c
         $(CC) ... $(libfoo_a_CFLAGS) $(CFLAGS) $(AM_POST_CFLAGS) ...

?

In such a way, I (developer) may use AM_POST_CFLAGS to introduce some 
flags that may invalidate some undesired CFLAGS (e.g.: invalidate 
loop unrolling flags that may be implied by CFLAGS).

> ...



reply via email to

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