Should really do dependency tracking, and build .cpp files into .o files. Currently we build each file twice, due to calc.cpp; builing .o files would fix that as well.