Rob,
see enclosed Prima/Config.pm patched with my "dirname(__FILE__)" hack which
might be a possible solution.
Anyway, we should perhaps move this discussion to Prima's bugtracker.
--
kmx
On 9.6.2015 8:40, sisyph...@optusnet.com.au wrote:
Hi kmx,
The below summation looks fairly right to me. Thanks for elaborating.
(Only difference for me was that apricot.h was being found, but some of
the files it wanted to #include were not.)
I've "fixed" the problem of the missing headers by having my build script
place the appropriate perl/site/lib/Prima/CORE and
perl/site/lib/Prima/CORE/generic paths into $ENV{CPATH}.
But then the build wants to find the libPrima.a that's in the blib that
was built when Prima-1.43 was built.
Those blibs still exist (all in the one directory) for all of my perls as
blib510, blib512, blib512_x64, blib514, blib514_x64, etc - so I've
altered the script to rename those blibs when&as needed so that the
libPrima.a can be found.
The builds then succeed for me.
Thanks again.
Cheers,
Rob
From: kmx
Sent: Tuesday, June 09, 2015 3:39 AM
To: sisyph...@optusnet.com.au ; pdl-devel@lists.sourceforge.net
Subject: Re: [Pdl-devel] Unable to build PDL::Drawing::Prima on Windows
Maybe I was too fast in my explanation:
1/ Let's have PDL installed
2/ I have managed somehow to install Prima-1.43 (there were some failing
tests but nothing critical)
3/ Then I have tried to install PDL-Drawing-Prima-0.10 which fails:
gcc -c -I"D:\strawberry32\perl\site\lib\PDL\Core"
-I"D:\STRAWB~2\data\.cpanm\work\1433509677.21616\Prima-1.43\include"
-I"D:\STRAWB~2\data\.cpanm\work\14335096
.21616\Prima-1.43\include\generic" -s -O2 -DWIN32
-DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-fwrapv -fno-strict-aliasing -mms-bitfi
lds -s -O2 "-DVERSION=\"0.10\"" "-DXS_VERSION=\"0.10\""
-I"D:\strawberry32\perl\lib\CORE" -I"D:\strawberry32\c\include" -o
"lib\PDL\Drawing\Prima.o" "lib\PDL\Dawing\Prima.c"
lib/PDL/Drawing/Prima.pm.PL:285:21: fatal error: apricot.h: No such file
or directory
4/ The file apricot.h comes with Prima-1.43 and is located at:
d:\strawberry32\perl\site\lib\Prima\CORE\apricot.h
5/ The trouble is that directory
"d:\strawberry32\perl\site\lib\Prima\CORE" is not part of any -I... args
passed to gcc so it is obvious that apricot.h is not found
6/ PDL-Drawing-Prima-0.10's Makefile.PL takes include paths from
%Prima::Config::Config and puts them into -I... gcc args
7/ As you can see from
perl -MPrima::Config -MData::Dumper -E "print Dumper
\%Prima::Config::Config"
there is no
"-Id:\strawberry32\perl\site\lib\Prima\CORE\apricot.h"instead there are
-ID:/STRAWB~2/data/.cpanm/work/1433509677.21616/Prima-1.43\\include
-ID:/STRAWB~2/data/.cpanm/work/1433509677.21616/Prima-1.43\\include\\generic
which are directories used during Prima-1.43 build time and available
during PDL-Drawing-Prima-0.10 build time
8/ So that is why I think there is something wrong with Prima::Config
(it might be some interference with portable strawberry)
Of course it is my theory that might be wrong.
package Prima::Config;
use vars qw(%Config %Config_inst);
use File::Basename qw(dirname);
%Config_inst = (
incpaths => [ '$(lib)\Prima\CORE','$(lib)\Prima\CORE\generic' ],
gencls => '$(bin)\gencls.bat',
tmlink => '$(bin)\tmlink.bat',
libname => '$(lib)\auto\Prima\libPrima.a',
dlname => '$(lib)\auto\Prima\Prima.xs.dll',
ldpaths => [],
inc => '-I$(lib)\Prima\CORE -I$(lib)\Prima\CORE\generic',
libs => '$(lib)\auto\Prima\libPrima.a',
);
%Config = (
ifs => '\\',
quote => '\"',
platform => 'win32',
incpaths => [ dirname(__FILE__).'\CORE', dirname(__FILE__).'\CORE\generic' ],
gencls => dirname(__FILE__) . '\..\..\bin\gencls.bat',
tmlink => dirname(__FILE__) . '\..\..\bin\tmlink.bat',
scriptext => '.bat',
genclsoptions => '--tml --h --inc',
cobjflag => '-o ',
coutexecflag => '-o ',
clinkprefix => '',
clibpathflag => '-L',
cdefs => [],
libext => '.a',
libprefix => 'lib',
libname => dirname(__FILE__) . '\..\auto\Prima\libPrima.a',
dlname => dirname(__FILE__) . '\..\auto\Prima\Prima.xs.dll',
ldoutflag => '-o ',
ldlibflag => '-l',
ldlibpathflag => '-L',
ldpaths => [],
ldlibs => ['Xpm','gif','tiff','png','jpeg','gdi32','mpr','winspool','comdlg32'],
ldlibext => '',
inline => 'inline',
dl_load_flags => 0,
inc => '-I'.dirname(__FILE__).'\CORE -I'.dirname(__FILE__).'\CORE\generic',
define => '',
libs => dirname(__FILE__) . '\..\auto\Prima\libPrima.a',
);
1;
------------------------------------------------------------------------------
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel