]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1675: MS-Windows: Makefiles can be refactored v9.1.1675
authorRestorerZ <restorer@mail2k.ru>
Sat, 23 Aug 2025 15:00:17 +0000 (17:00 +0200)
committerChristian Brabandt <cb@256bit.org>
Sat, 23 Aug 2025 15:00:17 +0000 (17:00 +0200)
Problem:  MS-Windows: Makefiles can be refactored
Solution: Refactor using a common tools.mak, make some style changes
          (RestorerZ).

closes: #18060

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 files changed:
Filelist
nsis/Make_mvc.mak
runtime/doc/Make_mvc.mak
runtime/indent/Make_mvc.mak
runtime/lang/Make_mvc.mak
src/GvimExt/Make_mvc.mak
src/Make_mvc.mak
src/auto/nmake/tools.mak [new file with mode: 0644]
src/po/Make_mvc.mak
src/tee/Make_mvc.mak
src/testdir/Make_mvc.mak
src/version.c
src/xxd/Make_mvc.mak

index 413a88b65cc40661b7eaac0eb402a37bd696fb36..e97e17ec0e89487b51a20638722cb72371b871fb 100644 (file)
--- a/Filelist
+++ b/Filelist
@@ -569,6 +569,7 @@ SRC_DOS_UNIX =      \
 
 # Source files for MS Windows (also in the extra archive).
 SRC_DOS =      \
