generic C makefile