Current building on Linux platform would throw lots of platform specific errors because the build system doesn't distinguish between Linux, Windows and Mac.
- Add a check for Linux platform, windows platforms and Mac platforms.
- Add Variables for the Linux source files, Windows source files, and Mac source files.