This avoids unnecessarily recompiling main.cpp (and hence relinking all three binaries) twice
with every make. Funnily enough, even though we've had genversion misbehaving for several years,
I never before thought about simply comparing the old with the new contents prior to touching
the file.
Thanks to MisterN for poking me and making me think about a solution :)