This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate:
authorYves Orton <demerphq@gmail.com>
Sat, 19 Feb 2005 11:00:08 +0000 (12:00 +0100)
committerSteve Hay <SteveHay@planit.com>
Wed, 20 Apr 2005 10:52:02 +0000 (10:52 +0000)
[ 23969]
Fix definition of DEBUG_MSTATS for Win32 dmake builds

[ 23970]
Fix PERL_MALLOC/DEBUG_MSTATS options in Win32 makefiles

Currently, if USE_IMP_SYS is defined then PERL_MALLOC gets undefined.
We should also undefine DEBUG_MSTATS if PERL_MALLOC is (or has become)
undefined, and we should do all this *before* inspecting DEBUG_MSTATS
to see if we need to add -DPERL_DEBUGGING_MSTATS to BUILDOPT.

[ 23992]
Subject: Patch Win32 makefiles for blead to allow parameters to be passed to harness:
Date: Sat, 19 Feb 2005 11:00:08 +0100
Message-ID: <9b18b31105021902003d9c2a95@mail.gmail.com>

[ 24004]
Stop mktables from needlessly re-running when using dmake on Win32

[ 24005]
Suppress "ECHO is on." messages when using dmake on Win32

(The shell's "echo" command displays the current echo setting when
called with no arguments.  Use "echo." to display nothing.)

[ 24006]
A better fix than change 24005 was ;)

Actually, "@echo." still emits a blank line.  Use "@rem" instead as the
no-op.  This was being used in the Win95 case, but works fine on WinNT
too, and is actually what ExtUtils-MakeMaker uses.

Also change the nmake Makefile.

[ 24007]
Include regcomp.h in Win32 makefiles

Subject: Re: Stop mktables from needlessly re-running when using dmake on Win32
From: demerphq <demerphq@gmail.com>
Date: Sun, 6 Mar 2005 09:16:12 +0100
Message-ID: <9b18b311050306001624012bd@mail.gmail.com>

[ 24014]
More Win32 dmake fixes

Use $B macro as per change 23991 in more places, and fix some syntax
errors in the subst's (missing trailing ",")

Tested with GCC and MSVC. I don't have BCC available, so those parts
are untested.

[ 24111]
A few Win32 makefile tidy-ups (No real changes)

[ 24113]
Add support for PERL_HASH_SEED_EXPLICIT and NO_HASH_SEED in the
Win32 makefiles

[ 24131]
Remove dependency on tr(1) for MinGW builds on Win32

This leaves things slightly (more) broken for MinGW builds on Cygwin,
but that doesn't currently quite work in other respects and isn't
documented anyway.  See:

http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-03/msg00751.html

[ 24227]
Support d_libm_lib_version for Win32 (see change 24217)
p4raw-link: @24227 on //depot/perl: f024374aaec3af368c46dadae280209e8297c32a
p4raw-link: @24131 on //depot/perl: 31e0fb333baa3f4848b16dd03107480226ae8bc2
p4raw-link: @24113 on //depot/perl: 2eb87578b6bf9c2a989b418d4847ad2dfbec21d8
p4raw-link: @24111 on //depot/perl: bdb4cb8840ea1c52d93df2ca4ff3757a85e58737
p4raw-link: @24014 on //depot/perl: bfbbc0be4da2c5ef1aac071cb1386a2d693a18d9
p4raw-link: @24007 on //depot/perl: cdb0f5473779f318e8bd3f9e8e8bf96093f979e4
p4raw-link: @24006 on //depot/perl: 65980d9413eea8415cdea4a9a608257b175e4fb6
p4raw-link: @24005 on //depot/perl: 6bbff615ed723ae41b6e721cd8dfbcda8084de40
p4raw-link: @24004 on //depot/perl: e99b0bf3355fd2ede555e05f6f07bf3c364e2b72
p4raw-link: @23992 on //depot/perl: 89087c85554906f75168ff676e546ecaa383a9c4
p4raw-link: @23970 on //depot/perl: 646e33b6c26a24d89e6543ab606cb6a803ed6126
p4raw-link: @23969 on //depot/perl: beb7ea05639dd45e5efb7c5681abbf11349121ca

