manual compile