When building rsync from its distfile, perl ./mkproto.pl ./*.c ./lib/compat.c will always run, even though up-to-date versions of proto.h and proto.h-tstamp are provided by the distfile. The reason is the following target: proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h perl $(srcdir)/mkproto.pl $(srcdir)/*.c $(srcdir)/lib/compat.c which declares config.h (created by the configure script, obviously always newer than the proto.h file provided by the distfile) as its source without actually using the file. Removing config.h from the list of proto.h-tstamp sources eliminates the need for perl when building rsync from its distfile.
Fixed. Thanks! (The need for perl was also changed into a need for awk/gawk/nawk for the mkproto script as well as for some other new data-harvesting scripts.)