On Sun, Feb 13, 2005 at 03:52:55AM +0000, Sisyphus wrote: > # --- MakeMaker processPL section: > > all :: Core.xs > $(NOECHO) $(NOOP) > > Core.xs :: Core.xs.PL > $(PERLRUNINST) Core.xs.PL Core.xs
*snip* > Afaict, Core.xs.PL is not being run - no warnings, no error messages, no > mention of 'Core.xs.PL' - it is just apparently being ignored. > 'dmake' runs until it errors trying to link to Core.obj - which doesn't > exist. I'm assuming that Core.obj doesn't exist simply because Core.xs > didn't get generated in the first place. (Though with 'nmake' I get the > impression that Core.xs doesn't get generated until 'nmake' realises > that 'Core.obj' is needed ... but it's hard for me to work out just > what's going on behind the scenes. I really don't know if this is a > problem with the way dmake processes PL_FILES, or whether it's a problem > with the xs_c and/or xs_o sections.) The code above, and what's in the Makefile you provided, appears correct. Though make_from_PL() is kind of redundant. The only thing I can think is somehow the Core.obj target is getting run before Core.xs.PL is and Core.obj does not depend on Core.xs. That's 100% hypothesis but I don't see anything in the Makefile which causes Core.obj to be dependent on Core.xs but I don't really understand the .xs* targets. If it was GNU make I'd run a "make -d" and follow the dependency tree using the resulting debug output. Don't know what the dmake equivalent is.