+               src/auto/nmake/tools.mak \
                src/GvimExt/*.mak \
                src/GvimExt/GvimExt.reg \
                src/GvimExt/Makefile \
index 8350082b26cb5c3c9fcf3108bdd0888038272997..143b5edaadebd0aec9139e04765c2bc3af11fee8 100644 (file)
@@ -1,10 +1,59 @@
 #
 # Makefile for MS Windows for create self-installing exe of Vim.
-# 05/04/2024, Restorer restorer@mail2k.ru
+# 2024‐04-05, Restorer, restorer@mail2k.ru
 #
 
 
-#!INCLUDE .\Make_all.mak
+# included common tools
+!INCLUDE ..\src\auto\nmake\tools.mak
+
+# Read MAJOR and MINOR from version.h.
+!IFNDEF MAJOR
+! IF ![for /F "tokens=3" %G in \
+       ('findstr /RC:"VIM_VERSION_MAJOR[       ^]*[0-9^]" ..\src\version.h') \
+       do @(echo:MAJOR=%G>> .\_major.tmp)]
+!  INCLUDE .\_major.tmp
+!  IF [$(RM) .\_major.tmp]
+!  ENDIF
+! ELSE
+MAJOR = 9
+! ENDIF
+!ENDIF
+
+!IFNDEF MINOR
+! IF ![for /F "tokens=3" %G in \
+       ('findstr /RC:"VIM_VERSION_MINOR[       ^]*[0-9^]" ..\src\version.h') \
+       do @(echo:MINOR=%G>> .\_minor.tmp)]
+!  INCLUDE .\_minor.tmp
+!  IF [$(RM) .\_minor.tmp]
+!  ENDIF
+! ELSE
+MINOR = 1
+! ENDIF
+!ENDIF
+
+# Read PATCHLEVEL from version.c
+!IFNDEF PATCHLEVEL
+! IF ![for /F %G in \
+       ('findstr /NBLC:"static int included_patches" ..\src\version.c \
+       ^| (set /p "_t=" ^& set /a _t+=2 ^)') do \
+       @$(CMD) $(CMDFLAGS) "for /F "skip=%G delims=, " %H in \
+       (..\src\version.c) do (echo:PATCHLEVEL=%H> .\_patchlvl.tmp & exit /b)"]
+!  INCLUDE .\_patchlvl.tmp
+!  IF [$(RM) .\_patchlvl.tmp]
+!  ENDIF
+! ELSE
+PATCHLEVEL = 0
+! ENDIF
+!ENDIF
+
+!IF $(PATCHLEVEL) < 10
+PATCHLEVEL = 000$(PATCHLEVEL)
+!ELSEIF $(PATCHLEVEL) < 100
+PATCHLEVEL = 00$(PATCHLEVEL)
+!ELSEIF $(PATCHLEVEL) < 1000
+PATCHLEVEL = 0$(PATCHLEVEL)
+!ENDIF
 
 .SUFFIXES :
 
@@ -60,49 +109,15 @@ XX = /X"$(X:;=" /X")"
 
 # If necessary, correct the full path of the NSIS compiler in the next line.
 # Please do not enclose the path in quotation marks.
-MKNSIS = $(ProgFiles)\NSIS
-
-PS = powershell.exe
-RM = del /f /q
-RD = rmdir /s /q
+MKNSIS = $(ProgFiles)\NSIS\makensis.exe
 
 MKNSISFLAGS = /INPUTCHARSET UTF8 $(MKNSISFLAGS)
-PSFLAGS = -NoLogo -NoProfile -Command
-
-# Read MAJOR and MINOR from version.h.
-!IF ![for /F "tokens=2,3" %G in ( \
-       'findstr /rc:"VIM_VERSION_MINOR[        ^]*[0-9^]" \
-       /rc:"VIM_VERSION_MAJOR[ ^]*[0-9^]" ..\src\version.h') do \
-       @if "VIM_VERSION_MAJOR"=="%G" (echo MAJOR=%H>>_ver.tmp) \
-       else echo MINOR=%H>>_ver.tmp]
-! INCLUDE .\_ver.tmp
-! IF [$(RM) .\_ver.tmp]
-! ENDIF
-!ENDIF
-
-# Read PATCHLEVEL from version.c
-!IF ![for /F %G in ( \
-       'findstr /nblc:"static int included_patches[^]" ..\src\version.c \
-       ^| (set /p "_t=" ^& set /a _t+=2 ^)') do \
-       @cmd /q /c "for /F "skip=%G delims=, " %H in (..\src\version.c) do \
-                       (echo PATCH=%H>_patchlvl.tmp & exit /b)"]
-! INCLUDE .\_patchlvl.tmp
-! IF [$(RM) .\_patchlvl.tmp]
-! ENDIF
-!ENDIF
-!IF $(PATCH) < 10
-PATCH = 000$(PATCH)
-!ELSEIF $(PATCH) < 100
-PATCH = 00$(PATCH)
-!ELSEIF $(PATCH) < 1000
-PATCH = 0$(PATCH)
-!ENDIF
 
 
 all : makeinst
 
 makeinst : prepare
-       ^"$(MKNSIS)\makensis.exe" $(MKNSISFLAGS) gvim.nsi $(XX)
+       ^"$(MKNSIS)" $(MKNSISFLAGS) gvim.nsi $(XX)
 
 prepare : unzipicons gvim_version.nsh license rename
 
@@ -110,7 +125,8 @@ unzipicons : icons.zip
        @ if exist %|fF\nul $(RD) %|fF
        @ $(PS) $(PSFLAGS) \
                Add-Type -AssemblyName 'System.IO.Compression.FileSystem'; \
-               [System.IO.Compression.ZipFile]::ExtractToDirectory(\"$**\", \".\")
+               [System.IO.Compression.ZipFile]::ExtractToDirectory(\"$**\", \
+               \".\")
 
 gvim_version.nsh : Make_mvc.mak
        @ 1> $@ echo:^# Generated from Makefile: define the version numbers
@@ -118,7 +134,7 @@ gvim_version.nsh : Make_mvc.mak
        @ 1>> $@ echo:^!define __GVIM_VER__NSH__
        @ 1>> $@ echo:^!define VER_MAJOR $(MAJOR)
        @ 1>> $@ echo:^!define VER_MINOR $(MINOR)
-       @ 1>> $@ echo:^!define PATCHLEVEL $(PATCH)
+       @ 1>> $@ echo:^!define PATCHLEVEL $(PATCHLEVEL)
        @ 1>> $@ echo:^!endif
 
 license : ..\lang\LICENSE.*.txt ..\LICENSE
@@ -135,4 +151,4 @@ clean :
        @ if exist .\icons\nul $(RD) .\icons
        @ if exist .\gvim??.exe $(RM) .\gvim??.exe
 
-# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 064aa3ebf3a4e95fa2fc7f1f8d9caea7fd6fa44e..8dc09a35fa0e0e04533ba02416094ae5f6324977 100644 (file)
@@ -1,16 +1,20 @@
 #
 # Makefile for the Vim documentation on Windows
 #
-# 20.03.24, Restorer, <restorer@mail2k.ru>
+# 2024-03-20, Restorer, <restorer@mail2k.ru>
+#
+
+# included common tools
+!INCLUDE ..\..\src\auto\nmake\tools.mak
 
 # Common components
-!INCLUDE Make_all.mak
+!INCLUDE .\Make_all.mak
 
 
 # TODO: to think about what to use instead of awk. PowerShell?
 #AWK =
 
-# Correct the following line for the where executable file vim is installed.
+# Correct the following line for the where executable file Vim is installed.
 # Please do not put the path in quotes.
 VIMPROG = ..\..\src\vim.exe
 
@@ -18,16 +22,6 @@ VIMPROG = ..\..\src\vim.exe
 # Please do not put the path in quotes.
 ICONV_PATH = D:\Programs\GetText\bin
 
-# In case some package like GnuWin32, UnixUtils
-# or something similar is installed on the system.
-# If the "touch" program is installed on the system, but it is not registered
-# in the %PATH% environment variable, then specify the full path to this file.
-!IF EXIST ("touch.exe")
-TOUCH = touch.exe %1
-!ELSE
-TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 )
-!ENDIF
-
 # In case some package like GnuWin32, UnixUtils, gettext
 # or something similar is installed on the system.
 # If the "iconv" program is installed on the system, but it is not registered
@@ -38,11 +32,6 @@ ICONV = iconv.exe
 ICONV = "$(ICONV_PATH)\iconv.exe"
 !ENDIF
 
-RM = del /q
-PS = PowerShell.exe
-
-PSFLAGS = -NoLogo -NoProfile -Command
-
 .SUFFIXES :
 .SUFFIXES : .c .o .txt .html
 
@@ -53,7 +42,8 @@ all : tags perlhtml $(CONVERTED)
 tags : doctags $(DOCS)
        doctags.exe $(DOCS) | sort /L C /O tags
        $(PS) $(PSFLAGS) \
-               (Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ -replace \"`r\", \"\"}) \
+               (Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ \
+               -replace \"`r\", \"\"}) \
                ^| New-Item -Path . -Name tags -ItemType file -Force
 
 doctags : doctags.c
@@ -63,7 +53,7 @@ doctags : doctags.c
 # Use Vim to generate the tags file.  Can only be used when Vim has been
 # compiled and installed.  Supports multiple languages.
 vimtags : $(DOCS)
-       @"$(VIMPROG)" --clean -esX -V1 -u doctags.vim
+       @ "$(VIMPROG)" --clean -esX -V1 -u doctags.vim
 
 # TODO:
 #html: noerrors tags $(HTMLS)
@@ -104,99 +94,96 @@ clean :
 
 
 arabic.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 farsi.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 hebrew.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 russian.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 gui_w32.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 if_ole.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_390.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_amiga.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_beos.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_dos.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_haiku.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_mac.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_mint.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_msdos.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_os2.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_qnx.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_risc.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 os_win32.txt :
-       <<touch.bat $@
+       <<touch.bat $@
 @$(TOUCH)
 <<
 
 convert-all : $(CONVERTED)
-!IF [$(PS) $(PSFLAGS) "exit $$psversiontable.psversion.major"] == 2
-!ERROR The program "PowerShell" version 3.0 or higher is required to work
-!ENDIF
 
 vim-da.UTF-8.1 : vim-da.1
 !IF DEFINED (ICONV)
@@ -204,8 +191,9 @@ vim-da.UTF-8.1 : vim-da.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimdiff-da.UTF-8.1 : vimdiff-da.1
@@ -214,8 +202,9 @@ vimdiff-da.UTF-8.1 : vimdiff-da.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimtutor-da.UTF-8.1 : vimtutor-da.1
@@ -224,8 +213,9 @@ vimtutor-da.UTF-8.1 : vimtutor-da.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vim-de.UTF-8.1 : vim-de.1
@@ -234,8 +224,9 @@ vim-de.UTF-8.1 : vim-de.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 evim-fr.UTF-8.1 : evim-fr.1
@@ -244,8 +235,9 @@ evim-fr.UTF-8.1 : evim-fr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vim-fr.UTF-8.1 : vim-fr.1
@@ -254,8 +246,9 @@ vim-fr.UTF-8.1 : vim-fr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimdiff-fr.UTF-8.1 : vimdiff-fr.1
@@ -264,8 +257,9 @@ vimdiff-fr.UTF-8.1 : vimdiff-fr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimtutor-fr.UTF-8.1 : vimtutor-fr.1
@@ -274,8 +268,9 @@ vimtutor-fr.UTF-8.1 : vimtutor-fr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 xxd-fr.UTF-8.1 : xxd-fr.1
@@ -284,8 +279,9 @@ xxd-fr.UTF-8.1 : xxd-fr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 evim-it.UTF-8.1 : evim-it.1
@@ -294,8 +290,9 @@ evim-it.UTF-8.1 : evim-it.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vim-it.UTF-8.1 : vim-it.1
@@ -304,8 +301,9 @@ vim-it.UTF-8.1 : vim-it.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimdiff-it.UTF-8.1 : vimdiff-it.1
@@ -314,8 +312,9 @@ vimdiff-it.UTF-8.1 : vimdiff-it.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimtutor-it.UTF-8.1 : vimtutor-it.1
@@ -324,8 +323,9 @@ vimtutor-it.UTF-8.1 : vimtutor-it.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 xxd-it.UTF-8.1 : xxd-it.1
@@ -334,8 +334,9 @@ xxd-it.UTF-8.1 : xxd-it.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28591)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 evim-pl.UTF-8.1 : evim-pl.1
@@ -344,8 +345,9 @@ evim-pl.UTF-8.1 : evim-pl.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28592)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vim-pl.UTF-8.1 : vim-pl.1
@@ -354,8 +356,9 @@ vim-pl.UTF-8.1 : vim-pl.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28592)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimdiff-pl.UTF-8.1 : vimdiff-pl.1
@@ -364,8 +367,9 @@ vimdiff-pl.UTF-8.1 : vimdiff-pl.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28592)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimtutor-pl.UTF-8.1 : vimtutor-pl.1
@@ -374,8 +378,9 @@ vimtutor-pl.UTF-8.1 : vimtutor-pl.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28592)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 xxd-pl.UTF-8.1 : xxd-pl.1
@@ -384,8 +389,9 @@ xxd-pl.UTF-8.1 : xxd-pl.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28592)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 evim-ru.UTF-8.1 : evim-ru.1
@@ -394,8 +400,9 @@ evim-ru.UTF-8.1 : evim-ru.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(20866)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vim-ru.UTF-8.1 : vim-ru.1
@@ -404,8 +411,9 @@ vim-ru.UTF-8.1 : vim-ru.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(20866)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimdiff-ru.UTF-8.1 : vimdiff-ru.1
@@ -414,8 +422,9 @@ vimdiff-ru.UTF-8.1 : vimdiff-ru.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(20866)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimtutor-ru.UTF-8.1 : vimtutor-ru.1
@@ -424,8 +433,9 @@ vimtutor-ru.UTF-8.1 : vimtutor-ru.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(20866)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 xxd-ru.UTF-8.1 : xxd-ru.1
@@ -434,8 +444,9 @@ xxd-ru.UTF-8.1 : xxd-ru.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(20866)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 evim-tr.UTF-8.1 : evim-tr.1
@@ -444,8 +455,9 @@ evim-tr.UTF-8.1 : evim-tr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28599)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vim-tr.UTF-8.1 : vim-tr.1
@@ -454,8 +466,9 @@ vim-tr.UTF-8.1 : vim-tr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28599)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimdiff-tr.UTF-8.1 : vimdiff-tr.1
@@ -464,8 +477,9 @@ vimdiff-tr.UTF-8.1 : vimdiff-tr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28599)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
 vimtutor-tr.UTF-8.1 : vimtutor-tr.1
@@ -474,8 +488,9 @@ vimtutor-tr.UTF-8.1 : vimtutor-tr.1
 !ELSE
 # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
        $(PS) $(PSFLAGS) \
-               [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
+               [IO.File]::ReadAllText(\"$?\", \
+               [Text.Encoding]::GetEncoding(28599)) ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
 !ENDIF
 
-# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index a50494d8c55386c5a67867d7dda85b077cc9f8ad..44f80f74ffcfd473ac2d116a3593ce963c6a79ea 100644 (file)
@@ -1,10 +1,17 @@
+#
 # Makefile for running indent tests on OS Windows.
 # Made on the base of a indent/Makefile.
-# Restorer, 13.03.2024
+# 2024-03-13, Restorer
+#
+
+# included common tools
+!INCLUDE ..\..\src\auto\nmake\tools.mak
+
+LSFLAGS = /A:-D /B /O:N /L /S
 
 .SUFFIXES:
 
-VIMPROG = vim.exe
+VIMPROG = ..\..\src\vim.exe
 VIMRUNTIME = ..
 
 # Run the tests that didn't run yet or failed previously.
@@ -12,10 +19,22 @@ VIMRUNTIME = ..
 # If a test fails a testdir\*.fail file will be written.
 test :
        @ set "VIMRUNTIME=$(VIMRUNTIME)"
-       $(VIMPROG) --clean --not-a-term -u testdir\runtest.vim
-
+       @ $(VIMPROG) --clean --not-a-term -u testdir\runtest.vim && \
+               (echo:&echo:    INDENT TESTS: DONE &echo:) || \
+               <<echofail.bat
+set "retval=%ERRORLEVEL%"
+@echo off
+echo:&echo:    INDENT TESTS: FAILED
+for /F %%G in ('2^> nul $(LS) $(LSFLAGS) testdir\*.fail') do (
+call set "fail=%%fail%% %%G")
+if defined fail (
+for %%G in (%fail%) do @(echo:&echo:    %%~nxG:&echo: && type %%G)
+)
+exit /B %retval%
+<<
 
 clean testclean :
-       @ if exist testdir\*.fail del /q testdir\*.fail
-       @ if exist testdir\*.out del /q testdir\*.out
+       @ if exist testdir\*.fail $(RM) testdir\*.fail
+       @ if exist testdir\*.out $(RM) testdir\*.out
 
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index c8647181b27114a0199b7e25fdf5f250c30cdb96..4f08a8cd68ff9d60ba1eeb7c091026f045ba65ef 100644 (file)
@@ -1,14 +1,14 @@
 #
 # Makefile for converted the Vim menu files on Windows
 #
-# 08.11.23, Restorer, <restorer@mail2k.ru>
+# 2023-11-08, Restorer, <restorer@mail2k.ru>
+#
 
-!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
-!ERROR The program "PowerShell" version 3.0 or higher is required to work
-!ENDIF
+# included common tools
+!INCLUDE ..\..\src\auto\nmake\tools.mak
 
 # Common components
-!INCLUDE Make_all.mak
+!INCLUDE .\Make_all.mak
 
 # Correct the following line for the directory where iconv is installed.
 # Please do not put the path in quotes.
@@ -24,17 +24,11 @@ ICONV = "iconv.exe"
 ICONV = "$(ICONV_PATH)\iconv.exe"
 !ENDIF
 
-RM = del /q
-PS = PowerShell.exe
-
-PSFLAGS = -NoLogo -NoProfile -Command
-
-
 all : $(CONVERTED)
 
-# Convert menu_zh_cn.utf-8.vim to create menu_chinese_gb.936.vim.
+# Convert menu_zh_cn.utf-8.vim to menu_chinese_gb.936.vim.
 menu_chinese_gb.936.vim : menu_zh_cn.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP936 $? >$@
 !ELSE
@@ -46,13 +40,13 @@ menu_chinese_gb.936.vim : menu_zh_cn.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(936)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp936' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(936))
 
-# Convert menu_zh_tw.utf-8.vim to create menu_chinese_taiwan.950.vim.
+# Convert menu_zh_tw.utf-8.vim to menu_chinese_taiwan.950.vim.
 menu_chinese_taiwan.950.vim : menu_zh_tw.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP950 $? >$@
 !ELSE
@@ -64,13 +58,13 @@ menu_chinese_taiwan.950.vim : menu_zh_tw.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(950)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp950' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(950))
 
-# Convert menu_cs_cz.utf-8.vim to create menu_cs_cz.iso_8859-2.vim.
+# Convert menu_cs_cz.utf-8.vim to menu_cs_cz.iso_8859-2.vim.
 menu_cs_cz.iso_8859-2.vim : menu_cs_cz.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
 !ELSE
@@ -81,15 +75,15 @@ menu_cs_cz.iso_8859-2.vim : menu_cs_cz.utf-8.vim
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28592)) -replace \
-               ' Czech \(UTF-8\)', ' Czech (ISO-8859-2)' -replace \
-               \"scriptencoding utf-8\", \"scriptencoding iso-8859-2\" -replace \
-               \" Original translations\", \" Generated from $?, DO NOT EDIT\"; \
+               'Czech \(UTF-8\)', 'Czech (ISO-8859-2)' -replace \
+               'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28592))
 
-# Convert menu_cs_cz.utf-8.vim to create menu_czech_czech_republic.1250.vim.
+# Convert menu_cs_cz.utf-8.vim to menu_czech_czech_republic.1250.vim.
 menu_czech_czech_republic.1250.vim : menu_cs_cz.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1250 $? >$@
 !ELSE
@@ -100,35 +94,41 @@ menu_czech_czech_republic.1250.vim : menu_cs_cz.utf-8.vim
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1250)) -replace \
-               ' Czech \(UTF-8\)', ' Czech (CP1250)' -replace \
-               \"scriptencoding utf-8\", \"scriptencoding cp1250\" -replace \
-               \" Original translations\", \" Generated from $?, DO NOT EDIT\"; \
+               'Czech \(UTF-8\)', 'Czech (CP1250)' -replace \
+               'scriptencoding utf-8', 'scriptencoding cp1250' -replace \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(1250))
 
-# Convert menu_cs_cz.utf-8.vim to create menu_czech_czech_republic.ascii.vim.
+# Convert menu_cs_cz.utf-8.vim to menu_czech_czech_republic.ascii.vim.
 menu_czech_czech_republic.ascii.vim : menu_cs_cz.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
        $(PS) $(PSFLAGS) [System.IO.File]::ReadAllText(\"$?\", \
                [System.Text.Encoding]::GetEncoding(65001)) -replace \
                'scriptencoding utf-8', 'scriptencoding latin1' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT' -replace \
-               'Czech \(UTF-8\)', 'Czech (ASCII - without diacritics)' -creplace \
-               [char]193, 'A' -creplace [char]225, 'a' -creplace [char]268, 'C' -creplace \
-               [char]269, 'c' -creplace [char]270, 'D' -creplace [char]271, 'd' -creplace \
-               [char]201, 'E' -creplace [char]233, 'e' -creplace [char]282, 'E' -creplace \
-               [char]283, 'e' -creplace [char]205, 'I' -creplace [char]237, 'i' -creplace \
-               [char]327, 'N' -creplace [char]328, 'n' -creplace [char]211, 'O' -creplace \
-               [char]243, 'o' -creplace [char]344, 'R' -creplace [char]345, 'r' -creplace \
-               [char]352, 'S' -creplace [char]353, 's' -creplace [char]356, 'T' -creplace \
-               [char]357, 't' -creplace [char]218, 'U' -creplace [char]250, 'u' -creplace \
-               [char]366, 'U' -creplace [char]367, 'u' -creplace [char]221, 'Y' -creplace \
-               [char]253, 'y' -creplace [char]381, 'Z' -creplace [char]382, 'z' ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
-
-# Convert menu_hu_hu.utf-8.vim to create menu_hu_hu.iso_8859-2.vim.
+               'Original translations', 'Generated from $?, DO NOT EDIT' \
+               -replace 'Czech \(UTF-8\)', \
+               'Czech (ASCII - without diacritics)' \
+               -creplace [char]193, 'A' -creplace [char]225, 'a' \
+               -creplace [char]268, 'C' -creplace [char]269, 'c' \
+               -creplace [char]270, 'D' -creplace [char]271, 'd' \
+               -creplace [char]201, 'E' -creplace [char]233, 'e' \
+               -creplace [char]282, 'E' -creplace [char]283, 'e' \
+               -creplace [char]205, 'I' -creplace [char]237, 'i' \
+               -creplace [char]327, 'N' -creplace [char]328, 'n' \
+               -creplace [char]211, 'O' -creplace [char]243, 'o' \
+               -creplace [char]344, 'R' -creplace [char]345, 'r' \
+               -creplace [char]352, 'S' -creplace [char]353, 's' \
+               -creplace [char]356, 'T' -creplace [char]357, 't' \
+               -creplace [char]218, 'U' -creplace [char]250, 'u' \
+               -creplace [char]366, 'U' -creplace [char]367, 'u' \
+               -creplace [char]221, 'Y' -creplace [char]253, 'y' \
+               -creplace [char]381, 'Z' -creplace [char]382, 'z' \
+               ^| 1>nul New-Item -Path . -Name $@ -ItemType file -Force
+
+# Convert menu_hu_hu.utf-8.vim to menu_hu_hu.iso_8859-2.vim.
 menu_hu_hu.iso_8859-2.vim : menu_hu_hu.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
 !ELSE
@@ -140,13 +140,13 @@ menu_hu_hu.iso_8859-2.vim : menu_hu_hu.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28592)) -replace \
                'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28592))
 
-# Convert menu_ja_jp.utf-8.vim to create menu_ja_jp.euc-jp.vim.
+# Convert menu_ja_jp.utf-8.vim to menu_ja_jp.euc-jp.vim.
 menu_ja_jp.euc-jp.vim : menu_ja_jp.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t EUC-JP $? >$@
 !ELSE
@@ -159,13 +159,13 @@ menu_ja_jp.euc-jp.vim : menu_ja_jp.utf-8.vim
                [System.Text.Encoding]::GetEncoding(51932)) -replace \
                'Japanese \(UTF-8\)', 'Japanese (EUC-JP)' -replace \
                'scriptencoding utf-8', 'scriptencoding euc-jp' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(51932))
 
-# Convert menu_ja_jp.utf-8.vim to create menu_japanese_japan.932.vim.
+# Convert menu_ja_jp.utf-8.vim to menu_japanese_japan.932.vim.
 menu_japanese_japan.932.vim : menu_ja_jp.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP932 $? >$@
 !ELSE
@@ -178,13 +178,13 @@ menu_japanese_japan.932.vim : menu_ja_jp.utf-8.vim
                [System.Text.Encoding]::GetEncoding(932)) -replace \
                'Japanese \(UTF-8\)', 'Japanese (CP932)' -replace \
                'scriptencoding utf-8', 'scriptencoding cp932' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(932))
 
-# Convert menu_ko_kr.utf-8.vim to create menu_ko_kr.euckr.vim.
+# Convert menu_ko_kr.utf-8.vim to menu_ko_kr.euckr.vim.
 menu_ko_kr.euckr.vim : menu_ko_kr.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t EUC-KR $? >$@
 !ELSE
@@ -196,13 +196,13 @@ menu_ko_kr.euckr.vim : menu_ko_kr.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(51949)) -replace \
                'scriptencoding utf-8', 'scriptencoding euc-kr' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(51949))
 
-# Convert menu_pl_pl.utf-8.vim to create menu_pl_pl.iso_8859-2.vim.
+# Convert menu_pl_pl.utf-8.vim to menu_pl_pl.iso_8859-2.vim.
 menu_pl_pl.iso_8859-2.vim : menu_pl_pl.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
 !ELSE
@@ -214,13 +214,13 @@ menu_pl_pl.iso_8859-2.vim : menu_pl_pl.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28592)) -replace \
                'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28592))
 
-# Convert menu_pl_pl.utf-8.vim to create menu_polish_poland.1250.vim.
+# Convert menu_pl_pl.utf-8.vim to menu_polish_poland.1250.vim.
 menu_polish_poland.1250.vim : menu_pl_pl.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1250 $? >$@
 !ELSE
@@ -232,13 +232,13 @@ menu_polish_poland.1250.vim : menu_pl_pl.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1250)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp1250' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(1250))
 
-# Convert menu_ru_ru.utf-8.vim to create menu_ru_ru.cp1251.vim.
+# Convert menu_ru_ru.utf-8.vim to menu_ru_ru.cp1251.vim.
 menu_ru_ru.cp1251.vim : menu_ru_ru.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1251 $? >$@
 !ELSE
@@ -250,13 +250,13 @@ menu_ru_ru.cp1251.vim : menu_ru_ru.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1251)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp1251' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(1251))
 
-# Convert menu_ru_ru.utf-8.vim to create menu_ru_ru.koi8-r.vim.
+# Convert menu_ru_ru.utf-8.vim to menu_ru_ru.koi8-r.vim.
 menu_ru_ru.koi8-r.vim : menu_ru_ru.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t KOI8-R $? >$@
 !ELSE
@@ -268,13 +268,13 @@ menu_ru_ru.koi8-r.vim : menu_ru_ru.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(20866)) -replace \
                'scriptencoding utf-8', 'scriptencoding koi8-r' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(20866))
 
-# Convert menu_slovak_slovak_republic.1250.vim to create menu_sk_sk.iso_8859-2.vim.
+# Convert menu_slovak_slovak_republic.1250.vim to menu_sk_sk.iso_8859-2.vim.
 menu_sk_sk.iso_8859-2.vim : menu_slovak_slovak_republic.1250.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f CP1250 -t ISO-8859-2 $? >$@
 !ELSE
@@ -286,13 +286,13 @@ menu_sk_sk.iso_8859-2.vim : menu_slovak_slovak_republic.1250.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28592)) -replace \
                'scriptencoding cp1250', 'scriptencoding iso-8859-2' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28592))
 
-# Convert menu_sl_si.utf-8.vim to create menu_sl_si.cp1250.vim.
+# Convert menu_sl_si.utf-8.vim to menu_sl_si.cp1250.vim.
 menu_sl_si.cp1250.vim : menu_sl_si.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1250 $? >$@
 !ELSE
@@ -304,13 +304,13 @@ menu_sl_si.cp1250.vim : menu_sl_si.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1250)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp1250' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(1250))
 
-# Convert menu_sl_si.utf-8.vim to create menu_sl_si.latin2.vim.
+# Convert menu_sl_si.utf-8.vim to menu_sl_si.latin2.vim.
 menu_sl_si.latin2.vim : menu_sl_si.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t ISO-8859-2 $? >$@
 !ELSE
@@ -322,71 +322,93 @@ menu_sl_si.latin2.vim : menu_sl_si.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28592)) -replace \
                'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28592))
 
-# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.ascii.vim.
+# Convert menu_sr_rs.utf-8.vim to menu_sr_rs.ascii.vim.
 menu_sr_rs.ascii.vim : menu_sr_rs.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
        $(PS) $(PSFLAGS) [System.IO.File]::ReadAllText(\"$?\", \
                [System.Text.Encoding]::GetEncoding(65001)) -replace \
                'scriptencoding utf-8', 'scriptencoding latin1' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT' -creplace \
-               [char]1072, 'a' -creplace [char]1073, 'b' -creplace [char]1074, 'v' -creplace \
-               [char]1075, 'g' -creplace [char]1076, 'd' -creplace [char]1106, 'dj' -creplace \
-               [char]1077, 'e' -creplace [char]1078, 'z' -creplace [char]1079, 'z' -creplace \
-               [char]1080, 'i' -creplace [char]1112, 'j' -creplace [char]1082, 'k' -creplace \
-               [char]1083, 'l' -creplace [char]1113, 'lj' -creplace [char]1084, 'm' -creplace \
-               [char]1085, 'n' -creplace [char]1114, 'nj' -creplace [char]1086, 'o' -creplace \
-               [char]1087, 'p' -creplace [char]1088, 'r' -creplace [char]1089, 's' -creplace \
-               [char]1090, 't' -creplace [char]1115, 'c' -creplace [char]1091, 'u' -creplace \
-               [char]1092, 'f' -creplace [char]1093, 'h' -creplace [char]1094, 'c' -creplace \
-               [char]1095, 'c' -creplace [char]1119, 'dz' -creplace [char]1096, 's' -creplace \
-               [char]1040, 'A' -creplace [char]1041, 'B' -creplace [char]1042, 'V' -creplace \
-               [char]1043, 'G' -creplace [char]1044, 'D' -creplace [char]1026, 'Đ' -creplace \
-               [char]1045, 'E' -creplace [char]1046, 'Z' -creplace [char]1047, 'Z' -creplace \
-               [char]1048, 'I' -creplace [char]1032, 'J' -creplace [char]1050, 'K' -creplace \
-               [char]1051, 'L' -creplace [char]1033, 'Lj' -creplace [char]1052, 'M' -creplace \
-               [char]1053, 'N' -creplace [char]1034, 'Nj' -creplace [char]1054, 'O' -creplace \
-               [char]1055, 'P' -creplace [char]1056, 'R' -creplace [char]1057, 'S' -creplace \
-               [char]1058, 'T' -creplace [char]1035, 'C' -creplace [char]1059, 'U' -creplace \
-               [char]1060, 'F' -creplace [char]1061, 'H' -creplace [char]1062, 'C' -creplace \
-               [char]1063, 'C' -creplace [char]1039, 'Dz' -creplace [char]1064, 'S' ^| \
-               1>nul New-Item -Force -Path . -ItemType file -Name $@
-
-# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.iso_8859-2.vim.
+               'Original translations', 'Generated from $?, DO NOT EDIT' \
+               -creplace [char]1072, 'a' -creplace [char]1073, 'b' \
+               -creplace [char]1074, 'v' -creplace [char]1075, 'g' \
+               -creplace [char]1076, 'd' -creplace [char]1106, 'dj' \
+               -creplace [char]1077, 'e' -creplace [char]1078, 'z' \
+               -creplace [char]1079, 'z' -creplace [char]1080, 'i' \
+               -creplace [char]1112, 'j' -creplace [char]1082, 'k' \
+               -creplace [char]1083, 'l' -creplace [char]1113, 'lj' \
+               -creplace [char]1084, 'm' -creplace [char]1085, 'n' \
+               -creplace [char]1114, 'nj' -creplace [char]1086, 'o' \
+               -creplace [char]1087, 'p' -creplace [char]1088, 'r' \
+               -creplace [char]1089, 's' -creplace [char]1090, 't' \
+               -creplace [char]1115, 'c' -creplace [char]1091, 'u' \
+               -creplace [char]1092, 'f' -creplace [char]1093, 'h' \
+               -creplace [char]1094, 'c' -creplace [char]1095, 'c' \
+               -creplace [char]1119, 'dz' -creplace [char]1096, 's' \
+               -creplace [char]1040, 'A' -creplace [char]1041, 'B' \
+               -creplace [char]1042, 'V' -creplace [char]1043, 'G' \
+               -creplace [char]1044, 'D' -creplace [char]1026, 'Đ' \
+               -creplace [char]1045, 'E' -creplace [char]1046, 'Z' \
+               -creplace [char]1047, 'Z' -creplace [char]1048, 'I' \
+               -creplace [char]1032, 'J' -creplace [char]1050, 'K' \
+               -creplace [char]1051, 'L' -creplace [char]1033, 'Lj' \
+               -creplace [char]1052, 'M' -creplace [char]1053, 'N' \
+               -creplace [char]1034, 'Nj' -creplace [char]1054, 'O' \
+               -creplace [char]1055, 'P' -creplace [char]1056, 'R' \
+               -creplace [char]1057, 'S' -creplace [char]1058, 'T' \
+               -creplace [char]1035, 'C' -creplace [char]1059, 'U' \
+               -creplace [char]1060, 'F' -creplace [char]1061, 'H' \
+               -creplace [char]1062, 'C' -creplace [char]1063, 'C' \
+               -creplace [char]1039, 'Dz' -creplace [char]1064, 'S' ^| \
+               1>nul New-Item -Path . -Name $@ -ItemType file -Force
+
+# Convert menu_sr_rs.utf-8.vim to menu_sr_rs.iso_8859-2.vim.
 menu_sr_rs.iso_8859-2.vim : menu_sr_rs.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$?\", \
-               [System.Text.Encoding]::GetEncoding(65001)) -creplace \
-               [char]1072, 'a' -creplace [char]1073, 'b' -creplace [char]1074, 'v' -creplace \
-               [char]1075, 'g' -creplace [char]1076, 'd' -creplace [char]1106, [char]273 -creplace \
-               [char]1077, 'e' -creplace [char]1078, [char]382 -creplace [char]1079, 'z' -creplace \
-               [char]1080, 'i' -creplace [char]1112, 'j' -creplace [char]1082, 'k' -creplace \
-               [char]1083, 'l' -creplace [char]1113, 'lj' -creplace [char]1084, 'm' -creplace \
-               [char]1085, 'n' -creplace [char]1114, 'nj' -creplace [char]1086, 'o' -creplace \
-               [char]1087, 'p' -creplace [char]1088, 'r' -creplace [char]1089, 's' -creplace \
-               [char]1090, 't' -creplace [char]1115, [char]263 -creplace [char]1091, 'u' -creplace \
-               [char]1092, 'f' -creplace [char]1093, 'h' -creplace [char]1094, 'c' -creplace \
-               [char]1095, [char]269 -creplace [char]1119, 'dz' -creplace [char]1096, [char]353 -creplace \
-               [char]1040, 'A' -creplace [char]1041, 'B' -creplace [char]1042, 'V' -creplace \
-               [char]1043, 'G' -creplace [char]1044, 'D' -creplace [char]1026, 'Đ' -creplace \
-               [char]1045, 'E' -creplace [char]1046, [char]381 -creplace [char]1047, 'Z' -creplace \
-               [char]1048, 'I' -creplace [char]1032, 'J' -creplace [char]1050, 'K' -creplace \
-               [char]1051, 'L' -creplace [char]1033, 'Lj'-creplace [char]1052, 'M' -creplace \
-               [char]1053, 'N' -creplace [char]1034, 'Nj' -creplace [char]1054, 'O' -creplace \
-               [char]1055, 'P' -creplace [char]1056, 'R' -creplace [char]1057, 'S' -creplace \
-               [char]1058, 'T' -creplace [char]1035, [char]262 -creplace [char]1059, 'U' -creplace \
-               [char]1060, 'F' -creplace [char]1061, 'H' -creplace [char]1062, 'C' -creplace \
-               [char]1063, [char]268 -creplace [char]1039, 'Dz' -creplace [char]1064, [char]352 -replace \
-               'scriptencoding utf-8', 'scriptencoding iso-8859-2' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, [System.Text.Encoding]::GetEncoding(28592))
+               [System.Text.Encoding]::GetEncoding(65001)) \
+               -creplace [char]1072, 'a' -creplace [char]1073, 'b' \
+               -creplace [char]1074, 'v' -creplace [char]1075, 'g' \
+               -creplace [char]1076, 'd' -creplace [char]1106, [char]273 \
+               -creplace [char]1077, 'e' -creplace [char]1078, [char]382 \
+               -creplace [char]1079, 'z' -creplace [char]1080, 'i' \
+               -creplace [char]1112, 'j' -creplace [char]1082, 'k' \
+               -creplace [char]1083, 'l' -creplace [char]1113, 'lj' \
+               -creplace [char]1084, 'm' -creplace [char]1085, 'n' \
+               -creplace [char]1114, 'nj' -creplace [char]1086, 'o' \
+               -creplace [char]1087, 'p' -creplace [char]1088, 'r' \
+               -creplace [char]1089, 's' -creplace [char]1090, 't' \
+               -creplace [char]1115, [char]263 -creplace [char]1091, 'u' \
+               -creplace [char]1092, 'f' -creplace [char]1093, 'h' \
+               -creplace [char]1094, 'c' -creplace [char]1095, [char]269 \
+               -creplace [char]1119, 'dz' -creplace [char]1096, [char]353 \
+               -creplace [char]1040, 'A' -creplace [char]1041, 'B' \
+               -creplace [char]1042, 'V' -creplace [char]1043, 'G' \
+               -creplace [char]1044, 'D' -creplace [char]1026, 'Đ' \
+               -creplace [char]1045, 'E' -creplace [char]1046, [char]381 \
+               -creplace [char]1047, 'Z' -creplace [char]1048, 'I' \
+               -creplace [char]1032, 'J' -creplace [char]1050, 'K' \
+               -creplace [char]1051, 'L' -creplace [char]1033, 'Lj'\
+               -creplace [char]1052, 'M' -creplace [char]1053, 'N' \
+               -creplace [char]1034, 'Nj' -creplace [char]1054, 'O' \
+               -creplace [char]1055, 'P' -creplace [char]1056, 'R' \
+               -creplace [char]1057, 'S' -creplace [char]1058, 'T' \
+               -creplace [char]1035, [char]262 -creplace [char]1059, 'U' \
+               -creplace [char]1060, 'F' -creplace [char]1061, 'H' \
+               -creplace [char]1062, 'C' -creplace [char]1063, [char]268 \
+               -creplace [char]1039, 'Dz' -creplace [char]1064, [char]352 \
+               -replace 'scriptencoding utf-8', 'scriptencoding iso-8859-2' \
+               -replace \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
+               [System.IO.File]::WriteAllText(\"$@\", $$out, \
+               [System.Text.Encoding]::GetEncoding(28592))
 
-# Convert menu_sr_rs.utf-8.vim to create menu_sr_rs.iso_8859-5.vim.
+# Convert menu_sr_rs.utf-8.vim to menu_sr_rs.iso_8859-5.vim.
 menu_sr_rs.iso_8859-5.vim : menu_sr_rs.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t ISO-8859-5 $? >$@
 !ELSE
@@ -398,13 +420,13 @@ menu_sr_rs.iso_8859-5.vim : menu_sr_rs.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28595)) -replace \
                'scriptencoding utf-8', 'scriptencoding iso-8859-5' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28595))
 
-# Convert menu_tr_tr.utf-8.vim to create menu_tr_tr.cp1254.vim.
+# Convert menu_tr_tr.utf-8.vim to menu_tr_tr.cp1254.vim.
 menu_tr_tr.cp1254.vim : menu_tr_tr.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1254 $? >$@
 !ELSE
@@ -416,13 +438,13 @@ menu_tr_tr.cp1254.vim : menu_tr_tr.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1254)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp1254' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(1254))
 
-# Convert menu_tr_tr.utf-8.vim to create menu_tr_tr.iso_8859-9.vim.
+# Convert menu_tr_tr.utf-8.vim to menu_tr_tr.iso_8859-9.vim.
 menu_tr_tr.iso_8859-9.vim : menu_tr_tr.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t ISO-8859-9 $? >$@
 !ELSE
@@ -434,13 +456,13 @@ menu_tr_tr.iso_8859-9.vim : menu_tr_tr.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(28599)) -replace \
                'scriptencoding utf-8', 'scriptencoding iso-8859-9' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(28599))
 
-# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.cp1251.vim.
+# Convert menu_uk_ua.utf-8.vim to menu_uk_ua.cp1251.vim.
 menu_uk_ua.cp1251.vim : menu_uk_ua.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1251 $? >$@
 !ELSE
@@ -452,13 +474,13 @@ menu_uk_ua.cp1251.vim : menu_uk_ua.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1251)) -replace \
                'scriptencoding utf-8', 'scriptencoding cp1251' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(1251))
 
-# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.koi8-u.vim.
+# Convert menu_uk_ua.utf-8.vim to menu_uk_ua.koi8-u.vim.
 menu_uk_ua.koi8-u.vim : menu_uk_ua.utf-8.vim
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t KOI8-U $? >$@
 !ELSE
@@ -470,11 +492,11 @@ menu_uk_ua.koi8-u.vim : menu_uk_ua.utf-8.vim
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(21866)) -replace \
                'scriptencoding utf-8', 'scriptencoding koi8-u' -replace \
-               ' Original translations', ' Generated from $?, DO NOT EDIT'; \
+               'Original translations', 'Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(21866))
 
 clean :
-       @for %%G in ($(CONVERTED)) do (if exist .\%%G ($(RM) %%G))
+       @ for %%G in ($(CONVERTED)) do @(if exist .\%%G $(RM) %%G)
 
-# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 132a584ba426a9b8dd9ed0b3245d97b8f27e3615..874b34c74eb6c930be5a1d04bf198eb6f75332b1 100644 (file)
@@ -5,45 +5,48 @@
 #                      automatically from CPUNR
 #
 
+# included common tools
+!INCLUDE ..\auto\nmake\tools.mak
+
 TARGETOS = WINNT
 
-!ifndef APPVER
+!IFNDEF APPVER
 APPVER = 6.01
-!endif
+!ENDIF
 # Set the default $(WINVER) to make it work with Windows 7.
-!ifndef WINVER
+!IFNDEF WINVER
 WINVER = 0x0601
-!endif
+!ENDIF
 
-!if "$(DEBUG)" != "yes"
+!IF "$(DEBUG)" != "yes"
 NODEBUG = 1
-!endif
+!ENDIF
 
-!ifndef CPU
+!IFNDEF CPU
 CPU = i386
-! ifndef PLATFORM
-!  ifdef TARGET_CPU
+! IFNDEF PLATFORM
+!  IFDEF TARGET_CPU
 PLATFORM = $(TARGET_CPU)
-!  elseif defined(VSCMD_ARG_TGT_ARCH)
+!  ELSEIF defined(VSCMD_ARG_TGT_ARCH)
 PLATFORM = $(VSCMD_ARG_TGT_ARCH)
-!  endif
-! endif
-! ifdef PLATFORM
-!  if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
+!  ENDIF
+! ENDIF
+! IFDEF PLATFORM
+!  IF ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
 CPU = AMD64
-!  elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
+!  ELSEIF ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
 CPU = ARM64
-!  elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
-!   error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
-!  endif
-! endif
-!endif
-
-!ifdef SDK_INCLUDE_DIR
-! include $(SDK_INCLUDE_DIR)\Win32.mak
-!elseif "$(USE_WIN32MAK)"=="yes"
-! include <Win32.mak>
-!else
+!  ELSEIF ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
+!   ERROR *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
+!  ENDIF
+! ENDIF
+!ENDIF
+
+!IFDEF SDK_INCLUDE_DIR
+! INCLUDE $(SDK_INCLUDE_DIR)\Win32.mak
+!ELSEIF "$(USE_WIN32MAK)"=="yes"
+! INCLUDE <Win32.mak>
+!ELSE
 cc = cl
 link = link
 rc = rc
@@ -51,7 +54,7 @@ cflags = -nologo -c
 lflags = -incremental:no -nologo
 rcflags = /r
 olelibsdll = ole32.lib uuid.lib oleaut32.lib user32.lib gdi32.lib advapi32.lib
-!endif
+!ENDIF
 
 # include CPUARG
 cflags = $(cflags) $(CPUARG)
@@ -59,26 +62,27 @@ cflags = $(cflags) $(CPUARG)
 # set WINVER and _WIN32_WINNT
 cflags = $(cflags) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
 
-!if "$(CL)" == "/D_USING_V110_SDK71_"
+!IF "$(CL)" == "/D_USING_V110_SDK71_"
 rcflags = $(rcflags) /D_USING_V110_SDK71_
-!endif
+!ENDIF
 
 SUBSYSTEM = console
-!if "$(SUBSYSTEM_VER)" != ""
+!IF "$(SUBSYSTEM_VER)" != ""
 SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
-!endif
+!ENDIF
 
-!if "$(CPU)" == "AMD64" || "$(CPU)" == "ARM64"
+!IF "$(CPU)" == "AMD64" || "$(CPU)" == "ARM64"
 OFFSET = 0x11C000000
-!else
+!ELSE
 OFFSET = 0x1C000000
-!endif
+!ENDIF
 
 all: gvimext.dll
 
-gvimext.dll:    gvimext.obj    \
-               gvimext.res
-       $(link) $(lflags) -dll -def:gvimext.def -base:$(OFFSET) -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
+gvimext.dll: gvimext.obj gvimext.res
+       $(link) $(lflags) -dll -def:gvimext.def -base:$(OFFSET) \
+               -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib \
+               -subsystem:$(SUBSYSTEM)
 
 gvimext.obj: gvimext.h
 
@@ -86,11 +90,13 @@ gvimext.obj: gvimext.h
        $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp
 
 gvimext.res: gvimext.rc
-       $(rc) /nologo $(rcflags) $(rcvars)  gvimext.rc
+       $(rc) /nologo $(rcflags) $(rcvars) gvimext.rc
 
 clean:
-       - if exist gvimext.dll del gvimext.dll
-       - if exist gvimext.lib del gvimext.lib
-       - if exist gvimext.exp del gvimext.exp
-       - if exist gvimext.obj del gvimext.obj
-       - if exist gvimext.res del gvimext.res
+       - if exist gvimext.dll $(RM) gvimext.dll
+       - if exist gvimext.lib $(RM) gvimext.lib
+       - if exist gvimext.exp $(RM) gvimext.exp
+       - if exist gvimext.obj $(RM) gvimext.obj
+       - if exist gvimext.res $(RM) gvimext.res
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 383344d46d54d704f9402bc45a27f9eaf8689b76..ba0f5125737e2dff80ba8c47cf9871ea0e269204 100644 (file)
@@ -61,8 +61,8 @@
 #        MZSCHEME=[Path to MzScheme directory]
 #        DYNAMIC_MZSCHEME=yes (to load the MzScheme DLLs dynamically)
 #        MZSCHEME_VER=[MzScheme version] (default is 3m_a0solc (6.6))
-#              Used for the DLL file name. E.g.:
-#              C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
+#         Used for the DLL file name. E.g.:
+#         C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
 #        MZSCHEME_DEBUG=no
 #
 #      Perl interface:
@@ -87,7 +87,7 @@
 #        DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
 #        RUBY_VER=[Ruby version, eg 19, 22] (default is 22)
 #        RUBY_API_VER_LONG=[Ruby API version, eg 1.9.1, 2.2.0]
-#                          (default is 2.2.0)
+#              (default is 2.2.0)
 #          You must set RUBY_API_VER_LONG when change RUBY_VER.
 #          Note: If you use Ruby 1.9.3, set as follows:
 #            RUBY_VER=19
 # you can set DEFINES on the command line, e.g.,
 #      nmake -f Make_mvc.mvc "DEFINES=-DEMACS_TAGS"
 
-RM =           del /f /q
+# included common tools
+!INCLUDE .\auto\nmake\tools.mak
 
 # Read MAJOR and MINOR from version.h.
-!IF ![for /f "tokens=2,3" %I in (version.h) do \
-       @if "%I"=="VIM_VERSION_MAJOR" ( \
-               echo MAJOR=%J> .\major.tmp \
-       ) else if "%I"=="VIM_VERSION_MINOR" ( \
-               echo MINOR=%J> .\minor.tmp && exit \
-       )]
-!ENDIF
-
-!IF EXIST(.\major.tmp)
-! INCLUDE .\major.tmp
-! IF [$(RM) .\major.tmp]
+!IFNDEF MAJOR
+! IF ![for /F "tokens=3" %G in \
+       ('findstr /RC:"VIM_VERSION_MAJOR[       ^]*[0-9^]" .\version.h') \
+       do @(echo:MAJOR=%G> .\_major.tmp)]
+!  INCLUDE .\_major.tmp
+!  IF [$(RM) .\_major.tmp]
+!  ENDIF
+! ELSE
+MAJOR = 9
 ! ENDIF
-!ELSE
-# Change this value for the new version
-MAJOR =                9
 !ENDIF
 
-!IF EXIST(.\minor.tmp)
-! INCLUDE .\minor.tmp
-! IF [$(RM) .\minor.tmp]
-! ENDIF
-!ELSE
-# Change this value for the new version
-MINOR =                1
-!ENDIF
-
-# Read PATCHLEVEL from version.c.
-!IF ![cmd.exe /V:ON /Q /C "set LINE=0&& set FIND=0&& \
-       for /f "tokens=1,3 delims=, " %I in (version.c) do ( \
-               set /A LINE+=1 > NUL && \
-               if "%J"=="included_patches[^]" ( \
-                       set /A FIND=LINE+3 > NUL \
-               ) else if "!LINE!"=="!FIND!" ( \
-                       echo PATCHLEVEL=%I> .\patchlvl.tmp && exit \
-               ) \
-       )"]
-!ENDIF
-!IF EXIST(.\patchlvl.tmp)
-! INCLUDE .\patchlvl.tmp
-! IF [$(RM) .\patchlvl.tmp]
+!IFNDEF MINOR
+! IF ![for /F "tokens=3" %G in \
+       ('findstr /RC:"VIM_VERSION_MINOR[       ^]*[0-9^]" .\version.h') \
+       do @(echo:MINOR=%G> .\_minor.tmp)]
+!  INCLUDE .\_minor.tmp
+!  IF [$(RM) .\_minor.tmp]
+!  ENDIF
+! ELSE
+MINOR = 1
 ! ENDIF
 !ENDIF
 
-!IFDEF PATCHLEVEL
-RCFLAGS =      -DVIM_VERSION_PATCHLEVEL=$(PATCHLEVEL)
+# Read PATCHLEVEL from version.c
+!IFNDEF PATCHLEVEL
+! IF ![for /F %G in \
+       ('findstr /NBLC:"static int included_patches" .\version.c \
+       ^| (set /p "_t=" ^& set /a _t+=2 ^)') do \
+       @$(CMD) $(CMDFLAGS) "for /F "skip=%G delims=, " %H in \
+       (.\version.c) do (echo:PATCHLEVEL=%H> .\_patchlvl.tmp & exit /b)"]
+!  INCLUDE .\_patchlvl.tmp
+!  IF [$(RM) .\_patchlvl.tmp]
+!  ENDIF
+! ELSE
+PATCHLEVEL = 0
+! ENDIF
 !ENDIF
-!message Vim version: $(MAJOR).$(MINOR).$(PATCHLEVEL)
 
+!MESSAGE Vim version: $(MAJOR).$(MINOR).$(PATCHLEVEL)
 
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 GUI = yes
-!endif
+!ENDIF
 
-!ifndef DIRECTX
+!IFNDEF DIRECTX
 DIRECTX = $(GUI)
-!endif
+!ENDIF
 
 # Select a code directory, depends on GUI, OLE, DEBUG, interfaces and etc.
 # If you change something else, do "make clean" first!
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 OBJDIR = .\ObjD
-!elseif "$(GUI)" == "yes"
+!ELSEIF "$(GUI)" == "yes"
 OBJDIR = .\ObjG
-!else
+!ELSE
 OBJDIR = .\ObjC
-!endif
-!if "$(DIRECTX)" == "yes" && "$(GUI)" == "yes"
+!ENDIF
+!IF "$(DIRECTX)" == "yes" && "$(GUI)" == "yes"
 OBJDIR = $(OBJDIR)X
-!endif
-!if "$(OLE)" == "yes"
+!ENDIF
+!IF "$(OLE)" == "yes"
 OBJDIR = $(OBJDIR)O
-!endif
-!ifdef LUA
+!ENDIF
+!IFDEF LUA
 OBJDIR = $(OBJDIR)U
-!endif
-!ifdef PERL
+!ENDIF
+!IFDEF PERL
 OBJDIR = $(OBJDIR)L
-!endif
-!ifdef PYTHON
+!ENDIF
+!IFDEF PYTHON
 OBJDIR = $(OBJDIR)Y
-!endif
-!ifdef PYTHON3
+!ENDIF
+!IFDEF PYTHON3
 OBJDIR = $(OBJDIR)H
-!endif
-!ifdef TCL
+!ENDIF
+!IFDEF TCL
 OBJDIR = $(OBJDIR)T
-!endif
-!ifdef RUBY
+!ENDIF
+!IFDEF RUBY
 OBJDIR = $(OBJDIR)R
-!endif
-!ifdef MZSCHEME
+!ENDIF
+!IFDEF MZSCHEME
 OBJDIR = $(OBJDIR)Z
-!endif
-!ifdef USE_MSVCRT
+!ENDIF
+!IFDEF USE_MSVCRT
 OBJDIR = $(OBJDIR)V
-!endif
-!if "$(DEBUG)" == "yes"
+!ENDIF
+!IF "$(DEBUG)" == "yes"
 OBJDIR = $(OBJDIR)d
-!endif
+!ENDIF
 
-!ifdef CPU
-! if "$(CPU)" == "I386"
+!IFDEF CPU
+! IF "$(CPU)" == "I386"
 CPU = i386
-! endif
-!else  # !CPU
+! ENDIF
+!ELSE  # !CPU
 CPU = i386
-! ifndef PLATFORM
-!  ifdef TARGET_CPU
+! IFNDEF PLATFORM
+!  IFDEF TARGET_CPU
 PLATFORM = $(TARGET_CPU)
-!  elseif defined(VSCMD_ARG_TGT_ARCH)
+!  ELSEIF defined(VSCMD_ARG_TGT_ARCH)
 PLATFORM = $(VSCMD_ARG_TGT_ARCH)
-!  endif
-! endif
-! ifdef PLATFORM
-!  if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
+!  ENDIF
+! ENDIF
+! IFDEF PLATFORM
+!  IF ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
 CPU = AMD64
-!  elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
+!  ELSEIF ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
 CPU = ARM64
-!  elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
-!   error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
-!  endif
-! endif  # !PLATFORM
-!endif
+!  ELSEIF ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
+!   ERROR *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
+!  ENDIF
+! ENDIF  # !PLATFORM
+!ENDIF
 OBJDIR = $(OBJDIR)$(CPU)
 
 # Build a retail version by default
 
-!if "$(DEBUG)" != "yes"
+!IF "$(DEBUG)" != "yes"
 NODEBUG = 1
-!else
-! undef NODEBUG
+!ELSE
+! UNDEF NODEBUG
 MAKEFLAGS_GVIMEXT = DEBUG=yes
-!endif
+!ENDIF
 
 LINK = link
 
 # Check VC version.
-!if [echo MSVCVER=_MSC_VER> msvcver.c && \
+!IF [echo MSVCVER=_MSC_VER> msvcver.c && \
        echo MSVC_FULL=_MSC_FULL_VER>> msvcver.c && \
        $(CC) /EP msvcver.c > msvcver.~ 2> nul]
-! message *** ERROR
-! message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
-! message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
-! error Make aborted.
-!else
-! include msvcver.~
-! if [del msvcver.c msvcver.~]
-! endif
-!endif
-
-!if $(MSVCVER) < 1900
-! message *** ERROR
-! message Unsupported MSVC version.
-! message Please use Visual C++ 2015 or later.
-! error Make aborted.
-!endif
+! MESSAGE *** ERROR
+! MESSAGE Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
+! MESSAGE This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
+! ERROR Make aborted.
+!ELSE
+! INCLUDE msvcver.~
+! IF [$(RM) msvcver.c msvcver.~]
+! ENDIF
+!ENDIF
+
+!IF $(MSVCVER) < 1900
+! MESSAGE *** ERROR
+! MESSAGE Unsupported MSVC version.
+! MESSAGE Please use Visual C++ 2015 or later.
+! ERROR Make aborted.
+!ENDIF
 
 MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
 MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
 
 # Calculate MSVCRT_VER
-!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
-! include msvcrtver.~
-! if [del msvcrtver.~]
-! endif
-!endif
+!IF [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
+! INCLUDE msvcrtver.~
+! IF [$(RM) msvcrtver.~]
+! ENDIF
+!ENDIF
 
 # Show the versions (for debugging).
-#!message _MSC_VER=$(MSVCVER)
-#!message _MSC_FULL_VER=$(MSVC_FULL)
-#!message MSVCRT_VER=$(MSVCRT_VER)
+#!MESSAGE _MSC_VER=$(MSVCVER)
+#!MESSAGE _MSC_FULL_VER=$(MSVC_FULL)
+#!MESSAGE MSVCRT_VER=$(MSVCRT_VER)
 
 # Base name of the msvcrXX.dll (vcruntimeXXX.dll)
 MSVCRT_NAME = vcruntime$(MSVCRT_VER)
 
 ### Set the default $(WINVER) to make it work with Windows 7
-!ifndef WINVER
-! if "$(CPU)" == "ARM64"
+!IFNDEF WINVER
+! IF "$(CPU)" == "ARM64"
 WINVER = 0x0A00
-! else
+! ELSE
 WINVER = 0x0601
-! endif
-!endif
+! ENDIF
+!ENDIF
 
 # Use multiprocess build
 USE_MP = yes
 
-!if "$(FEATURES)" == ""
+!IF "$(FEATURES)" == ""
 FEATURES = HUGE
-!endif
+!ENDIF
 
-!ifndef CTAGS
+!IFNDEF CTAGS
 # this assumes ctags is Exuberant ctags
 CTAGS = ctags -I INIT+,INIT2+,INIT3+,INIT4+,INIT5+ --fields=+S
-!endif
+!ENDIF
 
-!ifndef CSCOPE
+!IFNDEF CSCOPE
 CSCOPE = yes
-!endif
+!ENDIF
 
-!if "$(CSCOPE)" == "yes"
+!IF "$(CSCOPE)" == "yes"
 # CSCOPE - Include support for Cscope
-CSCOPE_DEFS  = -DFEAT_CSCOPE
-!endif
+CSCOPE_DEFS = -DFEAT_CSCOPE
+!ENDIF
 
-!ifndef TERMINAL
-! if "$(FEATURES)" == "HUGE"
+!IFNDEF TERMINAL
+! IF "$(FEATURES)" == "HUGE"
 TERMINAL = yes
-! else
+! ELSE
 TERMINAL = no
-! endif
-!endif
+! ENDIF
+!ENDIF
 
-!if "$(TERMINAL)" == "yes"
+!IF "$(TERMINAL)" == "yes"
 TERM_OBJ = \
        $(OBJDIR)/terminal.obj \
        $(OBJDIR)/libvterm/encoding.obj \
@@ -397,125 +390,125 @@ TERM_DEPS = \
        libvterm/src/rect.h \
        libvterm/src/utf8.h \
        libvterm/src/vterm_internal.h
-!endif
+!ENDIF
 
-!ifndef SOUND
-! if "$(FEATURES)" == "HUGE"
+!IFNDEF SOUND
+! IF "$(FEATURES)" == "HUGE"
 SOUND = yes
-! else
+! ELSE
 SOUND = no
-! endif
-!endif
+! ENDIF
+!ENDIF
 
-!ifndef SODIUM
+!IFNDEF SODIUM
 SODIUM = no
-!endif
-!ifndef DYNAMIC_SODIUM
+!ENDIF
+!IFNDEF DYNAMIC_SODIUM
 DYNAMIC_SODIUM = yes
-!endif
-
-!if "$(SODIUM)" != "no"
-! if "$(CPU)" == "AMD64"
-SOD_LIB                = $(SODIUM)\x64\Release\v143\dynamic
-! elseif "$(CPU)" == "i386"
-SOD_LIB                = $(SODIUM)\Win32\Release\v143\dynamic
-! else
+!ENDIF
+
+!IF "$(SODIUM)" != "no"
+! IF "$(CPU)" == "AMD64"
+SOD_LIB = $(SODIUM)\x64\Release\v143\dynamic
+! ELSEIF "$(CPU)" == "i386"
+SOD_LIB = $(SODIUM)\Win32\Release\v143\dynamic
+! ELSE
 SODIUM = no
-! endif
-!endif
-
-!if "$(SODIUM)" != "no"
-SOD_INC                = /I "$(SODIUM)\include"
-! if "$(DYNAMIC_SODIUM)" == "yes"
-SODIUM_DLL     = libsodium.dll
-SOD_DEFS       = -DHAVE_SODIUM -DDYNAMIC_SODIUM -DDYNAMIC_SODIUM_DLL=\"$(SODIUM_DLL)\"
-SOD_LIB                =
-! else
-SOD_DEFS       = -DHAVE_SODIUM
-SOD_LIB                = $(SOD_LIB)\libsodium.lib
-! endif
-!endif
-
-!ifndef NETBEANS
+! ENDIF
+!ENDIF
+
+!IF "$(SODIUM)" != "no"
+SOD_INC = /I "$(SODIUM)\include"
+! IF "$(DYNAMIC_SODIUM)" == "yes"
+SODIUM_DLL = libsodium.dll
+SOD_DEFS = -DHAVE_SODIUM -DDYNAMIC_SODIUM -DDYNAMIC_SODIUM_DLL=\"$(SODIUM_DLL)\"
+SOD_LIB =
+! ELSE
+SOD_DEFS = -DHAVE_SODIUM
+SOD_LIB = $(SOD_LIB)\libsodium.lib
+! ENDIF
+!ENDIF
+
+!IFNDEF NETBEANS
 NETBEANS = $(GUI)
-!endif
+!ENDIF
 
-!ifndef CHANNEL
-! if "$(FEATURES)" == "HUGE" || "$(TERMINAL)" == "yes"
+!IFNDEF CHANNEL
+! IF "$(FEATURES)" == "HUGE" || "$(TERMINAL)" == "yes"
 CHANNEL = yes
-! else
+! ELSE
 CHANNEL = $(GUI)
-! endif
-!endif
+! ENDIF
+!ENDIF
 
 # GUI specific features.
-!if "$(GUI)" == "yes"
+!IF "$(GUI)" == "yes"
 # Only allow NETBEANS for a GUI build and CHANNEL.
-! if "$(NETBEANS)" == "yes" && "$(CHANNEL)" == "yes"
+! IF "$(NETBEANS)" == "yes" && "$(CHANNEL)" == "yes"
 # NETBEANS - Include support for Netbeans integration
-NETBEANS_PRO   = proto/netbeans.pro
-NETBEANS_OBJ   = $(OBJDIR)/netbeans.obj
-NETBEANS_DEFS  = -DFEAT_NETBEANS_INTG
-
-!  if "$(NBDEBUG)" == "yes"
-NBDEBUG_DEFS   = -DNBDEBUG
-NBDEBUG_INCL   = nbdebug.h
-NBDEBUG_SRC    = nbdebug.c
-!  endif
-! endif
+NETBEANS_PRO = proto/netbeans.pro
+NETBEANS_OBJ = $(OBJDIR)/netbeans.obj
+NETBEANS_DEFS = -DFEAT_NETBEANS_INTG
+
+!  IF "$(NBDEBUG)" == "yes"
+NBDEBUG_DEFS = -DNBDEBUG
+NBDEBUG_INCL = nbdebug.h
+NBDEBUG_SRC = nbdebug.c
+!  ENDIF
+! ENDIF
 
 # DirectWrite (DirectX)
-! if "$(DIRECTX)" == "yes"
-DIRECTX_DEFS   = -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
-!  if "$(COLOR_EMOJI)" != "no"
-DIRECTX_DEFS   = $(DIRECTX_DEFS) -DFEAT_DIRECTX_COLOR_EMOJI
-!  endif
-DIRECTX_INCL   = gui_dwrite.h
-DIRECTX_OBJ    = $(OUTDIR)\gui_dwrite.obj
-! endif
+! IF "$(DIRECTX)" == "yes"
+DIRECTX_DEFS = -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
+!  IF "$(COLOR_EMOJI)" != "no"
+DIRECTX_DEFS = $(DIRECTX_DEFS) -DFEAT_DIRECTX_COLOR_EMOJI
+!  ENDIF
+DIRECTX_INCL = gui_dwrite.h
+DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
+! ENDIF
 
 # Only allow XPM for a GUI build.
-! ifndef XPM
-!  ifndef USE_MSVCRT
+! IFNDEF XPM
+!  IFNDEF USE_MSVCRT
 # Both XPM and USE_MSVCRT are not set, use the included xpm files, depending
 # on the architecture.
-!   if "$(CPU)" == "AMD64"
+!   IF "$(CPU)" == "AMD64"
 XPM = xpm\x64
-!   elseif "$(CPU)" == "ARM64"
+!   ELSEIF "$(CPU)" == "ARM64"
 XPM = xpm\arm64
-!   elseif "$(CPU)" == "i386"
+!   ELSEIF "$(CPU)" == "i386"
 XPM = xpm\x86
-!   else
+!   ELSE
 XPM = no
-!   endif
-!  else # USE_MSVCRT
+!   ENDIF
+!  ELSE # USE_MSVCRT
 XPM = no
-!  endif # USE_MSVCRT
-! endif # XPM
-! if "$(XPM)" != "no"
+!  ENDIF # USE_MSVCRT
+! ENDIF # XPM
+! IF "$(XPM)" != "no"
 # XPM - Include support for XPM signs
 # See the xpm directory for more information.
-XPM_OBJ   = $(OBJDIR)/xpm_w32.obj
-XPM_DEFS  = -DFEAT_XPM_W32
-XPM_LIB   = $(XPM)\lib-vc14\libXpm.lib
-XPM_INC          = -I $(XPM)\include -I $(XPM)\..\include
-! endif
-!endif # GUI
-
-!if "$(SOUND)" == "yes"
-SOUND_PRO      = proto/sound.pro
-SOUND_OBJ      = $(OBJDIR)/sound.obj
-SOUND_DEFS     = -DFEAT_SOUND
-SOUND_LIB      = winmm.lib
-!endif
-
-!if "$(CHANNEL)" == "yes"
-CHANNEL_PRO    = proto/job.pro proto/channel.pro
-CHANNEL_OBJ    = $(OBJDIR)/job.obj $(OBJDIR)/channel.obj
-CHANNEL_DEFS   = -DFEAT_JOB_CHANNEL -DFEAT_IPV6 -DHAVE_INET_NTOP
-
-NETBEANS_LIB   = Ws2_32.lib
-!endif
+XPM_OBJ = $(OBJDIR)/xpm_w32.obj
+XPM_DEFS = -DFEAT_XPM_W32
+XPM_LIB = $(XPM)\lib-vc14\libXpm.lib
+XPM_INC = -I $(XPM)\include -I $(XPM)\..\include
+! ENDIF
+!ENDIF # GUI
+
+!IF "$(SOUND)" == "yes"
+SOUND_PRO = proto/sound.pro
+SOUND_OBJ = $(OBJDIR)/sound.obj
+SOUND_DEFS = -DFEAT_SOUND
+SOUND_LIB = winmm.lib
+!ENDIF
+
+!IF "$(CHANNEL)" == "yes"
+CHANNEL_PRO = proto/job.pro proto/channel.pro
+CHANNEL_OBJ = $(OBJDIR)/job.obj $(OBJDIR)/channel.obj
+CHANNEL_DEFS = -DFEAT_JOB_CHANNEL -DFEAT_IPV6 -DHAVE_INET_NTOP
+
+NETBEANS_LIB = Ws2_32.lib
+!ENDIF
 
 # need advapi32.lib for GetUserName()
 # need shell32.lib for ExtractIcon()
@@ -523,11 +516,11 @@ NETBEANS_LIB      = Ws2_32.lib
 # gdi32.lib and comdlg32.lib for printing support
 # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
 CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
-         comdlg32.lib ole32.lib netapi32.lib uuid.lib user32.lib \
-         /machine:$(CPU)
-!if "$(DELAYLOAD)" == "yes"
+       comdlg32.lib ole32.lib netapi32.lib uuid.lib user32.lib \
+       /machine:$(CPU)
+!IF "$(DELAYLOAD)" == "yes"
 CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
-!endif
+!ENDIF
 
 # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
 # default, use these lines.
@@ -535,159 +528,158 @@ CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
 #VIMRUNTIMEDIR = somewhere
 
 CFLAGS = -c /W3 /GF /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DHAVE_STDINT_H \
-               $(CSCOPE_DEFS) $(TERM_DEFS) $(SOUND_DEFS) $(NETBEANS_DEFS) \
-               $(NBDEBUG_DEFS) $(XPM_DEFS) $(SOD_DEFS) $(SOD_INC) \
-               $(CHANNEL_DEFS) $(DEFINES) $(CI_CFLAGS) \
-               -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
-               /source-charset:utf-8
+       $(CSCOPE_DEFS) $(TERM_DEFS) $(SOUND_DEFS) $(NETBEANS_DEFS) \
+       $(NBDEBUG_DEFS) $(XPM_DEFS) $(SOD_DEFS) $(SOD_INC) $(CHANNEL_DEFS) \
+       $(DEFINES) $(CI_CFLAGS) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
+       /source-charset:utf-8
+
+RCFLAGS = -DVIM_VERSION_PATCHLEVEL=$(PATCHLEVEL)
 
 #>>>>> end of choices
 ###########################################################################
 
-DEL_TREE = rmdir /s /q
-
 INTDIR = $(OBJDIR)
 OUTDIR = $(OBJDIR)
 
 ### Validate CPUNR
-!if "$(CPU)" == "i386" || "$(CPU)" == "AMD64"
-! ifndef CPUNR
+!IF "$(CPU)" == "i386" || "$(CPU)" == "AMD64"
+! IFNDEF CPUNR
 # default to SSE2
 CPUNR = sse2
-! elseif "$(CPU)" == "i386" \
+! ELSEIF "$(CPU)" == "i386" \
        && ("$(CPUNR)" == "i386" || "$(CPUNR)" == "i486" || "$(CPUNR)" == "i586")
 # alias i386, i486 and i586 to i686
-!  message *** WARNING CPUNR=$(CPUNR) is not a valid target architecture.
-!  message Windows 7 is the minimum target OS, with a minimum target
-!  message architecture of i686.
-!  message Retargeting to i686
+!  MESSAGE *** WARNING CPUNR=$(CPUNR) is not a valid target architecture.
+!  MESSAGE Windows 7 is the minimum target OS, with a minimum target
+!  MESSAGE architecture of i686.
+!  MESSAGE Retargeting to i686
 CPUNR = i686
-! elseif "$(CPUNR)" == "pentium4"
+! ELSEIF "$(CPUNR)" == "pentium4"
 # alias pentium4 to sse2
-!  message *** WARNING CPUNR=pentium4 is deprecated in favour of sse2.
-!  message Retargeting to sse2.
+!  MESSAGE *** WARNING CPUNR=pentium4 is deprecated in favour of sse2.
+!  MESSAGE Retargeting to sse2.
 CPUNR = sse2
-! elseif ("$(CPU)" != "i386" \
+! ELSEIF ("$(CPU)" != "i386" \
                || ("$(CPUNR)" != "any" && "$(CPUNR)" != "i686" \
                        && "$(CPUNR)" != "sse" )) \
        && "$(CPUNR)" != "sse2" && "$(CPUNR)" != "avx" \
        && "$(CPUNR)" != "avx2" && "$(CPUNR)" != "avx512"
-!  error *** ERROR Unknown target architecture "$(CPUNR)". Make aborted.
-! endif
-!elseif "$(CPU)" == "ARM64"
+!  ERROR *** ERROR Unknown target architecture "$(CPUNR)". Make aborted.
+! ENDIF
+!ELSEIF "$(CPU)" == "ARM64"
 # TODO: Validate CPUNR depending on the VS version.
 CPUNR = armv8.0
-!endif
+!ENDIF
 
 # Convert processor ID to MVC-compatible number
-!if "$(CPU)" == "i386" || "$(CPU)" == "AMD64"
+!IF "$(CPU)" == "i386" || "$(CPU)" == "AMD64"
 # IA32/SSE/SSE2 are only supported on x86
-! if "$(CPU)" == "i386" \
+! IF "$(CPU)" == "i386" \
        && ("$(CPUNR)" == "i686" || "$(CPUNR)" == "any")
 CPUARG = /arch:IA32
-! elseif "$(CPU)" == "i386" && "$(CPUNR)" == "sse"
+! ELSEIF "$(CPU)" == "i386" && "$(CPUNR)" == "sse"
 CPUARG = /arch:SSE
-! elseif "$(CPU)" == "i386" && "$(CPUNR)" == "sse2"
+! ELSEIF "$(CPU)" == "i386" && "$(CPUNR)" == "sse2"
 CPUARG = /arch:SSE2
-! elseif "$(CPUNR)" == "avx"
+! ELSEIF "$(CPUNR)" == "avx"
 CPUARG = /arch:AVX
-! elseif "$(CPUNR)" == "avx2"
+! ELSEIF "$(CPUNR)" == "avx2"
 CPUARG = /arch:AVX2
-! elseif "$(CPUNR)" == "avx512"
+! ELSEIF "$(CPUNR)" == "avx512"
 CPUARG = /arch:AVX512
-! endif
-!elseif "$(CPU)" == "ARM64" && defined(CPUNR)
+! ENDIF
+!ELSEIF "$(CPU)" == "ARM64" && defined(CPUNR)
 CPUARG = /arch:$(CPUNR)
-!endif
+!ENDIF
 
 # Pass CPUARG to GvimExt, to avoid using version-dependent defaults
 MAKEFLAGS_GVIMEXT = $(MAKEFLAGS_GVIMEXT) CPUARG="$(CPUARG)"
 
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 VIMDLLBASE = vim
-! if "$(CPU)" == "i386"
+! IF "$(CPU)" == "i386"
 VIMDLLBASE = $(VIMDLLBASE)32
-! else
+! ELSE
 VIMDLLBASE = $(VIMDLLBASE)64
-! endif
-! if "$(DEBUG)" == "yes"
+! ENDIF
+! IF "$(DEBUG)" == "yes"
 VIMDLLBASE = $(VIMDLLBASE)d
-! endif
-!endif
+! ENDIF
+!ENDIF
 
 LIBC =
 DEBUGINFO = /Zi
 
 # Use multiprocess build.
-!if "$(USE_MP)" == "yes"
+!IF "$(USE_MP)" == "yes"
 CFLAGS = $(CFLAGS) /MP
-!endif
+!ENDIF
 
 # Use static code analysis
-!if "$(ANALYZE)" == "yes"
+!IF "$(ANALYZE)" == "yes"
 CFLAGS = $(CFLAGS) /analyze
-!endif
+!ENDIF
 
 # Address Sanitizer (ASAN) generally available starting with VS2019 version
 # 16.9
-!if ("$(ASAN)" == "yes") && ($(MSVC_FULL) >= 192829913)
+!IF ("$(ASAN)" == "yes") && ($(MSVC_FULL) >= 192829913)
 CFLAGS = $(CFLAGS) /fsanitize=address
-!endif
+!ENDIF
 
-!ifdef NODEBUG
+!IFDEF NODEBUG
 
 VIM = vim
-! if "$(OPTIMIZE)" == "SPACE"
+! IF "$(OPTIMIZE)" == "SPACE"
 OPTFLAG = /O1
-! elseif "$(OPTIMIZE)" == "SPEED"
+! ELSEIF "$(OPTIMIZE)" == "SPEED"
 OPTFLAG = /O2
-! else # MAXSPEED
+! ELSE # MAXSPEED
 OPTFLAG = /Ox
-! endif
+! ENDIF
 
 # Use link time code generation if not worried about size
-! if "$(OPTIMIZE)" != "SPACE"
+! IF "$(OPTIMIZE)" != "SPACE"
 OPTFLAG = $(OPTFLAG) /GL
-! endif
+! ENDIF
 
 CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
 RCFLAGS = $(RCFLAGS) -DNDEBUG
-! ifdef USE_MSVCRT
+! IFDEF USE_MSVCRT
 CFLAGS = $(CFLAGS) /MD
 LIBC = msvcrt.lib
-! else
+! ELSE
 CFLAGS = $(CFLAGS) /Zl /MT
 LIBC = libcmt.lib
-! endif
+! ENDIF
 
-!else  # DEBUG
+!ELSE  # DEBUG
 
 VIM = vimd
-! if ("$(CPU)" == "i386") || ("$(CPU)" == "ix86")
+! IF ("$(CPU)" == "i386") || ("$(CPU)" == "ix86")
 DEBUGINFO = /ZI
-! endif
+! ENDIF
 CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
 RCFLAGS = $(RCFLAGS) -D_DEBUG -DDEBUG
 # The /fixed:no is needed for Quantify.
 LIBC = /fixed:no
-! ifdef USE_MSVCRT
+! IFDEF USE_MSVCRT
 CFLAGS = $(CFLAGS) /MDd
 LIBC = $(LIBC) msvcrtd.lib
-! else
+! ELSE
 CFLAGS = $(CFLAGS) /Zl /MTd
 LIBC = $(LIBC) libcmtd.lib
-! endif
+! ENDIF
 
-!endif # DEBUG
+!ENDIF # DEBUG
 
 # Visual Studio 2005 has 'deprecated' many of the standard CRT functions
 CFLAGS_DEPR = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
 CFLAGS = $(CFLAGS) $(CFLAGS_DEPR)
 
-!include Make_all.mak
-!include testdir\Make_all.mak
+!INCLUDE .\Make_all.mak
+!INCLUDE .\testdir\Make_all.mak
 
-INCL = vim.h alloc.h ascii.h ex_cmds.h feature.h errors.h globals.h \
+INCL = vim.h alloc.h ascii.h ex_cmds.h feature.h errors.h globals.h \
        keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
        spell.h structs.h termdefs.h beval.h $(NBDEBUG_INCL)
 
@@ -812,58 +804,58 @@ OBJ = \
        $(OUTDIR)\winclip.obj \
        $(OUTDIR)\window.obj \
 
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 OBJ = $(OBJ) $(OUTDIR)\os_w32dll.obj $(OUTDIR)\vimd.res
 EXEOBJC = $(OUTDIR)\os_w32exec.obj $(OUTDIR)\vimc.res
 EXEOBJG = $(OUTDIR)\os_w32exeg.obj $(OUTDIR)\vimg.res
 CFLAGS = $(CFLAGS) -DVIMDLL
-! ifdef MZSCHEME
+! IFDEF MZSCHEME
 EXECFLAGS =
 EXELIBC = $(LIBC)
-! else
+! ELSE
 EXECFLAGS = -DUSE_OWNSTARTUP /GS-
 EXELIBC =
-! endif
-!else
+! ENDIF
+!ELSE
 OBJ = $(OBJ) $(OUTDIR)\os_w32exe.obj $(OUTDIR)\vim.res
-!endif
+!ENDIF
 
-!if "$(OLE)" == "yes"
+!IF "$(OLE)" == "yes"
 CFLAGS = $(CFLAGS) -DFEAT_OLE
 RCFLAGS = $(RCFLAGS) -DFEAT_OLE
 OLE_OBJ = $(OUTDIR)\if_ole.obj
 OLE_IDL = if_ole.idl
 OLE_LIB = oleaut32.lib
-!endif
+!ENDIF
 
-!ifndef IME
+!IFNDEF IME
 IME = yes
-!endif
-!if "$(IME)" == "yes"
+!ENDIF
+!IF "$(IME)" == "yes"
 CFLAGS = $(CFLAGS) -DFEAT_MBYTE_IME
-! ifndef DYNAMIC_IME
+! IFNDEF DYNAMIC_IME
 DYNAMIC_IME = yes
-! endif
-! if "$(DYNAMIC_IME)" == "yes"
+! ENDIF
+! IF "$(DYNAMIC_IME)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_IME
-! else
+! ELSE
 IME_LIB = imm32.lib
-! endif
-!endif
+! ENDIF
+!ENDIF
 
-!if "$(GUI)" == "yes"
+!IF "$(GUI)" == "yes"
 SUBSYSTEM = windows
 CFLAGS = $(CFLAGS) -DFEAT_GUI_MSWIN
 RCFLAGS = $(RCFLAGS) -DFEAT_GUI_MSWIN
-! if "$(VIMDLL)" == "yes"
+! IF "$(VIMDLL)" == "yes"
 SUBSYSTEM_CON = console
 GVIM = g$(VIM)
 CUI_INCL = iscygpty.h
 CUI_OBJ = $(OUTDIR)\iscygpty.obj
 RCFLAGS = $(RCFLAGS) -DVIMDLL
-! else
+! ELSE
 VIM = g$(VIM)
-! endif
+! ENDIF
 GUI_INCL = \
        gui.h
 GUI_OBJ = \
@@ -872,11 +864,11 @@ GUI_OBJ = \
        $(OUTDIR)\gui_w32.obj
 GUI_LIB = \
        version.lib $(IME_LIB) winspool.lib comctl32.lib
-!else
+!ELSE
 SUBSYSTEM = console
 CUI_INCL = iscygpty.h
 CUI_OBJ = $(OUTDIR)\iscygpty.obj
-!endif
+!ENDIF
 SUBSYSTEM_TOOLS = console
 
 XDIFF_OBJ = $(OBJDIR)/xdiffi.obj \
@@ -897,322 +889,322 @@ XDIFF_DEPS = \
        xdiff/xutils.h
 
 
-!if "$(SUBSYSTEM_VER)" != ""
+!IF "$(SUBSYSTEM_VER)" != ""
 SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
 SUBSYSTEM_TOOLS = $(SUBSYSTEM_TOOLS),$(SUBSYSTEM_VER)
-! if "$(VIMDLL)" == "yes"
+! IF "$(VIMDLL)" == "yes"
 SUBSYSTEM_CON = $(SUBSYSTEM_CON),$(SUBSYSTEM_VER)
-! endif
+! ENDIF
 # Pass SUBSYSTEM_VER to GvimExt and other tools
 MAKEFLAGS_GVIMEXT = $(MAKEFLAGS_GVIMEXT) SUBSYSTEM_VER=$(SUBSYSTEM_VER)
 MAKEFLAGS_TOOLS = $(MAKEFLAGS_TOOLS) SUBSYSTEM_VER=$(SUBSYSTEM_VER)
-!endif
+!ENDIF
 
-!if "$(GUI)" == "yes" && "$(DIRECTX)" == "yes"
+!IF "$(GUI)" == "yes" && "$(DIRECTX)" == "yes"
 CFLAGS = $(CFLAGS) $(DIRECTX_DEFS)
 GUI_INCL = $(GUI_INCL) $(DIRECTX_INCL)
 GUI_OBJ = $(GUI_OBJ) $(DIRECTX_OBJ)
-!endif
+!ENDIF
 
 # iconv.dll library (dynamically loaded)
-!ifndef ICONV
+!IFNDEF ICONV
 ICONV = yes
-!endif
-!if "$(ICONV)" == "yes"
+!ENDIF
+!IF "$(ICONV)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_ICONV
-!endif
+!ENDIF
 
 # libintl.dll library
-!ifndef GETTEXT
+!IFNDEF GETTEXT
 GETTEXT = yes
-!endif
-!if "$(GETTEXT)" == "yes"
+!ENDIF
+!IF "$(GETTEXT)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_GETTEXT
-!endif
+!ENDIF
 
 # TCL interface
-!ifdef TCL
-! ifndef TCL_VER
+!IFDEF TCL
+! IFNDEF TCL_VER
 TCL_VER = 86
 TCL_VER_LONG = 8.6
-! endif
-! message Tcl requested (version $(TCL_VER)) - root dir is "$(TCL)"
-! if "$(DYNAMIC_TCL)" == "yes"
-!  message Tcl DLL will be loaded dynamically
-!  ifndef TCL_DLL
+! ENDIF
+! MESSAGE Tcl requested (version $(TCL_VER)) - root dir is "$(TCL)"
+! IF "$(DYNAMIC_TCL)" == "yes"
+!  MESSAGE Tcl DLL will be loaded dynamically
+!  IFNDEF TCL_DLL
 TCL_DLL = tcl$(TCL_VER).dll
-!  endif
-CFLAGS  = $(CFLAGS) -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"$(TCL_DLL)\" \
+!  ENDIF
+CFLAGS = $(CFLAGS) -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"$(TCL_DLL)\" \
                -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
-TCL_OBJ        = $(OUTDIR)\if_tcl.obj
-TCL_INC        = /I "$(TCL)\Include" /I "$(TCL)"
+TCL_OBJ = $(OUTDIR)\if_tcl.obj
+TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
 TCL_LIB = "$(TCL)\lib\tclstub$(TCL_VER).lib"
-! else
-CFLAGS  = $(CFLAGS) -DFEAT_TCL
-TCL_OBJ        = $(OUTDIR)\if_tcl.obj
-TCL_INC        = /I "$(TCL)\Include" /I "$(TCL)"
+! ELSE
+CFLAGS = $(CFLAGS) -DFEAT_TCL
+TCL_OBJ = $(OUTDIR)\if_tcl.obj
+TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
 TCL_LIB = "$(TCL)\lib\tcl$(TCL_VER)vc.lib"
-! endif
-!endif
+! ENDIF
+!ENDIF
 
 # Lua interface
-!ifdef LUA
-! ifndef LUA_VER
+!IFDEF LUA
+! IFNDEF LUA_VER
 LUA_VER = 53
-! endif
-! message Lua requested (version $(LUA_VER)) - root dir is "$(LUA)"
-! if "$(DYNAMIC_LUA)" == "yes"
-!  message Lua DLL will be loaded dynamically
-!  endif
+! ENDIF
+! MESSAGE Lua requested (version $(LUA_VER)) - root dir is "$(LUA)"
+! IF "$(DYNAMIC_LUA)" == "yes"
+!  MESSAGE Lua DLL will be loaded dynamically
+!  ENDIF
 CFLAGS = $(CFLAGS) -DFEAT_LUA
 LUA_OBJ = $(OUTDIR)\if_lua.obj
 LUA_INC = /I "$(LUA)\include" /I "$(LUA)"
-! if "$(DYNAMIC_LUA)" == "yes"
+! IF "$(DYNAMIC_LUA)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_LUA \
                -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\"
 LUA_LIB = /nodefaultlib:lua$(LUA_VER).lib
-! else
+! ELSE
 LUA_LIB = "$(LUA)\lib\lua$(LUA_VER).lib"
-! endif
-!endif
+! ENDIF
+!ENDIF
 
-!if defined(PYTHON) && defined(PYTHON3)
+!IF defined(PYTHON) && defined(PYTHON3)
 DYNAMIC_PYTHON = yes
 DYNAMIC_PYTHON3 = yes
-!endif
+!ENDIF
 
 # PYTHON interface
-!ifdef PYTHON
-! ifndef PYTHON_VER
+!IFDEF PYTHON
+! IFNDEF PYTHON_VER
 PYTHON_VER = 27
-! endif
-! message Python requested (version $(PYTHON_VER)) - root dir is "$(PYTHON)"
-! if "$(DYNAMIC_PYTHON)" == "yes"
-!  message Python DLL will be loaded dynamically
-! endif
+! ENDIF
+! MESSAGE Python requested (version $(PYTHON_VER)) - root dir is "$(PYTHON)"
+! IF "$(DYNAMIC_PYTHON)" == "yes"
+!  MESSAGE Python DLL will be loaded dynamically
+! ENDIF
 CFLAGS = $(CFLAGS) -DFEAT_PYTHON
 PYTHON_OBJ = $(OUTDIR)\if_python.obj
 PYTHON_INC = /I "$(PYTHON)\Include" /I "$(PYTHON)\PC"
-! if "$(DYNAMIC_PYTHON)" == "yes"
+! IF "$(DYNAMIC_PYTHON)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_PYTHON \
                -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
 PYTHON_LIB = /nodefaultlib:python$(PYTHON_VER).lib
-! else
+! ELSE
 PYTHON_LIB = "$(PYTHON)\libs\python$(PYTHON_VER).lib"
-! endif
-!endif
+! ENDIF
+!ENDIF
 
 # PYTHON3 interface
-!ifdef PYTHON3
-! ifndef DYNAMIC_PYTHON3_STABLE_ABI
-!  if "$(DYNAMIC_PYTHON3)" == "yes"
+!IFDEF PYTHON3
+! IFNDEF DYNAMIC_PYTHON3_STABLE_ABI
+!  IF "$(DYNAMIC_PYTHON3)" == "yes"
 DYNAMIC_PYTHON3_STABLE_ABI = yes
-!  endif
-! endif
-! ifndef PYTHON3_VER
+!  ENDIF
+! ENDIF
+! IFNDEF PYTHON3_VER
 PYTHON3_VER = 38
-! endif
-! if "$(DYNAMIC_PYTHON3_STABLE_ABI)" == "yes"
+! ENDIF
+! IF "$(DYNAMIC_PYTHON3_STABLE_ABI)" == "yes"
 PYTHON3_NAME = python3
-! else
+! ELSE
 PYTHON3_NAME = python$(PYTHON3_VER)
-! endif
-! ifndef DYNAMIC_PYTHON3_DLL
+! ENDIF
+! IFNDEF DYNAMIC_PYTHON3_DLL
 DYNAMIC_PYTHON3_DLL = $(PYTHON3_NAME).dll
-! endif
-! message Python3 requested (version $(PYTHON3_VER)) - root dir is "$(PYTHON3)"
-! if "$(DYNAMIC_PYTHON3)" == "yes"
-!  message Python3 DLL will be loaded dynamically
-! endif
+! ENDIF
+! MESSAGE Python3 requested (version $(PYTHON3_VER)) - root dir is "$(PYTHON3)"
+! IF "$(DYNAMIC_PYTHON3)" == "yes"
+!  MESSAGE Python3 DLL will be loaded dynamically
+! ENDIF
 CFLAGS = $(CFLAGS) -DFEAT_PYTHON3
 PYTHON3_OBJ = $(OUTDIR)\if_python3.obj
 PYTHON3_INC = /I "$(PYTHON3)\Include" /I "$(PYTHON3)\PC"
-! if "$(DYNAMIC_PYTHON3)" == "yes"
+! IF "$(DYNAMIC_PYTHON3)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_PYTHON3 \
                -DDYNAMIC_PYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\"
-!  if "$(DYNAMIC_PYTHON3_STABLE_ABI)" == "yes"
+!  IF "$(DYNAMIC_PYTHON3_STABLE_ABI)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_PYTHON3_STABLE_ABI
 PYTHON3_INC = $(PYTHON3_INC) -DPy_LIMITED_API=0x3080000
-!  endif
+!  ENDIF
 PYTHON3_LIB = /nodefaultlib:$(PYTHON3_NAME).lib
-! else
+! ELSE
 CFLAGS = $(CFLAGS) -DPYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\"
 PYTHON3_LIB = "$(PYTHON3)\libs\$(PYTHON3_NAME).lib"
-! endif
-!endif
+! ENDIF
+!ENDIF
 
 # MzScheme interface
-!ifdef MZSCHEME
-! message MzScheme requested - root dir is "$(MZSCHEME)"
-! ifndef MZSCHEME_VER
+!IFDEF MZSCHEME
+! MESSAGE MzScheme requested - root dir is "$(MZSCHEME)"
+! IFNDEF MZSCHEME_VER
 MZSCHEME_VER = 3m_a0solc
-! endif
-! ifndef MZSCHEME_COLLECTS
+! ENDIF
+! IFNDEF MZSCHEME_COLLECTS
 MZSCHEME_COLLECTS = $(MZSCHEME)\collects
-! endif
+! ENDIF
 CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I "$(MZSCHEME)\include"
-! if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
+! IF EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
 MZSCHEME_MAIN_LIB = mzsch
-! else
+! ELSE
 MZSCHEME_MAIN_LIB = racket
-! endif
-! if (EXIST("$(MZSCHEME)\lib\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll") \
-     && !EXIST("$(MZSCHEME)\lib\libmzgc$(MZSCHEME_VER).dll")) \
-    || (EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
-        && !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib"))
-!  message Building with Precise GC
+! ENDIF
+! IF (EXIST("$(MZSCHEME)\lib\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll") \
+       && !EXIST("$(MZSCHEME)\lib\libmzgc$(MZSCHEME_VER).dll")) \
+       || (EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
+       && !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib"))
+!  MESSAGE Building with Precise GC
 MZSCHEME_PRECISE_GC = yes
 CFLAGS = $(CFLAGS) -DMZ_PRECISE_GC
-! endif
-! if "$(DYNAMIC_MZSCHEME)" == "yes"
-!  message MzScheme DLLs will be loaded dynamically
+! ENDIF
+! IF "$(DYNAMIC_MZSCHEME)" == "yes"
+!  MESSAGE MzScheme DLLs will be loaded dynamically
 CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME
-!  if "$(MZSCHEME_PRECISE_GC)" == "yes"
+!  IF "$(MZSCHEME_PRECISE_GC)" == "yes"
 # Precise GC does not use separate dll
 CFLAGS = $(CFLAGS) \
-        -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
-        -DDYNAMIC_MZGC_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\"
-!  else
+       -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
+       -DDYNAMIC_MZGC_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\"
+!  ELSE
 CFLAGS = $(CFLAGS) \
-        -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
-        -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
-!  endif
-! else
-!  if "$(MZSCHEME_DEBUG)" == "yes"
+       -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
+       -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+!  ENDIF
+! ELSE
+!  IF "$(MZSCHEME_DEBUG)" == "yes"
 CFLAGS = $(CFLAGS) -DMZSCHEME_FORCE_GC
-!  endif
-!  if "$(MZSCHEME_PRECISE_GC)" == "yes"
+!  ENDIF
+!  IF "$(MZSCHEME_PRECISE_GC)" == "yes"
 # Precise GC does not use separate dll
-!   if EXIST("$(MZSCHEME)\lib\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).def")
+!   IF EXIST("$(MZSCHEME)\lib\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).def")
 # create .lib from .def
 MZSCHEME_LIB = lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
 MZSCHEME_EXTRA_DEP = lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
-!   else
+!   ELSE
 MZSCHEME_LIB = "$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib"
-!   endif
-!  else
+!   ENDIF
+!  ELSE
 MZSCHEME_LIB = "$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib" \
-              "$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib"
-!  endif
-! endif
+       "$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib"
+!  ENDIF
+! ENDIF
 MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
 # increase stack size
 MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
 MZSCHEME_INCL = if_mzsch.h
-!endif
+!ENDIF
 
 # Perl interface
-!ifdef PERL
-! ifndef PERL_VER
+!IFDEF PERL
+! IFNDEF PERL_VER
 PERL_VER = 524
-! endif
-! message Perl requested (version $(PERL_VER)) - root dir is "$(PERL)"
-! if "$(DYNAMIC_PERL)" == "yes"
-!  message Perl DLL will be loaded dynamically
-! endif
+! ENDIF
+! MESSAGE Perl requested (version $(PERL_VER)) - root dir is "$(PERL)"
+! IF "$(DYNAMIC_PERL)" == "yes"
+!  MESSAGE Perl DLL will be loaded dynamically
+! ENDIF
 
 # Is Perl installed in architecture-specific directories?
-! if exist($(PERL)\Bin\MSWin32-x86)
+! IF exist($(PERL)\Bin\MSWin32-x86)
 PERL_ARCH = \MSWin32-x86
-! endif
+! ENDIF
 
 PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
 
 # Version-dependent stuff
 PERL_DLL = perl$(PERL_VER).dll
-! if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
+! IF exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
 PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
-! else
+! ELSE
 # For ActivePerl 5.18 and later
 PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
-! endif
+! ENDIF
 
 CFLAGS = $(CFLAGS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
 
 # Do we want to load Perl dynamically?
-! if "$(DYNAMIC_PERL)" == "yes"
+! IF "$(DYNAMIC_PERL)" == "yes"
 CFLAGS = $(CFLAGS) -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"$(PERL_DLL)\"
-!  undef PERL_LIB
-! endif
+!  UNDEF PERL_LIB
+! ENDIF
 
 PERL_EXE = $(PERL)\Bin$(PERL_ARCH)\perl
 PERL_INC = /I $(PERL_INCDIR)
 PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
 XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
-! if exist($(XSUBPP))
+! IF exist($(XSUBPP))
 XSUBPP = $(PERL_EXE) $(XSUBPP)
-! else
+! ELSE
 XSUBPP = xsubpp
-! endif
+! ENDIF
 XSUBPP_TYPEMAP = $(PERL)\lib\ExtUtils\typemap
 
-!endif
+!ENDIF
 
 #
 # Support Ruby interface
 #
-!ifdef RUBY
+!IFDEF RUBY
 #  Set default value
-! ifndef RUBY_VER
+! IFNDEF RUBY_VER
 RUBY_VER = 22
-! endif
-! ifndef RUBY_VER_LONG
+! ENDIF
+! IFNDEF RUBY_VER_LONG
 RUBY_VER_LONG = 2.2.0
-! endif
-! ifndef RUBY_API_VER_LONG
+! ENDIF
+! IFNDEF RUBY_API_VER_LONG
 RUBY_API_VER_LONG = $(RUBY_VER_LONG)
-! endif
-! ifndef RUBY_API_VER
+! ENDIF
+! IFNDEF RUBY_API_VER
 RUBY_API_VER = $(RUBY_API_VER_LONG:.=)
-! endif
+! ENDIF
 
-! ifndef RUBY_PLATFORM
-!  if "$(CPU)" == "i386"
+! IFNDEF RUBY_PLATFORM
+!  IF "$(CPU)" == "i386"
 RUBY_PLATFORM = i386-mswin32
-!  else # CPU
+!  ELSE # CPU
 RUBY_PLATFORM = x64-mswin64
-!  endif # CPU
+!  ENDIF # CPU
 RUBY_PLATFORM = $(RUBY_PLATFORM)_$(MSVCRT_VER)
-! endif # RUBY_PLATFORM
+! ENDIF # RUBY_PLATFORM
 
-! ifndef RUBY_INSTALL_NAME
-!  ifndef RUBY_MSVCRT_NAME
+! IFNDEF RUBY_INSTALL_NAME
+!  IFNDEF RUBY_MSVCRT_NAME
 # Base name of msvcrXX.dll which is used by ruby's dll.
 RUBY_MSVCRT_NAME = $(MSVCRT_NAME)
-!  endif # RUBY_MSVCRT_NAME
-!  if "$(CPU)" == "i386"
+!  ENDIF # RUBY_MSVCRT_NAME
+!  IF "$(CPU)" == "i386"
 RUBY_INSTALL_NAME = $(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
-!  else # CPU
-!   if EXIST($(RUBY)/lib/ruby/$(RUBY_API_VER_LONG)/x64-mingw-ucrt)
+!  ELSE # CPU
+!   IF EXIST($(RUBY)/lib/ruby/$(RUBY_API_VER_LONG)/x64-mingw-ucrt)
 RUBY_INSTALL_NAME = x64-ucrt-ruby$(RUBY_API_VER)
-!   else
+!   ELSE
 RUBY_INSTALL_NAME = x64-$(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
-!   endif
-!  endif # CPU
-! endif # RUBY_INSTALL_NAME
+!   ENDIF
+!  ENDIF # CPU
+! ENDIF # RUBY_INSTALL_NAME
 
-! message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
+! MESSAGE Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
 CFLAGS = $(CFLAGS) -DFEAT_RUBY
 RUBY_OBJ = $(OUTDIR)\if_ruby.obj
 RUBY_INC = /I "$(RUBY)\include\ruby-$(RUBY_API_VER_LONG)" \
-          /I "$(RUBY)\include\ruby-$(RUBY_API_VER_LONG)\$(RUBY_PLATFORM)"
+       /I "$(RUBY)\include\ruby-$(RUBY_API_VER_LONG)\$(RUBY_PLATFORM)"
 RUBY_LIB = "$(RUBY)\lib\$(RUBY_INSTALL_NAME).lib"
 # Do we want to load Ruby dynamically?
-! if "$(DYNAMIC_RUBY)" == "yes"
-!  message Ruby DLL will be loaded dynamically
+! IF "$(DYNAMIC_RUBY)" == "yes"
+!  MESSAGE Ruby DLL will be loaded dynamically
 CFLAGS = $(CFLAGS) -DDYNAMIC_RUBY \
-               -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
-!  undef RUBY_LIB
-! endif
+       -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
+!  UNDEF RUBY_LIB
+! ENDIF
 CFLAGS = $(CFLAGS) -DRUBY_VERSION=$(RUBY_VER)
-!endif # RUBY
+!ENDIF # RUBY
 
 #
 # Support PostScript printing
 #
-!if "$(POSTSCRIPT)" == "yes"
+!IF "$(POSTSCRIPT)" == "yes"
 CFLAGS = $(CFLAGS) -DMSWINPS
-!endif # POSTSCRIPT
+!ENDIF # POSTSCRIPT
 
 #
 # FEATURES: TINY, NORMAL, or HUGE
@@ -1222,9 +1214,9 @@ CFLAGS = $(CFLAGS) -DFEAT_$(FEATURES)
 #
 # MODIFIED_BY - Name of who modified a release version
 #
-!if "$(MODIFIED_BY)" != ""
+!IF "$(MODIFIED_BY)" != ""
 CFLAGS = $(CFLAGS) -DMODIFIED_BY=\"$(MODIFIED_BY)\"
-!endif
+!ENDIF
 
 #
 # Always generate the .pdb file, so that we get debug symbols that can be used
@@ -1233,16 +1225,16 @@ CFLAGS = $(CFLAGS) -DMODIFIED_BY=\"$(MODIFIED_BY)\"
 # debug more conveniently (able to look at variables which are in registers)
 #
 CFLAGS = $(CFLAGS) /Fd$(OUTDIR)/ $(DEBUGINFO)
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 LINK_PDB = /PDB:$(VIMDLLBASE).pdb -debug
-!else
+!ELSE
 LINK_PDB = /PDB:$(VIM).pdb -debug
-!endif
+!ENDIF
 
 #
 # End extra feature include
 #
-!message
+!MESSAGE
 
 # CFLAGS with /Fo$(OUTDIR)/
 CFLAGS_OUTDIR = $(CFLAGS) /Fo$(OUTDIR)/
@@ -1251,56 +1243,56 @@ PATHDEF_SRC = $(OUTDIR)\pathdef.c
 
 LINKARGS1 = /nologo
 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) \
-               $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) \
-               $(PYTHON3_LIB) $(RUBY_LIB) $(TCL_LIB) $(SOUND_LIB) \
-               $(NETBEANS_LIB) $(XPM_LIB) $(SOD_LIB) $(LINK_PDB)
+       $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) \
+       $(PYTHON3_LIB) $(RUBY_LIB) $(TCL_LIB) $(SOUND_LIB) \
+       $(NETBEANS_LIB) $(XPM_LIB) $(SOD_LIB) $(LINK_PDB)
 
-!ifdef NODEBUG
+!IFDEF NODEBUG
 # Add /opt:ref to remove unreferenced functions and data even when /DEBUG is
 # added.
 LINKARGS1 = $(LINKARGS1) /opt:ref
-!else
+!ELSE
 LINKARGS1 = $(LINKARGS1) /opt:noref /opt:noicf
-!endif
+!ENDIF
 
-!if "$(MAP)" == "yes"
+!IF "$(MAP)" == "yes"
 # "/map" is for debugging
 LINKARGS1 = $(LINKARGS1) /map
-!elseif "$(MAP)" == "lines"
+!ELSEIF "$(MAP)" == "lines"
 # "/mapinfo:lines" is for debugging, only works for VC6 and later
 LINKARGS1 = $(LINKARGS1) /map /mapinfo:lines
-!endif
+!ENDIF
 
 # Enable link time code generation if needed.
-!ifdef NODEBUG
-! if "$(OPTIMIZE)" != "SPACE"
-!  if "$(CI)" == "true" || "$(CI)" == "True"
+!IFDEF NODEBUG
+! IF "$(OPTIMIZE)" != "SPACE"
+!  IF "$(CI)" == "true" || "$(CI)" == "True"
 # Enable link time code generation, but do not show the progress.
 LINKARGS1 = $(LINKARGS1) /LTCG
-!  else
+!  ELSE
 # Report link time code generation progress.
 LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
-!  endif
-! endif
-!endif
+!  ENDIF
+! ENDIF
+!ENDIF
 
-!if "$(CPU)" == "AMD64" && "$(GUI)" == "yes"
+!IF "$(CPU)" == "AMD64" && "$(GUI)" == "yes"
 # This option is required for VC2012 or later so that 64-bit gvim can
 # accept D&D from 32-bit applications.  NOTE: This disables 64-bit ASLR,
 # therefore the security level becomes as same as VC2010.
 LINKARGS1 = $(LINKARGS1) /HIGHENTROPYVA:NO
-!endif
+!ENDIF
 
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 MAIN_TARGET = $(GVIM).exe $(VIM).exe $(VIMDLLBASE).dll
-!else
+!ELSE
 MAIN_TARGET = $(VIM).exe
-!endif
+!ENDIF
 
 # Target to run individual tests.
 VIMTESTTARGET = $(VIM).exe
 
-all:   $(MAIN_TARGET) \
+all: $(MAIN_TARGET) \
        vimrun.exe \
        install.exe \
        uninstall.exe \
@@ -1311,7 +1303,7 @@ all:      $(MAIN_TARGET) \
 # To get around the command line limit: Make use of nmake's response files to
 # capture the arguments for $(LINK) in a file  using the @<<ARGS<< syntax.
 
-!if "$(VIMDLL)" == "yes"
+!IF "$(VIMDLL)" == "yes"
 
 $(VIMDLLBASE).dll: $(OUTDIR) $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) \
                $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) $(LUA_OBJ) $(PERL_OBJ) \
@@ -1334,7 +1326,7 @@ $(VIM).exe: $(OUTDIR) $(EXEOBJC) $(VIMDLLBASE).dll
        $(LINK) $(LINKARGS1) /subsystem:$(SUBSYSTEM_CON) -out:$(VIM).exe \
                $(EXEOBJC) $(VIMDLLBASE).lib $(EXELIBC)
 
-!else
+!ELSE
 
 $(VIM).exe: $(OUTDIR) $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) \
                $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) $(LUA_OBJ) $(PERL_OBJ) \
@@ -1349,22 +1341,20 @@ $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(TERM_OBJ) $(SOUND_OBJ)
 $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
 <<
 
-!endif
+!ENDIF
 
 $(VIM): $(VIM).exe
 
 $(OUTDIR):
-       if not exist $(OUTDIR)/nul  mkdir $(OUTDIR:/=\)
+       @ if not exist $(OUTDIR)/nul  $(MKD) $(OUTDIR:/=\)
 
 $(OUTDIR)/libvterm: $(OUTDIR)
-       if not exist $(OUTDIR)/libvterm/nul  mkdir $(OUTDIR:/=\)\libvterm
+       @ if not exist $(OUTDIR)/libvterm/nul  $(MKD) $(OUTDIR:/=\)\libvterm
 
 CFLAGS_INST = /nologo /O2 -DNDEBUG -DWIN32 -DWINVER=$(WINVER) \
-             -D_WIN32_WINNT=$(WINVER) $(CFLAGS_DEPR)
+       -D_WIN32_WINNT=$(WINVER) $(CFLAGS_DEPR)
 
-!IFDEF PATCHLEVEL
 CFLAGS_INST = $(CFLAGS_INST) -DVIM_VERSION_PATCHLEVEL=$(PATCHLEVEL)
-!ENDIF
 
 install.exe: dosinst.c dosinst.h version.h
        $(CC) $(CFLAGS_INST) /Fe$@ dosinst.c kernel32.lib shell32.lib \
@@ -1380,17 +1370,17 @@ vimrun.exe: vimrun.c
 
 xxd/xxd.exe: xxd/xxd.c
        cd xxd
-       $(MAKE) /NOLOGO -f Make_mvc.mak $(MAKEFLAGS_TOOLS)
+       $(MAKE) -lf Make_mvc.mak $(MAKEFLAGS_TOOLS)
        cd ..
 
 tee/tee.exe: tee/tee.c
        cd tee
-       $(MAKE) /NOLOGO -f Make_mvc.mak $(MAKEFLAGS_TOOLS)
+       $(MAKE) -lf Make_mvc.mak $(MAKEFLAGS_TOOLS)
        cd ..
 
 GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
        cd GvimExt
-       $(MAKE) /NOLOGO -f Make_mvc.mak $(MAKEFLAGS_GVIMEXT)
+       $(MAKE) -lf Make_mvc.mak $(MAKEFLAGS_GVIMEXT)
        cd ..
 
 
@@ -1398,44 +1388,44 @@ tags: notags
        $(CTAGS) $(TAGS_FILES)
 
 notags:
-       - if exist tags del tags
+       - if exist tags $(RM) tags
 
 clean: testclean
-       - if exist $(OUTDIR)/nul $(DEL_TREE) $(OUTDIR)
-       - if exist *.obj del *.obj
-       - if exist $(VIM).exe del $(VIM).exe
-       - if exist $(VIM).exp del $(VIM).exp
-       - if exist $(VIM).lib del $(VIM).lib
-       - if exist $(VIM).ilk del $(VIM).ilk
-       - if exist $(VIM).pdb del $(VIM).pdb
-       - if exist $(VIM).map del $(VIM).map
-       - if exist $(VIM).ncb del $(VIM).ncb
-!if "$(VIMDLL)" == "yes"
-       - if exist $(GVIM).exe del $(GVIM).exe
-       - if exist $(GVIM).exp del $(GVIM).exp
-       - if exist $(GVIM).lib del $(GVIM).lib
-       - if exist $(GVIM).map del $(GVIM).map
-       - if exist $(VIMDLLBASE).dll del $(VIMDLLBASE).dll
-       - if exist $(VIMDLLBASE).ilk del $(VIMDLLBASE).ilk
-       - if exist $(VIMDLLBASE).lib del $(VIMDLLBASE).lib
-       - if exist $(VIMDLLBASE).exp del $(VIMDLLBASE).exp
-       - if exist $(VIMDLLBASE).pdb del $(VIMDLLBASE).pdb
-       - if exist $(VIMDLLBASE).map del $(VIMDLLBASE).map
-!endif
-       - if exist vimrun.exe del vimrun.exe
-       - if exist install.exe del install.exe
-       - if exist uninstall.exe del uninstall.exe
-       - if exist if_perl.c del if_perl.c
-       - if exist auto\if_perl.c del auto\if_perl.c
-       - if exist dosinst.exe del dosinst.exe
+       - if exist $(OUTDIR)/nul $(DELTREE) $(OUTDIR)
+       - if exist *.obj $(RM) *.obj
+       - if exist $(VIM).exe $(RM) $(VIM).exe
+       - if exist $(VIM).exp $(RM) $(VIM).exp
+       - if exist $(VIM).lib $(RM) $(VIM).lib
+       - if exist $(VIM).ilk $(RM) $(VIM).ilk
+       - if exist $(VIM).pdb $(RM) $(VIM).pdb
+       - if exist $(VIM).map $(RM) $(VIM).map
+       - if exist $(VIM).ncb $(RM) $(VIM).ncb
+!IF "$(VIMDLL)" == "yes"
+       - if exist $(GVIM).exe $(RM) $(GVIM).exe
+       - if exist $(GVIM).exp $(RM) $(GVIM).exp
+       - if exist $(GVIM).lib $(RM) $(GVIM).lib
+       - if exist $(GVIM).map $(RM) $(GVIM).map
+       - if exist $(VIMDLLBASE).dll $(RM) $(VIMDLLBASE).dll
+       - if exist $(VIMDLLBASE).ilk $(RM) $(VIMDLLBASE).ilk
+       - if exist $(VIMDLLBASE).lib $(RM) $(VIMDLLBASE).lib
+       - if exist $(VIMDLLBASE).exp $(RM) $(VIMDLLBASE).exp
+       - if exist $(VIMDLLBASE).pdb $(RM) $(VIMDLLBASE).pdb
+       - if exist $(VIMDLLBASE).map $(RM) $(VIMDLLBASE).map
+!ENDIF
+       - if exist vimrun.exe $(RM) vimrun.exe
+       - if exist install.exe $(RM) install.exe
+       - if exist uninstall.exe $(RM) uninstall.exe
+       - if exist if_perl.c $(RM) if_perl.c
+       - if exist auto\if_perl.c $(RM) auto\if_perl.c
+       - if exist dosinst.exe $(RM) dosinst.exe
        cd xxd
-       $(MAKE) /NOLOGO -f Make_mvc.mak clean
+       $(MAKE) -lf Make_mvc.mak clean
        cd ..
        cd tee
-       $(MAKE) /NOLOGO -f Make_mvc.mak clean
+       $(MAKE) -lf Make_mvc.mak clean
        cd ..
        cd GvimExt
-       $(MAKE) /NOLOGO -f Make_mvc.mak clean
+       $(MAKE) -lf Make_mvc.mak clean
        cd ..
 
 # Run Vim script to generate the Ex command lookup table.
@@ -1443,7 +1433,7 @@ clean: testclean
 # If this fails because you don't have Vim yet, first build and install Vim
 # without changes.
 cmdidxs: ex_cmds.h
-       vim --clean -N -X --not-a-term -u create_cmdidxs.vim -c quit
+       vim.exe --clean -N -X --not-a-term -u create_cmdidxs.vim -c quit
 
 # Run Vim script to generate the normal/visual mode command lookup table.
 # This only needs to be run when a new normal/visual mode command has been
@@ -1453,41 +1443,41 @@ cmdidxs: ex_cmds.h
 nvcmdidxs: nv_cmds.h
        $(CC) /nologo -I. -Iproto -DNDEBUG create_nvcmdidxs.c \
                -link -subsystem:$(SUBSYSTEM_TOOLS)
-       vim --clean -N -X --not-a-term -u create_nvcmdidxs.vim -c quit
-       -del create_nvcmdidxs.exe
+       vim.exe --clean -N -X --not-a-term -u create_nvcmdidxs.vim -c quit
+       - $(RM) create_nvcmdidxs.exe
 
 test:
        cd testdir
-       $(MAKE) /NOLOGO -f Make_mvc.mak
+       $(MAKE) -lf Make_mvc.mak
        cd ..
 
 testgvim testgui:
        cd testdir
-       $(MAKE) /NOLOGO -f Make_mvc.mak "VIMPROG=..\gvim.exe"
+       $(MAKE) -lf Make_mvc.mak "VIMPROG=..\gvim.exe"
        cd ..
 
 testtiny:
        cd testdir
-       $(MAKE) /NOLOGO -f Make_mvc.mak tiny
+       $(MAKE) -lf Make_mvc.mak tiny
        cd ..
 
 testgvimtiny:
        cd testdir
-       $(MAKE) /NOLOGO -f Make_mvc.mak "VIMPROG=..\gvim.exe" tiny
+       $(MAKE) -lf Make_mvc.mak "VIMPROG=..\gvim.exe" tiny
        cd ..
 
 testclean:
        cd testdir
-       $(MAKE) /NOLOGO -f Make_mvc.mak clean
+       $(MAKE) -lf Make_mvc.mak clean
        cd ..
 
 # Run individual OLD style test.
 # These do not depend on the executable, compile it when needed.
 $(SCRIPTS_TINY):
        cd testdir
-       - if exist $@.out del $@.out
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) nolog
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) $@.out
+       - if exist $@.out $(RM) $@.out
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) nolog
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) $@.out
        @ if exist test.log ( type test.log & exit /b 1 )
        cd ..
 
@@ -1495,20 +1485,20 @@ $(SCRIPTS_TINY):
 # These do not depend on the executable, compile it when needed.
 $(NEW_TESTS):
        cd testdir
-       - if exist $@.res del $@.res
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) nolog
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) $@.res
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) report
+       - if exist $@.res $(RM) $@.res
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) nolog
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) $@.res
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) report
        cd ..
 
 # Run Vim9 tests.
 # These do not depend on the executable, compile it when needed.
 test_vim9:
        cd testdir
-       -del test_vim9_*.res
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) nolog
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) $(TEST_VIM9_RES)
-       $(MAKE) /NOLOGO -f Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) report
+       - $(RM) test_vim9_*.res
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) nolog
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) $(TEST_VIM9_RES)
+       $(MAKE) -lf Make_mvc.mak VIMPROG=..\$(VIMTESTTARGET) report
        cd ..
 
 ###########################################################################
@@ -1525,142 +1515,143 @@ test_vim9:
 .cpp{$(OUTDIR)}.obj::
        $(CC) $(CFLAGS_OUTDIR) $<
 
-$(OUTDIR)/alloc.obj:   $(OUTDIR) alloc.c  $(INCL)
+$(OUTDIR)/alloc.obj: $(OUTDIR) alloc.c $(INCL)
 
-$(OUTDIR)/arabic.obj:  $(OUTDIR) arabic.c  $(INCL)
+$(OUTDIR)/arabic.obj: $(OUTDIR) arabic.c $(INCL)
 
-$(OUTDIR)/arglist.obj: $(OUTDIR) arglist.c  $(INCL)
+$(OUTDIR)/arglist.obj: $(OUTDIR) arglist.c $(INCL)
 
-$(OUTDIR)/autocmd.obj: $(OUTDIR) autocmd.c  $(INCL)
+$(OUTDIR)/autocmd.obj: $(OUTDIR) autocmd.c $(INCL)
 
-$(OUTDIR)/beval.obj:   $(OUTDIR) beval.c  $(INCL)
+$(OUTDIR)/beval.obj: $(OUTDIR) beval.c $(INCL)
 
-$(OUTDIR)/blob.obj:    $(OUTDIR) blob.c  $(INCL)
+$(OUTDIR)/blob.obj: $(OUTDIR) blob.c $(INCL)
 
-$(OUTDIR)/blowfish.obj:        $(OUTDIR) blowfish.c  $(INCL)
+$(OUTDIR)/blowfish.obj: $(OUTDIR) blowfish.c $(INCL)
 
-$(OUTDIR)/buffer.obj:  $(OUTDIR) buffer.c  $(INCL) version.h
+$(OUTDIR)/buffer.obj: $(OUTDIR) buffer.c $(INCL) version.h
 
-$(OUTDIR)/bufwrite.obj:        $(OUTDIR) bufwrite.c  $(INCL)
+$(OUTDIR)/bufwrite.obj: $(OUTDIR) bufwrite.c $(INCL)
 
-$(OUTDIR)/change.obj:  $(OUTDIR) change.c  $(INCL)
+$(OUTDIR)/change.obj: $(OUTDIR) change.c $(INCL)
 
-$(OUTDIR)/charset.obj: $(OUTDIR) charset.c  $(INCL)
+$(OUTDIR)/charset.obj: $(OUTDIR) charset.c $(INCL)
 
-$(OUTDIR)/cindent.obj: $(OUTDIR) cindent.c  $(INCL)
+$(OUTDIR)/cindent.obj: $(OUTDIR) cindent.c $(INCL)
 
-$(OUTDIR)/clientserver.obj:    $(OUTDIR) clientserver.c  $(INCL)
+$(OUTDIR)/clientserver.obj: $(OUTDIR) clientserver.c $(INCL)
 
-$(OUTDIR)/clipboard.obj:       $(OUTDIR) clipboard.c  $(INCL)
+$(OUTDIR)/clipboard.obj: $(OUTDIR) clipboard.c $(INCL)
 
-$(OUTDIR)/cmdexpand.obj:       $(OUTDIR) cmdexpand.c  $(INCL)
+$(OUTDIR)/cmdexpand.obj: $(OUTDIR) cmdexpand.c $(INCL)
 
-$(OUTDIR)/cmdhist.obj: $(OUTDIR) cmdhist.c  $(INCL)
+$(OUTDIR)/cmdhist.obj: $(OUTDIR) cmdhist.c $(INCL)
 
-$(OUTDIR)/crypt.obj:   $(OUTDIR) crypt.c  $(INCL)
+$(OUTDIR)/crypt.obj: $(OUTDIR) crypt.c $(INCL)
 
-$(OUTDIR)/crypt_zip.obj: $(OUTDIR) crypt_zip.c  $(INCL)
+$(OUTDIR)/crypt_zip.obj: $(OUTDIR) crypt_zip.c $(INCL)
 
-$(OUTDIR)/debugger.obj:        $(OUTDIR) debugger.c  $(INCL)
+$(OUTDIR)/debugger.obj: $(OUTDIR) debugger.c $(INCL)
 
-$(OUTDIR)/dict.obj:    $(OUTDIR) dict.c  $(INCL)
+$(OUTDIR)/dict.obj: $(OUTDIR) dict.c $(INCL)
 
-$(OUTDIR)/diff.obj:    $(OUTDIR) diff.c  $(INCL)
+$(OUTDIR)/diff.obj: $(OUTDIR) diff.c $(INCL)
 
-$(OUTDIR)/xdiffi.obj:  $(OUTDIR) xdiff/xdiffi.c  $(XDIFF_DEPS)
+$(OUTDIR)/xdiffi.obj: $(OUTDIR) xdiff/xdiffi.c $(XDIFF_DEPS)
 
-$(OUTDIR)/xemit.obj:   $(OUTDIR) xdiff/xemit.c  $(XDIFF_DEPS)
+$(OUTDIR)/xemit.obj: $(OUTDIR) xdiff/xemit.c $(XDIFF_DEPS)
 
-$(OUTDIR)/xprepare.obj:        $(OUTDIR) xdiff/xprepare.c  $(XDIFF_DEPS)
+$(OUTDIR)/xprepare.obj: $(OUTDIR) xdiff/xprepare.c $(XDIFF_DEPS)
 
-$(OUTDIR)/xutils.obj:  $(OUTDIR) xdiff/xutils.c  $(XDIFF_DEPS)
+$(OUTDIR)/xutils.obj: $(OUTDIR) xdiff/xutils.c $(XDIFF_DEPS)
 
-$(OUTDIR)/xhistogram.obj:      $(OUTDIR) xdiff/xhistogram.c  $(XDIFF_DEPS)
+$(OUTDIR)/xhistogram.obj: $(OUTDIR) xdiff/xhistogram.c $(XDIFF_DEPS)
 
-$(OUTDIR)/xpatience.obj:       $(OUTDIR) xdiff/xpatience.c  $(XDIFF_DEPS)
+$(OUTDIR)/xpatience.obj: $(OUTDIR) xdiff/xpatience.c $(XDIFF_DEPS)
 
-$(OUTDIR)/digraph.obj: $(OUTDIR) digraph.c  $(INCL)
+$(OUTDIR)/digraph.obj: $(OUTDIR) digraph.c $(INCL)
 
-$(OUTDIR)/drawline.obj:        $(OUTDIR) drawline.c  $(INCL)
+$(OUTDIR)/drawline.obj: $(OUTDIR) drawline.c $(INCL)
 
-$(OUTDIR)/drawscreen.obj:      $(OUTDIR) drawscreen.c  $(INCL)
+$(OUTDIR)/drawscreen.obj: $(OUTDIR) drawscreen.c $(INCL)
 
-$(OUTDIR)/edit.obj:    $(OUTDIR) edit.c  $(INCL)
+$(OUTDIR)/edit.obj: $(OUTDIR) edit.c $(INCL)
 
-$(OUTDIR)/eval.obj:    $(OUTDIR) eval.c  $(INCL)
+$(OUTDIR)/eval.obj: $(OUTDIR) eval.c $(INCL)
 
-$(OUTDIR)/evalbuffer.obj:      $(OUTDIR) evalbuffer.c  $(INCL)
+$(OUTDIR)/evalbuffer.obj: $(OUTDIR) evalbuffer.c $(INCL)
 
-$(OUTDIR)/evalfunc.obj:        $(OUTDIR) evalfunc.c  $(INCL) version.h
+$(OUTDIR)/evalfunc.obj: $(OUTDIR) evalfunc.c $(INCL) version.h
 
-$(OUTDIR)/evalvars.obj:        $(OUTDIR) evalvars.c  $(INCL) version.h
+$(OUTDIR)/evalvars.obj: $(OUTDIR) evalvars.c $(INCL) version.h
 
-$(OUTDIR)/evalwindow.obj:      $(OUTDIR) evalwindow.c  $(INCL)
+$(OUTDIR)/evalwindow.obj: $(OUTDIR) evalwindow.c $(INCL)
 
-$(OUTDIR)/ex_cmds.obj: $(OUTDIR) ex_cmds.c  $(INCL) version.h
+$(OUTDIR)/ex_cmds.obj: $(OUTDIR) ex_cmds.c $(INCL) version.h
 
-$(OUTDIR)/ex_cmds2.obj:        $(OUTDIR) ex_cmds2.c  $(INCL) version.h
+$(OUTDIR)/ex_cmds2.obj: $(OUTDIR) ex_cmds2.c $(INCL) version.h
 
-$(OUTDIR)/ex_docmd.obj:        $(OUTDIR) ex_docmd.c  $(INCL) ex_cmdidxs.h
+$(OUTDIR)/ex_docmd.obj: $(OUTDIR) ex_docmd.c $(INCL) ex_cmdidxs.h
 
-$(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c  $(INCL)
+$(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL)
 
-$(OUTDIR)/ex_getln.obj:        $(OUTDIR) ex_getln.c  $(INCL)
+$(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL)
 
-$(OUTDIR)/fileio.obj:  $(OUTDIR) fileio.c  $(INCL)
+$(OUTDIR)/fileio.obj: $(OUTDIR) fileio.c $(INCL)
 
-$(OUTDIR)/filepath.obj:        $(OUTDIR) filepath.c  $(INCL)
+$(OUTDIR)/filepath.obj: $(OUTDIR) filepath.c $(INCL)
 
-$(OUTDIR)/findfile.obj:        $(OUTDIR) findfile.c  $(INCL)
+$(OUTDIR)/findfile.obj: $(OUTDIR) findfile.c $(INCL)
 
-$(OUTDIR)/float.obj:   $(OUTDIR) float.c  $(INCL)
+$(OUTDIR)/float.obj: $(OUTDIR) float.c $(INCL)
 
-$(OUTDIR)/fold.obj:    $(OUTDIR) fold.c  $(INCL)
+$(OUTDIR)/fold.obj: $(OUTDIR) fold.c $(INCL)
 
-$(OUTDIR)/fuzzy.obj:   $(OUTDIR) fuzzy.c  $(INCL)
+$(OUTDIR)/fuzzy.obj: $(OUTDIR) fuzzy.c $(INCL)
 
-$(OUTDIR)/getchar.obj: $(OUTDIR) getchar.c  $(INCL)
+$(OUTDIR)/getchar.obj: $(OUTDIR) getchar.c $(INCL)
 
-$(OUTDIR)/gc.obj:      $(OUTDIR) gc.c  $(INCL)
+$(OUTDIR)/gc.obj: $(OUTDIR) gc.c $(INCL)
 
-$(OUTDIR)/gui_xim.obj: $(OUTDIR) gui_xim.c  $(INCL)
+$(OUTDIR)/gui_xim.obj: $(OUTDIR) gui_xim.c $(INCL)
 
-$(OUTDIR)/hardcopy.obj:        $(OUTDIR) hardcopy.c  $(INCL) version.h
+$(OUTDIR)/hardcopy.obj: $(OUTDIR) hardcopy.c $(INCL) version.h
 
-$(OUTDIR)/hashtab.obj: $(OUTDIR) hashtab.c  $(INCL)
+$(OUTDIR)/hashtab.obj: $(OUTDIR) hashtab.c $(INCL)
 
-$(OUTDIR)/help.obj:    $(OUTDIR) help.c  $(INCL)
+$(OUTDIR)/help.obj: $(OUTDIR) help.c $(INCL)
 
-$(OUTDIR)/highlight.obj:       $(OUTDIR) highlight.c  $(INCL)
+$(OUTDIR)/highlight.obj: $(OUTDIR) highlight.c $(INCL)
 
-$(OUTDIR)/indent.obj:  $(OUTDIR) indent.c  $(INCL)
+$(OUTDIR)/indent.obj: $(OUTDIR) indent.c $(INCL)
 
-$(OUTDIR)/insexpand.obj:       $(OUTDIR) insexpand.c  $(INCL)
+$(OUTDIR)/insexpand.obj: $(OUTDIR) insexpand.c $(INCL)
 
-$(OUTDIR)/gui.obj:     $(OUTDIR) gui.c  $(INCL) $(GUI_INCL)
+$(OUTDIR)/gui.obj: $(OUTDIR) gui.c $(INCL) $(GUI_INCL)
 
-$(OUTDIR)/gui_beval.obj:       $(OUTDIR) gui_beval.c $(INCL) $(GUI_INCL)
+$(OUTDIR)/gui_beval.obj: $(OUTDIR) gui_beval.c $(INCL) $(GUI_INCL)
 
-$(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c $(INCL) $(GUI_INCL) version.h
+$(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c $(INCL) $(GUI_INCL) version.h
 
-$(OUTDIR)/gui_dwrite.obj:      $(OUTDIR) gui_dwrite.cpp gui_dwrite.h
+$(OUTDIR)/gui_dwrite.obj: $(OUTDIR) gui_dwrite.cpp gui_dwrite.h
 
-$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c  $(INCL)
+$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL)
 
-$(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c  $(INCL)
+$(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c $(INCL)
        $(CC) $(CFLAGS_OUTDIR) $(LUA_INC) if_lua.c
 
 auto/if_perl.c: if_perl.xs typemap
        $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
                -typemap typemap if_perl.xs -output $@
 
-$(OUTDIR)/if_perl.obj: $(OUTDIR) auto/if_perl.c  $(INCL)
+$(OUTDIR)/if_perl.obj: $(OUTDIR) auto/if_perl.c $(INCL)
        $(CC) $(CFLAGS_OUTDIR) $(PERL_INC) auto/if_perl.c
 
-$(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c  $(INCL)
+$(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL)
        $(CC) $(CFLAGS_OUTDIR) $(PERL_INC) if_perlsfio.c
 
-$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(MZSCHEME_INCL) $(INCL) $(MZSCHEME_EXTRA_DEP)
+$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(MZSCHEME_INCL) $(INCL) \
+                       $(MZSCHEME_EXTRA_DEP)
        $(CC) $(CFLAGS_OUTDIR) if_mzsch.c \
                -DMZSCHEME_COLLECTS="\"$(MZSCHEME_COLLECTS:\=\\)\""
 
@@ -1673,196 +1664,196 @@ $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c if_py_both.h $(INCL)
 $(OUTDIR)/if_python3.obj: $(OUTDIR) if_python3.c if_py_both.h $(INCL)
        $(CC) $(CFLAGS_OUTDIR) $(PYTHON3_INC) if_python3.c
 
-$(OUTDIR)/if_ole.obj: $(OUTDIR) if_ole.cpp  $(INCL) if_ole.h
+$(OUTDIR)/if_ole.obj: $(OUTDIR) if_ole.cpp $(INCL) if_ole.h
 
-$(OUTDIR)/if_ruby.obj: $(OUTDIR) if_ruby.c  $(INCL) version.h
+$(OUTDIR)/if_ruby.obj: $(OUTDIR) if_ruby.c $(INCL) version.h
        $(CC) $(CFLAGS_OUTDIR) $(RUBY_INC) if_ruby.c
 
-$(OUTDIR)/if_tcl.obj: $(OUTDIR) if_tcl.c  $(INCL)
+$(OUTDIR)/if_tcl.obj: $(OUTDIR) if_tcl.c $(INCL)
        $(CC) $(CFLAGS_OUTDIR) $(TCL_INC) if_tcl.c
 
-$(OUTDIR)/iscygpty.obj:        $(OUTDIR) iscygpty.c $(CUI_INCL)
+$(OUTDIR)/iscygpty.obj: $(OUTDIR) iscygpty.c $(CUI_INCL)
 
-$(OUTDIR)/job.obj:     $(OUTDIR) job.c $(INCL)
+$(OUTDIR)/job.obj: $(OUTDIR) job.c $(INCL)
 
-$(OUTDIR)/json.obj:    $(OUTDIR) json.c  $(INCL)
+$(OUTDIR)/json.obj: $(OUTDIR) json.c $(INCL)
 
-$(OUTDIR)/linematch.obj:       $(OUTDIR) linematch.c  $(INCL)
+$(OUTDIR)/linematch.obj: $(OUTDIR) linematch.c $(INCL)
 
-$(OUTDIR)/list.obj:    $(OUTDIR) list.c  $(INCL)
+$(OUTDIR)/list.obj: $(OUTDIR) list.c $(INCL)
 
-$(OUTDIR)/locale.obj:  $(OUTDIR) locale.c  $(INCL)
+$(OUTDIR)/locale.obj: $(OUTDIR) locale.c $(INCL)
 
-$(OUTDIR)/logfile.obj: $(OUTDIR) logfile.c  $(INCL)
+$(OUTDIR)/logfile.obj: $(OUTDIR) logfile.c $(INCL)
 
-$(OUTDIR)/main.obj:    $(OUTDIR) main.c  $(INCL) $(CUI_INCL)
+$(OUTDIR)/main.obj: $(OUTDIR) main.c $(INCL) $(CUI_INCL)
 
-$(OUTDIR)/map.obj:     $(OUTDIR) map.c  $(INCL)
+$(OUTDIR)/map.obj: $(OUTDIR) map.c $(INCL)
 
-$(OUTDIR)/mark.obj:    $(OUTDIR) mark.c  $(INCL)
+$(OUTDIR)/mark.obj: $(OUTDIR) mark.c $(INCL)
 
-$(OUTDIR)/match.obj:   $(OUTDIR) match.c  $(INCL)
+$(OUTDIR)/match.obj: $(OUTDIR) match.c $(INCL)
 
-$(OUTDIR)/memfile.obj: $(OUTDIR) memfile.c  $(INCL)
+$(OUTDIR)/memfile.obj: $(OUTDIR) memfile.c $(INCL)
 
-$(OUTDIR)/memline.obj: $(OUTDIR) memline.c  $(INCL)
+$(OUTDIR)/memline.obj: $(OUTDIR) memline.c $(INCL)
 
-$(OUTDIR)/menu.obj:    $(OUTDIR) menu.c  $(INCL)
+$(OUTDIR)/menu.obj: $(OUTDIR) menu.c $(INCL)
 
-$(OUTDIR)/message.obj: $(OUTDIR) message.c  $(INCL)
+$(OUTDIR)/message.obj: $(OUTDIR) message.c $(INCL)
 
-$(OUTDIR)/misc1.obj:   $(OUTDIR) misc1.c  $(INCL) version.h
+$(OUTDIR)/misc1.obj: $(OUTDIR) misc1.c $(INCL) version.h
 
-$(OUTDIR)/misc2.obj:   $(OUTDIR) misc2.c  $(INCL)
+$(OUTDIR)/misc2.obj: $(OUTDIR) misc2.c $(INCL)
 
-$(OUTDIR)/mouse.obj:   $(OUTDIR) mouse.c  $(INCL)
+$(OUTDIR)/mouse.obj: $(OUTDIR) mouse.c $(INCL)
 
-$(OUTDIR)/move.obj:    $(OUTDIR) move.c  $(INCL)
+$(OUTDIR)/move.obj: $(OUTDIR) move.c $(INCL)
 
-$(OUTDIR)/mbyte.obj:   $(OUTDIR) mbyte.c  $(INCL)
+$(OUTDIR)/mbyte.obj: $(OUTDIR) mbyte.c $(INCL)
 
-$(OUTDIR)/netbeans.obj:        $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL) version.h
+$(OUTDIR)/netbeans.obj: $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL) version.h
 
-$(OUTDIR)/channel.obj: $(OUTDIR) channel.c $(INCL)
+$(OUTDIR)/channel.obj: $(OUTDIR) channel.c $(INCL)
 
-$(OUTDIR)/normal.obj:  $(OUTDIR) normal.c  $(INCL) nv_cmdidxs.h nv_cmds.h
+$(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL) nv_cmdidxs.h nv_cmds.h
 
-$(OUTDIR)/option.obj:  $(OUTDIR) option.c  $(INCL) optiondefs.h
+$(OUTDIR)/option.obj: $(OUTDIR) option.c $(INCL) optiondefs.h
 
-$(OUTDIR)/optionstr.obj:       $(OUTDIR) optionstr.c  $(INCL)
+$(OUTDIR)/optionstr.obj: $(OUTDIR) optionstr.c $(INCL)
 
-$(OUTDIR)/ops.obj:     $(OUTDIR) ops.c  $(INCL)
+$(OUTDIR)/ops.obj: $(OUTDIR) ops.c $(INCL)
 
-$(OUTDIR)/os_mswin.obj:        $(OUTDIR) os_mswin.c  $(INCL)
+$(OUTDIR)/os_mswin.obj: $(OUTDIR) os_mswin.c $(INCL)
 
-$(OUTDIR)/terminal.obj:        $(OUTDIR) terminal.c  $(INCL) $(TERM_DEPS)
+$(OUTDIR)/terminal.obj: $(OUTDIR) terminal.c $(INCL) $(TERM_DEPS)
 
-$(OUTDIR)/winclip.obj: $(OUTDIR) winclip.c  $(INCL)
+$(OUTDIR)/winclip.obj: $(OUTDIR) winclip.c $(INCL)
 
-$(OUTDIR)/os_win32.obj:        $(OUTDIR) os_win32.c  $(INCL) $(MZSCHEME_INCL)
+$(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) $(MZSCHEME_INCL)
 
-$(OUTDIR)/os_w32dll.obj:       $(OUTDIR) os_w32dll.c
+$(OUTDIR)/os_w32dll.obj: $(OUTDIR) os_w32dll.c
 
-$(OUTDIR)/os_w32exe.obj:       $(OUTDIR) os_w32exe.c  $(INCL)
+$(OUTDIR)/os_w32exe.obj: $(OUTDIR) os_w32exe.c $(INCL)
 
-$(OUTDIR)/os_w32exec.obj:      $(OUTDIR) os_w32exe.c  $(INCL)
+$(OUTDIR)/os_w32exec.obj: $(OUTDIR) os_w32exe.c $(INCL)
        $(CC) $(CFLAGS:-DFEAT_GUI_MSWIN=) $(EXECFLAGS) /Fo$@ os_w32exe.c
 
-$(OUTDIR)/os_w32exeg.obj:      $(OUTDIR) os_w32exe.c  $(INCL)
+$(OUTDIR)/os_w32exeg.obj: $(OUTDIR) os_w32exe.c $(INCL)
        $(CC) $(CFLAGS) $(EXECFLAGS) /Fo$@ os_w32exe.c
 
-$(OUTDIR)/pathdef.obj: $(OUTDIR) $(PATHDEF_SRC) $(INCL)
+$(OUTDIR)/pathdef.obj: $(OUTDIR) $(PATHDEF_SRC) $(INCL)
        $(CC) $(CFLAGS_OUTDIR) $(PATHDEF_SRC)
 
-$(OUTDIR)/popupmenu.obj:       $(OUTDIR) popupmenu.c  $(INCL)
+$(OUTDIR)/popupmenu.obj: $(OUTDIR) popupmenu.c $(INCL)
 
-$(OUTDIR)/popupwin.obj:        $(OUTDIR) popupwin.c  $(INCL)
+$(OUTDIR)/popupwin.obj: $(OUTDIR) popupwin.c $(INCL)
 
-$(OUTDIR)/profiler.obj:        $(OUTDIR) profiler.c  $(INCL)
+$(OUTDIR)/profiler.obj: $(OUTDIR) profiler.c $(INCL)
 
-$(OUTDIR)/quickfix.obj:        $(OUTDIR) quickfix.c  $(INCL)
+$(OUTDIR)/quickfix.obj: $(OUTDIR) quickfix.c $(INCL)
 
-$(OUTDIR)/regexp.obj:  $(OUTDIR) regexp.c regexp_bt.c regexp_nfa.c  $(INCL)
+$(OUTDIR)/regexp.obj: $(OUTDIR) regexp.c regexp_bt.c regexp_nfa.c $(INCL)
 
-$(OUTDIR)/register.obj:        $(OUTDIR) register.c $(INCL)
+$(OUTDIR)/register.obj: $(OUTDIR) register.c $(INCL)
 
-$(OUTDIR)/scriptfile.obj:      $(OUTDIR) scriptfile.c  $(INCL)
+$(OUTDIR)/scriptfile.obj: $(OUTDIR) scriptfile.c $(INCL)
 
-$(OUTDIR)/screen.obj:  $(OUTDIR) screen.c  $(INCL)
+$(OUTDIR)/screen.obj: $(OUTDIR) screen.c $(INCL)
 
-$(OUTDIR)/search.obj:  $(OUTDIR) search.c  $(INCL)
+$(OUTDIR)/search.obj: $(OUTDIR) search.c $(INCL)
 
-$(OUTDIR)/session.obj: $(OUTDIR) session.c  $(INCL)
+$(OUTDIR)/session.obj: $(OUTDIR) session.c $(INCL)
 
-$(OUTDIR)/sha256.obj:  $(OUTDIR) sha256.c  $(INCL)
+$(OUTDIR)/sha256.obj: $(OUTDIR) sha256.c $(INCL)
 
-$(OUTDIR)/sign.obj:    $(OUTDIR) sign.c  $(INCL)
+$(OUTDIR)/sign.obj: $(OUTDIR) sign.c $(INCL)
 
-$(OUTDIR)/spell.obj:   $(OUTDIR) spell.c  $(INCL)
+$(OUTDIR)/spell.obj: $(OUTDIR) spell.c $(INCL)
 
-$(OUTDIR)/spellfile.obj:       $(OUTDIR) spellfile.c  $(INCL)
+$(OUTDIR)/spellfile.obj: $(OUTDIR) spellfile.c $(INCL)
 
-$(OUTDIR)/spellsuggest.obj:    $(OUTDIR) spellsuggest.c  $(INCL)
+$(OUTDIR)/spellsuggest.obj: $(OUTDIR) spellsuggest.c $(INCL)
 
-$(OUTDIR)/strings.obj: $(OUTDIR) strings.c  $(INCL)
+$(OUTDIR)/strings.obj: $(OUTDIR) strings.c $(INCL)
 
-$(OUTDIR)/syntax.obj:  $(OUTDIR) syntax.c  $(INCL)
+$(OUTDIR)/syntax.obj: $(OUTDIR) syntax.c $(INCL)
 
-$(OUTDIR)/tabpanel.obj:        $(OUTDIR) tabpanel.c  $(INCL)
+$(OUTDIR)/tabpanel.obj: $(OUTDIR) tabpanel.c $(INCL)
 
-$(OUTDIR)/tag.obj:     $(OUTDIR) tag.c  $(INCL)
+$(OUTDIR)/tag.obj: $(OUTDIR) tag.c $(INCL)
 
-$(OUTDIR)/term.obj:    $(OUTDIR) term.c  $(INCL)
+$(OUTDIR)/term.obj: $(OUTDIR) term.c $(INCL)
 
-$(OUTDIR)/term.obj:    $(OUTDIR) testing.c  $(INCL)
+$(OUTDIR)/term.obj: $(OUTDIR) testing.c $(INCL)
 
-$(OUTDIR)/textformat.obj:      $(OUTDIR) textformat.c  $(INCL)
+$(OUTDIR)/textformat.obj: $(OUTDIR) textformat.c $(INCL)
 
-$(OUTDIR)/textobject.obj:      $(OUTDIR) textobject.c  $(INCL)
+$(OUTDIR)/textobject.obj: $(OUTDIR) textobject.c $(INCL)
 
-$(OUTDIR)/textprop.obj:        $(OUTDIR) textprop.c  $(INCL)
+$(OUTDIR)/textprop.obj: $(OUTDIR) textprop.c $(INCL)
 
-$(OUTDIR)/time.obj:    $(OUTDIR) time.c  $(INCL)
+$(OUTDIR)/time.obj: $(OUTDIR) time.c $(INCL)
 
-$(OUTDIR)/tuple.obj:   $(OUTDIR) tuple.c  $(INCL)
+$(OUTDIR)/tuple.obj: $(OUTDIR) tuple.c $(INCL)
 
-$(OUTDIR)/typval.obj:  $(OUTDIR) typval.c  $(INCL)
+$(OUTDIR)/typval.obj: $(OUTDIR) typval.c $(INCL)
 
-$(OUTDIR)/ui.obj:      $(OUTDIR) ui.c  $(INCL)
+$(OUTDIR)/ui.obj: $(OUTDIR) ui.c $(INCL)
 
-$(OUTDIR)/undo.obj:    $(OUTDIR) undo.c  $(INCL)
+$(OUTDIR)/undo.obj: $(OUTDIR) undo.c $(INCL)
 
-$(OUTDIR)/usercmd.obj: $(OUTDIR) usercmd.c  $(INCL)
+$(OUTDIR)/usercmd.obj: $(OUTDIR) usercmd.c $(INCL)
 
-$(OUTDIR)/userfunc.obj:        $(OUTDIR) userfunc.c  $(INCL)
+$(OUTDIR)/userfunc.obj: $(OUTDIR) userfunc.c $(INCL)
 
-$(OUTDIR)/version.obj: $(OUTDIR) version.c  $(INCL) version.h
+$(OUTDIR)/version.obj: $(OUTDIR) version.c $(INCL) version.h
 
-$(OUTDIR)/vim9class.obj:       $(OUTDIR) vim9class.c  $(INCL) vim9.h
+$(OUTDIR)/vim9class.obj: $(OUTDIR) vim9class.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9cmds.obj:        $(OUTDIR) vim9cmds.c  $(INCL) vim9.h
+$(OUTDIR)/vim9cmds.obj: $(OUTDIR) vim9cmds.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9compile.obj:     $(OUTDIR) vim9compile.c  $(INCL) vim9.h
+$(OUTDIR)/vim9compile.obj: $(OUTDIR) vim9compile.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9execute.obj:     $(OUTDIR) vim9execute.c  $(INCL) vim9.h
+$(OUTDIR)/vim9execute.obj: $(OUTDIR) vim9execute.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9expr.obj:        $(OUTDIR) vim9expr.c  $(INCL) vim9.h
+$(OUTDIR)/vim9expr.obj: $(OUTDIR) vim9expr.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9generics.obj:    $(OUTDIR) vim9generics.c  $(INCL) vim9.h
+$(OUTDIR)/vim9generics.obj: $(OUTDIR) vim9generics.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9instr.obj:       $(OUTDIR) vim9instr.c  $(INCL) vim9.h
+$(OUTDIR)/vim9instr.obj: $(OUTDIR) vim9instr.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9script.obj:      $(OUTDIR) vim9script.c  $(INCL) vim9.h
+$(OUTDIR)/vim9script.obj: $(OUTDIR) vim9script.c $(INCL) vim9.h
 
-$(OUTDIR)/vim9type.obj:        $(OUTDIR) vim9type.c  $(INCL) vim9.h
+$(OUTDIR)/vim9type.obj: $(OUTDIR) vim9type.c $(INCL) vim9.h
 
-$(OUTDIR)/viminfo.obj: $(OUTDIR) viminfo.c  $(INCL) version.h
+$(OUTDIR)/viminfo.obj: $(OUTDIR) viminfo.c $(INCL) version.h
 
-$(OUTDIR)/window.obj:  $(OUTDIR) window.c  $(INCL)
+$(OUTDIR)/window.obj: $(OUTDIR) window.c $(INCL)
 
 $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c
        $(CC) $(CFLAGS_OUTDIR) $(XPM_INC) xpm_w32.c
 
-!if "$(VIMDLL)" == "yes"
-$(OUTDIR)/vimc.res:    $(OUTDIR) vim.rc vim.manifest version.h gui_w32_rc.h \
+!IF "$(VIMDLL)" == "yes"
+$(OUTDIR)/vimc.res: $(OUTDIR) vim.rc vim.manifest version.h gui_w32_rc.h \
                                vim.ico
        $(RC) /nologo /l 0x409 /Fo$@ $(RCFLAGS:-DFEAT_GUI_MSWIN=) vim.rc
 
-$(OUTDIR)/vimg.res:    $(OUTDIR) vim.rc vim.manifest version.h gui_w32_rc.h \
+$(OUTDIR)/vimg.res: $(OUTDIR) vim.rc vim.manifest version.h gui_w32_rc.h \
                                vim.ico
        $(RC) /nologo /l 0x409 /Fo$@ $(RCFLAGS) vim.rc
 
-$(OUTDIR)/vimd.res:    $(OUTDIR) vim.rc version.h gui_w32_rc.h \
-                               tools.bmp tearoff.bmp vim.ico vim_error.ico \
-                               vim_alert.ico vim_info.ico vim_quest.ico
+$(OUTDIR)/vimd.res: $(OUTDIR) vim.rc version.h gui_w32_rc.h \
+                       tools.bmp tearoff.bmp vim.ico vim_error.ico \
+                       vim_alert.ico vim_info.ico vim_quest.ico
        $(RC) /nologo /l 0x409 /Fo$@ $(RCFLAGS) \
                -DRCDLL -DVIMDLLBASE=\"$(VIMDLLBASE)\" vim.rc
-!else
-$(OUTDIR)/vim.res:     $(OUTDIR) vim.rc vim.manifest version.h gui_w32_rc.h \
-                               tools.bmp tearoff.bmp vim.ico vim_error.ico \
-                               vim_alert.ico vim_info.ico vim_quest.ico
+!ELSE
+$(OUTDIR)/vim.res: $(OUTDIR) vim.rc vim.manifest version.h gui_w32_rc.h \
+                       tools.bmp tearoff.bmp vim.ico vim_error.ico \
+                       vim_alert.ico vim_info.ico vim_quest.ico
        $(RC) /nologo /l 0x409 /Fo$@ $(RCFLAGS) vim.rc
-!endif
+!ENDIF
 
 iid_ole.c if_ole.h vim.tlb: if_ole.idl
        midl /nologo /error none /proxy nul /iid iid_ole.c /tlb vim.tlb \
@@ -1881,23 +1872,31 @@ CCCTERM = $(CC) $(CFLAGS) -Ilibvterm/include -DINLINE="" \
 {libvterm/src}.c{$(OUTDIR)/libvterm}.obj::
        $(CCCTERM) /Fo$(OUTDIR)/libvterm/ $<
 
-$(OUTDIR)/libvterm/encoding.obj: $(OUTDIR)/libvterm libvterm/src/encoding.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/encoding.obj: $(OUTDIR)/libvterm libvterm/src/encoding.c \
+                               $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/keyboard.obj: $(OUTDIR)/libvterm libvterm/src/keyboard.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/keyboard.obj: $(OUTDIR)/libvterm libvterm/src/keyboard.c \
+                               $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/mouse.obj: $(OUTDIR)/libvterm libvterm/src/mouse.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/mouse.obj: $(OUTDIR)/libvterm libvterm/src/mouse.c \
+                               $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/parser.obj: $(OUTDIR)/libvterm libvterm/src/parser.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/parser.obj: $(OUTDIR)/libvterm libvterm/src/parser.c \
+                               $(TERM_DEPS)
 
 $(OUTDIR)/libvterm/pen.obj: $(OUTDIR)/libvterm libvterm/src/pen.c $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/screen.obj: $(OUTDIR)/libvterm libvterm/src/screen.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/screen.obj: $(OUTDIR)/libvterm libvterm/src/screen.c \
+                               $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/state.obj: $(OUTDIR)/libvterm libvterm/src/state.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/state.obj: $(OUTDIR)/libvterm libvterm/src/state.c \
+                               $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/unicode.obj: $(OUTDIR)/libvterm libvterm/src/unicode.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/unicode.obj: $(OUTDIR)/libvterm libvterm/src/unicode.c \
+                               $(TERM_DEPS)
 
-$(OUTDIR)/libvterm/vterm.obj: $(OUTDIR)/libvterm libvterm/src/vterm.c $(TERM_DEPS)
+$(OUTDIR)/libvterm/vterm.obj: $(OUTDIR)/libvterm libvterm/src/vterm.c \
+                               $(TERM_DEPS)
 
 
 # $CFLAGS may contain backslashes, quotes and chevrons, escape them all.
@@ -1914,15 +1913,22 @@ E000_LINKARGS2 = $(E00_LINKARGS2:<=^^<)
 E_LINKARGS2 = $(E000_LINKARGS2:>=^^>)
 
 $(PATHDEF_SRC): Make_mvc.mak
-       @echo creating $(PATHDEF_SRC)
-       @echo /* pathdef.c */ > $(PATHDEF_SRC)
-       @echo #include "vim.h" >> $(PATHDEF_SRC)
-       @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
-       @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
-       @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
-       @echo char_u *all_lflags = (char_u *)"$(LINK:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; >> $(PATHDEF_SRC)
-       @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
-       @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
+       @ echo creating $(PATHDEF_SRC)
+       @ echo /* pathdef.c */ > $(PATHDEF_SRC)
+       @ echo #include "vim.h" >> $(PATHDEF_SRC)
+       @ echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; \
+               >> $(PATHDEF_SRC)
+       @ echo char_u *default_vimruntime_dir = \
+               (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
+       @ echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; \
+               >> $(PATHDEF_SRC)
+       @ echo char_u *all_lflags = \
+               (char_u *)"$(LINK:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; \
+               >> $(PATHDEF_SRC)
+       @ echo char_u *compiled_user = (char_u *)"$(USERNAME)"; \
+               >> $(PATHDEF_SRC)
+       @ echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; \
+               >> $(PATHDEF_SRC)
 
 # End Custom Build
 proto.h: \
@@ -2056,4 +2062,4 @@ proto.h: \
 .c.i:
        $(CC) $(CFLAGS) /P /C $<
 
-# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
diff --git a/src/auto/nmake/tools.mak b/src/auto/nmake/tools.mak
new file mode 100644 (file)
index 0000000..cfeb09a
--- /dev/null
@@ -0,0 +1,46 @@
+#
+# Makefile for setting up common tools used in Make_mvc.mak
+#
+# 2023-11-28, Restorer, <restorer@mail2k.ru>
+#
+
+CP = copy /Y
+LS = dir
+MKD = mkdir
+MV = move /Y
+DELTREE = rmdir /Q /S
+RD = rmdir /Q /S
+RM = del /F /Q
+MKHLNK = mklink /H
+MKDLNK = mklink /D
+MKJLNK = mklink /J
+MKSLNK = mklink
+
+PS = PowerShell.exe
+PSFLAGS = -NoLogo -NoProfile -Command
+
+!IF [$(PS) $(PSFLAGS) "exit $$psversiontable.psversion.major"] == 2
+!ERROR The PowerShell program version 3.0 or higher is required for work.
+!ENDIF
+
+!IF ![echo $(COMSPEC) | 1> nul find "cmd.exe"]
+CMD = $(COMSPEC)
+!ELSE
+CMD = $(SYSTEMROOT)\System32\cmd.exe
+!ENDIF
+CMDFLAGS = /Q /C
+CMDFLAGSEX = /V:ON /E:ON $(CMDFLAGS)
+
+# or something similar is installed on the system.
+# If the "touch" program is installed on the system, but it is not registered
+# in the %PATH% environment variable, then specify the full path to this file.
+!IF EXIST (touch.exe)
+TOUCH = touch.exe %1
+!ELSE
+TOUCH = if exist %1 (copy /b %1+,, %1) else (break> %1)
+#TOUCH = $(PS) $(PSFLAGS) if (Test-Path $$input -PathType Leaf) \
+#      {(Get-ChildItem $$input).LastWriteTime = Get-Date} else \
+#      {New-Item $$input -Type file}
+!ENDIF
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 84620878e8a267c4ef3d4ac61210c93b1a60b509..026e37433fbca26d469831d90e9afdcff342b257 100644 (file)
@@ -2,21 +2,19 @@
 # (based on make_ming.mak)
 #
 # Mike Williams, <mrw@eandem.co.uk>
-# 06.01.24, Restorer, <restorer@mail2k.ru>
+# 2024-01-06, Restorer, <restorer@mail2k.ru>
 #
 # Please read README_mvc.txt before using this file.
 #
 
-!IF [powershell.exe -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
-!ERROR The program "PowerShell" version 3.0 or higher is required to work
-!ENDIF
+# included common tools
+!INCLUDE ..\auto\nmake\tools.mak
 
 !IFNDEF LANGUAGE
-! IF ![powershell.exe -NoLogo -NoProfile -Command \
-       Set-Content -Path .\_lng.tmp \
+! IF ![$(PS) $(PSFLAGS) Set-Content -Path .\_lng.tmp \
        -Value "LANGUAGE=$$((Get-UICulture).TwoLetterISOLanguageName)"]
-!  INCLUDE _lng.tmp
-!  IF [del /q .\_lng.tmp]
+!  INCLUDE .\_lng.tmp
+!  IF [$(RM) .\_lng.tmp]
 !  ENDIF
 !  MESSAGE
 !  MESSAGE The %LANGUAGE% environment variable is not set.
 !ENDIF
 
 # Get LANGUAGES, MOFILES, MOCONVERTED and others.
-!INCLUDE Make_all.mak
+!INCLUDE .\Make_all.mak
 
 !IFNDEF VIMRUNTIME
 VIMRUNTIME = ..\..\runtime
 !ENDIF
 
-PACKAGE = vim
 # Correct the following line for the where executable file vim is
 # installed.  Please do not put the path in quotes.
 !IFNDEF VIMPROG
@@ -48,11 +45,12 @@ VIMPROG = ..\vim.exe
 GETTEXT_PATH = D:\Programs\GetText\bin
 !ENDIF
 
+INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
+PACKAGE = vim
+
 # Starting from version 0.22, msgfmt forcibly converts text to UTF-8 regardless
 # of the value of the "charset" field.
-!IF [%comspec% /v:on /e:on /c "for /F "tokens=4 delims= " %G in \
-       ('"$(GETTEXT_PATH)\msgfmt.exe" --version^|findstr /rc:[0-9^]\.[0-9^][0-9^]')\
-       do @(set "v=%G" && if !v:~2^,2! GEQ 22 exit /b 1)"]
+!IF ![$(GETTEXT_PATH)\msgfmt.exe --help | 1> nul find "--no-convert"]
 MSGFMT = "$(GETTEXT_PATH)\msgfmt.exe" -v --no-convert
 !ELSE
 MSGFMT = "$(GETTEXT_PATH)\msgfmt.exe" -v
@@ -70,27 +68,7 @@ ICONV = iconv.exe
 ICONV = "$(GETTEXT_PATH)\iconv.exe"
 !ENDIF
 
-# In case some package like GnuWin32, UnixUtils
-# or something similar is installed on the system.
-# If the "touch" program is installed on the system, but it is not registered
-# in the %PATH% environment variable, then specify the full path to this file.
-!IF EXIST ("touch.exe")
-TOUCH_TARGET = touch.exe $@
-!ELSE
-TOUCH_TARGET = @if exist $@ ( copy /b $@+,, ) else ( type nul >$@ )
-!ENDIF
-
-MV = move /y
-CP = copy /y
-RM = del /q
-MKD = mkdir
-LS = dir
-PS = PowerShell.exe
-
-LSFLAGS = /b /on /l /s
-PSFLAGS = -NoLogo -NoProfile -Command
-
-INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
+LSFLAGS = /B /ON /L /S
 
 !IF ![$(PS) $(PSFLAGS) Set-Content -Path .\_year.tmp \
        -Value Year=$$((Get-Date).Year)]
@@ -109,26 +87,26 @@ originals : $(MOFILES)
 converted: $(MOCONVERTED)
 
 .po.ck:
-       "$(VIMPROG)" -u NONE --noplugins -e -s -X --cmd "set enc=utf-8" \
-               -S check.vim -c "if error == 0 | q | else | num 2 | cq | endif" $<
-       $(TOUCH_TARGET)
+       "$(VIMPROG)" -u NONE --noplugins -e -s --cmd "set enc=utf-8" \
+               -S check.vim \
+               -c "if error == 0 | q | else | num 2 | cq | endif" $<
+       @ <<touch.bat $@
+$(TOUCH)
+<<
 
 check: $(CHECKFILES)
 
 checkclean:
        $(RM) *.ck
 
-nl.po:
-       @( echo ^# >> nl.po )
-
 # Norwegian/Bokmal: "nb" is an alias for "no".
 nb.po: no.po
        $(CP) no.po nb.po
 
 # Convert ja.po to create ja.sjis.po.
 ja.sjis.po: ja.po
-       @$(MAKE) -nologo -f Make_mvc.mak sjiscorr
-       -$(RM) $@
+       @ $(MAKE) -nologo -f Make_mvc.mak sjiscorr
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP932 $? | .\sjiscorr.exe > $@
 !ELSE
@@ -136,8 +114,8 @@ ja.sjis.po: ja.po
                [System.IO.File]::ReadAllText(\"$?\", \
                [System.Text.Encoding]::GetEncoding(65001)), \
                [System.Text.Encoding]::GetEncoding(932))
-       type $@ | .\sjiscorr.exe > tmp.$@
-       @$(MV) tmp.$@ $@
+       type $@ | .\sjiscorr.exe > $@.tmp
+       @ $(MV) $@.tmp $@
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(932)) \
@@ -150,7 +128,7 @@ sjiscorr: sjiscorr.c
 
 # Convert ja.po to create ja.euc-jp.po.
 ja.euc-jp.po: ja.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t EUC-JP $? > $@
 !ELSE
@@ -161,11 +139,7 @@ ja.euc-jp.po: ja.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(20932)) -replace \
-               'charset=utf-8', 'charset=EUC-JP'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(20932))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(20932)) -replace \
+               'charset=utf-8', 'charset=EUC-JP' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -173,7 +147,7 @@ ja.euc-jp.po: ja.po
 
 # Convert cs.po to create cs.cp1250.po.
 cs.cp1250.po: cs.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f ISO-8859-2 -t CP1250 $? > $@
 !ELSE
@@ -184,11 +158,7 @@ cs.cp1250.po: cs.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1250)) -replace \
-               'charset=iso-8859-2', 'charset=CP1250'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(1250))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(1250)) -replace \
+               'charset=iso-8859-2', 'charset=CP1250' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -196,7 +166,7 @@ cs.cp1250.po: cs.po
 
 # Convert pl.po to create pl.cp1250.po.
 pl.cp1250.po: pl.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f ISO-8859-2 -t CP1250 $? > $@
 !ELSE
