It's a set of rules that lead to the production of your program.
For example an EXE is built from OBJs linked together, and each OBJ is built from a C source file ... for a basic application.
For GP32, for example, the FXE is made from the GXB, which is made from objects, which are compiled from C... but also assembler needs to be compiled and linked in too. Using makefiles you can also tell 'make' (the app that does the jobs) to convert your bitmaps to C source files, compile and link those in too, all in one file.
It's better than batch, as you can tell 'make' to do the same job for every .c file in the directory, or compile it with various options (e.g. debug mode) and so on. Read up on it.
- Rico