PACKAGE = @PACKAGE@
VERSION = @VERSION@

abs_top_srcdir = @abs_top_srcdir@
abs_top_builddir = @abs_top_builddir@

include $(top_srcdir)/share/make/vars.mk

AR = @AR@
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
BLAS_LIBS = @BLAS_LIBS@
BUILDDIR_IS_SRCDIR = @BUILDDIR_IS_SRCDIR@
CC = @CC@
CFLAGS = @CFLAGS@ @LTO@
CPICFLAGS = @CPICFLAGS@
CPPFLAGS = @CPPFLAGS@
CURL_CPPFLAGS = @CURL_CPPFLAGS@
CURL_LIBS = @CURL_LIBS@
## in case we want to link with this for UBSAN checks
CXX = @CXX@
## DEFS is generated by autoconf as -DHAVE_CONFIG_H: R_DEFS is user's
DEFS = @DEFS@ @R_DEFS@
DISTDIR_TAR_EXCLUDE = --exclude=.svn --exclude=Makefile --exclude="*.o" --exclude="*$(SHLIB_EXT)" --exclude="*~"
DYLIB_EXT = @DYLIB_EXT@
DYLIB_LD = @DYLIB_LD@
DYLIB_LDFLAGS = @DYLIB_LDFLAGS@@BUILD_LTO_TRUE@ $(DYLIBS_LTO)
DYLIB_LINK = $(DYLIB_LD) $(DYLIB_LDFLAGS) $(LDFLAGS)
DYLIBS_LTO = $(CFLAGS) $(CPICFLAGS)
ECHO = echo
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
FFLAGS = @FFLAGS@ @LTO@
FLIBS = @FLIBS@
## needed for some earlier Solaris compilers
FLIBS_IN_SO = @FLIBS_IN_SO@
FPICFLAGS = @FPICFLAGS@
FC = @FC@
GETWD = @GETWD@
GZIP = --best
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DIR = ${INSTALL} -d
LDFLAGS = @LDFLAGS@
LIBINTL= @LIBINTL@
LIBM = @LIBM@
LIBR0 = @LIBR0@
LIBR1 = @LIBR1@
LIBR = @LIBR0@ @LIBR1@
## These are the libs which the final R.bin/libR is linked against.
## Many of these used to be optional: ICU libs still are.
## There may be platform-specific ones, e.g.
## -lrt -ldl on Linux, -lnsl -lsocket -lrt -lsunmath -ldl -liconv on Solaris.
LIBS = @LIBS@
LIBnn = @LIBnn@
LIBTOOL = @LIBTOOL@
## AFAICS unused
LN_S = @LN_S@
MAIN_CFLAGS = @MAIN_CFLAGS@
MAIN_FFLAGS = @MAIN_FFLAGS@
MAIN_LD = @MAIN_LD@@BUILD_LTO_TRUE@ $(CFLAGS)
MAIN_LDFLAGS = @MAIN_LDFLAGS@ @WANT_R_SHLIB_FALSE@ @USE_EXPORTFILES_TRUE@ -Wl,-bE:$(top_builddir)/etc/R.exp
MAIN_LINK = $(MAIN_LD) $(MAIN_LDFLAGS) $(LIBR0) $(LDFLAGS)
## need this for bootstrapping
MKINSTALLDIRS = @R_SHELL@ $(top_srcdir)/src/scripts/mkinstalldirs.in
NOTANGLE = @NOTANGLE@
R_ARCH = @R_ARCH@
R_DYLIB_EXT = @R_DYLIB_EXT@
R_FRAMEWORK_DIR = $(prefix)/R.framework
R_GZIPCMD = @R_GZIPCMD@
## needed for AIX only
@USE_EXPORTFILES_TRUE@ R_HOME = $(top_builddir)
R_OPENMP_CFLAGS = @R_OPENMP_CFLAGS@
## if ever used, need to check that this is compatible with C OpenMP
## and add it to ALL_FFLAGS{,_LO}
R_OPENMP_FFLAGS = @R_OPENMP_FFLAGS@
R_OSTYPE = @R_OSTYPE@
R_PKGS = $(R_PKGS_BASE) @USE_RECOMMENDED_PACKAGES_TRUE@ $(R_PKGS_RECOMMENDED)
R_PLATFORM = @R_PLATFORM@
R_XTRA_CFLAGS = @R_XTRA_CFLAGS@ 
R_XTRA_CPPFLAGS = @R_XTRA_CPPFLAGS@ -I. -I$(top_builddir)/src/include -I$(top_srcdir)/src/include
R_XTRA_FFLAGS = @R_XTRA_FFLAGS@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
SED = @SED@
SHELL = @R_SHELL@
SHLIB_EXT = @SHLIB_EXT@
SHLIB_CFLAGS = @SHLIB_CFLAGS@
SHLIB_FFLAGS = @SHLIB_FFLAGS@
SHLIB_LD = @SHLIB_LD@
SHLIB_LDFLAGS = @SHLIB_LDFLAGS@@BUILD_LTO_TRUE@ $(SHLIB_LTO)
SHLIB_LINK = $(SHLIB_LD) $(SHLIB_LDFLAGS) $(LIBR0) $(LDFLAGS)
SHLIB_LTO = $(CFLAGS) $(CPICFLAGS)
STRIP_SHARED_LIB = @STRIP_SHARED_LIB@
STRIP_STATIC_LIB = @STRIP_STATIC_LIB@
TAR = @TAR@
USE_NLS = @USE_NLS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
YACC = @YACC@

