]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* doc/make.text (Wildcards): Document that glob results are sorted.
authorPaul Smith <psmith@gnu.org>
Sun, 5 Dec 2021 20:16:26 +0000 (15:16 -0500)
committerPaul Smith <psmith@gnu.org>
Sun, 19 Dec 2021 21:34:19 +0000 (16:34 -0500)
doc/make.texi

index 3dea24f1806306c2197fa2d4673987e482a157f9..a565bf1927f0e36ed775875f40d7f8197a03d05e 100644 (file)
@@ -2142,6 +2142,13 @@ The wildcard characters in @code{make} are @samp{*}, @samp{?} and
 specifies a list of all the files (in the working directory) whose names
 end in @samp{.c}.@refill
 
+If an expression matches multiple files than the results will be
+sorted.@footnote{Some older versions of GNU @code{make} did not sort the
+results of wildcard expansion.}  However multiple expressions will not be
+globally sorted.  For example, @file{*.c *.h} will list all the files whose
+names end in @samp{.c}, sorted, followed by all the files whose names end in
+@samp{.h}, sorted.
+
 @cindex @code{~} (tilde)
 @cindex tilde (@code{~})
 @cindex home directory
@@ -2309,6 +2316,11 @@ function.  Note that this is different from how unmatched wildcards
 behave in rules, where they are used verbatim rather than ignored
 (@pxref{Wildcard Pitfall}).
 
+As with wildcard expansion in rules, the results of the @code{wildcard}
+function are sorted.  But again, each individual expression is sorted
+separately, so @samp{$(wildcard *.c *.h)} will expand to all files matching
+@samp{.c}, sorted, followed by all files matching @samp{.h}, sorted.
+
 One use of the @code{wildcard} function is to get a list of all the C source
 files in a directory, like this: