automated compilation (makefiles)