1

I am trying to install the package Rcartogram, which depends on fftw. I have no problems installing fftw on Ubuntu, thanks to this question/answer: How to install the fftw3 package of R in ubuntu 12.04?

library(fftw)

works nicely, and I have all required libs and includes:

root@DUS-WKS-B2011:~# ls /usr/include/fftw*
/usr/include/fftw3.f    /usr/include/fftw3.h     /usr/include/fftw3q.f03
/usr/include/fftw3.f03  /usr/include/fftw3l.f03

and the libraries:

root@DUS-WKS-B2011:~# ls /usr/lib/x86_64-linux-gnu/*fftw* 
/usr/lib/x86_64-linux-gnu/libfftw3.a                  /usr/lib/x86_64-linux-gnu/libfftw3l_threads.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3f.a                 /usr/lib/x86_64-linux-gnu/libfftw3_omp.a
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.a             /usr/lib/x86_64-linux-gnu/libfftw3_omp.so
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.so            /usr/lib/x86_64-linux-gnu/libfftw3_omp.so.3
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.so.3          /usr/lib/x86_64-linux-gnu/libfftw3_omp.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3f_omp.so.3.4.4      /usr/lib/x86_64-linux-gnu/libfftw3q.a
/usr/lib/x86_64-linux-gnu/libfftw3f.so                /usr/lib/x86_64-linux-gnu/libfftw3q_omp.a
/usr/lib/x86_64-linux-gnu/libfftw3f.so.3              /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so
/usr/lib/x86_64-linux-gnu/libfftw3f.so.3.4.4          /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so.3
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.a         /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.so        /usr/lib/x86_64-linux-gnu/libfftw3q.so
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.so.3      /usr/lib/x86_64-linux-gnu/libfftw3q.so.3
/usr/lib/x86_64-linux-gnu/libfftw3f_threads.so.3.4.4  /usr/lib/x86_64-linux-gnu/libfftw3q.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3l.a                 /usr/lib/x86_64-linux-gnu/libfftw3q_threads.a
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.a             /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.so            /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so.3
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.so.3          /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3l_omp.so.3.4.4      /usr/lib/x86_64-linux-gnu/libfftw3.so
/usr/lib/x86_64-linux-gnu/libfftw3l.so                /usr/lib/x86_64-linux-gnu/libfftw3.so.3
/usr/lib/x86_64-linux-gnu/libfftw3l.so.3              /usr/lib/x86_64-linux-gnu/libfftw3.so.3.4.4
/usr/lib/x86_64-linux-gnu/libfftw3l.so.3.4.4          /usr/lib/x86_64-linux-gnu/libfftw3_threads.a
/usr/lib/x86_64-linux-gnu/libfftw3l_threads.a         /usr/lib/x86_64-linux-gnu/libfftw3_threads.so
/usr/lib/x86_64-linux-gnu/libfftw3l_threads.so        /usr/lib/x86_64-linux-gnu/libfftw3_threads.so.3
/usr/lib/x86_64-linux-gnu/libfftw3l_threads.so.3      /usr/lib/x86_64-linux-gnu/libfftw3_threads.so.3.4.4

The problem starts when I want to install Rcartogram. The original site is down, but fortunately, they moved all the code to github: https://github.com/omegahat/Rcartogram. Even easier to install then, I thought! Unfortunately,

install_github("omegahat/Rcartogram")

gives the following error:

> install_github("omegahat/Rcartogram")
Downloading GitHub repo omegahat/Rcartogram@master
from URL https://api.github.com/repos/omegahat/Rcartogram/zipball/master
Installing Rcartogram
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore CMD  \
  INSTALL '/tmp/Rtmp3BpPB1/devtools5fd876a8a4b4/omegahat-Rcartogram-715cb93'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

* installing *source* package ‘Rcartogram’ ...
checking for pkg-config... /usr/bin/pkg-config
Looking for fftw3 files in /usr/local
Cannot find fftw.h
ERROR: configuration failed for package ‘Rcartogram’
* removing ‘/usr/local/lib/R/site-library/Rcartogram’
Error: Command failed (1)

The error message is clear, it's looking for the includes in /usr/local, but they're in /usr/include. How can I tell R to search for them in /usr/include? I need something like -I/usr/include, but

install_github("omegahat/Rcartogram", args = c('--configure-vars="-I/usr/include"'))

or similar tries did not work.

I'm running Ubuntu 14.10, 64bit.

Community
  • 1
  • 1
Christoph Safferling
  • 1,116
  • 11
  • 10
  • I would suggest including the directory `/usr/include` in `LD_LIBRARY_PATH`. Alternatively, one could place a symbolic link to `/usr/include` in `/usr/local/`. The latter requires sudo privileges. – RHertel Mar 15 '16 at 14:10
  • Yes, I could softlink the files, but I'm looking for the "correct" way to pass the flags to install.packages(). Just be clean :) – Christoph Safferling Mar 17 '16 at 12:53

1 Answers1

0

Try install_github("omegahat/Rcartogram", args = c('--configure-vars="--with-fftw3=/usr"'))

since in https://github.com/omegahat/Rcartogram/blob/master/configure.in ,

if test -r $FFTW3_DIR/include/fftw3.h ; then
    PKG_CPPFLAGS="-I$FFTW3_DIR/include/"
    ...
fi;

and in https://github.com/omegahat/Rcartogram/blob/master/configure

# Check whether --with-fftw3 or --without-fftw3 was given.
if test "${with_fftw3+set}" = set; then
    withval="$with_fftw3"
    FFTW3_DIR="$withval"
fi;