summaryrefslogtreecommitdiffstats
path: root/usr.bin/make
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>2008-12-26 22:31:45 +0000
committerluigi <luigi@FreeBSD.org>2008-12-26 22:31:45 +0000
commita371cf7a492d25bdb9515f5e43f8f529da0db039 (patch)
treeb90e09ee231e1179a41d7938f1bd9b930e08e1cc /usr.bin/make
parente06c47109ccf822fe4f49c9a8e5c428fe0488b7e (diff)
downloadFreeBSD-src-a371cf7a492d25bdb9515f5e43f8f529da0db039.zip
FreeBSD-src-a371cf7a492d25bdb9515f5e43f8f529da0db039.tar.gz
Clarify the behaviour of conditionals when dealing with comparisons.
In particular, point out that string comparison can only use != and == (how weird, given that the underlying call to strcmp returns more information), that floating point values are correctly interpreted as numbers, and that the left-hand side must be a variable expansion. MFC after: 3 weeks
Diffstat (limited to 'usr.bin/make')
-rw-r--r--usr.bin/make/make.135
1 files changed, 23 insertions, 12 deletions
diff --git a/usr.bin/make/make.1 b/usr.bin/make/make.1
index 44421e5..6333509 100644
--- a/usr.bin/make/make.1
+++ b/usr.bin/make/make.1
@@ -1130,24 +1130,35 @@ has been defined.
.Pp
An
.Ar expression
-may also be an arithmetic or string comparison, with the left-hand side
-being a variable expansion.
-Variable expansion is
-performed on both sides of the comparison, after which the integral
+may also be a numeric or string comparison:
+in this case, the left-hand side
+.Ar must be
+a variable expansion, whereas the right-hand side can be a
+constant or a variable expansion.
+Variable expansion is performed on both sides, after which the resulting
values are compared.
A value is interpreted as hexadecimal if it is
preceded by 0x, otherwise it is decimal; octal numbers are not supported.
-The standard C relational operators are all supported.
-If after
-variable expansion, either the left or right hand side of a
+.Pp
+String comparison can only use the
.Sq Ic ==
or
.Sq Ic !=
-operator is not an integral value, then
-string comparison is performed between the expanded
-variables.
-If no relational operator is given, it is assumed that the expanded
-variable is being compared against 0.
+operators, whereas numeric values (both integer and floating point)
+can also be compared using the
+.Sq Ic >
+,
+.Sq Ic >=
+,
+.Sq Ic <
+and
+.Sq Ic <=
+operators.
+.Pp
+If no relational operator (and right-hand value) are given, an implicit
+.Sq Ic != 0
+is used. However be very careful in using this feature especially
+when the left-hand side variable expansion returns a string.
.Pp
When
.Nm
OpenPOWER on IntegriCloud