getopt cleanup, should only be for windows otherwise we use system includes