@@ -207,11 +177,7 @@ pl.cp1250.po: pl.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1250)) -replace \
-               'charset=iso-8859-2', 'charset=CP1250'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(1250))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(1250)) -replace \
+               'charset=iso-8859-2', 'charset=CP1250' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -219,7 +185,7 @@ pl.cp1250.po: pl.po
 
 # Convert pl.po to create pl.UTF-8.po.
 pl.UTF-8.po: pl.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f ISO-8859-2 -t UTF-8 $? > $@
 !ELSE
@@ -228,16 +194,14 @@ pl.UTF-8.po: pl.po
                [System.Text.Encoding]::GetEncoding(28592)))
 !ENDIF
        $(PS) $(PSFLAGS) (Get-Content -Raw -Encoding UTF8 $@ \
-               ^| % {$$_-replace 'charset=iso-8859-2', 'charset=UTF-8'}) \
-               ^| 1>nul New-Item -Force -Path . -ItemType file -Name $@
-       $(PS) $(PSFLAGS) (Get-Content -Raw -Encoding UTF8 $@ \
-               ^| % {$$_-replace '# Original translations', \
+               ^| % {$$_-replace 'charset=iso-8859-2', 'charset=UTF-8' \
+               -replace '# Original translations', \
                '# Generated from $?, DO NOT EDIT'}) \
-               ^| 1>nul New-Item -Force -Path . -ItemType file -Name $@
+               ^| 1>nul New-Item -Path . -Name $@ -ItemType file -Force
 
 # Convert sk.po to create sk.cp1250.po.
 sk.cp1250.po: sk.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f ISO-8859-2 -t CP1250 $? > $@
 !ELSE
@@ -248,11 +212,7 @@ sk.cp1250.po: sk.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1250)) -replace \
-               'charset=iso-8859-2', 'charset=CP1250'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(1250))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(1250)) -replace \
+               'charset=iso-8859-2', 'charset=CP1250' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -260,7 +220,7 @@ sk.cp1250.po: sk.po
 
 # Convert zh_CN.UTF-8.po to create zh_CN.po.
 zh_CN.po: zh_CN.UTF-8.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t GB2312 $? > $@
 !ELSE
