the compilation script