[Build-common-hackers] CFLAGS_$(flavor)

Jonas Smedegaard dr at jones.dk
Fri Dec 24 04:01:56 UTC 2010


On Thu, Dec 23, 2010 at 11:41:36PM +0000, Emilio Pozuelo Monfort wrote:
>On 23/12/10 22:58, Emilio Pozuelo Monfort wrote:
>>On 22/12/10 17:58, Jonas Smedegaard wrote:
>>>On Sun, Dec 19, 2010 at 04:15:35AM +0100, Jonas Smedegaard wrote:
>>>>On Sun, Dec 19, 2010 at 01:47:48AM +0000, Emilio Pozuelo Monfort 
>>>>wrote:
>>>>>- Would be useful to be able to specify CFLAGS as CFLAGS_$(flavor), 
>>>>>the same way as we do with DEB_CONFIGURE_FLAGS_$(flavor). Probably 
>>>>>other variables like LDFLAGS, etc.
>>>>
>>>>Yes. I'll look into that.
>>>
>>>Hmm - did you try already? It might actually accidentally work, due 
>>>to per-flavor and per-package variables being resolved the same way.
>>
>>I tried CFLAGS_udeb and it didn't work. I haven't tried CFLAGS_$(udeb) 
>>(where $(udeb) is libvte9-udeb), but I don't see how that would work 
>>since CFLAGS are for the build which is per-flavor.
>
>I have just seen what you mean, CFLAGS_$(cdbs_curpkg) in 
>makefile-vars.mk.in:
>
># Derived classes that supply the flags some other way (e.g., configure).
># should set this variable to empty.
>DEB_MAKE_EXTRA_ARGS ?= CFLAGS="$(or 
>$(CFLAGS_$(cdbs_curpkg)),$(CFLAGS))" CXXFLAGS="$(or 
>$(CXXFLAGS_$(cdbs_curpkg)),$(CXXFLAGS))" CPPFLAGS="$(or 
>$(CPPFLAGS_$(cdbs_curpkg)),$(CPPFLAGS))" LDFLAGS="$(or 
>$(LDFLAGS_$(cdbs_curpkg)),$(LDFLAGS))" $(DEB_MAKE_PARALLEL)
>
>They are overriden in autotools.mk.in though:
>
># Overriden from makefile-vars.mk.  We pass CFLAGS and friends to
># ./configure, so no need to pass them to make.
># FIXME: Restructure to allow early override
>DEB_MAKE_EXTRA_ARGS = $(DEB_MAKE_PARALLEL)
>
>Then it just sets them to CFLAGS in autotools-vars.mk.in:
>
>DEB_CONFIGURE_SCRIPT_ENV ?= $(call cdbs_set_nondefaultvars,CC CXX) 
>CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" 
>LDFLAGS="$(LDFLAGS)"
>
>It just sets it to $(CFLAGS), without looking at 
>$(CFLAGS_$(cdbs_curpkg)), that's why it doesn't work for me, but 
>doing the CFLAGS = $(if ...) works.

Ahh.  Thanks for the analysis.  CDBS sure is getting convoluted these 
days :-P



>I don't understand how CFLAGS passed to ./configure could relate to 
>$(cdbs_curpkg). As I see it, the ./configure (and make) calls (either 
>in a normal package doing just one call, or with multiple flavors) are 
>completely orthogonal to the packages. Can you explain how they relate 
>and how this works?

$(cdbs_curpkg) expands to "string after slash of build target" which is 
also used for flavored configure and build targets:

configure/yourpackage/udeb::
         CFLAGS="$(CFLAGS_$(string-after-"…ackage/udeb"))" ./configure

...which should expand to...

configure/yourpackage/udeb::
         CFLAGS="$(CFLAGS_udeb)" ./configure


But I just rewrote CFLAGS handling earlier today, so maybe it broke in 
new ways ;-)

Have a look at the files in git.

I will too - and see if I can sneak in support for per-flavor CFLAG 
while still support that new non-intrusive CFLAGS handling by default.


  - Jonas

-- 
  * Jonas Smedegaard - idealist & Internet-arkitekt
  * Tlf.: +45 40843136  Website: http://dr.jones.dk/

  [x] quote me freely  [ ] ask before reusing  [ ] keep private
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/build-common-hackers/attachments/20101224/535ec598/attachment.pgp>


More information about the Build-common-hackers mailing list