所有的编译动作都用makefile来控制了