| # | |
| # ${R_HOME}/bin/COMPILE | |
| # @configure_input@ | |
| revision='$Rev$' | |
| version=`set - ${revision}; echo ${2}` | |
| version="R compilation front end: ${R_VERSION} (r${version}) | |
| Copyright (C) 2000-2018 The R Core Team. | |
| This is free software; see the GNU General Public License version 2 or | |
| later for copying conditions. There is NO warranty." | |
| usage="Usage: R CMD COMPILE [options] files | |
| Compile the specified files for subsequent collection into a shared | |
| library using 'R CMD SHLIB' or an executable program using 'R CMD | |
| LINK'. Currently, the following languages with associated source file | |
| extensions are supported (provided that the respective compilers are | |
| available and R was configured to use these): C ('.c'), C++ ('.cc' or | |
| '.cpp'), fixed-form Fortran ('.f'), free-form Fortran ('.f90' or'.f95'), | |
| Objective C ('.m'), and Objective C++ ('.M' or '.mm'). | |
| Options: | |
| -h, --help print short help message and exit | |
| -v, --version print version info and exit | |
| Other options of the form '-DMACRO' or 'VAR=VALUE' are passed on to the | |
| compilation. | |
| Report bugs at <https://bugs.R-project.org>." | |
| makefiles="-f \"${R_HOME}/etc${R_ARCH}/Makeconf\"" | |
| 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 | |
| if test -r Makevars; then | |
| makefiles="-f Makevars ${makefiles}" | |
| fi | |
| objs= | |
| while test -n "${1}"; do | |
| case ${1} in | |
| -h|--help) | |
| echo "${usage}"; exit 0 ;; | |
| -v|--version) | |
| echo "${version}"; exit 0 ;; | |
| *.[cfmM]|*.cc|*.cpp|*.f90|*.f95|*.mm) | |
| objs="${objs} `echo ${1} | sed 's/\.[^\.][^\.]*$/.o/'`" ;; | |
| -D*) | |
| MAKEFLAGS="${MAKEFLAGS} ${1}" ;; | |
| *=*) | |
| argn=`echo "${1}" | sed -e 's/=.*//'` | |
| argv=`echo "${1}" | \ | |
| sed -e 's/[^=]*=//; s/^\\"//; s/\\"$//; s/\\"/\\\\"/g'` | |
| MAKEFLAGS="${MAKEFLAGS} ${argn}=\"${argv}\"" | |
| ;; | |
| *) | |
| echo "ERROR: don't know how to compile '${1}'" | |
| exit 1 | |
| ;; | |
| esac | |
| shift | |
| done | |
| eval "${MAKE} ${makefiles} ${MAKEFLAGS} ${objs}" | |
| ### Local Variables: *** | |
| ### mode: sh *** | |
| ### sh-indentation: 2 *** | |
| ### End: *** |