Hi Liming, I filed a bug report and assigned it to you initially. Hopefully I did it right because BugZilla was a pain to me in entering this issue :)
Best Regards, Peter Reference: https://bugzilla.tianocore.org/show_bug.cgi?id=297 -----Original Message----- From: Gao, Liming [mailto:liming....@intel.com] Sent: Wednesday, December 14, 2016 8:06 AM To: Kirmeier, Peter; af...@apple.com; Zhu, Yonghong Cc: edk2-devel@lists.01.org Subject: RE: [edk2] $ escape sequence at build_rule.txt 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.kirme...@ts.fujitsu.com > [mailto:peter.kirme...@ts.fujitsu.com] > Sent: Wednesday, December 14, 2016 3:03 PM > To: af...@apple.com; Zhu, Yonghong <yonghong....@intel.com>; Gao, > Liming <liming....@intel.com> > Cc: edk2-devel@lists.01.org <edk2-de...@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: af...@apple.com [mailto:af...@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 <topet...@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-boun...@ml01.01.org] Im Auftrag > von > > Andrew Fish > > Gesendet: Montag, 12. Dezember 2016 18:27 > > An: peter.kirme...@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.kirme...@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.kirme...@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 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel