"$2 is the basename of the target, minus the extension, if any."
In my tests $2 includes the target directory, so it would not be the basename.
mkdir -p foo/bar/
echo 'echo $2' >
default.o.do
redo foo/bar/blarg.o
cat foo/bar/blarg.o
Gives "foo/bar/blarg". But:
$ basename foo/bar/blarg.o
blarg.o
So the part about the extension being stripped seems accurate, just
not the basename part. Or perhaps this is an undocumented difference
between default.*.do behavior and *.do behavior? The commit message
for the README change for the switch to djb $1/$2/$3 semantics only
uses single directory depth examples so I'm not sure if it's intended.