| % File src/library/utils/man/COMPILE.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2018 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{COMPILE} |
| \alias{COMPILE} |
| \title{Compile Files for Use with R on Unix-alikes} |
| \description{ |
| Compile given source files so that they can subsequently be collected |
| into a shared object using \command{R CMD SHLIB} or an executable |
| program using \command{R CMD LINK}. Not available on Windows. |
| } |
| \usage{ |
| \special{R CMD COMPILE [options] srcfiles} |
| } |
| \arguments{ |
| \item{srcfiles}{A list of the names of source files to be compiled. |
| Currently, C, C++, Objective C, Objective C++ and Fortran are |
| supported; the corresponding files should have the extensions |
| \file{.c}, \file{.cc} (or \file{.cpp}), \file{.m}, |
| \file{.mm} (or \file{.M}), \file{.f} and \file{.f90} or \file{.f95}, |
| respectively.} |
| \item{options}{A list of compile-relevant settings, or for obtaining |
| information about usage and version of the utility.} |
| } |
| \details{ |
| \command{R CMD SHLIB} can both compile and link files into a |
| shared object: since it knows what run-time libraries are needed |
| when passed C++, Fortran and Objective C(++) sources, passing source |
| files to \command{R CMD SHLIB} is more reliable. |
| |
| Objective C and Objective C++ support is optional and will work only |
| if the corresponding compilers were available at \R configure time: |
| their main usage is on macOS. |
| |
| Compilation arranges to include the paths to the \R public C/C++ headers. |
| |
| As this compiles code suitable for incorporation into a shared object, |
| it generates PIC code: that might occasionally be undesirable for the |
| main code of an executable program. |
| |
| This is a \command{make}-based facility, so will not compile a source file |
| if a newer corresponding \file{.o} file is present. |
| } |
| \note{ |
| Some binary distributions of \R have \code{COMPILE} in a separate |
| bundle, e.g.\sspace{}an \code{R-devel} RPM. |
| |
| This is not available on Windows. |
| } |
| \seealso{ |
| \code{\link{LINK}}, \code{\link{SHLIB}}, \code{\link{dyn.load}}; |
| the section on \dQuote{Customizing compilation under Unix} in |
| \dQuote{R Administration and Installation} |
| (see the \file{doc/manual} subdirectory of the \R source tree). |
| } |
| \keyword{utilities} |