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/

Reply via email to