Add macro selection

When there are macros that will affect dependencies, let user selects
none, one or some of them. After selection, the shallow dependencies
will be collected again.