@@ -272,11 +232,7 @@ zh_CN.po: zh_CN.UTF-8.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(936)) -replace \
-               'charset=UTF-8', 'charset=GB2312'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(936))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(936)) -replace \
+               'charset=UTF-8', 'charset=GB2312' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -286,7 +242,7 @@ zh_CN.po: zh_CN.UTF-8.po
 # Set 'charset' to gbk to avoid that msfmt generates a warning.
 # This used to convert from zh_CN.po, but that results in a conversion error.
 zh_CN.cp936.po: zh_CN.UTF-8.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP936 $? > $@
 !ELSE
@@ -297,16 +253,16 @@ zh_CN.cp936.po: zh_CN.UTF-8.po
 
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(20936)) \
-               -replace 'charset=UTF-8', 'charset=GBK'\
-               -replace '# Original translations', \
+               [System.Text.Encoding]::GetEncoding(20936)) -replace \
+               'charset=UTF-8', 'charset=GBK' -replace \
+               '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
                [System.Text.Encoding]::GetEncoding(20936))
 
 # Convert zh_TW.UTF-8.po to create zh_TW.po.
 zh_TW.po: zh_TW.UTF-8.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t BIG5 $? > $@
 !ELSE
@@ -317,11 +273,7 @@ zh_TW.po: zh_TW.UTF-8.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(950)) -replace \
-               'charset=UTF-8', 'charset=BIG5'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(950))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(950)) -replace \
+               'charset=UTF-8', 'charset=BIG5' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -346,7 +298,7 @@ zh_TW.po: zh_TW.UTF-8.po
 
 #zh_TW.po: zh_TW.UTF-8.po
 #      @$(MAKE) -nologo -f Make_mvc.mak big5corr
