> Peter Samuelson <pe...@p12n.org> writes:
> > My patch is pretty crude, to Makefile.in:
> >
> >  $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
> > -       cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
> > +       cd $(SWIG_PL_DIR)/native; \
> > +               $(PERL) Makefile.PL INSTALLDIRS=vendor; \
> > +               sed -i -e '/^LD_RUN_PATH/s/^/#/' Makefile Makefile.[a-z]*
> >
> > Basically it comments out the LD_RUN_PATH = ... line from the family of
> > Makefiles.  (Adding 'INSTALLDIRS=vendor' is also needed here, but is
> > not part of the RPATH fix.)  One would think a cleaner solution could
> > be found, working _with_ ExtUtils::MakeMaker instead of against it.

[Philip Martin]
> So that removes RPATH from the shared objects in the build dir as
> well as the install dir?  Do the tests still work?

Yes and yes, I think.  The tests still work because the generated
Makefile sets LD_LIBRARY_PATH to that same long string.

> > Besides being crude, it uses sed -i, which works on my platform but
> > is not portable.  (Portable is to redirect sed to a temp file and
> > then rename it to the original, which here would involve a shell
> > loop.)
> 
> Since we must have perl
>      $(PERL) -pi -e 's/..../'
> should be portable.

Heh, true enough.  Anyway, editing a generated Makefile after the fact
seems pretty crude compared to just figuring out why ExtUtil::MakeMaker
puts that line in in the first place, and getting it to not do that.
-- 
Peter Samuelson | org-tld!p12n!peter | http://p12n.org/

Reply via email to