Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Mar 2025 13:47:25 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 285726] make: AT&T/SysV-style substitution error if the pattern starts with 't'
Message-ID:  <bug-285726-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285726

            Bug ID: 285726
           Summary: make: AT&T/SysV-style substitution error if the
                    pattern starts with 't'
           Product: Base System
           Version: 14.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: tavianator@tavianator.com

The ${VAR:pattern%.o=replacement%.c} variable modifier syntax is very useful
for portable makefiles because GNU make supports the same syntax.  But I just
noticed a bug: if the pattern starts with 't', make prints an error rather than
performing the substitution.  I think the parser is looking for one of the :t
modifiers (:tl, :tu, etc.)

$ cat Makefile
foo:
        @echo ${@:f%=b%}
test:
        @echo ${@:t%=b%}
$ make foo
boo
$ make test
make: Bad modifier ":t%=b%" for variable "@"
=b%}

-- 
You are receiving this mail because:
You are the assignee for the bug.

help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-285726-227>