#!/bin/sh # # ${R_HOME}/bin/SHLIB # @configure_input@ revision='$Rev$' version=`set - ${revision}; echo ${2}` version="R shared library builder ${version} Copyright (C) 2000-2006 The R Core Development Team. This is free software; see the GNU General Public Licence version 2 or later for copying conditions. There is NO warranty." usage="Usage: R CMD SHLIB [options] files|linker options Build a shared library for dynamic loading from the specified source or object files (which are automagically made from their sources) or linker options. If not given via '--output', the name for the shared library is determined from the first source of object file. Options: -h, --help print short help message and exit -v, --version print SHLIB version info and exit -o, --output=LIB use LIB as (full) name for the built library Report bugs to ." R_HOME=`echo ${R_HOME} | sed 's/ /\\\\ /g'` objs= shlib= makefiles="-f ${R_SHARE_DIR}/make/shlib.mk" shlib_libadd='@SHLIB_LIBADD@' with_cxx=false with_f77=false with_f9x=false pkg_libs= while test -n "${1}"; do case ${1} in -h|--help) echo "${usage}"; exit 0 ;; -v|--version) echo "${version}"; exit 0 ;; -o) shlib=${2}; shift ;; --output=*) shlib=`echo "${1}" | sed -e 's/[^=]*=//'` ;; *.cc|*.cpp|*.C) with_cxx=true if test -z "${shlib}"; then shlib="`echo ${1} | sed 's/\.[^\.][^\.]*$/@SHLIB_EXT@/'`" fi objs="${objs} `echo ${1} | sed 's/\.[^\.][^\.]*$/.o/'`" ;; *.f) with_f77=true if test -z "${shlib}"; then shlib="`echo ${1} | sed 's/\.[^\.][^\.]*$/@SHLIB_EXT@/'`" fi objs="${objs} `echo ${1} | sed 's/\.[^\.][^\.]*$/.o/'`" ;; *.f90|*.f95) with_f9x=true if test -z "${shlib}"; then shlib="`echo ${1} | sed 's/\.[^\.][^\.]*$/@SHLIB_EXT@/'`" fi objs="${objs} `echo ${1} | sed 's/\.[^\.][^\.]*$/.o/'`" ;; *.[co]) if test -z "${shlib}"; then shlib="`echo ${1} | sed 's/\.[^\.][^\.]*$/@SHLIB_EXT@/'`" fi objs="${objs} `echo ${1} | sed 's/\.[^\.][^\.]*$/.o/'`" ;; *) pkg_libs="${pkg_libs} ${1}" ;; esac shift done if test -r "${HOME}/.R/Makevars-${R_PLATFORM}"; then makefiles="${makefiles} -f \"${HOME}/.R/Makevars-${R_PLATFORM}\"" elif test -r "${HOME}/.R/Makevars"; then makefiles="${makefiles} -f \"${HOME}/.R/Makevars\"" fi makeobjs="OBJECTS=\"${objs}\"" if test -r Makevars; then makefiles="-f Makevars ${makefiles}" if grep '^ *OBJS *=' Makevars >/dev/null; then makeobjs="OBJECTS='\$(OBJS)'" fi if grep '^ *OBJECTS *=' Makevars >/dev/null; then makeobjs= fi fi 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 test -z "${shlib_libadd}"; then makeargs="${makeargs} SHLIB_LIBADD='\$(FLIBS)'" else makeargs="${makeargs} SHLIB_LIBADD='\$(FLIBS) ${shlib_libadd}'" fi fi fi if test -n "${pkg_libs}"; then makeargs="${makeargs} PKG_LIBS='${pkg_libs}'" fi eval ${MAKE} ${makefiles} ${makeargs} ${makeobjs} ### Local Variables: *** ### mode: sh *** ### sh-indentation: 2 *** ### End: ***