List Info

Thread: Do we care about old dmake's for building perl on Win32?




Do we care about old dmake's for building perl on Win32?
user name
2006-11-28 10:05:25
I've just realized that a number of changes to
win32/makefile.mk in 
recent times have rendered it incompatible with Sarathy's
old build of 
dmake (still on CPAN as "dmake-4.1pl1-win32") by
making use of "||" in 
the expression of ".IF" conditionals, which that
old version doesn't 
support.

As a result, perl no longer builds using that old dmake. You
now have to 
use one of the more recent builds that I've been putting on
CPAN in the 
last year or two.

I don't see this as being a problem. The new builds are
readily 
available from the address mentioned in README.win32, so I
don't know 
why anybody would want to stick with the old version, but I
thought I'd 
mention it in case anybody else thinks differently.

-- 


------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files
transmitted with it are confidential and intended for the
addressee(s) only. If you have received this message in
error or there are any problems, please notify the sender
immediately. The unauthorized use, disclosure, copying or
alteration of this message is strictly forbidden. Note that
any views or opinions presented in this email are solely
those of the author and do not necessarily represent those
of Radan Computational Ltd. The recipient(s) of this message
should check it and any attached files for viruses: Radan
Computational will accept no liability for any damage caused
by any virus transmitted by this email.
Do we care about old dmake's for building perl on Win32?
user name
2006-12-07 13:00:08
Steve Hay wrote:
> I've just realized that a number of changes to
win32/makefile.mk in 
> recent times have rendered it incompatible with
Sarathy's old build of 
> dmake (still on CPAN as "dmake-4.1pl1-win32")
by making use of "||" in 
> the expression of ".IF" conditionals, which
that old version doesn't 
> support.
> 
> As a result, perl no longer builds using that old
dmake. You now have to 
> use one of the more recent builds that I've been
putting on CPAN in the 
> last year or two.

Would it be possible to add a dummy target to the default
target that 
nops on a modern make, but dies with a meaningful error
"Your make is 
too old, please consult README.win32" if run on this
old dmake?

Is the old version of dmake have sufficient introspection to
make this 
possible?

David

> I don't see this as being a problem. The new builds are
readily 
> available from the address mentioned in README.win32,
so I don't know 
> why anybody would want to stick with the old version,
but I thought I'd 
> mention it in case anybody else thinks differently.
> 


-- 
Much of the propaganda that passes for news in our own
society is given 
to immobilising and pacifying people and diverting them from
the idea 
that they can confront power. -- John Pilger

Do we care about old dmake's for building perl on Win32?
user name
2006-12-08 13:11:22
David Landgren wrote:
> Steve Hay wrote:
>> I've just realized that a number of changes to
win32/makefile.mk in 
>> recent times have rendered it incompatible with
Sarathy's old build of 
>> dmake (still on CPAN as
"dmake-4.1pl1-win32") by making use of
"||" in 
>> the expression of ".IF" conditionals,
which that old version doesn't 
>> support.
>>
>> As a result, perl no longer builds using that old
dmake. You now have 
>> to use one of the more recent builds that I've been
putting on CPAN in 
>> the last year or two.
> 
> Would it be possible to add a dummy target to the
default target that 
> nops on a modern make, but dies with a meaningful error
"Your make is 
> too old, please consult README.win32" if run on
this old dmake?
> 
> Is the old version of dmake have sufficient
introspection to make this 
> possible?

There is a MAKEVERSION macro, which is 4.10 in Sarathy's old
dmake and 
4.7-2006-1120-SHAY in my latest build, but a better way to
check for 
functionality is to test it directly, as is already done to
determine 
backslash and escape sequence behaviours, e.g.:

.IF "1"=="1" ||
"1"=="1"
NEWMAKE = define
.ELSE
NEWMAKE = undef
.ENDIF

I could then make the "all" target depend on some
"CHECKMAKE" target as 
follows:

CHECKMAKE :
.IF "$(NEWMAKE)"=="define"
	$(NOOP)
.ELSE
	echo Your make is too old
.ENDIF

but this doesn't cause dmake to stop in its tracks when it
finds an old 
dmake.  It'll just print a warning message that'll get lost
amongst all 
the other output and then carry on.

There is a special target called ".EXIT" that
causes immediate exit 
while parsing the makefile, but that is so immediate that
(a) it doesn't 
even see the ".ENDIF" and emits an error about
that, and (b) it never 
gets as far as running anything so our nice message doesn't
even get 
output with that error.  That wouldn't really help the user.

Any other ideas how to cause dmake to exit at a certain
point?

-- 


