better compile script - support Carton and make catalyst runtime installation conditional