Steve Hay wrote: > > Running "[dn]make" then "[dn]make distclean" on Win32 still doesn't > quite put you back where you started, which could affect Test::Smoke. > > Various .pm files that were either generated by _pm.PL files or else > copied from somewhere get left behind (including a whole Encode/ > directory), and a few ext/ modules leave const-c.inc and const-xs.inc > files behind. > > The attached patch deletes such .pm files, and changes the Makefile.PL's > in a few ext/ modules to remove those *.inc files when doing a "clean" > (which "distclean" does) rather than only when doing a "realclean". (Do > the affected modules' $VERSION's need bumping up because of these changes?) > > I've also removed the explicit deletion of files in directories that are > about to be removed with "rmdir /s /q" since the /s causes the entire > directory tree (i.e. including all files and sub-directories within in) > to be deleted anyway. > > Finally, I've tidied up the end of the "distclean" target in Makefile to > follow the rather nicer "cd DIR && del FILES" idiom employed by > makefile.mk, rather than doing separate cd's and del's.
There are lots of chunks in your patch that go like - realclean => {FILES=> 'const-c.inc const-xs.inc'}, + clean => {FILES=> 'const-c.inc const-xs.inc'}, but "make distclean" is supposed to do a realclean in the extensions. As the MakeMaker doc states, make clean # delete local temp files (Makefile gets renamed) make realclean # delete derived files (including ./blib) If it doesn't, or if it does and fails to delete the files listed under "clean", that's a MakeMaker Win32 bug. IMO. Besides this, I applied the win32/?akefile* part of your patch as change #22477, thanks.