My (limited) understanding of the portability nits of the perl Configure and build system is that
on Unix, OS/2, VOS and possibly a couple of other platforms, the shell script Configure is run to generate configuration files and a Makefile (by expanding the makefile template in Makefile.SH). makedepend.SH is run, generating another file makefile (note the lowercase name) and that makefile is run by make to build perl. I don't know what VMS does, but I believe it has a VMS specific configure program. As best I can tell from README.win32, on Win32 one is expected to edit the pre-supplied Makefile and just run Make. There doesn't seem to be any sort of Configure program. On Wed, Oct 02, 2002 at 07:22:02PM +0100, Orton, Yves wrote: > First off is the "distclean" part of the perl makefile. It is full of stuff > like this: > > -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO > -rmdir /s $(LIBDIR)\IO I believe that this form distclean target is only in the win32 Makefile, and I'd suspect that no-one actually runs it. Hence the braindeath you've found in it. I'm losing track of whether you mailed this to p5p, but I think it's a reportable bug that ought to be sent to p5p. (And Nick Ing-Simons or Sarathy poked until one of them answers) > So if this patch isnt applied to the main source tree then what is the best > way to make sure that the smoke testing isnt interrupted? Should i set up a > patchperl.bat that will automatically apply this patch? I don't know. Sorry. I hope Merijn does. > My second issue has to do with the smoke testing. It wasnt really clear to > me how to get this set up properly on win32 without using GCC. I did some > minor changes to the smokew32.bat so that I could see what was happening, > which I have attached as well as the smokew32.cfg I am using. I think there's a more fundamental problem than this, but I'm only skimming your logs (sorry - tired and low on time) They have this: > Configure ..../Configure -Dusedevel -DINST_DRV=E: > -DINST_TOP=$(INST_DRV)\smoke\bleadperl -des > Make headers ... > Microsoft (R) Program Maintenance Utility Version 7.00.9466 > Copyright (C) Microsoft Corporation. All rights reserved. > > NMAKE : fatal error U1073: don't know how to make 'regen_headers' > Stop. > > Make ... > Microsoft (R) Program Maintenance Utility Version 7.00.9466 > Copyright (C) Microsoft Corporation. All rights reserved. > > Could Not Find E:\Smoke\source\win32\config.h > Can't open W2000Pro: No such file or directory at config_sh.PL line 96. > Can't open config_args=-Dusedevel: No such file or directory at config_sh.PL > line 96. > Can't open INST_DRV=E:: Invalid argument at config_sh.PL line 96. > Can't open INST_TOP=E:\smoke\bleadperl: Invalid argument at config_sh.PL > line 96. which suggests that the smoke system is trying to use the ./Configure script to configure perl for you. Which I don't think will work at all on win32. Except than when I look at mktest.pl I see lots of is_win32 ? ... : ... which avoids running Configure, so it looks like some sort of dependency rule that Microsoft's make is picking up on. > Also, Ive been wondering why we are using a scary batchfile to do stuff that > perl does better. Is the expectation that smoke testing will occur on a > system that does not have an older stable perl installed? Is this a valid > expectation? On the system i will do my smoke testing on I will have AS Perl > 633 installed already... Yes, I wonder this. The top level smoke script is a bourne shell script, but it then calls two perl scripts [with Dutch names - good jop Merijn's successor is also Dutch :-)], so there has to be an installed perl on the system. (5.005 or better - IIRC I backported Merijn's original versions which had some 5.6isms in them) But they're then calling perl's ./Configure, which is a huge bourne shell script (at least on non-win32) I've no idea how building perl "normally" on win32 works. How many different configurations can you choose? (eg things like having -DDEBUGGING in the C compiler flags, using 64 bit integers, using long doubles, using (or not using) threads). All the smoke test scripts are trying to do for a run is rebuild the same perl source tree with different sets of configuration options. I've also no idea of how the smoke is supposed to work on win32, or which make it was written for. Nicholas Clark -- Even better than the real thing: http://nms-cgi.sourceforge.net/
