On 15 October 2020 at 10:36, Joseph Park wrote: | Apologies for the mis-directed reply, and, imprecise syntax/context re | environment variable. | | Just to close the loop, it seems that using a -D macro assignment inside | the make command (macro?) is interpreted as a make option:
(I think 'make target' is a common expression.) | $(LIBEDM): | @(cd $(CPPEDM_SRC_PATH) && $(MAKE) clean && $(MAKE) \ | CXX="$(CXX11) $(CXX11STD)" CXXFLAGS="$(CXX11FLAGS) $(CXX11PICFLAGS)" \ | AR="$(AR)" RANLIB="$(RANLIB)" -DUSING_R=1) | | ... | | make[1]: Entering directory | '/tmp/RtmpxVmJkT/Rbuild1553f22c7484d/rEDM/src/cppEDM/src' | rm -f API.o CCM.o Common.o DateTime.o EDM.o EDM_Formatting.o | EDM_Neighbors.o Eval.o Multiview.o Parameter.o Simplex.o SMap.o libEDM.a | make[1]: Leaving directory | '/tmp/RtmpxVmJkT/Rbuild1553f22c7484d/rEDM/src/cppEDM/src' | make: invalid option -- 'D' | | Hmm... since I use an R-specific makefile inside the C++ library | directory anyway, adding -DUSING_R there seems like a decent solution. Yes, exactly, that was my initial suggestion. It's been a while since I needed this but when do I tend to just go back to simple examples to check I am on the right track: edd@rob:/tmp$ g++ -o io io.cpp; ./io # default: empty Hello boring world edd@rob:/tmp$ g++ -DFOO -o io io.cpp; ./io # with a defined We see foo edd@rob:/tmp$ cat io.cpp #include <iostream> int main() { #if defined(FOO) std::cout << "We see foo\n"; #else std::cout << "Hello boring world\n"; #endif } edd@rob:/tmp$ So setting -Dsomething is really equivalent to doing in the code via #define but allows you to have it done conditional on when/where/how you compile. | Thanks a-million for the support & guidance to get me to the obvious | solution! No worries. Is your repo public? Good _portable_ cross-language solutions are rare, it would be good to have another one to look at / refer people to. Dirk -- https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel