cond-func-defined.mk revision 1.10
11.10Srillig# $NetBSD: cond-func-defined.mk,v 1.10 2023/06/01 20:56:35 rillig Exp $ 21.1Srillig# 31.2Srillig# Tests for the defined() function in .if conditions. 41.1Srillig 51.3SrilligDEF= defined 61.3Srillig${:UA B}= variable name with spaces 71.3Srillig 81.3Srillig.if !defined(DEF) 91.5Srillig. error 101.3Srillig.endif 111.3Srillig 121.4Srillig# Horizontal whitespace (space tab) after the opening parenthesis is ignored. 131.3Srillig.if !defined( DEF) 141.5Srillig. error 151.3Srillig.endif 161.3Srillig 171.4Srillig# Horizontal whitespace (space tab) before the closing parenthesis is ignored. 181.3Srillig.if !defined(DEF ) 191.5Srillig. error 201.3Srillig.endif 211.3Srillig 221.3Srillig# The argument of a function must not directly contain whitespace. 231.10Srillig# expect+1: Missing closing parenthesis for defined() 241.3Srillig.if !defined(A B) 251.5Srillig. error 261.3Srillig.endif 271.3Srillig 281.3Srillig# If necessary, the whitespace can be generated by a variable expression. 291.3Srillig.if !defined(${:UA B}) 301.5Srillig. error 311.3Srillig.endif 321.1Srillig 331.10Srillig# expect+1: Missing closing parenthesis for defined() 341.6Srillig.if defined(DEF 351.6Srillig. error 361.6Srillig.else 371.6Srillig. error 381.6Srillig.endif 391.6Srillig 401.7Srillig# Variables from .for loops are not defined. 411.7Srillig# See directive-for.mk for more details. 421.7Srillig.for var in value 431.7Srillig. if defined(var) 441.7Srillig. error 451.7Srillig. else 461.10Srillig# expect+1: In .for loops, variable expressions for the loop variables are 471.7Srillig. info In .for loops, variable expressions for the loop variables are 481.10Srillig# expect+1: substituted at evaluation time. There is no actual variable 491.7Srillig. info substituted at evaluation time. There is no actual variable 501.10Srillig# expect+1: involved, even if it feels like it. 511.7Srillig. info involved, even if it feels like it. 521.7Srillig. endif 531.7Srillig.endfor 541.7Srillig 551.9Srillig# Neither of the conditions is true. Before July 2020, the right-hand 561.9Srillig# condition was evaluated even though it was irrelevant. 571.9Srillig.if defined(UNDEF) && ${UNDEF:Mx} != "" 581.9Srillig. error 591.9Srillig.endif 601.9Srillig 611.9Srilligall: .PHONY 62