Basic makefile, source and test framework