mach: building Linux programs for other distributions
(You would think that 'cross' compiling would be the easiest way, since it's just building for a different ABI. Tragically, it's not, at least not in Fedora Core 5.)
Both work by installing a complete (although usually minimal) copy of
the distribution you want to work in and
chroot()'ing into it to do
work. Mock is very specific to building RPMs in a guaranteed clean
environment; mach is more general, and so is useful for building
arbitrary programs from source. Both are part of Fedora Extras.