MFC r273186,r273873:

r273186:

  Don't define rules based on PROGS if PROGS is empty.

  Reviewed by:	sjg, ngie
  Sponsored by:	EMC / Isilon Storage Division

r273873:

  Use the right depend file for each program.

  bsd.progs.mk generates a separate depend file for every program being
  built, but then it does not properly tell each submake to use those
  individual files.  Properly propagate the depend file to use.

  Discovered while preparing the update of atf to 0.21 and noticing that
  the test programs were not being relinked to the new library.

  This change is "make tinderbox" clean.
MFC r273803,r273810:

r273803:

  Filter out TESTS_SUBDIRS already added to SUBDIR instead of blindly
  appending the TESTS_SUBDIRS variable to SUBDIR

  Duplicate directory entries can cause unexpected side effects, like
  installing the same files multiple times. This can be easily
  reproduced via the following testcase prior to this commit:

    SUBDIR= dir
    TESTS_SUBDIRS+= dir

    .include <bsd.test.mk>

  Sponsored by: EMC / Isilon Storage Division

r273810:

  Fix the logic inversion in the previous commit by ensuring that the matched
  expression (:M) is empty, not the not matched (:N) is empty. The former case
  means we have not found the TEST_SUBDIR value in SUBDIR

  Reported by: rodrigc
  Pointyhat to: me (did not use a clean install root)
  Sponsored by: EMC / Isilon Storage Division
MFC r275622:

  Add makewhatis to ITOOLS if MK_MAN != no

  This will fix installation with differing host targets in installworld, so
  one can build i386/i386 on an amd64 host, then install to an i386/i386 target

  Reported by: alfred
  Phabric: D1280