Makefile
config.h
(+) easy for user to set up; choose one Makefile (-) need a Makefile for each and every system variant
(+) one (complex) script handles all systems (-) the user may not know the correct answers