in reply to Re^4: XML::LibXSLT on OS X install problem
in thread XML::LibXSLT on OS X install problem

... if I can figure out what arguments to pass Makefile.PL (and how), I think I can get this working.

I know exactly what that's like. This really clever, handy install tool says "Try setting LIBS and INC values on the command line", and... okay, how is that done, exactly? Um...

Well, I did find it -- it's tucked away in some nook of Makefile.PL, in a code block that you somehow failed to trigger. Given that you know where the library (libxml*) and include files (*.h) are, you do this in the build directory:

perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'
That should do it. (I hope)

Replies are listed 'Best First'.
Re^6: XML::LibXSLT on OS X install problem
by alienhuman (Pilgrim) on Feb 07, 2006 at 04:46 UTC

    graff, thanks very much for all your help.

    Here's the makefile command, with args for the correct paths:

    perl Makefile.PL LIBS='-L/sw/lib' INC='-I/sw/include'
    And here's the output (which I believe indicates success):
    running xslt-config... ok looking for -lxslt... yes looking for -lexslt... yes Writing Makefile for XML::LibXSLT
    Now here's the bad news. I ran 'make', and got some seriously ugly output. The problem (I think) stems from some initial error messages like this:
    In file included from LibXSLT.xs:7: /sw/include/libxslt/xslt.h:13:25: libxml/tree.h: No such file or direc +tory
    Now, I've got tree.h (and related headers) on my system in two places: /sw/include/libxml2/libxml/tree.h and /sw/include/gnome-xml/tree.h

    The question is, which one and how to get it in the Makefile? Also, I'd like to say here that this question has basically left the domain of perl and veered into make, so if you don't have time for this hand-holding, I completely understand. I recognize that I really need to pick up a book on make and learn wtf I'm doing. ;-)

    The full output from make follows:

    ----------
    Using perl 5.8.1-RC3 unless otherwise noted. Apache/1.3.33 (Darwin) unless otherwise noted. Mac OS X 10.3.9 unless otherwise noted.
      Now, I've got tree.h (and related headers) on my system in two places: /sw/include/libxml2/libxml/tree.h and /sw/include/gnome-xml/tree.h

      The question is, which one and how to get it in the Makefile?

      I'd say the build wants the libxml/tree.h, but it looks like you have one more directory layer under /sw/include than the build is expecting. Is it the case that "/sw/include/libxml/" does not exist? (If it does exist, what is that?)

      If there currently is no "/sw/include/libxml" directory on your machine, then the next thing to try (using the unix shell) is:

      cd /sw/include ln -s libxml2/libxml libxml
      That creates a symbolic link whose absolute path is "/sw/include/libxml", and whose target (the absolute path that it links to) is "/sw/include/libxml2/libxml". Once that is done, go back to build directory and try again (maybe starting with just "make" will suffice). The build should (I hope) be able to find the header files it's looking for now.

      (It's not a "make" thing, it's a path thing. You can go ahead and learn more about "make" anyway, but don't expect it to be a quick study.)

        Thanks graff. I don't know why, but I figured it wasn't kosher to use a symlink, that there must be some variable to set in the Makefile.

        Thanks for all your help. Make worked just fine this time.

        ----------
        Using perl 5.8.1-RC3 unless otherwise noted. Apache/1.3.33 (Darwin) unless otherwise noted. Mac OS X 10.3.9 unless otherwise noted.