I'm reading Jamrule file of some project to understand how it builds.
But there is some that I can't understand.
Such like $(1:D=) or $(1:S=$(sample)) or $(1:G=$(sample))
what does it mean?
I searched colon and equal meaning in a shell script but I couldn't find when the alphabet is in between them.
ex) local _s = $(1:D=) ;
$(1)
expands the first argument of a rule. $(1:D=foo)
applies a modifier that replaces the directory portion of the expanded elements (dirname, if you think in shell terms) with the string foo
. The special case $(1:D=)
removes the directory portion. The modifier S
refers to the suffix (aka extension) of the file name, G
to the "grist" of a jam target name.
Please refer to the Variable Expansion section of the Perforce Jam documentation for a complete list. I can recommend reading the complete Jam documentation to understand the specific concepts (like grist).