using make is a great method for large scale software. It keeps track of file dependencies and it also keeps track of which file has been altered. It determines which piece or pieces of a large scale program needs to be recompiled. It can be used with any programming language which makes it very versatile. It is not used for just programs, it can also be used with other files or directories.