p4raw-id: //depot/maint-5.8/perl@24259
p4raw-integrated: from //depot/perl@24250 'merge in' win32/config_H.vc
(@23436..) win32/config.bc win32/config.gc win32/config.vc
win32/config.vc64 (@24120..) win32/config_H.bc
win32/config_H.gc win32/config_H.vc64 (@24149..)
p4raw-integrated: from //depot/perl@24113 'edit in' win32/makefile.mk
(@24111..)
p4raw-integrated: from //depot/perl@23970 'edit in' win32/Makefile
(@23777..)

win32/Makefile
win32/config.bc
win32/config.gc
win32/config.vc
win32/config.vc64
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc
win32/config_H.vc64
win32/makefile.mk

index a44dd6f..2662957 100644 (file)
@@ -32,7 +32,7 @@ INST_TOP      = $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER = \5.8.6
+#INST_VER      = \5.8.6
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -43,7 +43,7 @@ INST_TOP      = $(INST_DRV)\perl
 # the same location.  Commenting it out gives you a simpler
 # installation that is easier to understand for beginners.
 #
-#INST_ARCH = \$(ARCHNAME)
+#INST_ARCH     = \$(ARCHNAME)
 
 #
 # Uncomment this if you want perl to run
@@ -57,21 +57,21 @@ INST_TOP    = $(INST_DRV)\perl
 # uncomment to enable multiple interpreters.  This is need for fork()
 # emulation and for thread support.
 #
-USE_MULTI = define
+USE_MULTI      = define
 
 #
 # Beginnings of interpreter cloning/threads; now reasonably complete.
 # This should be enabled to get the fork() emulation.  This needs
 # USE_MULTI as well.
 #
-USE_ITHREADS = define
+USE_ITHREADS   = define
 
 #
 # uncomment to enable the implicit "host" layer for all system calls
 # made by perl.  This needs USE_MULTI above.  This is also needed to
 # get fork().
 #
-USE_IMP_SYS = define
+USE_IMP_SYS    = define
 
 #
 # Comment out next assign to disable perl's I/O subsystem and use compiler's 
@@ -85,7 +85,7 @@ USE_PERLIO    = define
 # Comment this out if you don't want to enable large file support for
 # some reason.  Should normally only be changed to maintain compatibility
 # with an older release of perl.
-USE_LARGE_FILES = define
+USE_LARGE_FILES        = define
 
 #
 # WARNING! This option is deprecated and will eventually go away (enable
@@ -159,7 +159,7 @@ CRYPT_SRC   = fcrypt.c
 # This must be enabled to use the Devel::Peek::mstat() function.  This cannot
 # be enabled without PERL_MALLOC as well.
 #
-#DEBUG_MSTATS  = define
+#DEBUG_MSTATS  = define
 
 #
 #
@@ -178,6 +178,15 @@ CCLIBDIR   = $(CCHOME)\lib
 # Additional compiler flags can be specified here.
 #
 
+# Adding -DPERL_HASH_SEED_EXPLICIT will disable randomization of Perl's
+# internal hash function unless the PERL_HASH_SEED environment variable is set.
+# Alternatively, adding -DNO_HASH_SEED will completely disable the
+# randomization feature. 
+# The latter is required to maintain binary compatibility with Perl 5.8.0.
+#
+#BUILDOPT      = $(BUILDOPT) -DPERL_HASH_SEED_EXPLICIT
+#BUILDOPT      = $(BUILDOPT) -DNO_HASH_SEED
+
 #
 #
 # This should normally be disabled.  Adding -DPERL_POLLUTE enables support
@@ -198,6 +207,7 @@ CCLIBDIR    = $(CCHOME)\lib
 #
 # This should normally be disabled.  Enabling it causes perl to read scripts
 # in text mode (which is the 5.005 behavior) and will break ByteLoader.
+#
 #BUILDOPT      = $(BUILDOPT) -DPERL_TEXTMODE_SCRIPTS
 
 #
@@ -225,17 +235,22 @@ D_CRYPT           = define
 CRYPT_FLAG     = -DHAVE_DES_FCRYPT
 !ENDIF
 
+!IF "$(USE_IMP_SYS)" == "define"
+PERL_MALLOC    = undef
+DEBUG_MSTATS   = undef
+!ENDIF
+
 !IF "$(PERL_MALLOC)" == ""
 PERL_MALLOC    = undef