-#      -$(RM) $@
+#      - $(RM) $@
 #!IF DEFINED (ICONV)
 #      $(ICONV) -f UTF-8 -t BIG5 $? | .\big5corr.exe > $@
 #!ELSE
@@ -369,7 +321,7 @@ zh_TW.po: zh_TW.UTF-8.po
 
 # Convert ko.UTF-8.po to create ko.po.
 ko.po: ko.UTF-8.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t EUC-KR $? > $@
 !ELSE
@@ -381,11 +333,7 @@ ko.po: ko.UTF-8.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(51949)) -replace \
-               'charset=UTF-8', 'charset=EUC-KR'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(51949))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(51949)) -replace \
+               'charset=UTF-8', 'charset=EUC-KR' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -393,7 +341,7 @@ ko.po: ko.UTF-8.po
 
 # Convert ru.po to create ru.cp1251.po.
 ru.cp1251.po: ru.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1251 $? > $@
 !ELSE
@@ -404,11 +352,7 @@ ru.cp1251.po: ru.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1251)) -replace \
-               'charset=UTF-8', 'charset=CP1251'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(1251))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(1251)) -replace \
+               'charset=UTF-8', 'charset=CP1251' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -416,7 +360,7 @@ ru.cp1251.po: ru.po
 
 # Convert uk.po to create uk.cp1251.po.
 uk.cp1251.po: uk.po
