Use a better makefile and add generic testing.