[Fedora-packaging] Macro %{optflags}

Sergio Belkin sebelk at gmail.com
Fri Sep 17 15:05:54 UTC 2010


2010/9/16 Ralf Corsepius <rc040203 at freenet.de>:
> On 09/16/2010 03:49 PM, Sergio Belkin wrote:
>> 2010/9/15 Ralf Corsepius<rc040203 at freenet.de>:
>>> On 09/15/2010 05:02 PM, Sergio Belkin wrote:
>>>>
>>>> Hi,
>>>>
>>>> Does Makefile flags from the tarball overrides %{optflags} ?
>>>
>>> This question can't be answered.
>>>
>>> %{optflags} and Makefiles actually are entirely unrelated.
>>>
>>> How to communicate %{optflags} to Makefiles can vary largely between
>>> rpm.specs and is part of the job package maintainers are supposed to take
>>> care of.
>>>
>>> Ralf
>>>
>>
>> Well I am really newbie packaging,
> Everybody is a newbie, somewhere ;)
>
>> As rpm command:
>> rpm --eval "%{optflags}"
>> -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
>> -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686
>> -mtune=atom -fasynchronous-unwind-tables
>>
>> but Makefile contains:
>>
>> CXXFLAGS=-ansi  -Wall -Wno-deprecated
>  >
>> So, what of these flags are commited?
> To be able to help, you'd have to provide further details about the
> package you are trying to package, because there are several way to
> communicate %{optflags} to a package's build-system.
>
> E.g.
>
> * Plain simple Makefile:
> Override the make-variable to receive %optflags from the environment at
> make-time:
>
> make CFLAGS="%{optflags}"
>
> * Modern autotools:
> Pass optflags as args at configure-time:
> .../configure CFLAGS="%{optflags}"
>
> * Old autotools:
> Pass from the environment:
> CFLAGS="%{optflags}" .../configure
>
> * Poorly written Makefiles which don't allow overriding from the
> environment:
> Textual substitution before runming make:
>
> sed -i -e "s,^CFLAGS.*,CFLAGS = %{optflags}," Makefile
> make ....
>
> etc. etc.
>
> Also note that the name of the make-variable to take %optflags may vary.
> In most cases it's CFLAGS, in c++-projects it's often CXXFLAGS.
>
>
> Ralf
>
>
>
>
>
>
> --
> packaging mailing list
> packaging at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/packaging
>

Thanks!

The package is a development library in C++. It has a plain Makefile.

I verified and in fact make overrides Makefile flags if they are
explicit, I've tested using:

make lib CXXFLAGS="%{optflags}"

in spec file.

I could see that by the ouput. As a matter of fact, I'd want to use
Makefile flags because optflags use things like "-mtune" ... for
exampel I'm building on a netbook and I don't like that it makes atom
optimizations... doesn't it make sense, does it?

TIA
-- 
--
Sergio Belkin http://www.sergiobelkin.com
Watch More TV http://sebelk.blogspot.com
Sergio Belkin -


More information about the packaging mailing list