URL:
<https://savannah.gnu.org/bugs/?64402>
Summary: error parsing functions in braces inside ifeq, ifneq
Group: make
Submitter: None
Submitted: Mon 10 Jul 2023 11:40:55 AM UTC
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.4
Operating System: POSIX-Based
Fixed Release: None
Triage Status: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Mon 10 Jul 2023 11:40:55 AM UTC By: Anonymous
Per the GNU make manual, function call syntax is either
$(function arguments) # parenthesis
or
${function arguments} # braces
Using braces in most cases works, however, using braces inside an `ifeq` or
`ifneq` condition sometimes fails with:
*** unterminated call to function 'join': missing '}'. Stop.
It fails if the function is the 1st argument of the `ifeq`, and the function
has multiple arguments (e.g., findstring). It works if the function is the 2nd
argument of `ifeq`, or the function has only one argument (e.g., sort).
Illustrative examples (more in attached Makefile):
```
#-------------------------------------------------------------------------------
ifeq ($(and a),)
endif
# ok
ifeq (${and a},)
endif
# ok
ifneq (,${and a})
endif
# ok
ifneq (${and a},)
endif
# ok
ifneq (,${and a})
endif
#-------------------------------------------------------------------------------
ifeq ($(and a, b),)
endif
# Makefile:469: *** unterminated call to function 'and': missing '}'. Stop.
## ifeq (${and a, b},)
## endif
# ok
ifneq (,${and a, b})
endif
# Makefile:477: *** unterminated call to function 'and': missing '}'. Stop.
## ifneq (${and a, b},)
## endif
# ok
ifneq (,${and a, b})
endif
```
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Mon 10 Jul 2023 11:40:55 AM UTC Name: Makefile Size: 9KiB By: None
<http://savannah.gnu.org/bugs/download.php?file_id=54917>
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64402>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/