This will allow each to have its own main(), meaning that we can build a common base client and simply link in the correct startup object to create the appropriate binary.