------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files
transmitted with it are confidential and intended for the
addressee(s) only. If you have received this message in
error or there are any problems, please notify the sender
immediately. The unauthorized use, disclosure, copying or
alteration of this message is strictly forbidden. Note that
any views or opinions presented in this email are solely
those of the author and do not necessarily represent those
of Radan Computational Ltd. The recipient(s) of this message
should check it and any attached files for viruses: Radan
Computational will accept no liability for any damage caused
by any virus transmitted by this email.
Do we care about old dmake's for building perl on Win32?
user name
2006-12-08 13:29:25
On 12/8/06, Steve Hay <steve.hayuk.radan.com> wrote:
> David Landgren wrote:
> > Steve Hay wrote:
> >> I've just realized that a number of changes to
win32/makefile.mk in
> >> recent times have rendered it incompatible
with Sarathy's old build of
> >> dmake (still on CPAN as
"dmake-4.1pl1-win32") by making use of
"||" in
> >> the expression of ".IF"
conditionals, which that old version doesn't
> >> support.
> >>
> >> As a result, perl no longer builds using that
old dmake. You now have
> >> to use one of the more recent builds that I've
been putting on CPAN in
> >> the last year or two.
> >
> > Would it be possible to add a dummy target to the
default target that
> > nops on a modern make, but dies with a meaningful
error "Your make is
> > too old, please consult README.win32" if run
on this old dmake?
> >
> > Is the old version of dmake have sufficient
introspection to make this
> > possible?
>
> There is a MAKEVERSION macro, which is 4.10 in
Sarathy's old dmake and
> 4.7-2006-1120-SHAY in my latest build, but a better way
to check for
> functionality is to test it directly, as is already
done to determine
> backslash and escape sequence behaviours, e.g.:
>
> .IF "1"=="1" ||
"1"=="1"
> NEWMAKE = define
> .ELSE
> NEWMAKE = undef
> .ENDIF
>
> I could then make the "all" target depend on
some "CHECKMAKE" target as
> follows:
>
> CHECKMAKE :
> .IF "$(NEWMAKE)"=="define"
>         $(NOOP)
> .ELSE
>         echo Your make is too old
> .ENDIF

But something like that (your target + a tiny bit) won't
work?

CHECKMAKE :
.IF "$(NEWMAKE)"=="define"
        $(NOOP)
.ELSE
        echo Your make is too old
        $(FALSE)
.ENDIF

As there seems not be a Makefile macro FALSE, one could try
to use
       $(PERL) -e 'exit(1)'

>
> but this doesn't cause dmake to stop in its tracks when
it finds an old
> dmake.  It'll just print a warning message that'll get
lost amongst all
> the other output and then carry on.
>
> There is a special target called ".EXIT" that
causes immediate exit
> while parsing the makefile, but that is so immediate
that (a) it doesn't
> even see the ".ENDIF" and emits an error
about that, and (b) it never
> gets as far as running anything so our nice message
doesn't even get
> output with that error.  That wouldn't really help the
user.
>
> Any other ideas how to cause dmake to exit at a certain
point?
>
> --
>
>
> ------------------------------------------------
> Radan Computational Ltd.
>
> The information contained in this message and any files
transmitted with it are confidential and intended for the
addressee(s) only. If you have received this message in
error or there are any problems, please notify the sender
immediately. The unauthorized use, disclosure, copying or
alteration of this message is strictly forbidden. Note that
any views or opinions presented in this email are solely
those of the author and do not necessarily represent those
of Radan Computational Ltd. The recipient(s) of this message
should check it and any attached files for viruses: Radan
Computational will accept no liability for any damage caused
by any virus transmitted by this email.
>
Do we care about old dmake's for building perl on Win32?
user name
2006-12-08 13:39:00
Adriano Ferreira wrote:
> But something like that (your target + a tiny bit)
won't work?
> 
> CHECKMAKE :
> .IF "$(NEWMAKE)"=="define"
>        $(NOOP)
> .ELSE
>        echo Your make is too old
>        $(FALSE)
> .ENDIF
> 
> As there seems not be a Makefile macro FALSE, one could
try to use
>       $(PERL) -e 'exit(1)'

Ah, yes. I'd forgotten that just returning false will cause
dmake to 
stop. Doh!

OTOH, you've forgotten that we haven't made $(PERL) yet, so
we can't use 
that to produce the false value 

-- 


------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files
transmitted with it are confidential and intended for the
addressee(s) only. If you have received this message in
error or there are any problems, please notify the sender
immediately. The unauthorized use, disclosure, copying or
alteration of this message is strictly forbidden. Note that
any views or opinions presented in this email are solely
those of the author and do not necessarily represent those
of Radan Computational Ltd. The recipient(s) of this message
should check it and any attached files for viruses: Radan
Computational will accept no liability for any damage caused
by any virus transmitted by this email.
Do we care about old dmake's for building perl on Win32?
user name
2006-12-08 14:48:25
Steve Hay wrote:
> Adriano Ferreira wrote:
>> But something like that (your target + a tiny bit)
won't work?
>>
>> CHECKMAKE :
>> .IF "$(NEWMAKE)"=="define"
>>        $(NOOP)
>> .ELSE
>>        echo Your make is too old
>>        $(FALSE)
>> .ENDIF
>>
>> As there seems not be a Makefile macro FALSE, one
could try to use
>>       $(PERL) -e 'exit(1)'
> 
> Ah, yes. I'd forgotten that just returning false will
cause dmake to 
> stop. Doh!
> 
> OTOH, you've forgotten that we haven't made $(PERL)
yet, so we can't use 
> that to produce the false value 

This seems to work OK:

CHECKMAKE :
.IF "$(NEWMAKE)" == "define"
	$(NOOP)
.ELSE
	echo Your make is too old
	exit 1
.ENDIF

so I'll probably put that in and also remove the
version-dependent 
determination of $(B) and $(N) since we're effectively
disabling the use 
of very old dmakes.

-- 


------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files
transmitted with it are confidential and intended for the
addressee(s) only. If you have received this message in
error or there are any problems, please notify the sender
immediately. The unauthorized use, disclosure, copying or
alteration of this message is strictly forbidden. Note that
any views or opinions presented in this email are solely
those of the author and do not necessarily represent those
of Radan Computational Ltd. The recipient(s) of this message
should check it and any attached files for viruses: Radan
Computational will accept no liability for any damage caused
by any virus transmitted by this email.
Re: Do we care about old dmake's for building perl on Win32?
user name
2007-05-29 03:12:40
Steve Hay wrote:
> This seems to work OK:
> 
> CHECKMAKE :
> .IF "$(NEWMAKE)" == "define"
>     $(NOOP)
> .ELSE
>     echo Your make is too old
>     exit 1
> .ENDIF
> 
> so I'll probably put that in and also remove the
version-dependent 
> determination of $(B) and $(N) since we're effectively
disabling the use 
> of very old dmakes.

I've finally got round to applying this (change #31300), and
less than 
six months after it having been thought of too! Who says
"todo" lists 
don't work?

-- 

Re: Do we care about old dmake's for building perl on Win32?
user name
2007-05-30 11:51:54
Steve Hay wrote:
> Steve Hay wrote:
>> This seems to work OK:
>>
>> CHECKMAKE :
>> .IF "$(NEWMAKE)" == "define"
>>     $(NOOP)
>> .ELSE
>>     echo Your make is too old
>>     exit 1
>> .ENDIF
>>
>> so I'll probably put that in and also remove the
version-dependent 
>> determination of $(B) and $(N) since we're
effectively disabling the 
>> use of very old dmakes.
> 
> I've finally got round to applying this (change
#31300), and less than 
> six months after it having been thought of too! Who
says "todo" lists 
> don't work?

ISTR saying that the message was a little terse, suggesting
"please read
the section "DMAKE TOO OLD" in README.win32"
as a suitable pointer to
more info.

David


Re: Do we care about old dmake's for building perl on Win32?
user name
2007-05-30 11:59:05
David Landgren wrote:
> Steve Hay wrote:
>> Steve Hay wrote:
>>> This seems to work OK:
>>>
>>> CHECKMAKE :
>>> .IF "$(NEWMAKE)" ==
"define"
>>>     $(NOOP)
>>> .ELSE
>>>     echo Your make is too old
>>>     exit 1
>>> .ENDIF
>>>
>>> so I'll probably put that in and also remove
the version-dependent 
>>> determination of $(B) and $(N) since we're
effectively disabling the 
>>> use of very old dmakes.
>>
>> I've finally got round to applying this (change
#31300), and less than 
>> six months after it having been thought of too! Who
says "todo" lists 
>> don't work?
> 
> ISTR saying that the message was a little terse,
suggesting "please read
> the section "DMAKE TOO OLD" in
README.win32" as a suitable pointer to
> more info.

I remembered you saying that too, and expanded the message
in what I 
actually applied--see:

http://public.activestate.com/cgi-bin/perlbrowse/p/31300


-- 

Re: Do we care about old dmake's for building perl on Win32?
user name
2007-05-30 12:09:24
Steve Hay wrote:
> David Landgren wrote:
>> Steve Hay wrote:

[...]

>> ISTR saying that the message was a little terse,
suggesting "please read
>> the section "DMAKE TOO OLD" in
README.win32" as a suitable pointer to
>> more info.
> 
> I remembered you saying that too, and expanded the
message in what I 
> actually applied--see:
> 
> http://public.activestate.com/cgi-bin/perlbrowse/p/31300


And what you applied was even better!

DAvid

[1-10]

about | contact  Other archives ( Real Estate discussion Medical topics )