This builds a one-click install for MNV for MS Windows using the Nullsoft Installation System (NSIS), available at http://nsis.sourceforge.net/ To build the installable .exe file: Preparatory stage 1. Clone using the git tool the MNV repository or download its zip file available at: https://github.com/Project-Tick/Project-Tick 2. Go to the "/src" directory and build the MNV editor, making sure to use the following variable values: "GUI=yes"; "OLE=yes"; "MNVDLL=yes". See INSTALLpc.txt and Make_mvc.mak for details. 3. Go to the GmnvExt directory and build gmnvext.dll (or get it from a binary archive). Both 64- and 32-bit versions are needed and should be placed as follows: 64-bit: src/GmnvExt/gmnvext64.dll 32-bit: src/GmnvExt/gmnvext.dll 4. Get a "diff.exe" program. If you skip this the built-in diff will always be used (which is fine for most users). You can find one in previous MNV versions or in this archive: https://www.mediafire.com/file/9edk4g3xvfgzby0/diff4MNV.zip/file When will you have "diff.exe" put it in the "../.." directory (above the "mnv91" directory, it's the same for all MNV versions). However, you can 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 MNV, the library winpty is required. You can get it at the following url: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip 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 "mnv91" 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 Unpack the archive. Put the "libsodium.dll" from path/to/libsodium/Win32/Release/v143/dynamic for the 32‐bit version or path/to/libsodium/X64/Release/v143/dynamic for the 64‐bit version in the "../.." directory (above the "mnv91" directory, where "diff.exe" and "winpty{32|64}.dll"). 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 DLLs and place them as follows: | + gettext32/ | libintl-8.dll | libiconv-2.dll | libgcc_s_sjlj-1.dll | + gettext64/ libintl-8.dll libiconv-2.dll The default is "../..". However, you can specify a different directory by specifying the appropriate makefile value. How to do this is described below. 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 Installer assembly stage 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 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 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): "MNVSRC=" — directory where location of gmnv_ole.exe, mnvw32.exe, GmnvExt/*, etc. "MNVRT=" — directory where location of runtime files. "MNVTOOLS=" — directory where location of extra tools: diff.exe, winpty{32|64}.dll, winpty-agent.exe, libsodium.dll. "GETTEXT=" — directory where location of gettext libraries. "HAVE_UPX=1" — additional compression of the installer. UPX program must be installed. "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. "ARM64=1" — to create the installer for ARM64. The WIN64 variable must be set to 1. "X=" — executes scriptcmd in script. If multiple scriptcmd are specified, they are separated by a semicolon. Example "X=OutFile MyMNV.exe;XPMode on" "MKNSIS=" — the directory where the "makensis.exe" program is located. Note: for icons used in the installer, see the README.txt in the icons.zip