Hi list,

I have a complex issue to fix, try to solve one issue at a time...

I need to upgrade my XS wrapper in Geo::Proj4.  It wraps the 'proj'
library for geographical projections, which hadn't changed its interface
(and version number) for about 25 years!

But now, new developers have release a Proj5 and Proj6, soon to be followed
by a Proj7.  Those releases break interface on every aspect: different
header files, different C-type names, different C-functions, different
usage... only the purpose of the library stays the same.
I try to add sufficient abstraction to hide the differences between those
versions.  In Perl space, I expect that will be easier than in C space.

Problem 1:
The first problem is to build a set-up for regression tests.  I build
all released versions of the library in a separate directory, recompile
my module, and then run the regression tests.  I run something like this:
(T=/tmp/proj-4.9.1)

   perl Makefile.PL         \
      LINSTALL_BASE="$T"    \
      INC="-I$T/include"    \
      LIB="-L$T/lib64"

But this leaves LD_RUN_PATH in the Makefile to /usr/lib/../lib64
When I manually change that into $T/lib64 it starts working.  I am
unable to figure-out how to influence LD_RUN_PATH.  Anyone?

Problem 2:
Because of the changing incompatible library versions, I would like
to get to a Geo::Proj5 and Geo::Proj6, which may be available in
parallel on the system... as libproj.so.9 upto libproj.so.15
The newer version is not only better than the older, but incompatible:
old applications still need to be runnable.

Does anyone have an example how to figure-out which library versions
are available... and how to compile my Proj4.xs multiple times?
-- 
Thanks in advance,

               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       m...@overmeer.net                          soluti...@overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net

Reply via email to