My apologies - I did not read your post carefully enough and failed to notice the missing '\'. I've seen this problem before ... damn, I can't recall where it comes from, and I don't have time to investigate right now .... is it a bug in Extutils::MakeMaker ? or a bug in the ActivePerl configuration ? I think ExtUtils::MakeMaker might be the culprit. What is revealed when you run:
perl -MExtUtils::MakeMaker -e "print $ExtUtils::MakeMaker::VERSION"
What's the build number of your Active Perl ? ('perl -v' will tell you, if you're unsure.)
In the Makefile that was generated when you ran 'perl Makefile.PL', check that you have something like:
# --- MakeMaker constants section:
AR_STATIC_ARGS = cr
DIRFILESEP = \\
DFSEP = $(DIRFILESEP)
What do you have for "DIRFILESEP" ? Iirc, that's where the problem lies. I'll try to dig up more tomorrow, when I have time. In the meantime, hopefully someone else can fill in the gaps :-)
Cheers, Rob | [reply] [d/l] [select] |
Hi Rob,
if iam giving,
perl -MExtUtils::MakeMaker -e "print $ExtUtils::MakeMaker::VERSION"
out put is: Set up gcc environment - 3.4.2 (mingw-special)
6.30
perl -v
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 25 registered patches, see perl -V for more detail)
Copyright 1987-2006, Larry Wall
Binary build 817 257965 provided by ActiveState http://www.ActiveState.com
Built Mar 20 2006 17:54:25
Makefile Information
AR_STATIC_ARGS = cr
DIRFILESEP = ^\
DFSEP = $(DIRFILESEP)
NAME = Net::Telnet
NAME_SYM = Net_Telnet
VERSION = 3.03
VERSION_MACRO = VERSION
VERSION_SYM = 3_03
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
XS_VERSION = 3.03
XS_VERSION_MACRO = XS_VERSION
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
INST_ARCHLIB = blib\arch
| [reply] |
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 | [reply] [d/l] [select] |