| #-*- 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 =================== |