Problem building quixml on Win32

Ok - tried that. Here was the result:

C:\ruby180\src\quixml-0.2.1>ruby extconf.rb
–with-quixml-include=c:/expat-1.95.6/source/lib
–with-quixml-lib=c:/expat-1.95.6/source/lib
checking for expat.h… yes
checking for XML_ParserCreate() in -lexpat… no

Upon further review, there is an libexpat.dll and libexpat.lib in
c:/expat-1.95.6/libs (oops - duh). I modified the extconf.rb file and
replaced have_library(‘expat’) to have_library(‘libexpat’). Then I tried
this:

C:\ruby180\src\quixml-0.2.1>ruby extconf.rb
–with-quixml-include=c:/expat-1.95.6/source/lib
–with-quixml-lib=c:/expat-1.95.6/libs

That worked. One warning during build btw Sean I thought you may be
interested in:

C:\ruby180\src\QUIXML~1.1>nmake

Microsoft (R) Program Maintenance Utility Version 7.00.9466
Copyright (C) Microsoft Corporation. All rights reserved.

    cl -nologo -MD -Zi -O2b2xg- -G6 -I.

-Ic:/ruby180/lib/ruby/1.8/i386-mswin
32 -Ic:/ruby180/lib/ruby/1.8/i386-mswin32 -I. -DHAVE_EXPAT_H
-Ic:/expat-1.95.6/s
ource/lib -I. -I./… -I./…/missing -DOS_CODE=OS_WIN32 -c -Tcquixml.c
quixml.c
quixml.c(1067) : warning C4033: ‘quixml_test_node’ must return a value
cl -nologo -LD -Fequixml.so quixml.obj msvcrt-ruby18.lib
libexpat.lib o
ldnames.lib user32.lib advapi32.lib wsock32.lib -link -incremental:no
-pdb:none
-dll -libpath:“c:/ruby180/lib” -libpath:“c:/expat-1.95.6/libs”
-def:quixml.def
LINK : warning LNK4224: /PDB:NONE is no longer supported; ignored
Creating library quixml.lib and object quixml.exp

Also, there’s a libexpatw.dll and libexpatw.lib (wide, aka unicode) for
those who want to link against that instead (modify extconf.rb file
appropriately).

Regards,

Dan

PS - Need tests!

···

-----Original Message-----
From: Sean O’Dell [mailto:sean@cSePlsoAfMt.com[REMOVE_THE_SPAM]]
Sent: Tuesday, September 02, 2003 2:11 AM
To: ruby-talk@ruby-lang.org
Subject: Re: Problem building quixml on Win32 - possible mkmf bug

nobu.nokada@softhome.net wrote:

Hi,

At Tue, 2 Sep 2003 13:29:04 +0900, > > Daniel Berger wrote:

I installed expat in c:\expat-1.95.6 (using the
windows installer for expat). No problem. The
expat.h (and other source files) are located in
c:\expat-1.95.6\source\lib.

I verified that there’s a “dir_config ‘quixml’” -
there is. So, I tried this:

ruby extconf.rb
–with-quixml-dir=c:/expat-1.95.6/source. That didn’t
work. Looking at the mkmf.log file I see this:

Use --with-quixml-include=c:/expat-1.95.6/source/lib and
–with-quixml-lib=c:/expat-1.95.6/source/lib.

mkmf.rb expects headers are placed in “include” and
libraries are in
“lib” respectively.

PS - I noticed that extconf.rb does not like
backslashes in directory names, e.g.
–with-quixml-dir=c:\expat-1.95.6\source. I had to use ‘\’ to get
that to work properly. Is that proper behavior?

Yes, \ is used to escape meta-characters, e.g. space.

Thanks for the quick reply Nobu. I will fold this
information into the
README shortly.

Sean O’Dell