0
0
mirror of https://github.com/vim/vim.git synced 2025-10-21 08:24:06 -04:00

patch 9.1.1675: MS-Windows: Makefiles can be refactored

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>
This commit is contained in:
RestorerZ
2025-08-23 17:00:17 +02:00
committed by Christian Brabandt
parent d5a6310108
commit e34bdb844f
13 changed files with 1372 additions and 1278 deletions

View 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
! 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
!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:

File diff suppressed because it is too large Load Diff

46
src/auto/nmake/tools.mak Normal file
View File

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

View 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.
@@ -29,13 +27,12 @@
!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:

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

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

View File

@@ -724,6 +724,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1675,
/**/
1674,
/**/

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