makefile and entry point