Ответ 1
Все, что -DHAVE_CONFIG_H
делает, это определить токен перед процессором HAVE_CONFIG_H
точно так же, как если бы вы имели #define HAVE_CONFIG_H
в начале каждого из ваших исходных файлов.
Что касается того, для чего он используется, это полностью зависит от остальной части исходного файла (и всего, что включает в себя). Это то, где вы должны искать свой эффект.
Похоже, что это может означать, что заголовочный файл config.h
доступен и должен быть включен, и в этом случае вы, вероятно, найдете следующую последовательность в исходных файлах:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
который будет включать заголовочный файл, когда вы говорите, что он доступен. Однако это предположение с моей стороны и отнюдь не точный эффект, именно то, что я использовал бы для этого символа препроцессора.