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

|
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? |

|
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? |

|
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? |

|
2006-12-08 13:29:25 |
On 12/8/06, Steve Hay <steve.hay uk.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? |

|
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? |

|
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? |

|
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? |

|
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? |

|
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? |

|
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
|
|