I wouldn't store just the makefile. While the uninstall target may not (or perhap, should not) need anything else to succeed, that's not a guarantee.
So that means keeping a copy of the original package. There's not much point, though, if there's a public archive of old versions and you aren't worried about it going away. You can just download it again later anyway. The only issue with this is that for autotooled stuff you need to run
./configurefirst, and if you use different options
uninstallmay miss something -- but that's not such a big worry, I think. Occasionally I've kept notes about the particular configuration of something.
I keep independent source packages in
/usr/local/src, but it as long as you can find it when you need it, it doesn't matter.
Why is it that "for autotooled stuff you need to run
./configure first, and if you use different options
uninstall may miss something"?
What is the reason that the configure file is required for uninstalling an application installed via configure, make and make install?