Recursive compile