patch 9.1.1029: the installer can be improved
Problem: the installer can be improved
Solution: update the installer with the correct README and LICENSE
files, improve the documentation, add a Makefile for the
installer, update the Makefiles (RestorerZ)
fixes: #16378
closes: #16378
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/nsis/README.txt b/nsis/README.txt
index 79c1952..4b4b7a0 100644
--- a/nsis/README.txt
+++ b/nsis/README.txt
@@ -3,22 +3,15 @@
To build the installable .exe file:
-1. Unpack three archives:
- PC sources
- PC runtime
- PC language files
- You can generate these from the Unix sources and runtime plus the extra
- archive (see the Makefile in the top directory).
+Preparatory stage
-2. Go to the src directory and build:
- gvim.exe (the OLE version),
- vimrun.exe,
- install.exe,
- uninstall.exe,
- tee/tee.exe,
- xxd/xxd.exe
+1. Clone using the git tool the Vim repository or download its zip file
+ available at:
+ https://github.com/vim/vim
- Then execute tools/rename.bat to rename the executables.
+2. Go to the "/src" directory and build the Vim editor, making sure to use the
+ following variable values: "GUI=yes"; "OLE=yes"; "VIMDLL=yes". See
+ INSTALLpc.txt and Make_mvc.mak for details.
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
archive). Both 64- and 32-bit versions are needed and should be placed
@@ -32,8 +25,8 @@
https://www.mediafire.com/file/9edk4g3xvfgzby0/diff4Vim.zip/file
When will you have "diff.exe" put it in the "../.." directory (above the
"vim91" directory, it's the same for all Vim versions). However, you can
- specify another directory by passing /DVIMTOOLS=<dir> option to the
- "makensis.exe" program via the command line.
+ specify a different directory by specifying the appropriate makefile value.
+ How to do this is described below.
5. For the terminal window to work in Vim, the library winpty is required.
You can get it at the following url:
@@ -41,8 +34,8 @@
For the 32-bit version, rename "winpty.dll" from ia32/bin to "winpty32.dll",
and for the 64-bit version — "winpty.dll" from x64/bin to "winpty64.dll".
Put the renamed file and "winpty-agent.exe" in "../.." (above the "vim91"
- directory). However, you can specify another directory by passing
- /DVIMTOOLS=<dir> option to the "makensis.exe" program via the command line.
+ directory). However, you can specify a different directory by specifying
+ the appropriate makefile value. How to do this is described below.
6. To use stronger encryption, add the Sodium library. You can get it here:
https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip
@@ -52,12 +45,7 @@
"../.." directory (above the "vim91" directory, where "diff.exe" and
"winpty{32|64}.dll").
-7. On MS Windows do "nmake.exe -f Make_mvc.mak uganda.nsis.txt" in runtime/doc.
- On Unix-like system do "make runtime/doc/uganda.nsis.txt" in top directory
- or "make uganda.nsis.txt" in runtime/doc. The created files
- "uganda.nsis.???" will be automatically converted to DOS file format.
-
-8. Get gettext and iconv DLLs from the following site:
+7. Get gettext and iconv DLLs from the following site:
https://github.com/mlocati/gettext-iconv-windows/releases
Both 64- and 32-bit versions are needed.
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
@@ -74,35 +62,47 @@
libintl-8.dll
libiconv-2.dll
- The default <GETTEXT directory> is "..", however, you can specify another
- directory by passing /DGETTEXT=<dir> option to "makensis.exe" program via
- the command line.
+ The default <GETTEXT directory> is "../..". However, you can specify a
+ different directory by specifying the appropriate makefile value. How to do
+ this is described below.
-
-Install NSIS if you didn't do that already.
-Download Unicode version the ShellExecAsUser plug-in for NSIS from:
+8. Install NSIS if you didn't do that already.
+ Download Unicode version the ShellExecAsUser plug-in for NSIS from:
https://nsis.sourceforge.io/ShellExecAsUser_plug-in
-and put ShellExecAsUser.dll to path\to\NSIS\Plugins\x86-unicode
+ and put "ShellExecAsUser.dll" to path\to\NSIS\Plugins\x86-unicode
+Installer assembly stage
-Unpack the images:
- cd nsis
- unzip icons.zip or 7z x icons.zip (on Unix-like or MS Windows)
- WinRar.exe x icons.zip (on MS Windows)
+ On MS Windows, open the Developer Command Prompt for VS and go to the
+ "/nsis" directory and type the command
+ nmake.exe -lf Make_mvc.mak [variables] all
-Then build gvim.exe:
- cd nsis
- makensis.exe [options] gvim.nsi
+ After the installer is created and you copy it to the desired location, run
+ the following command in the "/nsis" directory
+ nmake.exe -lf Make_mvc.mak clean
+
+ On UNIX-like systems, go to the "/nsis" directory and type the command
+ make -f Makefile [variables] all
-Options (not mandatory):
- /DVIMSRC=<dir> — directory where location of gvim_ole.exe, vimw32.exe,
+ After the installer is created and you copy it to the desired location, run
+ the following command in the "/nsis" directory
+ make -f Makefile clean
+
+Variables and their values available for building the installer (not mandatory):
+
+ "VIMSRC=<dir>" — directory where location of gvim_ole.exe, vimw32.exe,
GvimExt/*, etc.
- /DVIMRT=<dir> — directory where location of runtime files
- /DVIMTOOLS=<dir> — directory where location of extra tools: diff.exe,
- winpty{32|64}.dll, winpty-agent.exe, libsodium.dll
- /DGETTEXT=<dir> — directory where location of gettext libraries
- /DHAVE_UPX=1 — additional compression of the installer. UPX program
+ "VIMRT=<dir>" — directory where location of runtime files.
+ "VIMTOOLS=<dir>" — directory where location of extra tools: diff.exe,
+ winpty{32|64}.dll, winpty-agent.exe, libsodium.dll.
+ "GETTEXT=<dir>" — directory where location of gettext libraries.
+ "HAVE_UPX=1" — additional compression of the installer. UPX program
must be installed.
- /DHAVE_NLS=0 — do not add native language support
- /DHAVE_MULTI_LANG=0 — to create an English-only the installer
- /DWIN64=1 — to create a 64-bit the installer
+ "HAVE_NLS=0" — do not add native language support.
+ "HAVE_MULTI_LANG=0" — to create an English-only the installer.
+ "WIN64=1" — to create a 64-bit the installer.
+ "X=<scriptcmd>" — executes scriptcmd in script. If multiple scriptcmd
+ are specified, they are separated by a semicolon.
+ Example "X=OutFile MyVim.exe;XPMode on"
+ "MKNSIS=<dir>" — the directory where the "makensis.exe" program is
+ located.