On 12-02-19 04:56 PM, Simon Urbanek wrote:
Paul,
On Feb 19, 2012, at 2:45 PM, Paul Gilbert wrote:
I am trying to add
#include<R.h>
to a .c file in one of my package, so I can call error() without a complaint
about implicit defined function. The src/ has a Makefile, to build some exec/
files that are needed. Without the include, my Makefile target
OBJS = $(SRC:.c=.o)
$(PKGNAME).so: $(OBJS) rpcx.h
$(R_HOME)/bin/R CMD SHLIB $(OBJS)
seems to work fine, and I do not need a target for the .o's, the default works.
But when I add the include, the location of R.h does not get passed along. How
am I suppose to specify $(R_HOME)lib/R/include so that it gets passed along by
R CMD SHLIB ?
I assume you know that the above general approach won't work very well, so I
won't go there... (you don't need Makefile to just add targets).
Simon
I'm not sure if I understand this. I know I could add targets in
Makevars or Makerules, but do you means something else? I also need to
build some executables and move then into exec/, which I think also
implies I need to change the default target in src/. Isn't a Makefile
the only way to do that? (I know you said you won't go here, but now I'
curious.)
But your immediate problem is that you want to use R CMD SHLIB $(SRC) and not
$(OBJS), otherwise you'll be missing all C*FLAGS (which includes -I that is
needed for the headers) since the compilation will be done by your Makefile and
not R.
Thanks, that fixed it!
Paul
Cheers,
Simon
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel