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

Reply via email to