[theoretical part] add Makefile