public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Liming" <liming.gao@intel.com>
To: "peter.kirmeier@ts.fujitsu.com" <peter.kirmeier@ts.fujitsu.com>,
	"afish@apple.com" <afish@apple.com>,
	"Zhu, Yonghong" <yonghong.zhu@intel.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@ml01.01.org>
Subject: Re: $ escape sequence at build_rule.txt
Date: Wed, 14 Dec 2016 07:06:12 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14D6A4D37@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <45426b0015bc4f2c859280bc926c78ef@R01UKEXCASM124.r01.fujitsu.local>

Peter:
  Thanks for your report this issue. Could you report it in bugzilla (bugzilla.tianocore.org)? We will follow up. 
 
Thanks
Liming
> -----Original Message-----
> From: peter.kirmeier@ts.fujitsu.com [mailto:peter.kirmeier@ts.fujitsu.com]
> Sent: Wednesday, December 14, 2016 3:03 PM
> To: afish@apple.com; Zhu, Yonghong <yonghong.zhu@intel.com>; Gao,
> Liming <liming.gao@intel.com>
> Cc: edk2-devel@lists.01.org <edk2-devel@ml01.01.org>
> Subject: RE: [edk2] $ escape sequence at build_rule.txt
> 
> Hi Andrew,
> 
> in the meantime I will work around this issue by using a script file as AWK
> input, so the command is not part of build_rules.txt.
> Thanks for your help.
> 
> Dear Yonghong, Liming,
> 
> first I thought that my issue came by myself (not knowing how to escape the
> dollar sign at build_rules.txt).
> But now I think this is a real issue of the build tools and that build_rules.txt
> doesn't have the capability of escaping the $ sign.
> Therefore I hope that you could fix the tools accordingly.
> For example, by adding an "escape sequence" for the $ sign (or at least by
> adding a predefined macro like "$(DOLLAR)" which expands to "$").
> 
> Thanks,
>   Peter
> 
> -----Original Message-----
> From: afish@apple.com [mailto:afish@apple.com]
> Sent: Tuesday, December 13, 2016 12:26 AM
> To: Peter Kirmeier
> Cc: Kirmeier, Peter; edk2-devel@lists.01.org
> Subject: Re: [edk2] $ escape sequence at build_rule.txt
> 
> 
> > On Dec 12, 2016, at 1:49 PM, Peter Kirmeier <topeterk@freenet.de> wrote:
> >
> > Hi Andrew,
> >
> > the line I wrote first..
> >    "$(TOOLS_DIR)\gawk.exe" "NF{gsub(/ *\\$$/,\"\"); print}" infile.in
> > > outfile.out .. failed with this error message..
> >    makefile(527) : fatal error U1001: Syntaxfehler: ung³ltiges Zeichen "/"
> > in Makro
> >       (means syntax error due to invalid character "/" in macro) ..and
> > brought this result at the makefile:
> >    "$(TOOLS_DIR)\gawk.exe" "NF{gsub(/ *\\$/,\"\"); print}" infile.in >
> > outfile.out
> >
> 
> Peter,
> 
> You can also looks at the makefile (GNUmakefile) produced by the build as
> they will live in the Build/ output directories.
> 
> > Also with this line..
> >    "$(TOOLS_DIR)\gawk.exe" "NF{gsub(/ *\\$$$$/,\"\"); print}"
> > infile.in > outfile.out .. I get exactly the same error and output
> > (multiple dollars are stripped down to a single one)
> >
> > Tried to get some more details of how the macros work by looking at
> > python scripts.
> > All I see is that only fixed macros are supported like ${s_base} or
> > $(OUTPUT_DIR).
> > I couldn't find a way to actually espace the $(xx) sequence at all.
> >
> > Here are some more tries to figure out how the $ is processed:
> >
> > $() fails because no macro name is set but prints $() into the
> > makefile,
> > $($) fails because second $ is unknown and prints $($) into the
> > makefile, ${} fails because { is no valid character but prints ${}
> > into the makefile, $ or $$ or $$$ or $$$$ .. fails because next
> > character "/" invalid and prints a single $ into the makefile.
> >
> > It seems there is one exception that multiple $ signs will not be
> > printed
> > 1:1 into the makefile.
> > All other tries were printed correctly into the makefile.
> > So if $$ would be printed 1:1, too, it should work as I expected.
> > Unfortunately I don't get $$ with anyone of them.
> >
> > Guess there is no support for any escape sequence yet, right?
> 
> Sorry I was just taking a guess. It looks like an issue in how the file is parsed
> hopefully the maintainer can chime in with more details.
> 
> Short term can you make it work if you pass the pattern in via a file (awk -f)?
> You should be able to use the existing macros to point to a file checked into
> your source tree.
> 
> Thanks,
> 
> Andrew Fish
> 
> > Any idea to get this working and/or in case $$ should work in
> > build_rules.txt, would you plan to fix this?
> >
> > Best Regards,
> >  Peter Kirmeier
> >
> > PS: Maybe a quick and simple solution could be to add a predefined
> > $(DOLLAR) marco or anything like that into the python scripts?
> >
> >
> > -----Ursprüngliche Nachricht-----
> > Von: edk2-devel [mailto:edk2-devel-bounces@ml01.01.org] Im Auftrag
> von
> > Andrew Fish
> > Gesendet: Montag, 12. Dezember 2016 18:27
> > An: peter.kirmeier@ts.fujitsu.com
> > Cc: edk2-devel@lists.01.org
> > Betreff: Re: [edk2] $ escape sequence at build_rule.txt
> >
> >
> >> On Dec 12, 2016, at 2:31 AM, peter.kirmeier@ts.fujitsu.com wrote:
> >>
> >> Hi all,
> >>
> >> I tried to add a AWK replacement into the build_rules to become part
> >> of
> > the generated makefiles:
> >>
> >>   <Command>
> >>       "$(TOOLS_DIR)\gawk.exe" "NF{gsub(/ *\\$$/,\"\"); print}"
> >> infile.in outfile.out
> >>
> >> Unfortunately I don't get it, how the dollar sign can be escaped to
> >> the
> > doubled $$ which is used by make for placing a single $ at the command.
> >>
> >> Can someone help?
> >>
> >
> > Peter,
> >
> > Do you think the build_rules.txt parse is removing one of the $? I'm
> > not sure if this will work but what happens if you use 4 $?
> >
> > What do you see in the generated makefile?
> >
> > Thanks,
> >
> > Andrew Fish
> >
> >> Thanks,
> >> Peter
> >>
> >> ---
> >> Peter Kirmeier
> >> Senior Firmware Developer
> >> Client Computing Devices Engineering
> >>
> >> FUJITSU
> >> Buergermeister-Ulrich-Strasse 100, 86199 Augsburg, Germany
> >> Tel.: +49 (821) 804 3227
> >> Fax: +49 (821) 804 83227
> >> E-mail: peter.kirmeier@ts.fujitsu.com
> >> Web: ts.fujitsu.com
> >> Company: Fujitsu Technology Solutions GmbH / ts.fujitsu.com/imprint
> >> This communication contains information that is confidential,
> >> proprietary
> > in nature and/or privileged.  It is for the exclusive use of the
> > intended recipient(s). If you are not the intended recipient(s) or the
> > person responsible for delivering it to the intended recipient(s),
> > please note that any form of dissemination, distribution or copying of
> > this communication is strictly prohibited and may be unlawful. If you
> > have received this communication in error, please immediately notify
> > the sender and delete the original communication. Thank you for your
> cooperation.
> >> Please be advised that neither Fujitsu, its affiliates, its employees
> >> or
> > agents accept liability for any errors, omissions or damages caused by
> > delays of receipt or by any virus infection in this message or its
> > attachments, or which may otherwise arise as a result of this e-mail
> > transmission.
> >>
> >> _______________________________________________
> >> edk2-devel mailing list
> >> edk2-devel@lists.01.org
> >> https://lists.01.org/mailman/listinfo/edk2-devel
> >
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
> >


  reply	other threads:[~2016-12-14  7:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-12 10:31 $ escape sequence at build_rule.txt peter.kirmeier
2016-12-12 17:27 ` Andrew Fish
2016-12-12 21:49   ` Peter Kirmeier
2016-12-12 23:25     ` Andrew Fish
2016-12-14  7:02       ` peter.kirmeier
2016-12-14  7:06         ` Gao, Liming [this message]
2016-12-15  6:48           ` peter.kirmeier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14D6A4D37@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox