Как указать значение для #define с помощью autoconf?

Я пытаюсь создать Gnu binutils с разблокированным поведением, определив макрос SYSV386_COMPAT 0, чтобы изменить способ, которым он генерирует некоторые коды операций FPU.

Я могу легко войти в заголовочный файл и установить значение вручную, но как мне вызвать скрипт configure, чтобы указать эквивалент #define SYSV386_COMPAT 0 в командной строке? Я бы предпочел указать что-то в командной строке, если это вообще возможно (просто потому, что функция является транзитивной, и я не думаю, что мне следует взламывать исходный код). Сказав это, я попытался прочитать хотя бы часть FM, но мне не удалось вставить AC_DEFINE(SYSV386_COMPAT, 0) ни в binutils/configure.in, ни в gas/configure.in.


person Michael_73    schedule 09.03.2012    source источник
comment
У меня пока нет достаточного авторитета, чтобы ответить на мой собственный вопрос, мне нужно подождать еще несколько часов, позволяя таким полезным душам, как вы, усердно трудиться над ответом на вопрос, на который я нашел ответ. Я опубликую, когда смогу, а пока это заключается в использовании ./configure CFLAGS=-DSYSV386_COMPAT=0...   -  person Michael_73    schedule 09.03.2012
comment
Вы должны использовать CPPFLAGS вместо CFLAGS. Это позволит установить CFLAGS по умолчанию, так что вы получите оптимизацию. Кроме того, по соглашению флаги препроцессора должны находиться в CPPFLAGS.   -  person William Pursell    schedule 09.03.2012
comment
Спасибо, Уильям, это очень ценный совет.   -  person Michael_73    schedule 09.03.2012


Ответы (1)


ОК, поэтому продолжение поиска среди других ответов с тегами autoconf привело меня ко второму комментарию для этот ответ.

Я смог использовать аналогичный синтаксис для вызова configure, чтобы получить результат, который мне был нужен:

./configure CPPFLAGS=-DSYSV386_COMPAT=0 --prefix=/path/to/my/deploy/dir

Спасибо Уильяму Перселлу за его комментарий выше, указывающий на преимущества использования CPPFLAGS вместо CFLAGS, и всем, кто готовился ответить на этот вопрос. Если у вас есть какие-либо дополнительные комментарии о «лучшем» способе решения этой проблемы, добавьте их в эту тему для тех, кто придет к ней позже.

С наилучшими пожеланиями,

Майкл

person Michael_73    schedule 09.03.2012