Check whether we're in Linux or FreeBSD. Abstract out the compiler we're using