autoconf и automake против -O2 против -O3 - PullRequest
2 голосов
/ 11 июня 2011

Мой файл configure.ac содержит

AC_PROG_CXX

, а мой файл Makefile.am содержит

AM_CXXFLAGS= -Werror -O3

, а полученный скрипт configure продолжает добавлять -O2 к смеси в дополнение кO3.

У меня есть подозрение, что я должен что-то сделать в configure.ac, чтобы объявить о своих предпочтениях для O3, но я не могу найти его в документе.Как мне сказать, что я хочу контролировать уровень оптимизации?

Ответы [ 2 ]

5 голосов
/ 11 июня 2011

Нет, вы не должны ничего добавлять в файл configure.ac, чтобы указать предпочтение для -O3.Такого рода вещи принадлежат пользовательскому CONFIG_SITE, а не configure.ac

. Однако, если вы настаиваете на нарушении соглашения, вы можете сделать что-то вроде:

: ${CXXFLAGS=-Werror -O3}

Обратите внимание, что эта строкадолжен появиться перед AC_PROG_CXX (или любым макросом, который его AC_REQUIRES, например LT_INIT, так как это приведет к тому, что AC_PROG_CXX будет передан в сценарий конфигурации перед этой строкой.)

4 голосов
/ 11 июня 2011

Предыдущий ответ верен в том смысле, что установщик должен выбрать, какие флаги используются.Если вам все еще интересно, откуда взялся -g -O2 (скорее всего), он описан в http://www.gnu.org/s/hello/manual/autoconf/C_002b_002b-Compiler.html.

Эта страница предлагает «Если вашему пакету не нравится это значение по умолчанию, тогда это приемлемо длявставьте строку ': $ {CXXFLAGS = ""}' после AC_INIT и перед AC_PROG_CXX, чтобы выбрать вместо него пустое значение по умолчанию. "

...