Make has been able to detect modified files for at least 20 years. As long as your changes are fairly isolated, if the project is structured well, you'll only have a few files to compile, then you re-link. Or use actual libraries that are dynamically linked.