Description
I after installing Alien::proj from CPAN, PDL tries to build PDL::GIS::Proj, but fails make test
and even a simple module load:
$ perl -Mblib -MPDL::GIS::Proj -e'1;'
Can't load '/Users/derek/Build/PDL/blib/arch/auto/PDL/GIS/Proj/Proj.bundle' for module PDL::GIS::Proj: dlopen(/Users/derek/Build/PDL/blib/arch/auto/PDL/GIS/Proj/Proj.bundle, 0x0001): Library not loaded: @rpath/libproj.25.dylib
Referenced from: /Users/derek/Build/PDL/blib/arch/auto/PDL/GIS/Proj/Proj.bundle
Reason: tried: '/opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib' (no such file), '/opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib' (no such file), '/usr/local/lib/libproj.25.dylib' (no such file), '/usr/lib/libproj.25.dylib' (no such file) at /opt/local/lib/perl5/5.28/darwin-thread-multi-2level/DynaLoader.pm line 197.
at -e line 0.
Compilation failed in require.
BEGIN failed--compilation aborted.
It is trying to find libproj.25.dylib in a directory with a colon in it:
/opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib
.
The correct location is:
/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib
.
blib/arch/auto/PDL/GIS/Proj/Proj.bundle
has that same string in it.
Libtmp/GIS/Proj/Makefile
has the line
LD_RUN_PATH = /opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib
Looking at the Makefile.PL, I don't see anything suspicious. The two values pulled from Alien::proj are correct:
$ perl -MAlien::proj -E 'say Alien::proj->cflags; say Alien::proj->libs;'
-I/opt/local/include -I/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/include -I/opt/local/include
-L/opt/local/lib -lsqlite3 -L/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib -lproj
All the other Makefiles in the PDL tree have either empty or sensible LD_RUN_PATH values, such as /usr/local/lib
or /opt/local/lib
.
I'm using Perl 5.28.3, EUMM 7.64.