NOTICE: This thread is written for igraph developers. If you are a user trying to compile R/igraph on Windows or macOS: do you really need to do it? Consider using (possibly older) binary releases from CRAN instead.
In this thread, let’s write up detailed instructions on how to compile R/igraph from sources on all supported platforms: Windows, macOS (Intel/ARM), Linux.
This will be useful because it takes some time until CRAN generates all binaries. For 1.3.0, it took over a week and in the meantime, people keep asking about how to compile.
General notes
Make sure that all requirements are present:
- C, C++ and Fortran compilers
- GLPK and libxml2 libraries, including development headers
- Ensure that R can find these
Then install.packages("igraph") will work.
Linux
Install the above requirements using the facilities of your Linux distribution.
Debian-based distros
sudo apt install build-essential gfortran libxml2-dev libglpk-dev
Windows
Install RTools. Be sure to follow the installation instructions precisely, including setting the PATH. The below instructions assume that you are using RTools 4.0 or later.
Open an RTools terminal and install the required dependencies using pacman. Instructions for using pacman are here.
First update the package index:
pacman -Sy
Install the requirements:
pacman -Sy mingw-w64-{i686,x86_64}-glpk mingw-w64-{i686,x86_64}-libxml2 mingw-w64-{i686,x86_64}-gmp
macOS
Choose a section depending on whether you want to use developer tools from the official RTools, MacPorts, or Homebrew.
RTools
TODO
Get the developer tools from:
Download the dependencies (GLPK and libxml2 libraries) from:
MacPorts
Warning: If you are using the official R distribution, using other compilers than what come with RTools is not officially supported by the R maintainers.
Install compilers and libraries:
sudo port install clang-14 gcc11 libxml2 glpk
We need to ensure that R will use the compilers and libraries from MacPorts. Place the following in ~/.R/Makevars:
CC = /opt/local/bin/clang-mp-14
CXX = /opt/local/bin/clang++-mp-14
FC = /opt/local/bin/gfortran-mp-11
F77 = /opt/local/bin/gfortran-mp-11
FLIBS = -L/opt/local/lib/gcc11 -lgfortran -lquadmath -lm
CPPFLAGS=-I/opt/local/include
LDFLAGS=-L/opt/local/lib
If you install different versions of compilers than what is shown above, the contents of Makevars will need to be updated accordingly.
Homebrew
Warning: If you are using the official R distribution, using other compilers than what come with RTools is not officially supported by the R maintainers.
TODO