Как игнорировать системный файл, полученный `configure ', сгенерированный из AC_CHECK_HEADERS - PullRequest
1 голос
/ 16 декабря 2011

Мы используем автоматизированную систему сборки, которая загружает и компилирует исходный код.Единственный интерфейс, который мне нужен для управления поведением компиляции - это установка ENV VAR и аргументов, заданных для `./configure '.

Проблема в том, что скрипт 'configure' (из конкретного источника, который я компилирую) проверяет файл системного заголовка, который, если он найден, отрицательно влияет на процесс компиляции.(процесс компиляции позволит избежать компиляции библиотек, которые, по его мнению, уже установлены в локальной системе, когда найден вышеупомянутый системный заголовочный файл.)

Поскольку это автоматизированный процесс, я не могу изменить скрипт 'configure'в любом случае, и, как уже упоминалось, можно указывать только переменные окружения и аргументы, передаваемые `configure '.Сценарий конфигурации использует макрос AC_CHECK_HEADERS, чтобы сгенерировать код для проверки системного файла.Есть ли способ избежать проверки конкретного системного файла из аргументов конфигурации?

Файл заголовка, который вызывает проблемы, находится по пути /usr/include/pcap/.

Спасибо

1 Ответ

1 голос
/ 16 декабря 2011

Ну, есть несколько вещей, которые вы можете попробовать:

  • удалить foo.h из AC_CHECK_HEADERS и всегда собирать библиотеку
  • использовать AC_CHECK_HEADERдля foo.h и проверьте /usr/include/pcap/ foo.h и не AC_DEFINE(HAVE_FOO_H), если /usr/include/pcap/ foo.h .
  • Вы можете использовать AC_ARG_ENABLE или AC_ARG_WITH, чтобы отключить тест, вызывающий сбой, для каждого хоста с помощью аргументов configure.Так что ответ на этот вопрос - да.

Все это предполагает, что вы можете изменить configure.ac и восстановить configure.Если вы не можете этого сделать, возможно, вам придется изменить configure (конечно, автоматически).

...