Menu

#437 pdlpp_postamble is not MS Windows compatible

normal
closed-fixed
nobody
None
5
2022-04-14
2017-06-27
kmx
No

I have experienced this:

Installing Z:\sbpp520-64\perl\site\lib\auto\PDL\IO\Image\Image.xs.dll
Appending installation info to Z:\sbpp520-64\perl\lib/perllocal.pod
"Updating PDL documentation database...";
"Z:\sbpp520-64\perl\bin\perl.exe" -e 'exit if $ENVDESTDIR; use PDL::Doc; eval { PDL::Doc::add_module(qPDL::IO::Image); }; ';
Can't find string terminator "'" anywhere before EOF at -e line 1.
dmake.exe:  Error code 255, while making 'install'

Which led me to sub pdlpp_postamble where we do:

sub pdlpp_postamble {
    join '',map { my($src,$pref,$mod) = @$_;
    my $w = whereami_any();
    $w =~ s%/((PDL)|(Basic))$%%;  # remove the trailing subdir
qq|

$pref.pm: $src
    \$(PERL) "-I$w" \"-MPDL::PP qw[$mod $mod $pref]\" $src

$pref.xs: $pref.pm
    \$(TOUCH) \$@

$pref.c: $pref.xs

$pref\$(OBJ_EXT): $pref.c

install ::
    \@echo "Updating PDL documentation database...";
    \$(ABSPERLRUN) -e 'exit if \$\$ENV{DESTDIR}; use PDL::Doc; eval { PDL::Doc::add_module(q{$mod}); }; ';
|
    } (@_)
} 

Which generates the following line in Makefile

$(ABSPERLRUN) -e 'exit if $$ENV{DESTDIR}; use PDL::Doc; eval { PDL::Doc::add_module(q{PDL::IO::Image}); }; ';

Where it fails because on MS Win we have to use double quotes like this:

$(ABSPERLRUN) -e "....."

The trouble appears to be approx 1 year old https://github.com/PDLPorters/pdl/commit/ca92c57b8cc1

Discussion

  • Chris Marshall

    Chris Marshall - 2017-06-27

    Thanks for reporting the bug.

     
  • mohawk

    mohawk - 2022-04-14
    • status: open --> closed-fixed
     

Log in to post a comment.