Hi,
Probably more of a 'dmake' issue than anything else .... but I don't know
where else I should ask about it.
If, using 'dmake' on MinGW-built perl 5.8 (Win32), you work through example
4 in
perlxstut, you end up with the error message that forms the subject line of
this post.
Basically, in example 4, you build a module that uses an external C library.
The source to that library is included in the module source (in its own
sub-directory and with its own Makefile.PL), and the library is built during
the building of the module.
The problem arises from the Makefile.PL that is in the sub-directory
containing the library source. It looks like this:
use ExtUtils::MakeMaker;
$Verbose = 1;
WriteMakefile(
NAME => 'Mytest2::mylib',
SKIP => [qw(all static static_lib dynamic dynamic_lib)],
clean => {'FILES' => 'libmylib$(LIB_EXT)'},
);
sub MY::top_targets {
'
all :: static
pure_all :: static
static :: libmylib$(LIB_EXT)
libmylib$(LIB_EXT): $(O_FILES)
$(AR) cr libmylib$(LIB_EXT) $(O_FILES)
$(RANLIB) libmylib$(LIB_EXT)
';
}
'perl Makefile.PL' runs fine, but running dmake produces this:
D:\example_4_xstut\mingw-perl\Mytest2>dmake test
cp lib/Mytest2.pm blib\lib\Mytest2.pm
AutoSplitting blib\lib\Mytest2.pm (blib\lib\auto\Mytest2)
cd mylib && D:\dmake\dmake.exe -S
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DP
ERL_
IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX -s -O2 -DVERSION=
\"\"
-DXS_VERSION=\"\" "-ID:\perl58_M\5.8.6\lib\CORE" mylib.c
mylib.c:7:14: warning: no newline at end of file
ar cr libmylib.a mylib.o
rem libmylib.a
dmake.exe: Error -- Don't know how to make `static'
dmake.exe: Error code 255, while making 'mylib/libmylib.a'
dmake.exe: 'mylib/libmylib.a' removed.
With 'nmake' on exactly the same build of perl (ie setting 'make' = 'nmake'
in Config.pm), there's no such problem. The whole thing works fine.
So ..... the (obvious) question is how to fix the above Makefile.PL to work
with 'dmake' ?
(In "real life" I'm trying to get Compress::Bzip2 to build with dmake using
the bzlib source that ships with the module.)
Cheers,
Rob