auto dependency generation