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