From start to finish, it depends on what you are trying to build.
But in many cases, the primary development extensions listed previously in this thread are enough.
The configure script for a particular package may use some specific tools (e.g. a python or perl interpreter) not in base or the primary development extensions. So you might need to load these additional tools first. The output of the ./configure command should help you figure out what other prerequisites you need.
Also, if you are trying to build a package from source code, that code may need to refer to information in header files that are not part of the base system ("X11 headers", for example), so you might need to load extensions with the appropriate set of source code headers.
--
Mike L.