Subject: | processPL() uses "::" which breaks dmake |
The attached Foo module does not build on Win32 using dmake (either Sarathy's 4.1 build, or my new 4.3 build). It works fine with VC++ / nmake.
The problem is that bar.c and bar.o do not get made, and hence we get a link error complaining that bar.o is missing.
Issuing "dmake bar.c" before "dmake" works fine. It seems to get confused over how to make bar.c when left to its own devices. Here's the section from the Makefile for making bar.c:
bar.c :: bar.c.PL pm_to_blib.ts
$(PERLRUNINST) bar.c.PL
Note the "::", which is normally used when there is another bar.c target in the Makefile. In this case there actually isn't another bar.c target, and changing "::" to ":" fixes it. The Makefile.PL contains a commented-out processPL() to do this, and it works fine for me.
I think this is a dmake bug really, but if it is OK for processPL() to always emit a single ":" then it would be better for EU::MM to be changed to do so for users of existing dmake's. Failing that, can EU::MM determine when a "::" would be *needed* and only use it where it is really needed? If not, then the final cop-out is just to wait for a dmake fix. I've logged the bug on the OpenOffice.org website:
http://www.openoffice.org/issues/show_bug.cgi?id=43310
Message body not shown because it is not plain text.