## MAIN_[CF]FLAGS are used on some systems when profiling R.
ALL_CFLAGS = $(R_XTRA_CFLAGS) $(R_OPENMP_CFLAGS) $(MAIN_CFLAGS) $(CFLAGS)
ALL_CPPFLAGS = $(R_XTRA_CPPFLAGS) $(CPPFLAGS) $(DEFS)
ALL_FFLAGS = $(R_XTRA_FFLAGS) $(MAIN_FFLAGS) $(FFLAGS)

## For use in src/{appl,main} when R is a shared library, src/modules/lapack
## and src/extra/blas when internal BLAS is built as a shared library
## SHLIB_CFLAGS and SHLIB_FFLAGS are apparently currently unused
ALL_CFLAGS_LO = $(R_XTRA_CFLAGS) $(R_OPENMP_CFLAGS) $(CPICFLAGS) $(SHLIB_CFLAGS) $(CFLAGS)
ALL_FFLAGS_LO = $(R_XTRA_FFLAGS) $(FPICFLAGS) $(SHLIB_FFLAGS) $(FFLAGS)

.SUFFIXES:
.SUFFIXES: .c .f .m .d .o

@r_cc_rules_frag@
.f.o:
	$(FC) $(ALL_FFLAGS) -c $< -o $@

prefix = @prefix@
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
## only used for installing 'R'.
bindir = @bindir@
## not used
datadir = @datadir@
## used for 'rhome' and installation of standalone Rmath
libdir = @libdir@
## used for man page
mandir = @mandir@
## used for installation of standalone Rmath headers
includedir = @includedir@

rhome = ${libdir}/R
rsharedir = @rsharedir@
rincludedir = @rincludedir@
rdocdir = @rdocdir@

## Overrides for installing R as a framework (macOS).
@WANT_R_FRAMEWORK_TRUE@FW_VERSION = @FW_VERSION@
@WANT_R_FRAMEWORK_TRUE@rhome = $(R_FRAMEWORK_DIR)/Versions/$(FW_VERSION)/Resources
@WANT_R_FRAMEWORK_TRUE@bindir = $(rhome)
@WANT_R_FRAMEWORK_TRUE@mandir = $(rhome)

Rexecbindir = $(rhome)/bin
Rexecbindir2 = $(rhome)/bin/exec$(R_ARCH)
Rexeclibdir = $(rhome)/lib$(R_ARCH)
## FIXME:
## Alternatively, we could try to set pkglibdir = $(rhome)/lib when
## switching to automake.
## </FIXME>
Rexecmodulesdir = $(rhome)/modules$(R_ARCH)
