Установить CXXFLAGS в Rcpp Makevars

Я хотел бы установить флаг компилятора C++ в -O0 в Makevars проекта Rcpp.

если я взгляну на /etc/R/Makeconf, Я вижу, что команда компиляции, кажется,

$(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@

С

ALL_CXXFLAGS = $(R_XTRA_CXXFLAGS) $(PKG_CXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(CXXFLAGS)

Я могу редактировать в Makevars переменную $(PKG_CXXFLAGS) добавить заголовки для определенных библиотек, но я не удовлетворен CXXFLAGS = -O3 -pipe -g $(LTO). Я также хотел бы иметь возможность делать это непосредственно в Makevars, чтобы настроить каждый проект в соответствии с моим по необходимости.

когда я редактирую CXXFLAGS в Makevar, ничего не происходит. Можно ли настроить эту переменную ? Возможен ли другой подход ? Я знаю, что могу редактировать ~/.R/Makevars, и переключатель, как просили. Интересно, есть ли более надежный подход?

1 ответов


вы вообще хотите PKG_* варианты в вашем локальном файле, например ~/.R/Makevars.

вот (сокращенная, отредактированная) часть моей:

## for C code
CFLAGS=               -O3 -g0 -Wall -pipe -pedantic -std=gnu99 

## for C++ code
#CXXFLAGS=             -g -O3 -Wall -pipe -Wno-unused -pedantic -std=c++11
CXXFLAGS=             -g -O3 -Wall -pipe -Wno-unused -pedantic 

## for Fortran code
#FFLAGS=-g -O3 -Wall -pipe
FFLAGS=-O3 -g0 -Wall -pipe
## for Fortran 95 code
#FCFLAGS=-g -O3 -Wall -pipe
FCFLAGS=-O3 -g0 -Wall -pipe

VER=-4.8
CC=ccache gcc$(VER)
CXX=ccache g++$(VER)
SHLIB_CXXLD=g++$(VER)
FC=ccache gfortran
F77=ccache gfortran
MAKE=make -j8

другой (системно-глобальный) подход заключается в создании и редактировании /etc/R/Makeconf.site (или, когда /etc/R/ не существует, $RHOME/etc/R/Makeconf.site.