What am I missing? Well ... it's not finding the gsl headers.
The only way I can get it to build on Windows is to set CPATH to the directory that contains
gsl/gsl_nan.h (*not* the directory that contains gsl_nan.h), and set LIBRARY_PATH to the directory that contains the gsl libraries.
That CPATH setting will do the trick for you, too, but for the LIBRARY_PATH setting to work, you might (not sure) also need to modify perl/lib/ExtUtils/Liblist/Kid.pm. If you look in that file, you'll find the following code:
if ($VC and exists $ENV{LIB} and $ENV{LIB}) {
push @libpath, split /;/, $ENV{LIB};
}
Immediately below that insert:
if ($GC and exists $ENV{LIBRARY_PATH} and $ENV{LIBRARY_PATH}) {
push @libpath, split /;/, $ENV{LIBRARY_PATH};
}
Alternatively, you could probably just alter the libpth setting in lib/Config_heavy.pl to include the directory that contains the gsl library files.
It should then build for you - though I'm a little concerned about the structure of your gsl library. You say that gsl_nan.h and friends is in GSL_DIR/gsl, but that GSL_DIR points to %SHORTPATH%\PKGCON~1\bin\PkgConfig. I can't follow that, and even if I could it wouldn't sound right to me.
Be prepared for a number of test failures when running the Math-GSL-0.22 test suite. Despite the failures, you can of course install it anyway - you may find it works quite well for you.
Cheers,
Rob
UPDATEs: Btw, if you want to build a Math::GSL that passes all of its tests, I'm pretty sure version 0.14 fits that bill - there may, of course, also be later versions that pass all tests. I think those earlier versions are missing some of the functionality of the later versions, and it's this added "functionality" (along with a few test suite bugs perhaps) that's currently breaking Math::GSL on Windows.
0.22 actually builds better than I remembered - so long as you're building against a dynamic (dll) build of the gsl library. You'll get segfaults if you build against a static library, owing to the way in which the Math::GSL error handling is structured. Here's my 'perl build test' report for 0.22:
Test Summary Report
-------------------
t\CDF.t (Wstat: 512 Tests: 794 Failed: 2)
Failed tests: 481, 523
Non-zero exit status: 2
t\Matrix.t (Wstat: 0 Tests: 238 Failed: 0)
TODO passed: 209-212
t\Vector.t (Wstat: 0 Tests: 142 Failed: 0)
TODO passed: 141-142
Files=52, Tests=3636, 39 wallclock secs ( 2.03 usr + 0.31 sys = 2.34
+ CPU)
Result: FAIL
Failed 1/52 test programs. 2/3636 subtests failed.
As you can see, nothing to worry about except for tests 481 and 523 in t/CDF.t
I've only just now worked out that the reason I had to use CPATH and LIBRARY_PATH was that my lib/pkgconfig/gsl.pc was written to specify pathnames in msys-style. If paths are specified in that file using normal windows-style pathnames then there's no need to make use of CPATH and LIBRARY_PATH.
(My gsl library was built in the msys shell - hence the use of msys-style paths in gsl.pc.)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.