Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^4: Strawberry Perl 5.12.3, CPAN, make file problems (dmake.exe), DFSEP and backslash "\"

by Anonymous Monk
on Dec 03, 2011 at 01:24 UTC ( [id://941468]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Strawberry Perl 5.12.3, CPAN, make file problems (dmake.exe), DFSEP and backslash "\"
in thread Strawberry Perl 5.12.3, CPAN, make file problems (dmake.exe), DFSEP and backslash "\"

Any ideas?

Stop digging before you've ruled out the most simple things

Step 1, step out of cpan, cpan>look Module and run perl Makefile.PL yourself, and confirm

perl -V: <P>Confirm all paths, eg <C>perl -V:make -V:perlpath -e " die $^X

Look inside Makefile for path to perl.exe

  • Comment on Re^4: Strawberry Perl 5.12.3, CPAN, make file problems (dmake.exe), DFSEP and backslash "\"
  • Select or Download Code

Replies are listed 'Best First'.
Re^5: Strawberry Perl 5.12.3, CPAN, make file problems (dmake.exe), DFSEP and backslash "\"
by jffry (Hermit) on Feb 16, 2012 at 23:26 UTC

    I ran your command, and it looks okay to to me.

    C:\strawberry\cpan\build\OLE-Storage_Lite-0.19-pT5XuU > perl -V:make -V:perlpath -e " die $^X" make='dmake'; perlpath='C:\strawberry\perl\bin\perl.exe'; C:\strawberry\perl\bin\perl.exe at -e line 1.

    After the perl Makefile.PL command, I look in the Makefile and see:

    C:\strawberry\cpan\build\OLE-Storage_Lite-0.19-pT5XuU > find "perl.exe" Makefile ---------- MAKEFILE PERL = C:\strawberry\perl\bin\perl.exe FULLPERL = C:\strawberry\perl\bin\perl.exe perl.exe so_locations \ FULLPERL = C:\strawberry\perl\bin\perl.exe

    Any more suggestions?

      Any more suggestions?

      In my version of Strawberry, when I build IO-React-1.03, there's no problem.
      When I look at the generated Makefile I see:
      DIRFILESEP = \\ DFSEP = $(DIRFILESEP)
      Next I open up lib/ExtUtils/MM_Win32.pm and I find in it:
      sub init_DIRFILESEP { my($self) = shift; # The ^ makes sure its not interpreted as an escape in nmake $self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' : $self->is_make_type('dmake') ? '\\\\' : '\\'; }
      So I change the dmake setting (from 4 backslashes to 2) so that the sub now reads:
      sub init_DIRFILESEP { my($self) = shift; # The ^ makes sure its not interpreted as an escape in nmake $self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' : $self->is_make_type('dmake') ? '\\' : '\\'; }
      Now ... have another go at building IO-React-1.03 (having first run 'dmake realclean'):
      C:\sisyphusion\IO-React-1.03>perl makefile.PL Checking if your kit is complete... Looks good Writing Makefile for IO::React Writing MYMETA.yml and MYMETA.json C:\sisyphusion\IO-React-1.03>dmake dmake: Error: -- `C:\_32\strawberry514\perl\libConfig.pm' not found, +and can't be made
      Sure enough, when I look at the generated Makefile, I now find it's the same as yours wrt DIRFILESEP:
      DIRFILESEP = \ DFSEP = $(DIRFILESEP)
      Your generated Makefile is wrong ... plain and simple ... you need to remedy whatever it is that keeps generating this fucked Makefile.

      In the above MM_Win32.pm sub, does $self->is_make_type('dmake') return true for you ?
      In essence, you just need to modify that sub so that it returns \\\\ (4 backslashes) for you. Even if you just do it as:
      sub init_DIRFILESEP { return '\\\\'; }
      That should do it.

      Cheers,
      Rob

        Thanks for the help and insight, Rob. Both you and Eliya got me learning perl make Module internals, and I even learned a new idiom. I absolutely appreciate the effort you've shown in helping me.

        However, it was the thought of having to create a kludge for a freshly installed Strawberry Perl that really got me looking closely at what Anonymous was writing about cpan conf options, and that lead to a solution my neat-freak mentality preferred.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://941468]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (2)
As of 2024-04-26 00:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found