-DEBUG_MSTATS   = undef
+DEBUG_MSTATS   = undef
 !ENDIF
 
 !IF "$(DEBUG_MSTATS)" == ""
-DEBUG_MSTATS   = undef
+DEBUG_MSTATS   = undef
 !ENDIF
 
 !IF "$(DEBUG_MSTATS)" == "define"
-BUILDOPT       = $(BUILDOPT) -DPERL_DEBUGGING_MSTATS
+BUILDOPT       = $(BUILDOPT) -DPERL_DEBUGGING_MSTATS
 !ENDIF
 
 !IF "$(USE_5005THREADS)" == ""
@@ -246,10 +261,6 @@ USE_5005THREADS    = undef
 USE_ITHREADS   = undef
 !ENDIF
 
-!IF "$(USE_IMP_SYS)" == "define"
-PERL_MALLOC    = undef
-!ENDIF
-
 !IF "$(USE_SITECUST)" == ""
 USE_SITECUST   = undef
 !ENDIF
@@ -563,7 +574,7 @@ CFGH_TMPL   = config_H.vc
 
 XCOPY          = xcopy /f /r /i /d
 RCOPY          = xcopy /f /r /i /e /d
-NOOP           = @echo
+NOOP           = @rem
 NULL           =
 
 DEL            = del
@@ -664,6 +675,7 @@ CORE_NOCFG_H        =               \
                ..\perly.h      \
                ..\pp.h         \
                ..\proto.h      \
+               ..\regcomp.h    \
                ..\regexp.h     \
                ..\scope.h      \
                ..\sv.h         \
@@ -1224,13 +1236,13 @@ test-prep : all utils
 
 test : test-prep
        cd ..\t
-       $(PERLEXE) -I..\lib harness
+       $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES)
        cd ..\win32
 
 test-notty : test-prep
        set PERL_SKIP_TTY_TEST=1
        cd ..\t
-       $(PERLEXE) -I..\lib harness
+       $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES)
        cd ..\win32
 
 _test : 
@@ -1238,7 +1250,7 @@ _test :
        $(XCOPY) $(PERLDLL) ..\t\$(NULL)
        $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
        cd ..\t
-       $(PERLEXE) -I..\lib harness
+       $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES)
        cd ..\win32
 
 # the doubled rmdir calls are needed because older cmd shells
index f9bed6f..27ded90 100644 (file)
@@ -254,6 +254,7 @@ d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
+d_libm_lib_version='undef'
 d_link='define'
 d_localtime_r='undef'
 d_locconv='define'
index e5e0b1f..8af9959 100644 (file)
@@ -254,6 +254,7 @@ d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
+d_libm_lib_version='undef'
 d_link='define'
 d_localtime_r='undef'
 d_locconv='define'
index bd7c1d3..d12455d 100644 (file)
@@ -254,6 +254,7 @@ d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
+d_libm_lib_version='undef'
 d_link='define'
 d_localtime_r='undef'
 d_locconv='define'
index 766796b..31ec6cc 100644 (file)
@@ -254,6 +254,7 @@ d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
+d_libm_lib_version='undef'
 d_link='define'
 d_localtime_r='undef'
 d_locconv='define'
index 329a75b..90a6f8a 100644 (file)
  */
 #define I_MATH         /**/
 
+/* LIBM_LIB_VERSION:
+ *    This symbol, if defined, indicates that libm exports _LIB_VERSION
+ *    and that math.h defines the enum to manipulate it.
+ */
+/*#define LIBM_LIB_VERSION         /**/
+
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 71bfdd5..03e992b 100644 (file)
  */
 #define I_MATH         /**/
 
+/* LIBM_LIB_VERSION:
+ *    This symbol, if defined, indicates that libm exports _LIB_VERSION
+ *    and that math.h defines the enum to manipulate it.
+ */
+/*#define LIBM_LIB_VERSION         /**/
+
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index fe372b9..5f8b715 100644 (file)
  */
 #define I_MATH         /**/
 
+/* LIBM_LIB_VERSION:
+ *    This symbol, if defined, indicates that libm exports _LIB_VERSION
+ *    and that math.h defines the enum to manipulate it.
+ */
+/*#define LIBM_LIB_VERSION         /**/
+
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 50a610f..f75c579 100644 (file)
  */
 #define I_MATH         /**/
 
