After doing some experimentation, I find that making the following change to configure.ac and running autoreconf produces a configure script that does not error.
*** configure.ac.original 2020-06-13 15:23:43.865733311 -0400 --- configure.ac 2020-06-13 15:25:05.455499480 -0400 *************** *** 397,402 **** --- 397,404 ---- fi # proj_config_ok fi # proj_lib_path + LIBS="${PKG_LIBS} ${LIBS}" + AC_MSG_NOTICE([PROJ LIBS: ${PKG_LIBS}]) and leads to checking for proj.h... yes checking for proj_context_create in -lproj... yes checking Using GDAL < 3 with PROJ >= 6... no checking PROJ version >= 4.8.0... yes checking PROJ: proj.db found and readable... yes configure: Package CPP flags: -I/sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/include -I/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include -DPROJ_H_API configure: Package LIBS: -L/sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/lib -lgdal -L/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib -lproj configure: creating ./config.status config.status: creating src/Makevars In config.log, this shows configure:3871: checking for proj_context_create in -lproj configure:3896: gcc -o conftest -O3 -mtune=native -I/usr/local/include -DPROJ_H_API -I/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include -L/usr/local/lib64 conftest.c -lproj -L/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib -lproj -L/sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/lib -lgdal >&5 configure:3896: $? = 0 configure:3905: result: yes I am unable to find a repository to which I can submit this for consideration as a patch. On Sat, Jun 13, 2020 at 1:13 PM Bennet Fauber <ben...@umich.edu> wrote: > > I am trying to install rgdal from source on CentOS 7. > > I have installed geos, proj, and gdal successfully, they test fine. > > This is with R version 3.6.3 (2020-02-29) -- "Holding the Windsock" > compiled with gcc/8.2.0. > > This is an HPC system, and I have the following modules loaded, > > Currently Loaded Modules: > 1) gcc/8.2.0 3) image-libraries/190711.1 5) proj/6.2.1 > 2) R/3.6.3 4) geos/3.8.1 6) gdal/3.1.0 > > I get the output included below. In that output, it appears that the > configure correctly identifies the proj options needed from > pkg-config, repeated here > > configure: pkg-config proj exists, will use it > configure: PROJ version: 6.2.1 > configure: proj CPP flags: -DPROJ_H_API > -I/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include > configure: PROJ LIBS: -L/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib -lproj > > and > > $ nm /sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib/libproj.so | grep > proj_context_create > 00000000001ef4e0 T proj_context_create > > seems to indicate that is truly there. > > I unpacked the rgdal source tar ball and ran ./configure from its > directory and get the same error. Looking in the generated > config.log, I find > > configure:3869: checking for proj_context_create in -lproj > configure:3894: gcc -o conftest -O3 -mtune=native -I/usr/local/include > -DPROJ_H_API -I/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include > -L/usr/local/lib64 conftest.c -lproj > -L/sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/lib -lgdal >&5 > /usr/bin/ld: cannot find -lproj > > and from that, it appears that configure is not including the correct > CFLAGS to include proj. It is, instead, putting in > -L/usr/local/lib64, and that is not where the proj libraries are. > > Extracting the confdefs.h and conftest.c file from config.log and > running the test compilation command modified by hand to include the > correct library directory for proj, > > $ gcc -o conftest -O3 -mtune=native -I/usr/local/include -DPROJ_H_API > -I/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include > -L/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib conftest.c -lproj > -L/sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/lib -lgdal > $ echo $? > 0 > > So, I believe there is an error in configure.ac, or in the included > configure script that is not properly registering the library path for > proj. Note, also, that I get the same result if using > > $ ./configure > --with-proj-include=/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include > \ > --with-proj-lib=/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib \ > --with-proj-share=/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/share/proj > . . . . > configure: error: proj_context_create not found in libproj. > > Might anyone know what needs to be done to fix this? > > Thanks, -- bennet > > Full output of install.packages('rgdal') > #---------------------------------------------- > > install.packages('rgdal', "/sw/arcts/centos7/Rgeospatial/062020", > > repo="https:Warning: unable to access index for repository > > https:repo.miserver.it.umich.edu/cran/src/contrib: > > install.packages('rgdal', "/sw/arcts/centos7/Rgeospatial/062020", > > repos="https://repo.miserver.it.umich.edu/cran/") > trying URL > 'https://repo.miserver.it.umich.edu/cran/src/contrib/rgdal_1.5-10.tar.gz' > Content type 'application/octet-stream' length 2300923 bytes (2.2 MB) > ================================================== > downloaded 2.2 MB > > * installing *source* package ‘rgdal’ ... > ** package ‘rgdal’ successfully unpacked and MD5 sums checked > ** using staged installation > configure: R_HOME: /sw/arcts/centos7/R/3.6.3/lib64/R > configure: CC: gcc > configure: CXX: g++ -std=gnu++11 > configure: CXX11 is: g++, CXX11STD is: -std=gnu++11 > configure: CXX is: g++ -std=gnu++11 > configure: C++11 support available > configure: rgdal: 1.5-10 > checking for /usr/bin/svnversion... yes > configure: svn revision: 1006 > checking for gdal-config... > /sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/bin/gdal-config > checking gdal-config usability... yes > configure: GDAL: 3.1.0 > checking GDAL version >= 1.11.4... yes > checking GDAL version <= 2.5 or >= 3.0... yes > checking gdal: linking with --libs only... yes > checking GDAL: gdal-config data directory readable... yes > checking GDAL: > /sw/arcts/centos7/gcc_8_2_0/gdal/3.1.0/share/gdal/stateplane.csv > readable... yes > configure: pkg-config proj exists, will use it > configure: PROJ version: 6.2.1 > configure: proj CPP flags: -DPROJ_H_API > -I/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/include > configure: PROJ LIBS: -L/sw/arcts/centos7/gcc_8_2_0/proj/6.2.1/lib -lproj > checking PROJ header API:... yes > checking for gcc... gcc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking how to run the C preprocessor... gcc -E > checking for grep that handles long lines and -e... /usr/bin/grep > checking for egrep... /usr/bin/grep -E > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking proj.h usability... yes > checking proj.h presence... yes > checking for proj.h... yes > checking for proj_context_create in -lproj... no > configure: error: proj_context_create not found in libproj. > ERROR: configuration failed for package ‘rgdal’ ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.