0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00
Files
vim/nsis/Make_mvc.mak
RestorerZ e34bdb844f 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>
2025-08-23 17:00:17 +02:00

155 lines
3.5 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# Makefile for MS Windows for create self-installing exe of Vim.
# 202404-05, Restorer, restorer@mail2k.ru
#
# 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 :
!IFDEF PROGRAMW6432
ProgFiles=%%PROGRAMFILES(x86)%%
!ELSE
ProgFiles=$(PROGRAMFILES)
!ENDIF
!IFDEF VIMSRC
MKNSISFLAGS = /D"VIMSRC=$(VIMSRC)"
!ENDIF
!IFDEF VIMRT
MKNSISFLAGS = $(MKNSISFLAGS) /D"VIMRT=$(VIMRT)"
!ENDIF
!IFDEF VIMTOOLS
MKNSISFLAGS = $(MKNSISFLAGS) /D"VIMTOOLS=$(VIMTOOLS)"
!ENDIF
!IFDEF GETTEXT
MKNSISFLAGS = $(MKNSISFLAGS) /D"GETTEXT=$(GETTEXT)"
!ENDIF
!IFDEF HAVE_UPX
MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_UPX=$(HAVE_UPX)
!ENDIF
!IFDEF HAVE_NLS
MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_NLS=$(HAVE_NLS)
!ENDIF
!IFDEF HAVE_MULTI_LANG
MKNSISFLAGS = $(MKNSISFLAGS) /DHAVE_MULTI_LANG=$(HAVE_MULTI_LANG)
!ENDIF
!IFDEF WIN64
MKNSISFLAGS = $(MKNSISFLAGS) /DWIN64=$(WIN64)
!ENDIF
!IFDEF ARM64
MKNSISFLAGS = $(MKNSISFLAGS) /DARM64=$(ARM64)
!ENDIF
!IFDEF INCLUDE_LIBGCC
MKNSISFLAGS = $(MKNSISFLAGS) /DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
!ENDIF
!IFDEF X
XX = /X"$(X:;=" /X")"
!ENDIF
# 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\makensis.exe
MKNSISFLAGS = /INPUTCHARSET UTF8 $(MKNSISFLAGS)
all : makeinst
makeinst : prepare
^"$(MKNSIS)" $(MKNSISFLAGS) gvim.nsi $(XX)
prepare : unzipicons gvim_version.nsh license rename
unzipicons : icons.zip
@ if exist %|fF\nul $(RD) %|fF
@ $(PS) $(PSFLAGS) \
Add-Type -AssemblyName 'System.IO.Compression.FileSystem'; \
[System.IO.Compression.ZipFile]::ExtractToDirectory(\"$**\", \
\".\")
gvim_version.nsh : Make_mvc.mak
@ 1> $@ echo:^# Generated from Makefile: define the version numbers
@ 1>> $@ echo:^!ifndef __GVIM_VER__NSH__
@ 1>> $@ echo:^!define __GVIM_VER__NSH__
@ 1>> $@ echo:^!define VER_MAJOR $(MAJOR)
@ 1>> $@ echo:^!define VER_MINOR $(MINOR)
@ 1>> $@ echo:^!define PATCHLEVEL $(PATCHLEVEL)
@ 1>> $@ echo:^!endif
license : ..\lang\LICENSE.*.txt ..\LICENSE
!@ $(PS) $(PSFLAGS) \
Get-Content -Path '$**' -Encoding UTF8 ^| \
Set-Content -Path '..\lang\$(**B).nsis.txt' -Enc Unicode -Force
rename :
@ ..\tools\rename.bat "$(SRC)" "$(DST)" 1> nul
clean :
@ if exist .\gvim_version.nsh $(RM) .\gvim_version.nsh
@ if exist ..\lang\LICENSE*.nsis.txt $(RM) ..\lang\LICENSE*.nsis.txt
@ 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=79 ft=make: