Michael G Schwern wrote:
On Fri, Dec 17, 2004 at 04:07:49AM +0000, Sisyphus wrote:

t\basic.................dmake.exe: makefile: line 682: Warning -- Macro `TEST_VERBOSE' cannot be redefined
dmake.exe: makefile: line 73: Warning -- Macro `PREFIX' cannot be redefined
dmake.exe: makefile: line 72: Warning -- Macro `DESTDIR' cannot be redefined
dmake.exe: makefile: line 73: Warning -- Macro `PREFIX' cannot be redefined
dmake.exe: makefile: line 72: Warning -- Macro `DESTDIR' cannot be redefined
dmake.exe: makefile: line 73: Warning -- Macro `PREFIX' cannot be redefined


That's troublesome.  Could you see if "make disttest" does the same thing?
If not, could you run: PERL5LIB=lib perl -dw t/basic.t and try to figure
out where that's coming from?  I'm going to guess its the "make disttest"
on line 225 and "make distdir" on line 250.

I'm not near a Windows box atm, but that looks like a problem with the way macros are defined. The syntax is different from standard make. From the manual[1]


MACROS
       dmake supports six forms of macro assignment.


MACRO = LINE This is the most common and familiar form of macro assignment. It assigns LINE lit- erally as the value of MACRO. Future expansions of MACRO recursively expand its value.

        MACRO *= LINE  This  form  behaves  exactly as the simple
                       '=' form with the exception that if  MACRO
                       already has a value then the assignment is
                       not performed.

        MACRO := LINE  This form differs from the simple '=' form
                       in that it expands LINE prior to assigning
                       it as the value of MACRO.   Future  expan-
                       sions  of  MACRO do not recursively expand
                       its value.

        MACRO *:= LINE This form behaves exactly as the ':=' form
                       with  the  exception that if MACRO already
                       has a value then the assignment and expan-
                       sion are not performed.

        MACRO += LINE  This form of macro assignment allows macro
                       values to  grow.   It  takes  the  literal
                       value of LINE and appends it to the previ-
                       ous value of MACRO separating the two by a
                       single  space.  Future expansions of MACRO
                       recursively expand its value.

        MACRO +:= LINE This form is  similar  to  the  '+='  form
                       except  that the value of LINE is expanded
                       prior to  being  added  to  the  value  of
                       MACRO.

       Macro  expressions specified on the command line allow the
       macro value to be redefined within the  makefile  only  if
       the  macro  is defined using the '+=' and '+:=' operators.
       Other operators will define a macro that cannot be further
       modified.

       Each  of  the preceeding macro assignment operators may be
       prefixed by !  to indicate that the assignment  should  be
       forced and that no warnings should be issued.  Thus, spec-
       ifying ! has the effect of silently forcing the  specified
       macro assignment.


BTW, I did test earlier today with nmake on 5.6 and 5.8 and found no problems. The above problem only affects dmake.


Randy.

1. The manual can be extracted from:
   <http://search.cpan.org/dist/dmake/>

Reply via email to