fork for IVI
[profile/ivi/vim.git] / Makefile
1 # This Makefile has two purposes:
2 # 1. Starting the compilation of Vim for Unix.
3 # 2. Creating the various distribution files.
4
5
6 #########################################################################
7 # 1. Starting the compilation of Vim for Unix.
8 #
9 # Using this Makefile without an argument will compile Vim for Unix.
10 # "make install" is also possible.
11 #
12 # NOTE: If this doesn't work properly, first change directory to "src" and use
13 # the Makefile there:
14 #       cd src
15 #       make [arguments]
16 # Noticed on AIX systems when using this Makefile: Trying to run "cproto" or
17 # something else after Vim has been compiled.  Don't know why...
18 # Noticed on OS/390 Unix: Restarts configure.
19 #
20 # The first (default) target is "first".  This will result in running
21 # "make first", so that the target from "src/auto/config.mk" is picked
22 # up properly when config didn't run yet.  Doing "make all" before configure
23 # has run can result in compiling with $(CC) empty.
24
25 first:
26         @if test ! -f src/auto/config.mk; then \
27                 cp src/config.mk.dist src/auto/config.mk; \
28         fi
29         @echo "Starting make in the src directory."
30         @echo "If there are problems, cd to the src directory and run make there"
31         cd src && $(MAKE) $@
32
33 # Some make programs use the last target for the $@ default; put the other
34 # targets separately to always let $@ expand to "first" by default.
35 all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
36         @if test ! -f src/auto/config.mk; then \
37                 cp src/config.mk.dist src/auto/config.mk; \
38         fi
39         @echo "Starting make in the src directory."
40         @echo "If there are problems, cd to the src directory and run make there"
41         cd src && $(MAKE) $@
42
43
44 #########################################################################
45 # 2. Creating the various distribution files.
46 #
47 # TARGET        PRODUCES                CONTAINS
48 # unixall       vim-#.#.tar.bz2         All runtime files and sources, for Unix
49 #
50 # html          vim##html.zip           HTML docs
51 #
52 # dossrc        vim##src.zip            sources for MS-DOS
53 # dosrt         vim##rt.zip             runtime for MS-DOS
54 # dosbin        vim##d16.zip            binary for MS-DOS 16 bits
55 #               vim##d32.zip            binary for MS-DOS 32 bits
56 #               vim##w32.zip            binary for Win32
57 #               gvim##.zip              binary for GUI Win32
58 #               gvim##ole.zip           OLE exe for Win32 GUI
59 #               gvim##_s.zip            exe for Win32s GUI
60 #
61 # OBSOLETE
62 # amisrc        vim##src.tgz            sources for Amiga
63 # amirt         vim##rt.tgz             runtime for Amiga
64 # amibin        vim##bin.tgz            binary for Amiga
65 #
66 # os2bin        vim##os2.zip            binary for OS/2
67 #                                       (use RT from dosrt)
68 #
69 # farsi         farsi##.zip             Farsi fonts
70 #
71 #    All output files are created in the "dist" directory.  Existing files are
72 #    overwritten!
73 #    To do all this you need the Unix archive and compiled binaries.
74 #    Before creating an archive first delete all backup files, *.orig, etc.
75
76 MAJOR = 7
77 MINOR = 3
78
79 # Uncomment this line if the Win32s version is to be included.
80 DOSBIN_S =  dosbin_s
81
82 # Uncomment this line if the 16 bit DOS version is to be included.
83 # DOSBIN_D16 = dosbin_d16
84
85 # CHECKLIST for creating a new version:
86 #
87 # - Update Vim version number.  For a test version in: src/version.h, Contents,
88 #   MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
89 #   runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt.  For a
90 #   minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def,
91 #   src/gvim.exe.mnf.
92 # - Adjust the date and other info in src/version.h.
93 # - Correct included_patches[] in src/version.c.
94 # - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
95 #   you can make it all work), Cscope and "huge" features.  Exclude workshop
96 #   and SNiFF.
97 # - With these features: "make proto" (requires cproto and Motif installed;
98 #   ignore warnings for missing include files, fix problems for syntax errors).
99 # - With these features: "make depend" (works best with gcc).
100 # - If you have a lint program: "make lint" and check the output (ignore GTK
101 #   warnings).
102 # - Enable the efence library in "src/Makefile" and run "make test".  Disable
103 #   Python and Ruby to avoid trouble with threads (efence is not threadsafe).
104 # - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
105 # - Check for missing options in runtime/optwin.vim et al. (with check.vim).
106 # - Do "make menu" to update the runtime/synmenu.vim file.
107 # - Add remarks for changes to runtime/doc/version7.txt.
108 # - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
109 #   ADDITIONS".
110 # - In runtime/doc run "make" and "make html" to check for errors.
111 # - Check if src/Makefile and src/feature.h don't contain any personal
112 #   preferences or the GTK, Perl, etc. mentioned above.
113 # - Check file protections to be "644" for text and "755" for executables (run
114 #   the "check" script).
115 # - Check compiling on Amiga, MS-DOS and MS-Windows.
116 # - Delete all *~, *.sw?, *.orig, *.rej files
117 # - "make unixall", "make html"
118 # - Make diff files against the previous release: "makediff7 7.1 7.2"
119 #
120 # Amiga: (OBSOLETE, Amiga files are no longer distributed)
121 # - "make amisrc", move the archive to the Amiga and compile:
122 #   "make -f Make_manx.mak" (will use "big" features by default).
123 # - Run the tests: "make -f Make_manx.mak test"
124 # - Place the executables Vim and Xxd in this directory (set the executable
125 #   flag).
126 # - "make amirt", "make amibin".
127 #
128 # PC:
129 # - Run make on Unix to update the ".mo" files.
130 # - "make dossrc" and "make dosrt".  Unpack the archives on a PC.
131 # 16 bit DOS version: (OBSOLETE, 16 bit version doesn't build)
132 # - Set environment for compiling with Borland C++ 3.1.
133 # - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
134 #   case set environment for compiling with Borland C++ 4.0 and do
135 #   "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
136 #   NOTE: this currently fails because Vim is too big.
137 # - "make test" and check the output.
138 # - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
139 #   "uninstald16.exe".
140 # 32 bit DOS version:
141 # - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
142 # - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
143 #   "ALL DONE".
144 # - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
145 #   "uninstald32.exe".
146 # Win32 console version:
147 # - Set environment for Visual C++ 2008, e.g.:
148 #   "E:\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat".  Or, when using the
149 #   Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths when necessary).
150 #   For Windows 98/ME the 2003 version is required, but then it won't work on
151 #   Windows 7 and 64 bit.
152 # - "nmake -f Make_mvc.mak"
153 # - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
154 # - Rename the executables to "vimw32.exe", "xxdw32.exe".
155 # - Rename vim.pdb to vimw32.pdb.
156 # - When building the Win32s version later, delete vimrun.exe, install.exe and
157 #   uninstal.exe.  Otherwise rename executables to installw32.exe and
158 #   uninstalw32.exe.
159 # Win32 GUI version:
160 # - "nmake -f Make_mvc.mak GUI=yes.
161 # - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
162 # - Move gvim.pdb to here.
163 # - Delete vimrun.exe, install.exe and uninstal.exe.
164 # - Copy "GvimExt/gvimext.dll" to here.
165 # Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
166 # - Run src/bigvim.bat ("nmake -f Make_mvc.mak GUI=yes OLE=yes IME=yes ...)
167 # - Rename "gvim.exe" to "gvim_ole.exe".
168 # - Rename gvim.pdb to "gvim_ole.pdb".
169 # - Delete install.exe and uninstal.exe.
170 # - If building the Win32s version delete vimrun.exe.
171 # Win32s GUI version:
172 # - Set environment for Visual C++ 4.1 (requires a new console window):
173 #   "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
174 # - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
175 # - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
176 # - Rename "gvim.exe" to "gvim_w32s.exe".
177 # - Rename "install.exe" to "installw32.exe"
178 # - Rename "uninstal.exe" to "uninstalw32.exe"
179 # - The produced uninstalw32.exe and vimrun.exe are used.
180 # Create the archives:
181 # - Copy all the "*.exe" files to where this Makefile is.
182 # - Copy all the "*.pdb" files to where this Makefile is.
183 # - "make dosbin".
184 # NSIS self installing exe:
185 # - To get NSIS see http://nsis.sourceforge.net
186 # - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe,
187 #   uninstalw32.exe and xxdw32.exe have been build as mentioned above.
188 # - copy these files (get them from a binary archive or build them):
189 #       gvimext.dll in src/GvimExt
190 #       gvimext64.dll in src/GvimExt
191 #       VisVim.dll in src/VisVim
192 #   Note: VisVim needs to be build with MSVC 5, newer versions don't work.
193 #   gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
194 #       It is part of vim72.zip as vim72/gvimext.dll.
195 # - make sure there is a diff.exe two levels up
196 # - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes).
197 # - Copy gvim##.exe to the dist directory.
198 #
199 # OS/2: (OBSOLETE, OS/2 version is no longer distributed)
200 # - Unpack the Unix archive.
201 # - "make -f Make_os2.mak".
202 # - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
203 #   them to here.
204 # - "make os2bin".
205
206 VIMVER  = vim-$(MAJOR).$(MINOR)
207 VERSION = $(MAJOR)$(MINOR)
208 VDOT    = $(MAJOR).$(MINOR)
209 VIMRTDIR = vim$(VERSION)
210
211 # Vim used for conversion from "unix" to "dos"
212 VIM     = vim
213
214 # How to include Filelist depends on the version of "make" you have.
215 # If the current choice doesn't work, try the other one.
216
217 include Filelist
218 #.include "Filelist"
219
220
221 # All output is put in the "dist" directory.
222 dist:
223         mkdir dist
224
225 # Clean up some files to avoid they are included.
226 prepare:
227         if test -f runtime/doc/uganda.nsis.txt; then \
228                 rm runtime/doc/uganda.nsis.txt; fi
229
230 # For the zip files we need to create a file with the comment line
231 dist/comment:
232         mkdir dist/comment
233
234 COMMENT_RT = comment/$(VERSION)-rt
235 COMMENT_D16 = comment/$(VERSION)-bin-d16
236 COMMENT_D32 = comment/$(VERSION)-bin-d32
237 COMMENT_W32 = comment/$(VERSION)-bin-w32
238 COMMENT_GVIM = comment/$(VERSION)-bin-gvim
239 COMMENT_OLE = comment/$(VERSION)-bin-ole
240 COMMENT_W32S = comment/$(VERSION)-bin-w32s
241 COMMENT_SRC = comment/$(VERSION)-src
242 COMMENT_OS2 = comment/$(VERSION)-bin-os2
243 COMMENT_HTML = comment/$(VERSION)-html
244 COMMENT_FARSI = comment/$(VERSION)-farsi
245
246 dist/$(COMMENT_RT): dist/comment
247         echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
248
249 dist/$(COMMENT_D16): dist/comment
250         echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
251
252 dist/$(COMMENT_D32): dist/comment
253         echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32)
254
255 dist/$(COMMENT_W32): dist/comment
256         echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32)
257
258 dist/$(COMMENT_GVIM): dist/comment
259         echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows NT/95" > dist/$(COMMENT_GVIM)
260
261 dist/$(COMMENT_OLE): dist/comment
262         echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE)
263
264 dist/$(COMMENT_W32S): dist/comment
265         echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S)
266
267 dist/$(COMMENT_SRC): dist/comment
268         echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
269
270 dist/$(COMMENT_OS2): dist/comment
271         echo "Vim - Vi IMproved - v$(VDOT) binaries + runtime files for OS/2" > dist/$(COMMENT_OS2)
272
273 dist/$(COMMENT_HTML): dist/comment
274         echo "Vim - Vi IMproved - v$(VDOT) documentation in HTML" > dist/$(COMMENT_HTML)
275
276 dist/$(COMMENT_FARSI): dist/comment
277         echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI)
278
279 unixall: dist prepare
280         -rm -f dist/$(VIMVER).tar.bz2
281         -rm -rf dist/$(VIMRTDIR)
282         mkdir dist/$(VIMRTDIR)
283         tar cf - \
284                 $(RT_ALL) \
285                 $(RT_ALL_BIN) \
286                 $(RT_UNIX) \
287                 $(RT_UNIX_DOS_BIN) \
288                 $(RT_SCRIPTS) \
289                 $(LANG_GEN) \
290                 $(LANG_GEN_BIN) \
291                 $(SRC_ALL) \
292                 $(SRC_UNIX) \
293                 $(SRC_DOS_UNIX) \
294                 $(EXTRA) \
295                 $(LANG_SRC) \
296                 | (cd dist/$(VIMRTDIR); tar xf -)
297 # Need to use a "distclean" config.mk file
298         cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
299 # Create an empty config.h file, make dependencies require it
300         touch dist/$(VIMRTDIR)/src/auto/config.h
301 # Make sure configure is newer than config.mk to force it to be generated
302         touch dist/$(VIMRTDIR)/src/configure
303 # Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated.
304 # Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po.
305         touch dist/$(VIMRTDIR)/src/po/ja.sjis.po
306         touch dist/$(VIMRTDIR)/src/po/cs.cp1250.po
307         touch dist/$(VIMRTDIR)/src/po/pl.cp1250.po
308         touch dist/$(VIMRTDIR)/src/po/sk.cp1250.po
309         touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
310         touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
311         touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
312 # Create the archive.
313         cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
314         bzip2 dist/$(VIMVER).tar
315
316 # Amiga runtime - OBSOLETE
317 amirt: dist prepare
318         -rm -f dist/vim$(VERSION)rt.tar.gz
319         -rm -rf dist/Vim
320         mkdir dist/Vim
321         mkdir dist/Vim/$(VIMRTDIR)
322         tar cf - \
323                 $(ROOT_AMI) \
324                 $(RT_ALL) \
325                 $(RT_ALL_BIN) \
326                 $(RT_SCRIPTS) \
327                 $(RT_AMI) \
328                 $(RT_NO_UNIX) \
329                 $(RT_AMI_DOS) \
330                 | (cd dist/Vim/$(VIMRTDIR); tar xf -)
331         mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
332         mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
333         mv dist/Vim/$(VIMRTDIR)/runtime/* dist/Vim/$(VIMRTDIR)
334         rmdir dist/Vim/$(VIMRTDIR)/runtime
335         cd dist && tar cf vim$(VERSION)rt.tar Vim Vim.info
336         gzip -9 dist/vim$(VERSION)rt.tar
337         mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
338
339 # Amiga binaries - OBSOLETE
340 amibin: dist prepare
341         -rm -f dist/vim$(VERSION)bin.tar.gz
342         -rm -rf dist/Vim
343         mkdir dist/Vim
344         mkdir dist/Vim/$(VIMRTDIR)
345         tar cf - \
346                 $(ROOT_AMI) \
347                 $(BIN_AMI) \
348                 Vim \
349                 Xxd \
350                 | (cd dist/Vim/$(VIMRTDIR); tar xf -)
351         mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
352         mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
353         cd dist && tar cf vim$(VERSION)bin.tar Vim Vim.info
354         gzip -9 dist/vim$(VERSION)bin.tar
355         mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
356
357 # Amiga sources - OBSOLETE
358 amisrc: dist prepare
359         -rm -f dist/vim$(VERSION)src.tar.gz
360         -rm -rf dist/Vim
361         mkdir dist/Vim
362         mkdir dist/Vim/$(VIMRTDIR)
363         tar cf - \
364                 $(ROOT_AMI) \
365                 $(SRC_ALL) \
366                 $(SRC_AMI) \
367                 $(SRC_AMI_DOS) \
368                 | (cd dist/Vim/$(VIMRTDIR); tar xf -)
369         mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
370         mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
371         cd dist && tar cf vim$(VERSION)src.tar Vim Vim.info
372         gzip -9 dist/vim$(VERSION)src.tar
373         mv dist/vim$(VERSION)src.tar.gz dist/vim$(VERSION)src.tgz
374
375 no_title.vim: Makefile
376         echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
377
378 # MS-DOS sources
379 dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
380         -rm -rf dist/vim$(VERSION)src.zip
381         -rm -rf dist/vim
382         mkdir dist/vim
383         mkdir dist/vim/$(VIMRTDIR)
384         tar cf - \
385                 $(SRC_ALL) \
386                 $(SRC_DOS) \
387                 $(SRC_AMI_DOS) \
388                 $(SRC_DOS_UNIX) \
389                 runtime/doc/uganda.nsis.txt \
390                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
391         mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
392         rmdir dist/vim/$(VIMRTDIR)/runtime
393         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
394         tar cf - \
395                 $(SRC_DOS_BIN) \
396                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
397         cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
398
399 runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
400         cd runtime/doc && $(MAKE) uganda.nsis.txt
401
402 dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos
403         -rm -rf dist/vim$(VERSION)rt.zip
404         cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
405
406 # Split in two parts to avoid an "argument list too long" error.
407 dosrt_unix2dos: dist prepare no_title.vim
408         -rm -rf dist/vim
409         mkdir dist/vim
410         mkdir dist/vim/$(VIMRTDIR)
411         mkdir dist/vim/$(VIMRTDIR)/lang
412         cd src && MAKEMO=yes $(MAKE) languages
413         tar cf - \
414                 $(RT_ALL) \
415                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
416         tar cf - \
417                 $(RT_SCRIPTS) \
418                 $(RT_DOS) \
419                 $(RT_NO_UNIX) \
420                 $(RT_AMI_DOS) \
421                 $(LANG_GEN) \
422                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
423         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
424         tar cf - \
425                 $(RT_UNIX_DOS_BIN) \
426                 $(RT_ALL_BIN) \
427                 $(RT_DOS_BIN) \
428                 $(LANG_GEN_BIN) \
429                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
430         mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
431         rmdir dist/vim/$(VIMRTDIR)/runtime
432 # Add the message translations.  Trick: skip ja.mo and use ja.sjis.mo instead.
433 # Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
434 # zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
435         for i in $(LANG_DOS); do \
436               if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
437                 n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
438                 mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
439                 mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
440                 cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
441               fi \
442             done
443         cp libintl.dll dist/vim/$(VIMRTDIR)/
444
445
446 # Convert runtime files from Unix fileformat to dos fileformat.
447 # Used before uploading.  Don't delete the AAPDIR/sign files!
448 runtime_unix2dos: dosrt_unix2dos
449         -rm -rf `find runtime/dos -type f -print | sed -e /AAPDIR/d`
450         cd dist/vim/$(VIMRTDIR); tar cf - * \
451                 | (cd ../../../runtime/dos; tar xf -)
452
453 dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
454
455 # make Win32 gvim
456 dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
457         -rm -rf dist/gvim$(VERSION).zip
458         -rm -rf dist/vim
459         mkdir dist/vim
460         mkdir dist/vim/$(VIMRTDIR)
461         tar cf - \
462                 $(BIN_DOS) \
463                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
464         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
465         cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
466         cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
467         cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
468         cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
469         cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
470         cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
471         cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
472         cp gvim.pdb dist/gvim$(VERSION).pdb
473
474 # make Win32 console
475 dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
476         -rm -rf dist/vim$(VERSION)w32.zip
477         -rm -rf dist/vim
478         mkdir dist/vim
479         mkdir dist/vim/$(VIMRTDIR)
480         tar cf - \
481                 $(BIN_DOS) \
482                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
483         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
484         cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
485         cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
486         cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
487         cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
488         cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
489         cp vimw32.pdb dist/vim$(VERSION)w32.pdb
490
491 # make 32bit DOS
492 dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
493         -rm -rf dist/vim$(VERSION)d32.zip
494         -rm -rf dist/vim
495         mkdir dist/vim
496         mkdir dist/vim/$(VIMRTDIR)
497         tar cf - \
498                 $(BIN_DOS) \
499                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
500         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
501         cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
502         cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
503         cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
504         cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
505         cp csdpmi4b.zip dist/vim/$(VIMRTDIR)
506         cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32)
507
508 # make 16bit DOS
509 dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
510         -rm -rf dist/vim$(VERSION)d16.zip
511         -rm -rf dist/vim
512         mkdir dist/vim
513         mkdir dist/vim/$(VIMRTDIR)
514         tar cf - \
515                 $(BIN_DOS) \
516                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
517         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
518         cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
519         cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
520         cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
521         cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe
522         cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16)
523
524 # make Win32 gvim with OLE
525 dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
526         -rm -rf dist/gvim$(VERSION)ole.zip
527         -rm -rf dist/vim
528         mkdir dist/vim
529         mkdir dist/vim/$(VIMRTDIR)
530         tar cf - \
531                 $(BIN_DOS) \
532                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
533         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
534         cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
535         cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
536         cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
537         cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
538         cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
539         cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
540         cp README_ole.txt dist/vim/$(VIMRTDIR)
541         cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll
542         cp src/VisVim/README_VisVim.txt dist/vim/$(VIMRTDIR)
543         cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
544         cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
545
546 # make Win32s gvim
547 dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
548         -rm -rf dist/gvim$(VERSION)_s.zip
549         -rm -rf dist/vim
550         mkdir dist/vim
551         mkdir dist/vim/$(VIMRTDIR)
552         tar cf - \
553                 $(BIN_DOS) \
554                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
555         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
556         cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
557         cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
558         cp README_w32s.txt dist/vim/$(VIMRTDIR)
559         cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
560         cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
561         cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
562
563 os2bin: dist no_title.vim dist/$(COMMENT_OS2)
564         -rm -rf dist/vim$(VERSION)os2.zip
565         -rm -rf dist/vim
566         mkdir dist/vim
567         mkdir dist/vim/$(VIMRTDIR)
568         tar cf - \
569                 $(BIN_OS2) \
570                 | (cd dist/vim/$(VIMRTDIR); tar xf -)
571         find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
572         cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
573         cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
574         cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
575         cp emx.dll emxlibcs.dll dist/vim/$(VIMRTDIR)
576         cd dist && zip -9 -rD -z vim$(VERSION)os2.zip vim <$(COMMENT_OS2)
577
578 html: dist dist/$(COMMENT_HTML)
579         -rm -rf dist/vim$(VERSION)html.zip
580         cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)
581
582 farsi: dist dist/$(COMMENT_FARSI)
583         -rm -f dist/farsi$(VERSION).zip
584         zip -9 -rD -z dist/farsi$(VERSION).zip farsi < dist/$(COMMENT_FARSI)