automatic compile