-       -$(RM) $@
+       - $(RM) $@
 !IF DEFINED (ICONV)
        $(ICONV) -f UTF-8 -t CP1251 $? > $@
 !ELSE
@@ -427,11 +371,7 @@ uk.cp1251.po: uk.po
 !ENDIF
        $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
                [System.Text.Encoding]::GetEncoding(1251)) -replace \
-               'charset=UTF-8', 'charset=CP1251'; \
-               [System.IO.File]::WriteAllText(\"$@\", $$out, \
-               [System.Text.Encoding]::GetEncoding(1251))
-       $(PS) $(PSFLAGS) $$out = [System.IO.File]::ReadAllText(\"$@\", \
-               [System.Text.Encoding]::GetEncoding(1251)) -replace \
+               'charset=UTF-8', 'charset=CP1251' -replace \
                '# Original translations', \
                '# Generated from $?, DO NOT EDIT'; \
                [System.IO.File]::WriteAllText(\"$@\", $$out, \
@@ -458,22 +398,22 @@ files: $(PO_INPUTLIST)
 first_time: files
        "$(VIMPROG)" -u NONE --not-a-term -S tojavascript.vim $(LANGUAGE).po \
                $(PO_VIM_INPUTLIST)
-       @ copy /b .\files+.\vim_to_js .\allfiles
+       @ $(CP) /B .\files+.\vim_to_js .\allfiles
        set OLD_PO_FILE_INPUT=yes
        set OLD_PO_FILE_OUTPUT=yes
        $(XGETTEXT) --default-domain=$(LANGUAGE) --add-comments \
                $(XGETTEXT_KEYWORDS) --files-from=.\allfiles \
-               --copyright-holder="$(Year), The Vim Project" --package-name=Vim \
-               --msgid-bugs-address="vim-dev@vim.org"
+               --copyright-holder="$(Year), The Vim Project" \
+               --package-name=Vim --msgid-bugs-address="vim-dev@vim.org"
        "$(VIMPROG)" -u NONE --not-a-term -S fixfilenames.vim $(LANGUAGE).po \
                $(PO_VIM_INPUTLIST)
        $(RM) *.js .\vim_to_js
-       @$(MAKE) -lf Make_mvc.mak clean
+       @ $(MAKE) -lf Make_mvc.mak clean
 
 $(PACKAGE).pot: files
        "$(VIMPROG)" -u NONE --not-a-term -S tojavascript.vim $(PACKAGE).pot \
                $(PO_VIM_INPUTLIST)
-       @ copy /b .\files+.\vim_to_js .\allfiles
+       @ $(CP) /B .\files+.\vim_to_js .\allfiles
        set OLD_PO_FILE_INPUT=yes
        set OLD_PO_FILE_OUTPUT=yes
        $(XGETTEXT) --default-domain=$(PACKAGE) --output=$(PACKAGE).pot \
@@ -483,7 +423,7 @@ $(PACKAGE).pot: files
        "$(VIMPROG)" -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot \
                $(PO_VIM_INPUTLIST)
        $(RM) *.js .\vim_to_js
-       @$(MAKE) -lf Make_mvc.mak clean
+       @ $(MAKE) -lf Make_mvc.mak clean
 
 # Only original translations with default encoding should be updated.
 # The files that are converted to a different encoding clearly state "DO NOT EDIT".
@@ -491,7 +431,7 @@ update-po: $(MOFILES:.mo=)
 
 # Don't add a dependency here, we only want to update the .po files manually.
 $(LANGUAGES):
-       @$(MAKE) -lf Make_mvc.mak GETTEXT_PATH="$(GETTEXT_PATH)" $(PACKAGE).pot
+       @ $(MAKE) -lf Make_mvc.mak "GETTEXT_PATH=$(GETTEXT_PATH)" $(PACKAGE).pot
        $(CP) $@.po $@.po.orig
        $(MV) $@.po $@.po.old
        $(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po
@@ -502,16 +442,17 @@ install: $(LANGUAGE).mo
        $(CP) $(LANGUAGE).mo "$(INSTALLDIR)\$(PACKAGE).mo"
 
 install-all: all
-       for %%l in ($(LANGUAGES)) do @if not exist "$(VIMRUNTIME)\lang\%%l\LC_MESSAGES" \
+       for %%l in ($(LANGUAGES)) do \
+               @if not exist "$(VIMRUNTIME)\lang\%%l\LC_MESSAGES" \
                $(MKD) "$(VIMRUNTIME)\lang\%%l\LC_MESSAGES"
        for %%l in ($(LANGUAGES)) do @$(CP) %%l.mo \
                "$(VIMRUNTIME)\lang\%%l\LC_MESSAGES\$(PACKAGE).mo"
 
 cleanup-po: $(LANGUAGE).po
-       "$(VIMPROG)" -u NONE -e -X -S cleanup.vim -c wq $(LANGUAGE).po
+       @ "$(VIMPROG)" -u NONE -e -s -S cleanup.vim -c wq $(LANGUAGE).po
 
 cleanup-po-all: $(POFILES)
-       !"$(VIMPROG)" -u NONE -e -X -S cleanup.vim -c wq $**
+       !@ "$(VIMPROG)" -u NONE -e -s -S cleanup.vim -c wq $**
 
 #######
 # For translations of plug-ins
@@ -544,4 +485,4 @@ clean: checkclean
 #      - $(RM) *.pot
 #      - $(RM) big5corr.obj big5corr.exe
 
-# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 950100d3c8832d3b0dd19f52fe3d78045a9dc271..7c595e3b899a5a8d162839d8f5e0e03da5eefae5 100644 (file)
@@ -1,9 +1,12 @@
 # A very (if not the most) simplistic Makefile for MSVC
 
+# included common tools
+!INCLUDE ..\auto\nmake\tools.mak
+
 SUBSYSTEM = console
-!if "$(SUBSYSTEM_VER)" != ""
+!IF "$(SUBSYSTEM_VER)" != ""
 SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
-!endif
+!ENDIF
 
 CC=cl
 CFLAGS=/O2 /nologo
@@ -15,5 +18,7 @@ tee.obj: tee.c
        $(CC) $(CFLAGS) /c $**
 
 clean:
-       - del tee.obj
-       - del tee.exe
+       - $(RM) tee.obj
+       - $(RM) tee.exe
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 02eb801b37275744b798a7346eb6381c3549c9cf..a092c63ba8a015511db7513347ba0ab5de12de1a 100644 (file)
@@ -2,6 +2,10 @@
 # Makefile to run all tests for Vim, on Dos-like machines.
 #
 # Requires a set of Unix tools: echo, diff, etc.
+#
+
+# included common tools
+!INCLUDE ..\auto\nmake\tools.mak
 
 # Testing may be done with a debug build 
 !IF EXIST(..\\vimd.exe) && !EXIST(..\\vim.exe)
@@ -10,10 +14,11 @@ VIMPROG = ..\\vimd.exe
 VIMPROG = ..\\vim.exe
 !ENDIF
 
+DIFF = diff.exe
 
 default: nongui
 
-!include Make_all.mak
+!INCLUDE .\Make_all.mak
 
 # Explicit dependencies.
 test_options_all.res: opt_test.vim
@@ -37,59 +42,59 @@ tiny:       nolog tinytests report
 benchmark: $(SCRIPTS_BENCH)
 
 report:
-       @rem without the +eval feature test_result.log is a copy of test.log
-       @if exist test.log ( copy /y test.log test_result.log > nul ) \
+       @ rem without the +eval feature test_result.log is a copy of test.log
+       @ if exist test.log ( $(CP) test.log test_result.log > nul ) \
                else ( echo No failures reported > test_result.log )
        $(VIMPROG) -u NONE $(COMMON_ARGS) -S util\summarize.vim messages
-       -if exist starttime del starttime
-       @echo:
-       @echo Test results:
-       @cmd /c type test_result.log
-       @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \
+       - if exist starttime $(RM) starttime
+       @ echo:
+       @ echo Test results:
+       @ $(CMD) /C type test_result.log
+       @ if exist test.log ( echo TEST FAILURE & exit /b 1 ) \
                else ( echo ALL DONE )
 
 
 # Execute an individual new style test, e.g.:
 #      nmake -f Make_mvc.mak test_largefile
 $(NEW_TESTS):
-       -if exist $@.res del $@.res
-       -if exist test.log del test.log
-       -if exist messages del messages
-       -if exist starttime del starttime
-       @$(MAKE) -nologo -f Make_mvc.mak VIMPROG=$(VIMPROG) $@.res
-       @type messages
-       @if exist test.log exit 1
+       - if exist $@.res $(RM) $@.res
+       - if exist test.log $(RM) test.log
+       - if exist messages $(RM) messages
+       - if exist starttime $(RM) starttime
+       @ $(MAKE) -lf Make_mvc.mak VIMPROG=$(VIMPROG) $@.res
+       @ type messages
+       @ if exist test.log exit 1
 
 
 # Delete files that may interfere with running tests.  This includes some files
 # that may result from working on the tests, not only from running them.
 clean:
-       -if exist *.out del *.out
-       -if exist *.failed del *.failed
-       -if exist *.res del *.res
-       -if exist $(DOSTMP) rd /s /q $(DOSTMP)
-       -if exist test.in del test.in
-       -if exist test.ok del test.ok
-       -if exist Xdir1 rd /s /q Xdir1
-       -if exist Xfind rd /s /q Xfind
-       -if exist XfakeHOME rd /s /q XfakeHOME
-       -if exist X* del X*
-       -for /d %i in (X*) do @rd /s/q %i
-       -if exist viminfo del viminfo
-       -if exist test.log del test.log
-       -if exist test_result.log del test_result.log
-       -if exist messages del messages
-       -if exist starttime del starttime
-       -if exist benchmark.out del benchmark.out
-       -if exist opt_test.vim del opt_test.vim
-       -if exist guidialog del guidialog
-       -if exist guidialogfile del guidialogfile
+       - if exist *.out $(RM) *.out
+       - if exist *.failed $(RM) *.failed
+       - if exist *.res $(RM) *.res
+       - if exist $(DOSTMP) $(RD) $(DOSTMP)
+       - if exist test.in $(RM) test.in
+       - if exist test.ok $(RM) test.ok
+       - if exist Xdir1 $(RD) Xdir1
+       - if exist Xfind $(RD) Xfind
+       - if exist XfakeHOME $(RD) XfakeHOME
+       - if exist X* $(RM) X*
+       - for /d %i in (X*) do @$(RD) %i
+       - if exist viminfo $(RM) viminfo
+       - if exist test.log $(RM) test.log
+       - if exist test_result.log $(RM) test_result.log
+       - if exist messages $(RM) messages
+       - if exist starttime $(RM) starttime
+       - if exist benchmark.out $(RM) benchmark.out
+       - if exist opt_test.vim $(RM) opt_test.vim
+       - if exist guidialog $(RM) guidialog
+       - if exist guidialogfile $(RM) guidialogfile
 
 nolog:
-       -if exist test.log del test.log
-       -if exist test_result.log del test_result.log
-       -if exist messages del messages
-       -if exist starttime del starttime
+       - if exist test.log $(RM) test.log
+       - if exist test_result.log $(RM) test_result.log
+       - if exist messages $(RM) messages
+       - if exist starttime $(RM) starttime
 
 
 # Tiny tests.  Works even without the +eval feature.
@@ -97,34 +102,34 @@ tinytests: $(SCRIPTS_TINY_OUT)
 
 # Copy the input files to dostmp, changing the fileformat to dos.
 $(DOSTMP_INFILES): $(*B).in
-       if not exist $(DOSTMP)\NUL md $(DOSTMP)
-       if exist $@ del $@
+       if not exist $(DOSTMP)\NUL $(MKD) $(DOSTMP)
+       if exist $@ $(RM) $@
        $(VIMPROG) -u util\dos.vim $(COMMON_ARGS) "+set ff=dos|f $@|wq" $(*B).in
 
 # For each input file dostmp/test99.in run the tests.
 # This moves test99.in to test99.in.bak temporarily.
 $(TEST_OUTFILES): $(DOSTMP)\$(*B).in
-       -@if exist test.out DEL test.out
-       -@if exist $(DOSTMP)\$(*B).out DEL $(DOSTMP)\$(*B).out
-       move $(*B).in $(*B).in.bak > nul
-       copy $(DOSTMP)\$(*B).in $(*B).in > nul
-       copy $(*B).ok test.ok > nul
+       -@ if exist test.out $(RM) test.out
+       -@ if exist $(DOSTMP)\$(*B).out $(RM) $(DOSTMP)\$(*B).out
+       $(MV) $(*B).in $(*B).in.bak > nul
+       $(CP) $(DOSTMP)\$(*B).in $(*B).in > nul
+       $(CP) $(*B).ok test.ok > nul
        $(VIMPROG) -u util\dos.vim $(COMMON_ARGS) -s dotest.in $(*B).in
-       -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out > nul
-       -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in > nul
-       -@if exist test.ok del test.ok
-       -@if exist Xdir1 rd /s /q Xdir1
-       -@if exist Xfind rd /s /q Xfind
-       -@if exist XfakeHOME rd /s /q XfakeHOME
-       -@del X*
-       -@if exist viminfo del viminfo
+       -@ if exist test.out $(MV) test.out $(DOSTMP)\$(*B).out > nul
+       -@ if exist $(*B).in.bak $(MV) $(*B).in.bak $(*B).in > nul
+       -@ if exist test.ok $(RM) test.ok
+       -@ if exist Xdir1 $(RD) Xdir1
+       -@ if exist Xfind $(RD) Xfind
+       -@ if exist XfakeHOME $(RD) XfakeHOME
+       -@ $(RM) X*
+       -@ if exist viminfo $(RM) viminfo
        $(VIMPROG) -u util\dos.vim $(COMMON_ARGS) "+set ff=unix|f test.out|wq" \
                $(DOSTMP)\$(*B).out
-       @diff test.out $*.ok & if errorlevel 1 \
-               ( move /y test.out $*.failed > nul \
-                & del $(DOSTMP)\$(*B).out \
+       @ $(DIFF) test.out $*.ok & if errorlevel 1 \
+               ( $(MV) test.out $*.failed > nul \
+                & $(RM) $(DOSTMP)\$(*B).out \
                 & echo $* FAILED >> test.log ) \
-               else ( move /y test.out $*.out > nul )
+               else ( $(MV) test.out $*.out > nul )
 
 
 # New style of tests uses Vim script with assert calls.  These are easier
@@ -132,32 +137,36 @@ $(TEST_OUTFILES): $(DOSTMP)\$(*B).in
 # Limitation: Only works with the +eval feature.
 
 newtests: newtestssilent
-       @if exist messages type messages
+       @ if exist messages type messages
 
 newtestssilent: $(NEW_TESTS_RES)
 
 .vim.res:
-       @echo $(VIMPROG) > vimcmd
+       @ echo $(VIMPROG) > vimcmd
        $(VIMPROG) -u NONE $(COMMON_ARGS) -S runtest.vim $*.vim
-       @del vimcmd
+       @ $(RM) vimcmd
 
 test_gui.res: test_gui.vim
-       @echo $(VIMPROG) > vimcmd
+       @ echo $(VIMPROG) > vimcmd
        $(VIMPROG) -u NONE $(COMMON_ARGS) -S runtest.vim $*.vim
-       @del vimcmd
+       @ $(RM) vimcmd
 
 test_gui_init.res: test_gui_init.vim
-       @echo $(VIMPROG) > vimcmd
-       $(VIMPROG) -u util\gui_preinit.vim -U util\gui_init.vim $(NO_PLUGINS) -S runtest.vim $*.vim
-       @del vimcmd
+       @ echo $(VIMPROG) > vimcmd
+       $(VIMPROG) -u util\gui_preinit.vim -U util\gui_init.vim $(NO_PLUGINS) \
+               -S runtest.vim $*.vim
+       @ $(RM) vimcmd
 
-opt_test.vim: util/gen_opt_test.vim ../optiondefs.h ../../runtime/doc/options.txt
+opt_test.vim: util/gen_opt_test.vim ../optiondefs.h \
+               ../../runtime/doc/options.txt
        $(VIMPROG) -e -s -u NONE $(COMMON_ARGS) --nofork -S $**
-       @if exist test.log ( type test.log & exit /b 1 )
+       @ if exist test.log ( type test.log & exit /b 1 )
 
 test_bench_regexp.res: test_bench_regexp.vim
-       -if exist benchmark.out del benchmark.out
-       @echo $(VIMPROG) > vimcmd
+       - if exist benchmark.out $(RM) benchmark.out
+       @ echo $(VIMPROG) > vimcmd
        $(VIMPROG) -u NONE $(COMMON_ARGS) -S runtest.vim $*.vim
-       @del vimcmd
-       @IF EXIST benchmark.out ( type benchmark.out )
+       @ $(RM) vimcmd
+       @ if exist benchmark.out ( type benchmark.out )
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make:
index 31702246807eb0d34bced18dedfc2a04a2739a10..2262124dd1b8d96d59a1c8487482ac6f9545d6bb 100644 (file)
@@ -724,6 +724,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1675,
 /**/
     1674,
 /**/
index 2361ab3d5472abb843a82ce780b0155891729424..ebfd473c2034eb99862b3dd20a2314ddafba5c66 100644 (file)
@@ -1,19 +1,25 @@
 # The most simplistic Makefile for Win32 using Microsoft Visual C++
 # (NT and Windows 95)
 
+# included common tools
+!INCLUDE ..\auto\nmake\tools.mak
+
 SUBSYSTEM = console
-!if "$(SUBSYSTEM_VER)" != ""
+!IF "$(SUBSYSTEM_VER)" != ""
 SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
-!endif
+!ENDIF
 
 xxd: xxd.exe
 
 xxd.exe: xxd.c
-       cl /nologo /source-charset:utf-8 -DWIN32 xxd.c -link -subsystem:$(SUBSYSTEM)
+       cl /nologo /source-charset:utf-8 -DWIN32 xxd.c -link \
+               -subsystem:$(SUBSYSTEM)
 
 # This was for an older compiler
 #    cl /nologo -DWIN32 xxd.c /link setargv.obj
 
 clean:
-       - if exist xxd.obj del xxd.obj
-       - if exist xxd.exe del xxd.exe
+       - if exist xxd.obj $(RM) xxd.obj
+       - if exist xxd.exe $(RM) xxd.exe
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=79 ft=make: