Rev 81468 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#-*- Makefile -*-## This is only used when building R itself but it does customize## etc/*/Makeconf: see fixed/Makefile## Customize by copying to MkRules.local and uncommenting and editing## some of the definitions there. The values are tailored to Rtools42, the## currently recommented toolchain using gcc 10.3, MinGW-w64 9, 64-bit only,## UCRT. R is only intended to be built for 64-bit UCRT as of R 4.2.## =========== configuration macros for building packages ================# LOCAL_SOFT is intended to point to software collection with static# libraries and headers installed "outside of Rtools", in the same spirit as# software is installed on Linux into '/usr/local' if it is not available in# the respective Linux distribution.## CRAN distributed this software and running 'make rsync-extsoft' would# populate the default directory $(R_HOME)/extsoft. The versions used on# CRAN recommended for R 2.14.2 to 3.2.4 can still be found at# https://www.stats.ox.ac.uk/pub/Rtools/libs.html## Eventually, this software collection became part of Rtools, so it should# no longer be referred to via LOCAL_SOFT. Rtools42 hence introduce# variable R_TOOLS_SOFT for use in R packages to refer to headers or# libraries in the Rtools software collection (which in turn can be# influenced by R_CUSTOM_TOOLS_SOFT for packages). LOCAL_SOFT should not be# used for that purpose. R source code refers to that software collection# using EXT_LIBS.## However, a number of CRAN packages ended up referring to Rtools software# collection via LOCAL_SOFT, so LOCAL_SOFT is set up by default to also# point to the Rtools software. This may be changed in the future.## To build R from source with Rtools42 (installed from installer as well as# tarball), gcc has to be on PATH and LOCAL_SOFT can be computed as follows:## LOCAL_SOFT ?= $(shell which `echo $(CC) | sed -e 's/ .*//g'` | sed -e 's!/bin/[^/]\+!!g')### ============== configuration macros for building R ===================# Path of library directory containing zlib, bzlib, liblzma, pcre,# libpng, libjpeg, libtiff, xz.# Use 'make rsync-extsoft' to populate the default directory.# EXT_LIBS = $(LOCAL_SOFT)# an alternative is to use -gstabs here, if the debugger supports only stabs.# G_FLAG = -gdwarf-2# Set to YES and specify the path if you want to use the ATLAS BLAS.# USE_ATLAS = NO# ATLAS_PATH =# Support for the ACML and Goto BLASes has been withdrawn: see R-admin.html# Define to use svnversion to set SVN-REVISION (slow, and requires a clean# checkout with no modifications).# USE_SVNVERSION = YES# With the previously recommended gcc 4.6.3 toolchain, set this to 32 or 64# MULTI =# If the toolchain's bin directory is not in your path, set this to the path# (including the trailing /, and use / not \).# TOOL_PATH =# for other toolchains leave these empty and set the more detailed options below# With the previously recommended gcc 8.3.0 toolchain, set# BINPREF and BINPREF64 (below) to the respective bin directories.# Include the trailing /, and use / not \.# Do this in the more detailed options below# Set this to 32 or 64 (in previously recommended toolchains)# WIN = 64### BEGIN more detailed options# Some of the toolchains have prefixes for e.g. ar, gcc.# This can also be used to give the full path to the compiler,# including a trailing / .# BINPREF =# prefix for 64-bit:# BINPREF64 =# Set this to indicate a non-gcc compiler and version# COMPILED_BY = <determined automatically># Others use a -m64 or -m32 option to select architectures# M_ARCH =# and for as (--32 or --64)# AS_ARCH =# and for windres (-F pe-i386 or pe-x86-64)# RC_ARCH =# and for dlltool ("-m i386 --as-flags --32" vs "-m i386:x86-64 --as-flags --64")# DT_ARCH =# 32- or 64-bit Windows?# WIN = 32# The gcc 4.9.3 64 bit toolchain is set up for the 'medium code' model and needs# to remove the .refptr and .weak entries from the exports list; this is the default# when WIN = 64, with blank for WIN = 32:# NM_FILTER = | $(SED) -e '/[.]refptr[.]/d' -e '/[.]weak[.]/d'# We normally link directly against DLLs,# but this macro forces the use of import libs# Has been needed for some versions of MinGW-w64# USE_IMPLIBS = YES### END more detailed options# set to use ICU# USE_ICU = YES# path to parent of ICU headers# ICU_PATH =# needed libs varies by version and build.# ICU_LIBS = -lsicuin -lsicuuc -lsicudt -lstdc++# set to use libcurl# USE_LIBCURL = YES# path to parent of libcurl headers# CURL_PATH =# libs: for 32-bit (previously recommended toolchain)# CURL_LIBS = -lcurl -lrtmp -lssl -lssh2 -lcrypto -lgdi32 -lcrypt32 -lz -lws2_32 -lgdi32 -lcrypt32 -lwldap32 -lwinmm -lidn# libs: for 64-bit (previously recommended toolchain)# CURL_LIBS = -lcurl -lrtmp -lssl -lssh2 -lcrypto -lgdi32 -lcrypt32 -lz -lws2_32 -lgdi32 -lcrypt32 -lwldap32 -lwinmm# libs: currently recommended gcc 10.3 64-bit toolchain# CURL_LIBS=-lcurl -lzstd -lrtmp -lssl -lssh2 -lgcrypt -lcrypto -lgdi32 -lz -lws2_32 -lgdi32 -lcrypt32 -lidn2 -lunistring -liconv -lgpg-error -lwldap32 -lwinmm# For the cairographics devices, with the previously recommended toolchains# one would optionally use a static build of cairographics from# https://www.rforge.net/Cairo/files/cairo-current-win.tar.gz## set to build cairo devices in "cairodevices" or "distribution" targets# (they are not built in "all" even if this is set)# USE_CAIRO = YES# set to cairo headers (included in the recommended toolchain, but under "cairo")# CAIRO_CPPFLAGS = -I$(EXT_LIBS)/include/cairo# set to cairo libraries (included in the recommended toolchain)# CAIRO_LIBS = "-lcairo -lfontconfig -lfreetype -lpng -lpixman-1 -lexpat -lharfbuzz -lbz2 -lintl -lz -liconv -lgdi32 -lmsimg32"## Previous versions of R used CAIRO_HOME and an empty value meant to not# build cairo. This is no longer used.# set this to YES to build static HTML help# BUILD_HTML = NO# set to use MiKTeX (and unset otherwise)# MIKTEX = TRUE# TEXI2DVI = texi2dvi# MiKTEX no longer provides texi2dvi and needs something like (previous toolchains)# TEXI2DVI = TEXINDEX=/Rtools/bin/texindex.exe texify# with the currently recommended toolchain, Msys2 texi2dvi is used, but needs a workaround for a bug# TEXI2DVI = env COMSPEC= texi2dvi# for texinfo >= 5.1. If the texinfo files are installed at /packages/texinfo,# TEXI2ANY = /path/to/perl -I/packages/texinfo /packages/texinfo/texi2any# if you do not have texinfo (default),# TEXI2ANY = missing# additional optimization flags (e.g. -mtune=native for a private build)## -mstackrealign is used to avoid traps due to misaligned addresses with# SSE2 (seen on 32-bit builds with forced SSE2 using -mfpmath=sse -msse2,# probably not needed on 64-bit builds)## -fexceptions was used as a workaround for GCC 10.3.0 bug causing crashes in# long jumps due to invalid unwind tables. This is the only reason for# this option as R does not use structured exception handling from C.# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103274## -fno-reorder-blocks-and-partition was not a suitable workaround because# of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103465## (reorder-blocks-and-partition has been fixed in GCC, so -fexceptions# should no longer be needed for newer versions of GCC and the recommended# gcc 10.3 toolchain)## See MkRules.rules where -fno-optimize-sibling-calls is optionally added to# work around issues with gfortran/legacy calls from C.## EOPTS = -mfpmath=sse -msse2 -mstackrealign $(LTO)# define to -fopenmp if the toolchain has OpenMP support# OPENMP = -fopenmp# define to -pthread if the toolchain has pthreads support# PTHREAD = -pthread# define to use Link-Time Optimization.# standard value is -flto, or e.g. -flto=8 to use 8 threads# LTO =# flag for use with Rcmd INSTALL --use-LTO# LTO_OPT =## ====== configuration macros for building installer ===========# location where Inno Setup 6 was installed. Spaces allowed.# ISDIR = C:/Program Files (x86)/Inno Setup 6# optional location where qpdf was installed (in $(QPDF)/bin). Spaces allowed.# QPDF =# home of 32-bit files for combined installer on 64-bit build# HOME32 =# Full paths of extra DLLs that need to be shipped# e.g# DLLs32 =# DLLs64 =## ====== configuration macros for building MSI installer ===========# location where WiX 3.x executables were installed. Spaces allowed.# The MSI uses '/bin': other packagings may not# WIX3DIR = C:/packages/WiX3.5/bin# set to 1 for a non-elevated per-user installer# WIX_PERSONAL = 0## =============== end of user-customizable parts ===================