add executable file demo, and optimize Makefile