use cmake to manage makefile