В качестве инфраструктуры сборки мы используем autotools, а в качестве компиляторов - clang и gcc. Недавно мы получили предупреждение gcc, которое требовало
--param max-vartrack-size=100000000
для отключения звука (без полного отключения отслеживания vartracking в gcc). Clang не принимает этот вариант и производит
argument unused during compilation: '--param max-vartrack-size=100000000'
Чтобы заставить это замолчать, нужно лязгать
-Qunused-arguments
и это вызывает ошибку в gcc:
unrecognized command line option ‘-Qunused-arguments’
Каков наилучший способ определить специфичные для компилятора флаги в
configure.ac
после того, как компилятор был выбран, напримерAC_PROG_CXX
? МыAC_SUBST(AM_CXXFLAGS)
, поэтому я полагаю, что я бы расширил переменную, специфичную для компилятора, вAM_CXXFLAGS
.Как правильно включить параметр для каждой цели в
Makefile.am
только для одного компилятора? Я думал о:if HAVE_GCC SPECIFIC_CXXFLAGS = --param... endif if HAVE_CLANG SPECIFIC_CXXFLAGS = -Q... endif libfoo_la_CXXFLAGS = $(AM_CXXFLAGS) $(SPECIFIC_CXXFLAGS)
но мне нужно было бы заменить HAVE_*
vars из configure.ac. Возможно, AC_PROG_CXX/CC
уже определяют что-то подобное?