[Rd] Makefile vs Makevars vs configure

Whit Armstrong Whit.Armstrong at tudor.com
Wed Dec 29 20:06:17 CET 2004

Apologies in advance for the long post.

I'm currently using a Makefile to build my shared library. Pursuant to the
R-exts manual, I'd like to switch to a Makevars file or a configure file if

Having never used these types of make utilities before, I'm a bit lost.

My package is quite simple.  It only has one source file and one header:

The reason I need help with Makevars is because it needs jni.h from the
user's JAVA_HOME/include and jni_md.h from the user's
JAVA_HOME/include/OS_TYPE directory.

In addition, it needs libjvm.so from the user's
JAVA_HOME/jre/lib/ARCH/client directory.

I've looked at the SJava package with the idea of using a similar configure
script, but I was hoping I could just get by with a Makevars file rather
than a configure script.

I would appreciate any pointers, as I'm not really sure exactly where to

I suppose if I can find the values of JAVA_HOME, ARCH, and OS_TYPE, then I
can fill in the values I need using PKG_LIBS and PKG_INCLUDE in the Makevars

below is the makefile I'm currently using for your reference.

Thanks in advance,

archExpr = case "`uname -m`" in  \
                i[3-6]86 | ia32) \
                    echo i386 \
                    ;; \
                sparc*)  \
                    echo sparc \
                    ;; \
                *) \
                    uname -m  \
                    ;; \

ARCH = $(shell $(archExpr) )


INCLUDES=-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux

LIBS=-L$(JAVA_HOME)/jre/lib/$(ARCH)/client -ljvm

# The recommended c compiler flags

all: excelpoi.so

excelpoi.so: excelpoi.cpp excelpoi.h
  $(CXX) -O2 $(CFLAGS) $(INCLUDES) $(LIBS) -shared -fPIC -o $@ $<


	[[alternative HTML version deleted]]

More information about the R-devel mailing list