Mike,

When duplicate statements appear some sections, only the last statement in the 
section is used.  I think you are seeing that behavior in your example.

In order to get all 3 flags appended, you need to do that in a single statement 
in the section.  If you want to conditionally append DEBUG2 as shown in your 
example, you might consider the following:

!ifdef $(S2)
  MSFT:*_*_*_CC_FLAGS = /D DEBUG1 /D DEBUG2 /D DEBUG3
!else
  MSFT:*_*_*_CC_FLAGS = /D DEBUG1 /D DEBUG3
!endif

Mike

From: Lee mike [mailto:[email protected]]
Sent: Monday, May 06, 2013 6:29 AM
To: Andrew Fish
Cc: [email protected]
Subject: Re: [edk2-buildtools] Re-define element in [BuildOptions]

Hi Andrew,

Sorry for my unclear statement. I am seeing a way to append definitions in the 
same section so that when I write

[BuildOptions]
 MSFT:*_*_*_CC_FLAGS = /D DEBUG1
 MSFT:*_*_*_CC_FLAGS = /D DEBUG2
 MSFT:*_*_*_CC_FLAGS = /D DEBUG3

I need it to behave as
 MSFT:*_*_*_CC_FLAGS = /D DEBUG1 /D DEBUG2 /D DEBUG3

But I found it uses the last one only, which means it treats my code as
 MSFT:*_*_*_CC_FLAGS = /D DEBUG3

My environment is Windows7/VS2008, building edk2/OvmfPkgX64 from 
https://github.com/tianocore/edk2.git
(git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14323)

Thanks.

BR,
Mike


2013/5/6 Andrew Fish <[email protected]<mailto:[email protected]>>

Andrew Fish





On May 4, 2013, at 11:18 PM, Lee mike 
<[email protected]<mailto:[email protected]>> wrote:

> Hi,
>
> I wrote code to .dsc as below:
>
> [BuildOptions]
>   MSFT:*_*_*_CC_FLAGS = /D DEBUG1
>   MSFT:*_*_*_CC_FLAGS = /D DEBUG2
>   MSFT:*_*_*_CC_FLAGS = /D DEBUG3
>
> The output makefile shows that build.exe (or something else in BaseTools) 
> emits DEBUG3 only.
>   CC_FLAGS = /nologo /FAcs /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL 
> /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /D DEBUG3
>
> Invoking build.exe with '-D S2' to the following code will certainly not 
> generate DEBUG2 too.
> [BuildOptions]
>   MSFT:*_*_*_CC_FLAGS = /D DEBUG1
> !ifdef $(S2)
>   MSFT:*_*_*_CC_FLAGS = /D DEBUG2
> !endif
>   MSFT:*_*_*_CC_FLAGS = /D DEBUG3
>
> Any advice?
>
The spec for the DSC file states:
Two types of assignment operators are permitted, the single equal "=" sign is 
used to append the string to the existing definition, while the double equal 
"==" sign is used to override any previous definition, replacing the content 
with just the string.

So it sounds like you are seeing == behavior? What happens when you use ==?

Thanks,

Andrew Fish

>
> BR,
> Mike
>
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite
> It's a free troubleshooting tool designed for production
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://p.sf.net/sfu/appdyn_d2d_ap2_______________________________________________
> edk2-buildtools-devel mailing list
> [email protected]<mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
edk2-buildtools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel

Reply via email to