Вопрос по ubuntu, build, dpkg, debian – Как переопределить dpkg-buildflags CFLAGS?

8

Я получил посылку с:

$ apt-get source <pkg-name>

и теперь я пытаюсь построить это с:

$ dpkg-buildpackage -uc -us -j8

В начале вывода указано:

dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro

Я хотел бы переопределить эти CFLAGS (также LDFLAGS). Я попытался экспортировать CFLAGS envvar, так же, как мы делаем с обычным конфигурированием, но безрезультатно. Как я могу переопределить эти значения?

Ваш Ответ

1   ответ
20

переопределяет) флаги * с флагами специфики усиления, полученными изdpkg-buildflags.

если вам нужно переопределить эти флаги для ваших собственных целей, вы должны сказатьdpkg-buildflags чтобы обеспечить флаги, которые вы хотите, а не (по умолчанию). смотря наman dpkg-buildflagsВы найдете раздел о переменных среды, ESP. увидетьDEB_flag_SET а такжеDEB_flag_APPEND

так что это должно сработать (заполните свои * ФЛАГИ):

$ DEB_CPPFLAGS_SET="-I/foo/bar/baz" DEB_CFLAGS_SET="-g -O6" DEB_LDFLAGS_SET="-L/fruzzel/frazzel/" dpkg-buildpackage -uc -us -j8 -rfakeroot
Этот ответ может больше не быть текущим. (Увидетьmanpages.ubuntu.com/manpages/xenial/man1/…) Более свежая рекомендация - отредактировать скрипт debian / rules внутри вашего дистрибутива, который вы скачали с помощью apt-get source, и искать экземпляры CFLAGS / CXXFLAGS / LFLAGS.
Что, если это не похоже на запуск dpkg-buildflags? Насколько сложно это добавить в пакет? Есть ли альтернативная команда?

Похожие вопросы