+/* LIBM_LIB_VERSION:
+ *    This symbol, if defined, indicates that libm exports _LIB_VERSION
+ *    and that math.h defines the enum to manipulate it.
+ */
+/*#define LIBM_LIB_VERSION         /**/
+
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 6ed6574..651320b 100644 (file)
@@ -87,7 +87,7 @@ USE_PERLIO    *= define
 # Comment this out if you don't want to enable large file support for
 # some reason.  Should normally only be changed to maintain compatibility
 # with an older release of perl.
-USE_LARGE_FILES *= define
+USE_LARGE_FILES        *= define
 
 #
 # WARNING! This option is deprecated and will eventually go away (enable
@@ -115,10 +115,10 @@ CCTYPE            *= GCC
 
 #
 # uncomment this if your Borland compiler is older than v5.4.
-#BCCOLD = define
+#BCCOLD                *= define
 #
 # uncomment this if you want to use Borland's VCL as your CRT
-#BCCVCL = define
+#BCCVCL                *= define
 
 #
 # uncomment this if you are compiling under Windows 95/98 and command.com
@@ -180,7 +180,7 @@ CRYPT_SRC   *= fcrypt.c
 # This must be enabled to use the Devel::Peek::mstat() function.  This cannot
 # be enabled without PERL_MALLOC as well.
 #
-#DEBUG_MSTATS  = define
+#DEBUG_MSTATS  *= define
 
 #
 # set the install locations of the compiler include/libraries
@@ -204,6 +204,16 @@ CCLIBDIR   *= $(CCHOME)\lib
 #
 
 #
+# Adding -DPERL_HASH_SEED_EXPLICIT will disable randomization of Perl's
+# internal hash function unless the PERL_HASH_SEED environment variable is set.
+# Alternatively, adding -DNO_HASH_SEED will completely disable the
+# randomization feature. 
+# The latter is required to maintain binary compatibility with Perl 5.8.0.
+#
+#BUILDOPT      += -DPERL_HASH_SEED_EXPLICIT
+#BUILDOPT      += -DNO_HASH_SEED
+
+#
 # This should normally be disabled.  Adding -DPERL_POLLUTE enables support
 # for old symbols by default, at the expense of extreme pollution.  You most
 # probably just want to build modules that won't compile with
@@ -222,6 +232,7 @@ CCLIBDIR    *= $(CCHOME)\lib
 #
 # This should normally be disabled.  Enabling it causes perl to read scripts
 # in text mode (which is the 5.005 behavior) and will break ByteLoader.
+#
 #BUILDOPT      += -DPERL_TEXTMODE_SCRIPTS
 
 #
@@ -256,6 +267,7 @@ CRYPT_FLAG  = -DHAVE_DES_FCRYPT
 .ENDIF
 
 PERL_MALLOC    *= undef
+DEBUG_MSTATS   *= undef
 
 USE_5005THREADS        *= undef
 
@@ -271,21 +283,16 @@ USE_PERLIO        *= undef
 USE_LARGE_FILES        *= undef
 USE_PERLCRT    *= undef
 
-.IF "$(PERL_MALLOC)" == "undef"
+.IF "$(USE_IMP_SYS)" == "define"
 PERL_MALLOC    = undef
-DEBUG_MSTATS   = undef
 .ENDIF
 
-.IF "$(DEBUG_MSTATS)" == "undef"
-DEBUG_MSTATS   = undef
+.IF "$(PERL_MALLOC)" == "undef"
+DEBUG_MSTATS   = undef
 .ENDIF
 
 .IF "$(DEBUG_MSTATS)" == "define"
-BUILDOPT       += -DPERL_DEBUGGING_MSTATS
-.ENDIF
-
-.IF "$(USE_IMP_SYS)" == "define"
-PERL_MALLOC    = undef
+BUILDOPT       += -DPERL_DEBUGGING_MSTATS
 .ENDIF
 
 .IF "$(USE_IMP_SYS) $(USE_MULTI) $(USE_5005THREADS)" == "define undef undef"
@@ -725,7 +732,7 @@ PERLDLL             = ..\perl58.dll
 
 XCOPY          = xcopy /f /r /i /d
 RCOPY          = xcopy /f /r /i /e /d
