From Quake Wiki
Map Compiling is the process of converting a level from a map file, which generated by a level editor, into a bsp file, which is ready to be played in-game. It generally consists of three steps: QBSP, Light, and Vis.
Main article: QBSP
QBSP is the first stage of map compilation. It is the process that reads the map file and generates the bsp, and in doing so calculates all of the geometry and collision data for the level. It also extracts any needed textures from the wad files and repackages them into the bsp file. After this step, the level can be loaded into the game engine. However, it will not have any lighting or visibility data.
Main article: Light (map compiling)
Light is the stage of map compilation that calculates lightmaps for the level. Using the light entities from the entity lump of the bsp file, it precalculates the lighting on every surface in the level, and saves that lighting as lightmaps in the bsp file.
Main article: Vis
Vis is the stage of map compilation that calculates PVS data for the level. With PVS data, the engine need only draw those parts of the level (and those entities) that might be visible from the current player location. This performance optimization was necessary to allow levels as large and as complex as Quake's on the computers of the day. And even today, most games use equivalent systems to allow levels, props, and NPCs to be as detailed as possible.
Map Compiling Tools
For links to download QBSP, Light, and Vis, see Mapping tools.