makefile and interface generation script