[Bioc-devel] RBGL 1.12 compile/install issue
Hello Li, hello list
I don't know what to copy from SHLIB, though here's my guess.
Variables:
objs=
shlib=
makefiles="-f ${R_SHARE_DIR}/make/shlib.mk"
shlib_libadd=''
with_cxx=false
with_f77=false
with_f9x=false
with_objc=false
with_objcxx=false
pkg_libs=
This looks important:
makeargs="SHLIB=\"${shlib}\""
if ${with_f9x}; then
makeargs="SHLIB_LDFLAGS='\$(SHLIB_FCLDFLAGS)' ${makeargs}"
makeargs="SHLIB_LD='\$(SHLIB_FCLD)' ${makeargs}"
else
if ${with_cxx}; then
makeargs="SHLIB_LDFLAGS='\$(SHLIB_CXXLDFLAGS)' ${makeargs}"
makeargs="SHLIB_LD='\$(SHLIB_CXXLD)' ${makeargs}"
fi
if ${with_f77}; then
if ${with_objc}; then
shlib_libadd="\$(OBJC_LIBS) ${shlib_libadd}"
fi
if test -z "${shlib_libadd}"; then
makeargs="${makeargs} SHLIB_LIBADD='\$(FLIBS)'"
else
makeargs="${makeargs} SHLIB_LIBADD='\$(FLIBS) ${shlib_libadd}'"
fi
else
if ${with_objc}; then
makeargs="${makeargs} SHLIB_LIBADD='\$(OBJC_LIBS)'"
fi
fi
fi
if test -n "${pkg_libs}"; then
makeargs="${makeargs} PKG_LIBS='${pkg_libs}'"
fi
And the final line:
eval ${MAKE} ${makefiles} ${makeargs} ${makeobjs}
Let me know if I'm missing something here.
What also looks pertinent is my shlib.mk:
## ${R_HOME}/share/make/shlib.mk
include $(R_HOME)/etc${R_ARCH}/Makeconf
$(SHLIB): $(OBJECTS)
$(SHLIB_LINK) -o $@ $(OBJECTS) $(ALL_LIBS)
and my etc/Makeconf:
SHLIB_CFLAGS =
SHLIB_CXXFLAGS =
SHLIB_CXXLD = g++
SHLIB_CXXLDFLAGS =
SHLIB_EXT = .so
SHLIB_FCLD = g77
SHLIB_FCLDFLAGS = -shared
SHLIB_FFLAGS =
SHLIB_LD = gcc -std=gnu99
SHLIB_LDFLAGS = -shared
SHLIB_LIBADD =
SHLIB_LINK = $(SHLIB_LD) $(SHLIB_LDFLAGS) $(LDFLAGS)
Right off the top, it looks to me that my with_cxx, with_f77 and
with_f9x variables are set incorrectly. Does anything else seem amiss?
Thanks,
Ben
Li.Long at isb-sib.ch wrote:
Hi, Ben, Could you take a look at your .../R-2.5.0/bin/SHLIB? This is what packages use to build their shared libs. This script is auto-generated based on R-2.5.0/src/scripts/SHLIB.in when you install R. There's nothing special in generating .so in RBGL compared with generating .so in other packages. I don't have access to CentOS, but I suspect that during your R installation, the "configure"-step didn't set the "-shared" flag properly. In that case, the fix will have to go to R installation to handle CentOS correctly. Let me know. Thanks. Li
Hello folks
No question here, just information. I've noticed a small problem when
trying to install RBGL 1.12 on a Linux platform. The compilation steps
work fine, until the .so object is to be built. There is no -shared
flag, so it tries to build a standalone executable instead of a shared
object.
My system details are:
CentOS 4.5
gcc/g++ version 3.4.6 (Also tried with 4.1)
R version 2.5.0
This issue was fixed easily enough by adding the line 'PKG_LIBS=-shared'
to the src/Makevars file, then re-tarring the package
Sincerely,
Ben Snyder