I have seen this: Remove unneeded dependencies from Cygwin ... but it appears that that script is only proposing to identify packages on which no other package depends: which makes it a very clever script, but perhaps not entirely all you need... and (it seems to me) it would then involve manual removal of packages, perhaps in several stages (because each removal might reveal further packages needing removal). Also I'd just like to know whether a more elegant solution exists within Cygwin by any chance.
I made the mistake of not first copying my Cygwin directory before installing
make. I only installed it because of a small specific experiment I wanted to do.
make of course led to the entire C language being installed... increasing the size of my Cygwin setup by 1.5 GB!
make (surprise!) only uninstalled the cherry on top of the mountain of whipped cream below. I realise that uninstalling every dependency needed by
make would no doubt break everything I need... but is there any chance that Cygwin keeps some "log" of what was installed, when and even possibly why... ? And then that there is some mechanism to undo a recent install action?
After David Posthill's helpful revelation that there is a log this unfortunately revealed additional dependency complexities: identifying precisely what had to be removed.
What one really needs is a utility to produce a DAG of installed dependencies, presumably combined with a chronology of what was installed when and why... and a utility to do all the examination and removal work!
It's slightly surprising to me because, correct me if I'm wrong, Linux package managers are indeed capable of this sort of thing: you install a high-level package... and when you uninstall it also removes all the dependencies which weren't there before and aren't needed by any subsequently installed packages... It seems like no such mechanism exists for Cygwin.