The following table lists the wildcards understood by AMake. These can be used pretty much anywhere a filename is accepted.
Wildcard | Comment |
~/...
|
a tilde not followed by a user name is interpreted as $(HOME)
|
~<username>/...
|
a tilde followed by a user name is interpreted as $(HOME)/../<username>
|
?
|
accept any one character |
*
|
accept any number of any characters, including none |
%
|
accept one or more of any characters (in easy patterns only) |
[...]
|
accepts a set and/or a range of characters |
[!...]
[^...]
|
refuse a set and/or a range of characters |
{...}
|
choices of words separated by commas (,) or semicolons (;) to generate different filenames |
When a target name starts with a macro reference, this macro is checked for a list of paths (a list of words separated by colons (:) - or semi-colons (;) under DOS). If it is a list of paths, then the target is searched in each of these directories in the order they are given.
SRC-PATH = src:misc:tools:mail
$(SRC-PATH)yacc.o: yacc.c
These paths are taken in addition to the paths defined with the #vpath preprocessor instruction or with the .PATH special target.
AMake also supports the -l<name> syntax in the list of dependencies (actually, it's supported pretty much anywhere filenames are supported). This requests AMake to search for <name> as ld searches for libraries. The search occurs in the current directory, in the directories specified with the -L option, the #vpath preprocessor, the internally defined directories, and then the $(PREFIX) macro. The search is done for the .so (or .DLL under DOS) and the .a versions of the library.