-NOOP           = @echo
+NOOP           = @rem
 
 #
 # filenames given to xsubpp must have forward slashes (since it puts
@@ -823,6 +830,7 @@ CORE_NOCFG_H        =               \
                ..\perly.h      \
                ..\pp.h         \
                ..\proto.h      \
+               ..\regcomp.h    \
                ..\regexp.h     \
                ..\scope.h      \
                ..\sv.h         \
@@ -920,7 +928,6 @@ CFG_VARS    =                                       \
 .IF "$(IS_WIN95)" == "define"
 MK2            = .\makefile.95
 RIGHTMAKE      = __switch_makefiles
-NOOP           = @rem
 .ELSE
 MK2            = __not_needed
 RIGHTMAKE      =
@@ -1037,13 +1044,13 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
 $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(CRTIPMLIBS)
 .IF "$(CCTYPE)" == "BORLAND"
        $(LINK32) -Tpe -ap $(BLINK_FLAGS) \
-           @$(mktmp c0x32$(o) $(MINI_OBJ:s,\,\\),$(@:s,\,\\),,$(LIBFILES),)
+           @$(mktmp c0x32$(o) $(MINI_OBJ:s,\,$B,),$(@:s,\,$B,),,$(LIBFILES),)
 .ELIF "$(CCTYPE)" == "GCC"
        $(LINK32) -v -mconsole -o $@ $(BLINK_FLAGS) \
-           $(mktmp $(LKPRE) $(MINI_OBJ:s,\,\\) $(LIBFILES) $(LKPOST))
+           $(mktmp $(LKPRE) $(MINI_OBJ:s,\,$B,) $(LIBFILES) $(LKPOST))
 .ELSE
        $(LINK32) -subsystem:console -out:$@ \
-           @$(mktmp $(BLINK_FLAGS) $(LIBFILES) $(MINI_OBJ:s,\,\\))
+           @$(mktmp $(BLINK_FLAGS) $(LIBFILES) $(MINI_OBJ:s,\,$B,))
 .ENDIF
 
 $(MINIDIR) :
@@ -1087,15 +1094,15 @@ perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
 $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES) Extensions_static
 .IF "$(CCTYPE)" == "BORLAND"
        $(LINK32) -Tpd -ap $(BLINK_FLAGS) \
