I would like to ask where makefile variables COMPILE.cpp
and LINK.cpp
are defined? I would like to modify them. I tried to find them in the source files of Stan and CmdStan with grep
, but I was unsuccessful. Please let me know, what would be an elegant way to re-set these variables.
I don’t believe that those are Stan makefile variables, what are you trying to change?
@andrjohns is correct, those are built in to Make
(see their docs for a less-than-perfect explanation).
Generally speaking, COMPILE.cpp
is equivalent to $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
, so you should instead set the value of CXX
or one of the other variables
I’m trying to re-set COMPILE.cpp
and LINK.cpp
commands to use mpic++
.
To view the definitions of COMPILE.cpp
and LINK.cpp
launch make -p
in a directory that has no makefile
.
Below are the standard definitions:
COMPILE.cpp = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
LINK.cpp = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
I spelled them out in the make/program
and replaced CXX
with MPICXX
. In my case MPICXX = mpic++
.
I think the slightly more typical thing to do would just be to set CXX = MPICXX, rather than re-define the COMPILE and LINK, but I’m glad you have it working!