On Thu Jan 10 19:18:50 2008, dandv wrote:
Show quoted text> >> When running dmake from another directory, by specifying its
> >> complete
> >> path, it can't find $PERLLIB\Config.pm:
> >>
> >> C:\temp\Inline-Java-0.52> C:\Utils\dmake\dmake.exe
>
> >> dmake.exe : Error: -- `C:\Perl\libConfig.pm' not found, and can't be
> made
> >>
> >> Same for running dmake from PATH.
> >
> > I can't reproduce either of these problems
[...]
Show quoted text> > Could you provide more detail on these problems, including the
> > makefile(s) that you are using. I'm not sure I understood the
> > reference to $PERLLIB\Config.pm above either: what is $PERLLIB
> > supposed to mean?
>
> Sorry for the confusion. I looked more into the issue and attached the
> makefile that causes it. Apparently, the path separator is not set
properly:
Show quoted text>
> DIRFILESEP = ^\
> DFSEP = $(DIRFILESEP)
> CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
> $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
>
> This results in the error above, `C:\Perl\libConfig.pm' not found.
OK, thanks for the clarification.
The problem here is simply that you are using an nmake-style makefile
with dmake. When you run "perl Makefile.PL" a makefile is generated in
the appropriate syntax for your make program, either nmake or dmake, as
specified by "perl -V:make". In your case the output of "perl -V:make"
is presumably "nmake" so it has generated a makefile that would be
understood by nmake, which is incompatible with dmake.
I should have thought of that sooner, really: you mentioned originally
that you're using ActivePerl, which is built with MSVC++ using nmake,
and hence has nmake specified for its make program in Config.pm.
You either need to build perl yourself using dmake from the outset, or
fool ActivePerl into thinking that it is configured using dmake rather
than nmake (which is not as devious as it sounds: there is a CPAN module
called ExtUtils-FakeConfig for doing exactly that kind of thing, and I
think ActivePerl has good support these days for building extension
modules using dmake and MinGW), or else use nmake (part of MSVC++, if
you have it) rather than dmake for building CPAN modules.
The second option there (using a "fakeconfig") is probably the simplest.
Try asking on the perl-win32-users list if you get stuck--I'm pretty
sure people on there have made good use of ActivePerl with fakeconfigs
in the past.
I'll leave this bug report open until the other issue (with $ in the
directory name) is fixed, though. When it is I'll make a new CPAN
release of dmake and let you know.