A generic makefile for C++