in reply to Re^6: how to install perlmodules in windowsXP
in thread how to install perlmodules in windowsXP

In your perl/lib/ExtUtils/MM_Win32.pm you should have:
sub init_DIRFILESEP { my($self) = shift; # The ^ makes sure its not interpreted as an escape in nmake $self->{DIRFILESEP} = $NMAKE ? '^\\' : $DMAKE ? '\\\\' : '\\'; }
Change the code so that it is as above, and see if that fixes things. (Remove the existing Makefile and start with 'perl Makefile.PL' again.) The fact that you have '^\' leads me to believe that ActivePerl is probably finding 'nmake' - and writing a Makefile that is compatible with 'nmake', not 'dmake'. ActivePerl will accept either - it will wrtite a Makefile suited to the one that it finds first when searching the path environment variable. Both 'nmake' and 'dmake' should work fine with the MinGW compiler on ActiveState perl, so it shouldn't really matter which is found first. (As I've mentioned elsewhere, my personal preference is 'dmake' - but feel free to stick with 'nmake' if you like.) But if ActivePerl has written a Makefile to be used with 'nmake' then you can't build using 'dmake' - and if the Makefile has been written for use with 'dmake' then you can't use 'nmake'.

To verify precisely which flavour of make is being found, run:
perl -V:make
That will tell you which 'make' utility you need to use.
Let us know if that still doesn't work.

Cheers,
Rob Update:Rewritten .... to be hopefully a little clearer and more to the point

Replies are listed 'Best First'.
Re^8: how to install perlmodules in windowsXP
by veeruch (Sexton) on Mar 07, 2007 at 05:04 UTC
    Hi Rob,
    My code in perl/lib/ExtUtils/MM_Win32.pm same as you.
    sub init_DIRFILESEP { my($self) = shift; # The ^ makes sure its not interpreted as an escape in nmake $self->{DIRFILESEP} = $NMAKE ? '^\\' : $DMAKE ? '\\\\' : '\\'; }
    perl -V:make is giving
    make='nmake';
    then i can't use dmake?.
      Yes - you'll be able to use 'dmake' - but first you need to make sure that 'dmake.exe' is going to be found before 'nmake.exe'.You could do that by renaming 'nmake.exe' (eg to 'nmake-hide.exe') - but that would mean that 'nmake.exe' never gets found. Or you could remove the location of 'nmake.exe' from the path - but that would mean that other programs in the same folder also don't get found by default. Or you could re-arrange the order of the path so that the location of 'dmake.exe' occurs before the location of 'nmake.exe'.

      Cheers,
      Rob
        Hi Rob,
        i removed namke ,now dmake is working.
        But iam trying to installing Tk-804.027_500
        dmake at the end of output is :

        cp PNG.pm ..\blib\lib\Tk\PNG.pm
        cd zlib && dmake -S -S libz.lib "CC=gcc "
        <br> ar rcs libz.lib<br> rm -f<br>
        C:\Tk-804.027_500\PNG\zlib>ar rcs libz.lib
        C:\Tk-804.027_500\PNG\zlib>rm -f
        Usage: rm -firRv -s file ...
        dmake: Error code 130, while making 'libz.lib'
        dmake: 'libz.lib' removed.
        dmake: Error code 255, while making 'zlib\libz.lib'
        dmake: Error code 255, while making 'subdirs'

        C:\Tk-804.027_500>dmake test
        cd pTk && dmake -S DEFINE=""
        C:\Perl\bin\perl.exe -MExtUtils::Command -e cp
        widget ..\blib\script\widget
        pl2bat.bat ..\blib\script\widget
        cd zlib && dmake -S -S libz.lib "CC=gcc "
        <br> ar rcs libz.lib<br> rm -f<br>

        C:\Tk-804.027_500>dmake install
        cd pTk && dmake -S DEFINE=""
        C:\Perl\bin\perl.exe -MExtUtils::Command -e cp
        widget ..\blib\script\widget
        pl2bat.bat ..\blib\script\widget
        cd zlib && dmake -S -S libz.lib "CC=gcc "
        <br> ar rcs libz.lib<br> rm -f<br>