1) added linux makefile
2) added #ifdef guards to modules
3) added #ifdef guards to windows-only code
4) added the compat module to define _aligned_malloc for posix machines