public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Peter Kirmeier" <topeterk@freenet.de>
To: "'Andrew Fish'" <afish@apple.com>, <peter.kirmeier@ts.fujitsu.com>
Cc: "'edk2-devel@lists.01.org'" <edk2-devel@ml01.01.org>
Subject: Re: $ escape sequence at build_rule.txt
Date: Mon, 12 Dec 2016 22:49:53 +0100	[thread overview]
Message-ID: <000301d254c1$ae202810$0a607830$@de> (raw)
In-Reply-To: <FAE5D7C3-28BE-4145-8ED8-F6C7C2FD105D@apple.com>

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

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?
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-12 21:52 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 [this message]
2016-12-12 23:25     ` Andrew Fish
2016-12-14  7:02       ` peter.kirmeier
2016-12-14  7:06         ` Gao, Liming
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='000301d254c1$ae202810$0a607830$@de' \
    --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