clean and compile