"A lot of open source programs come with configure scripts these
days. One purpose of such a script is to automate the guesswork of
targeting a new system. In times of yore, programs came with a
Makefile that had half a dozen different sets of compiler flags or
options, all but one of which were commented out, and a note saying
"select the appropriate flags for your system." For more
comprehensive sets of configuration options, there might also have
been a large C header called config.h containing a few dozen flags
to set, depending on host system variables.
"The first approach was simply to have #ifdefs in code for the
two systems supported; for instance, BSD and System V. As the
number of Unix variants increased, it became more practical to have
#ifdefs for each feature..."
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.