2012-03-09 12 views
1

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

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

+0

У меня нет достаточного кредита здесь, чтобы ответить на мой собственный вопрос еще, мне нужно подождать еще несколько часов, позволяя полезные души, как и вы в поте при ответе на вопрос на который я нашел ответ. Я опубликую, когда смогу, до тех пор он лежит в использовании './configure CFLAGS = -DSYSV386_COMPAT = 0' ... –

+0

Вы должны использовать CPPFLAGS вместо CFLAGS. Это позволит установить CFLAGS по умолчанию, поэтому вы получите оптимизацию. Кроме того, соглашение предназначено для флагов препроцессора в CPPFLAGS –

+0

Спасибо, Уильям, это очень приветствуемый совет. –

ответ

1

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

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

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

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

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

Майкл