Makefiles are bad with state that is not represented as files, right? I remember that I had to create "stamp" files with hashes and things like that to overcome this limitation.
There is also .PHONY, but that would make the rule to always be triggered. Maybe I'm misremembering, it's been a long time :)
I love dotfiles, my dream is to create a popular dotfile as the great .bashrc. This mission motivated me to create the DIST(dot)SH project (https://github.com/javanile/dist.sh). This is a tool for creating software bundles (ZIP files so to speak) based on a manifest called '.distfile'.
As for the popular '.gitignore' the '.distfile' as a convenient syntax for bundle complex package with custom file structure or ignoring specific files, or anything else that could get into it by mistake
Support me with STAR or FORK or better still a Pull-Request
Please be patient for the spammy content but I'm sure you love it for time saving.