Command line arguments work (partially).  If no arguments are provided, the `default` target is tried.  If a single argument is provided (expected to be a target name), that is tried to be built.  If all of the above fail, we use `getopt()` to try any additional command line arguments that might arise.