Problem building quixml on Win32 - possible mkmf bug

Hi all,

Win2k Pro
Ruby 1.8 (latest Win32 installer)
quixml 0.2.1
expat 1.95.6

I’m having some trouble building quixml on my Win2k
box, and I’m wondering if it’s an mkmf issue.

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:

BEGIN mkmf.log

have_header: checking for expat.h…

···

cl -Ic:/ruby/lib/ruby/1.8/i386-mswin32
-Ic:/ruby/lib/ruby/1.8/i386-mswin32
-Ic:/expat-1.95.6/source/include -I. -I./…
-I./…/missing -MD -Zi -O2b2xg- -G6 -P conftest.c
Microsoft ® 32-bit C/C++ Optimizing Compiler Version
12.00.8168 for 80x86
Copyright © Microsoft Corp 1984-1998. All rights
reserved.

conftest.c
conftest.c(1) : fatal error C1083: Cannot open include
file: ‘expat.h’: No such file or directory
checked program was:
/* begin /
#include <expat.h>
/
end */

-------------------- no

END mkmf.log

It seems to be looking in source/include but not
source/lib for some reason. What is the problem?

I realize I could try renaming “lib” to “include” to
solve this but I’m feeling stubborn this evening. All
help appreciated.

Regards,

Dan

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?


Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

Hi,

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.

···

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


Nobu Nakada

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

Sean O'Dell
···

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.