cond-func-defined.mk revision 1.13
11.13Srillig# $NetBSD: cond-func-defined.mk,v 1.13 2024/08/06 17:46:01 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.13Srillig# expect+1: Missing ')' after argument 'A' for 'defined' 241.3Srillig.if !defined(A B) 251.5Srillig. error 261.3Srillig.endif 271.3Srillig 281.11Srillig# If necessary, the whitespace can be generated by an expression. 291.3Srillig.if !defined(${:UA B}) 301.5Srillig. error 311.3Srillig.endif 321.1Srillig 331.13Srillig# expect+1: Missing ')' after argument 'DEF' 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.12Srillig# In .for loops, expressions based on the loop variables are substituted at 471.12Srillig# evaluation time. There is no actual variable involved, even if the code in 481.12Srillig# the makefiles looks like it. 491.7Srillig. endif 501.7Srillig.endfor 511.7Srillig 521.9Srillig# Neither of the conditions is true. Before July 2020, the right-hand 531.9Srillig# condition was evaluated even though it was irrelevant. 541.9Srillig.if defined(UNDEF) && ${UNDEF:Mx} != "" 551.9Srillig. error 561.9Srillig.endif 571.9Srillig 581.9Srilligall: .PHONY 59