blob: 890ace4ff1f2fa08f2efc45536a0072983666ea5 [file] [log] [blame]
RestorerZ2730d382025-01-17 14:04:44 +01001#
2# Makefile for UNIX-like for create self-installing exe of Vim.
3# 15/12/2024, Restorer restorer@mail2k.ru
4#
5
6
7.SUFFIXES:
8.PHONY: all makeinst prepare rename clean
9
10ifdef VIMSRC
11MKNSISFLAGS := -D"VIMSRC=$(VIMSRC)"
12endif
13
14ifdef VIMRT
15MKNSISFLAGS := $(MKNSISFLAGS) -D"VIMRT=$(VIMRT)"
16endif
17
18ifdef VIMTOOLS
19MKNSISFLAGS := $(MKNSISFLAGS) -D"VIMTOOLS=$(VIMTOOLS)"
20endif
21
22ifdef GETTEXT
23MKNSISFLAGS := $(MKNSISFLAGS) -D"GETTEXT=$(GETTEXT)"
24endif
25
26ifdef HAVE_UPX
27MKNSISFLAGS := $(MKNSISFLAGS) -DHAVE_UPX=$(HAVE_UPX)
28endif
29
30ifdef HAVE_NLS
31MKNSISFLAGS := $(MKNSISFLAGS) -DHAVE_NLS=$(HAVE_NLS)
32endif
33
34ifdef HAVE_MULTI_LANG
35MKNSISFLAGS := $(MKNSISFLAGS) -DHAVE_MULTI_LANG=$(HAVE_MULTI_LANG)
36endif
37
38ifdef WIN64
39MKNSISFLAGS := $(MKNSISFLAGS) -DWIN64=$(WIN64)
40endif
41
RestorerZ54585fd2025-07-01 21:30:21 +020042ifdef ARM64
43MKNSISFLAGS := $(MKNSISFLAGS) -DARM64=$(ARM64)
44endif
45
RestorerZ2730d382025-01-17 14:04:44 +010046ifdef INCLUDE_LIBGCC
47MKNSISFLAGS := $(MKNSISFLAGS) -DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
48endif
49
50ifdef X
51XX := -X"$(X:;=" -X")"
52endif
53
54MAJOR != grep -E 'VIM_VERSION_MAJOR\s{2,}' ../src/version.h | \
55 awk '{ printf "%d",$$3 }'
56MINOR != grep -E 'VIM_VERSION_MINOR\s{2,}' ../src/version.h | \
57 awk '{ printf "%d",$$3 }'
58PATCH != awk '/number below this line/,/,/' ../src/version.c | \
59 awk 'NR == 3 { printf "%04d",$$1 }' | sed -e 's/[ ,]//g'
60
61MKNSISFLAGS := -INPUTCHARSET UTF8 $(MKNSISFLAGS)
62
63all: makeinst
64
65makeinst: prepare
66 makensis $(MKNSISFLAGS) gvim.nsi $(XX)
67
68prepare: unzipicons gvim_version.nsh license rename
69
70unzipicons: icons.zip
71 if test -d `basename $? .zip` ; then rm -rf `basename $? .zip` ; fi
72 unzip $?
73
74gvim_version.nsh: Makefile
75 echo "# Generated from Makefile: define the version numbers" > $@
76 echo "!ifndef __GVIM_VER__NSH__" >> $@
77 echo "!define __GVIM_VER__NSH__" >> $@
78 echo "!define VER_MAJOR $(MAJOR)" >> $@
79 echo "!define VER_MINOR $(MINOR)" >> $@
80 echo "!define PATCHLEVEL $(PATCH)" >> $@
81 echo "!endif" >> $@
82
83license: ../lang/LICENSE.*.txt ../LICENSE
84 for lic in $? ; do \
85 bn=`basename $$lic .txt` ; \
86 awk 'sub("$$", "\r")' < $$lic | \
87 iconv -f UTF-8 -t UTF-16 > ../lang/$$bn.nsis.txt ; \
88 done
89
90rename:
91 ../tools/rename.bat "$(SRC)" "$(DST)"
92
93clean:
94 if test -f gvim_version.nsh ; then rm -f gvim_version.nsh ; fi
95 rm -f ../lang/LICENSE*.nsis.txt
96 if test -d icons ; then rm -rf icons ; fi
97 if test -f gvim??.exe ; then rm -f gvim??.exe ; fi
98
99# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make: