Hello Michiel,

No problem, I’ll explain here the steps I followed to build XML::LibXML. I 
did it using Microsoft VC10 (command prompt evironment) and using my 
self-built Perl 5.16 x64 (also with VC10), but it should work with Active 
State Perl too. Also, I didn’t build LibXML myself because I saw it would 
take much more effort - instead I downloaded the binary x64 build from one 
of the WinGNU projects (from 
http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/). So, these are 
the steps:

1) Download the already built LibXML and LibXML-dev from these links:

http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/libxml2-dev_2.7.7-1_win64.zip
http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/libxml2_2.7.7-1_win64.zip


2) Download the already built iconv from this link:

http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/win-iconv-dev_tml-20100912_win64.zip


3) Download the already built zlib from this link:

http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/zlib-dev_1.2.5-1_win64.zip


4) Download the already built gettext-tools from this link:

http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/gettext-tools-dev_0.18.1.1-2_win64.zip


5) Download the source for XML::LibXML from this link (latest version as of 
today):

http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0014.tar.gz


Now, select a location to work on your hard drive. For these instructions, 
I'll use "C:\perl_libxml". If you chose something different, adjust the 
following steps accordingly.

a) Unzip LibXML (both dev and no-dev to the same folder), iconv, zlib and 
the source for XML::LibXML inside C:\perl_libxml. Do it maintaining a folder 
for each one. I also simplified the name of those folders (removing version 
number and so). You should endup with a directory looking like this:

C:\perl_lib_xml
    |- gettext
        |- bin
        |- include
        |- ...
    |- iconv
        |- bin
        |- include
        |- ...
    |- libxml2
        |- bin
        |- include
        |- ...
    |- XML-LibXML    <--- this one is the source for XML::LibXML
        |- debian
        |- docs
        |- example
        |- inc
        |- lib
        |- ...
    |- gettext
        |- bin
        |- include
        |- ...

b) Now, open your Visual Studio Command Prompt environment (not just the 
regular Command Prompt, unless you know how to initialize everything for 
VC). For me, it's on Start Menu under Programs / Microsoft Visual Studio 
2010 / Visual Studio Tools (select the x64 one). From there, type the 
following commands to merge the contents of gettext, iconv, libxml2 and zlib 
into a folder named 'files' (and also to correct a few things in the way):

cd C:\perl_libxml
mkdir files
xcopy gettext files /E
xcopy iconv files /E
xcopy libxml2 files /E
xcopy zlib files /E
xcopy files\include\libxml2\libxml files\include\libxml2 /E
ren files\include\libxml2 libxml
ren files\lib\zdll.lib zlib.lib
ren files\lib\libgettextlib.dll.a libgettextlib.dll.lib


c) Now, you can try to build XML::LibXML with the following commands. First, 
the following ones should give no errors and create a Makefile succesfully 
(also, I'm assuming Perl is in your system path):

cd XML-LibXML
perl Makefile.PL INC=-IC:\perl_libxml\files\include 
LIBS=-LC:\perl_libxml\files\lib


You can add DEBUG=1 at the end of that command to analyze possible errors, 
but if everything went well, you should see the following output from 
Makefile.PL:

enable native perl UTF8
Checking for ability to link against xml2...no
Checking for ability to link against libxml2...yes
Checking if your kit is complete...
Looks good
Writing Makefile for XML::LibXML
Writing MYMETA.yml and MYMETA.json


d) At this point, you can call nmake to start bulding the module:

nmake


e) It should end without errors or fatals, just with some typical warnings. 
Now, before testing, you will need to execute the following command to 
include a necessary DLL:

copy ..\files\bin\libxml2-2.dll blib\arch\auto\XML\LibXML


f) ...and now you can test with nmake:

nmake test


g) Now, this is an important part. For me, there were 2 tests failed, but 
after analyzing the failures, I'm assuming there's no real failure from the 
module, but from the test configuration itself. I think there are a few 
things that those failed tests are expecting from a Unix environment and not 
from a Windows environment. The rest of the tests were succesfull. So, I 
proceeded with the installation:

nmake install


h) ..and then I tested my own scripts using XML::LibXML to check that 
everything was working fine. For me, everything was perfectly OK and I 
received no errors on any of my scripts.


I hope this helps, since ActiveState has no time to fix it on PPM at the 
moment (according to an email I received from supp...@activestate.com).


Best regards,

Francisco Zarabozo








From: Michiel Beijen
Sent: Thursday, March 07, 2013 12:11 AM
To: Francisco Zarabozo
Cc: supp...@activestate.com ; Active State Perl Mailing List
Subject: Re: XML::LibXML broken on PPM


Hi, can you please share instructions? Esp. Compiling libxml on Windows is 
not easy for me, I tried but failed.

Op 7 mrt. 2013 03:53 schreef "Francisco Zarabozo" <fzarab...@hotmail.com> 
het volgende:

To whom may concern (@ActiveState):

Regarding the message bellow, scratch that. 'LIBS' and 'INC' need to be
defined in the call to Makefile.PL. Example:

perl Makefile.PL INC=-IC:\pathtocincludes\include LIBS=-LC:\pathtolibs\lib

Those should contain all the include and lib files from iconv, LibXML and
zlib.

I just compiled XML::LibXML v2.0014 myself successfully for Perl 5.16 x64.
It should work on PPM too.


Best regards,

Francisco Zarabozo



-----Mensaje original-----
From: Francisco Zarabozo
Sent: Wednesday, March 06, 2013 4:49 PM
To: Active State Perl Mailing List ; supp...@activestate.com
Subject: XML::LibXML broken on PPM


To whom may concern (@ActiveState):

The module XML::LibXML is failing to build on PPM since v1.71 (current
version is 2.0014). While looking at the logs on
http://ppm4.activestate.com, I see that the following environment variables
are being set:

LIB=...
INCLUDE=...

But, I also see that Makefile.PL suggests setting the following variables:

LIBS=...
INC=...

I suspect this was a change on v1.71 and it’s possible that by just changing
‘LIB’ and ‘INCLUDE’ to ‘LIBS’ and ‘INC’ it will work again.

I hope you can at least try it soon, I’m using AS Perl 5.16 x64 and there’s
no successful build of XML::LibXML for it. This is a very important module
for any Perl project dealing with serious XML data.

Thanks in advance!


Best regards,

Francisco Zarabozo

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs 

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to