The Makefile contains the steps for compiling the executable (or executables, or really any collection of result files). Makefiles are Unix creatures, though they appear in other places. The make command reads the Makefile, and performs whatever operations are needed to build the result file(s).
Make is not the only program which can be used this way. IDEs need some way to build their targets. They either do what make does, or, like CodeBlocks, generate an appropriate make file and run make. Others have alternative build tools.
Note: The cmake program is very popular these days, because it works on most platforms, while make is a Unix program that's been also been ported a few other places, sometimes awkwardly. Cmake works by translating a standard description of the build procedure into whatever is native for the system. On Unix, it will translate into a makefile.