automatic dependency generation