Okay, it looks like (from what I can tell so far) it happens with any Mac’s that have either Endpoint Encryption or FileVault installed. Since these are university laptops and some people’s work laptops, it’s the one thing I’ve been able to narrow down.
I just tried on my own Mac, which is the same OS (Sierra) but without those two tools. Everything works fine: compilation is only done for those files that have changed.
I’ll keep investigating in case there’s some variable that’s not immediately obvious here.
UPDATE
It has to do with threat prevention in Endpoint Encryption. If I specify that the directory with the TADS projects is excluded form “on-access scans” and “on-demand scans”, then everything works as it should.
As it is common with ordinary make utility and Makefile, TADS variant of those tools also looks for file modification time to determine which files needs to recompile and which not. It is possible that your security software sets modification time as a side product? Shouldn’t be triggered with updated access time IMHO. Anyway the basic logic of makefiles is that when source code (or any included header file) is newer than compiled binary of that file, than the file will be recompiled and also when makefile is newer than all will be recompiled. Maybe I’m not exact, but given this principle you may observe whatever the security software updates file modification times or not.
Has this ever been resolved? I’m working on a Mac, too, and every time I run Make, it’s turning into a complete rebuild of every single file, including the entire library.
I have neither Endpoint Encryption nor FileVault installed and nothing that should really mess with the modification dates either.