gnu make more declarative