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


Reply via email to