-           @$(mktmp c0d32$(o) $(PERLDLL_OBJ:s,\,\\)\n \
+           @$(mktmp c0d32$(o) $(PERLDLL_OBJ:s,\,$B,)\n \
                $@,\n \
                $(LIBFILES)\n \
                perldll.def\n)
        $(IMPLIB) $*.lib $@
 .ELIF "$(CCTYPE)" == "GCC"
        $(LINK32) -mdll -o $@ -Wl,--base-file -Wl,perl.base $(BLINK_FLAGS) \
-           $(mktmp $(LKPRE) $(PERLDLL_OBJ:s,\,\\) \
-               $(shell $(MINIPERL) -I..\lib buildext.pl --list-static-libs|tr \\\\ /) \
+           $(mktmp $(LKPRE) $(PERLDLL_OBJ:s,\,$B,) \
+               $(shell $(MINIPERL) -I..\lib buildext.pl --list-static-libs) \
                $(LIBFILES) $(LKPOST))
        dlltool --output-lib $(PERLIMPLIB) \
                --dllname $(PERLDLL:b).dll \
@@ -1103,14 +1110,14 @@ $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES) Extensions_static
                --base-file perl.base \
                --output-exp perl.exp
        $(LINK32) -mdll -o $@ $(BLINK_FLAGS) \
-           $(mktmp $(LKPRE) $(PERLDLL_OBJ:s,\,\\) \
-               $(shell $(MINIPERL) -I..\lib buildext.pl --list-static-libs|tr \\\\ /) \
+           $(mktmp $(LKPRE) $(PERLDLL_OBJ:s,\,$B,) \
+               $(shell $(MINIPERL) -I..\lib buildext.pl --list-static-libs) \
                $(LIBFILES) perl.exp $(LKPOST))
 .ELSE
        $(LINK32) -dll -def:perldll.def -out:$@ \
            $(shell $(MINIPERL) -I..\lib buildext.pl --list-static-libs) \
            @$(mktmp -base:0x28000000 $(BLINK_FLAGS) $(DELAYLOAD) $(LIBFILES) \
-               $(PERLDLL_RES) $(PERLDLL_OBJ:s,\,\\))
+               $(PERLDLL_RES) $(PERLDLL_OBJ:s,\,$B,))
 .ENDIF
        $(XCOPY) $(PERLIMPLIB) $(COREDIR)
 
@@ -1143,13 +1150,13 @@ $(X2P) : $(MINIPERL) $(X2P_OBJ)
        $(MINIPERL) ..\x2p\s2p.PL
 .IF "$(CCTYPE)" == "BORLAND"
        $(LINK32) -Tpe -ap $(BLINK_FLAGS) \
-           @$(mktmp c0x32$(o) $(X2P_OBJ:s,\,\\),$(@:s,\,\\),,$(LIBFILES),)
+           @$(mktmp c0x32$(o) $(X2P_OBJ:s,\,$B,),$(@:s,\,$B,),,$(LIBFILES),)
 .ELIF "$(CCTYPE)" == "GCC"
        $(LINK32) -v -o $@ $(BLINK_FLAGS) \
-           $(mktmp $(LKPRE) $(X2P_OBJ:s,\,\\) $(LIBFILES) $(LKPOST))
+           $(mktmp $(LKPRE) $(X2P_OBJ:s,\,$B,) $(LIBFILES) $(LKPOST))
 .ELSE
        $(LINK32) -subsystem:console -out:$@ \
-           @$(mktmp $(BLINK_FLAGS) $(LIBFILES) $(X2P_OBJ:s,\,\\))
+           @$(mktmp $(BLINK_FLAGS) $(LIBFILES) $(X2P_OBJ:s,\,$B,))
 .ENDIF
 
 perlmain.c : runperl.c
@@ -1161,8 +1168,8 @@ perlmain$(o) : perlmain.c
 $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
 .IF "$(CCTYPE)" == "BORLAND"
        $(LINK32) -Tpe -ap $(BLINK_FLAGS) \
-           @$(mktmp c0x32$(o) $(PERLEXE_OBJ:s,\,\\)\n \
-           $(@:s,\,\\),\n \
+           @$(mktmp c0x32$(o) $(PERLEXE_OBJ:s,\,$B,)\n \
+           $(@:s,\,$B,),\n \
            $(PERLIMPLIB) $(LIBFILES)\n)
 .ELIF "$(CCTYPE)" == "GCC"
        $(LINK32) -mconsole -o $@ $(BLINK_FLAGS)  \
@@ -1369,12 +1376,7 @@ inst_lib : $(CONFIGPM)
        $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
        $(RCOPY) ..\lib $(INST_LIB)\*.*
 
-# Move the rule for making $(UNIDATAFILES) into a separate target and leave the
-# actual rule here blank because dmake runs the rule here once for each of the
-# files listed in $(UNIDATAFILES)
-$(UNIDATAFILES) : make_unidatafiles
-
-make_unidatafiles : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables
+$(UNIDATAFILES) .UPDATEALL : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables
        cd ..\lib\unicore && \
        ..\$(MINIPERL) -I.. mktables
 
@@ -1401,11 +1403,11 @@ test-prep : all utils
 .ENDIF
 
 test : $(RIGHTMAKE) test-prep
-       cd ..\t && $(PERLEXE) -I..\lib harness
+       cd ..\t && $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES)
 
 test-notty : test-prep
        set PERL_SKIP_TTY_TEST=1 && \
-           cd ..\t && $(PERLEXE) -I.\lib harness
+           cd ..\t && $(PERLEXE) -I.\lib harness $(TEST_SWITCHES) $(TEST_FILES)
 
 _test : $(RIGHTMAKE)
        $(XCOPY) $(PERLEXE) ..\t\$(NULL)
@@ -1415,7 +1417,7 @@ _test : $(RIGHTMAKE)
 .ELSE
        $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
 .ENDIF
-       cd ..\t && $(PERLEXE) -I..\lib harness
+       cd ..\t && $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES)
 
 # the doubled rmdir calls are needed because older cmd shells
 # don't understand /q