У меня есть простой проект Autotools C (а не С++).
CFLAG (по проверке) кажутся -g -O2
.
Я хочу, чтобы все сгенерированные файлы make также добавляли -std=gnu99
к CFLAG, потому что я использую for (int i = 0; i < MAX; i++)
и тому подобное.
Я могу явно взломать Makefile, но это перезаписывается на ./configure
.
Где правильное место для добавления (или изменения) CFLAG, которые требуются для кода (в отличие от тех CFLAG, которые пользователь может захотеть изменить)?
(Обратите внимание, что это частичный дубликат Где добавить CFLAG, например -std = gnu99, в проект autotools (Eclipse CDT), когда я получал Eclipse -специфические ответы, которые я не хотел.)
@DevSolar ответ пока не помог. Файл configure.ac
(ниже) генерирует configure
script (также ниже).
configure.ac:
dnl Process this file with autoconf to produce a configure script.
CFLAGS="$CFLAGS -std=gnu99"
AC_PREREQ(2.59)
AC_INIT(tuntest, 1.0)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE()
AC_PROG_CC
AC_CONFIG_FILES(Makefile src/Makefile)
AC_OUTPUT
$grep CFLAGS configure
CFLAGS
CFLAGS
To assign environment variables (e.g., CC, CFLAGS...), specify them as
CFLAGS C compiler flags
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
CFLAGS=""
CFLAGS="-g"
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
CFLAGS="-g -O2"
CFLAGS="-g"
CFLAGS="-O2"
CFLAGS=
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'