[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #63359] patsubst messes up functions in replacement

From: Paul D. Smith
Subject: [bug #63359] patsubst messes up functions in replacement
Date: Sun, 13 Nov 2022 12:38:07 -0500 (EST)

Update of bug #63359 (project make):

                  Status:                    None => Not A Bug              
             Open/Closed:                    Open => Closed                 
       Component Version:                     SCM => 4.4                    


Follow-up Comment #1:

You are misunderstanding how expansion happens.

All the expansion of variables _inside_ the function happen first, before the
function is run.  So:

$(info $(patsubst %/c,$(notdir %),$(FOO)))

First the macros `$(notdir %)` and `$(FOO)` are expanded, giving this:

$(info $(patsubst %/c,%,a/b/c))

Note that `$(notdir %)` is `%` because it treats the pattern as the literal
character `%`.  Similarly:

$(info $(patsubst %/c,$(dir %),$(FOO)))


$(info $(patsubst %/c,.,a/b/c))

because `$(dir %)` yields `.`.

Instead, you want to apply the function to the `$(FOO)` variable, like this:

FOO = a/b/c
$(info $(patsubst %/c,%,$(FOO)))
$(info $(patsubst %/c,%,$(notdir $(FOO))))
$(info $(patsubst %/c,%,$(dir $(FOO))))


Reply to this item at:


Message sent via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]