cross platform compilation