The `make' utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. [...]
You can use `make' with any programming language whose compiler can be run with a shell command. Indeed, `make' is not limited to programs. You can use it to describe any task where some files must be updated automatically from others whenever the others change. [...]
To prepare to use `make', you must write a file called the "makefile" that describes the relationships among files in your program and provides commands for updating each file.
As of it's geral purpose design, make also fits to be used in combination with hsc. See the section about related stuff where to obtain make.