1# 2# Makefile for the Vim documentation on Unix 3# 4# If you get "don't know how to make scratch", first run make in the source 5# directory. Or remove the include below. 6 7AWK = awk 8 9# Set to $(VIMTARGET) when executed from src/Makefile. 10VIMEXE = vim 11 12# include the config.mk from the source directory. It's only needed to set 13# AWK, used for "make html". Comment this out if the include gives problems. 14include ../../src/auto/config.mk 15 16DOCS = \ 17 arabic.txt \ 18 autocmd.txt \ 19 change.txt \ 20 channel.txt \ 21 cmdline.txt \ 22 debug.txt \ 23 debugger.txt \ 24 develop.txt \ 25 diff.txt \ 26 digraph.txt \ 27 editing.txt \ 28 eval.txt \ 29 farsi.txt \ 30 filetype.txt \ 31 fold.txt \ 32 ft_ada.txt \ 33 ft_sql.txt \ 34 gui.txt \ 35 gui_w16.txt \ 36 gui_w32.txt \ 37 gui_x11.txt \ 38 hangulin.txt \ 39 hebrew.txt \ 40 help.txt \ 41 helphelp.txt \ 42 howto.txt \ 43 if_cscop.txt \ 44 if_lua.txt \ 45 if_mzsch.txt \ 46 if_ole.txt \ 47 if_perl.txt \ 48 if_pyth.txt \ 49 if_ruby.txt \ 50 if_sniff.txt \ 51 if_tcl.txt \ 52 indent.txt \ 53 index.txt \ 54 insert.txt \ 55 intro.txt \ 56 map.txt \ 57 mbyte.txt \ 58 message.txt \ 59 mlang.txt \ 60 motion.txt \ 61 netbeans.txt \ 62 options.txt \ 63 os_390.txt \ 64 os_amiga.txt \ 65 os_beos.txt \ 66 os_dos.txt \ 67 os_mac.txt \ 68 os_mint.txt \ 69 os_msdos.txt \ 70 os_os2.txt \ 71 os_qnx.txt \ 72 os_risc.txt \ 73 os_unix.txt \ 74 os_vms.txt \ 75 os_win32.txt \ 76 pattern.txt \ 77 pi_getscript.txt \ 78 pi_gzip.txt \ 79 pi_logipat.txt \ 80 pi_netrw.txt \ 81 pi_paren.txt \ 82 pi_spec.txt \ 83 pi_tar.txt \ 84 pi_vimball.txt \ 85 pi_zip.txt \ 86 print.txt \ 87 quickfix.txt \ 88 quickref.txt \ 89 quotes.txt \ 90 recover.txt \ 91 remote.txt \ 92 repeat.txt \ 93 rileft.txt \ 94 russian.txt \ 95 scroll.txt \ 96 sign.txt \ 97 spell.txt \ 98 sponsor.txt \ 99 starting.txt \ 100 syntax.txt \ 101 tabpage.txt \ 102 tagsrch.txt \ 103 term.txt \ 104 tips.txt \ 105 todo.txt \ 106 uganda.txt \ 107 undo.txt \ 108 usr_01.txt \ 109 usr_02.txt \ 110 usr_03.txt \ 111 usr_04.txt \ 112 usr_05.txt \ 113 usr_06.txt \ 114 usr_07.txt \ 115 usr_08.txt \ 116 usr_09.txt \ 117 usr_10.txt \ 118 usr_11.txt \ 119 usr_12.txt \ 120 usr_20.txt \ 121 usr_21.txt \ 122 usr_22.txt \ 123 usr_23.txt \ 124 usr_24.txt \ 125 usr_25.txt \ 126 usr_26.txt \ 127 usr_27.txt \ 128 usr_28.txt \ 129 usr_29.txt \ 130 usr_30.txt \ 131 usr_31.txt \ 132 usr_32.txt \ 133 usr_40.txt \ 134 usr_41.txt \ 135 usr_42.txt \ 136 usr_43.txt \ 137 usr_44.txt \ 138 usr_45.txt \ 139 usr_90.txt \ 140 usr_toc.txt \ 141 various.txt \ 142 version4.txt \ 143 version5.txt \ 144 version6.txt \ 145 version7.txt \ 146 vi_diff.txt \ 147 visual.txt \ 148 windows.txt \ 149 workshop.txt 150 151HTMLS = \ 152 arabic.html \ 153 autocmd.html \ 154 change.html \ 155 channel.html \ 156 cmdline.html \ 157 debug.html \ 158 debugger.html \ 159 develop.html \ 160 diff.html \ 161 digraph.html \ 162 editing.html \ 163 eval.html \ 164 farsi.html \ 165 filetype.html \ 166 fold.html \ 167 ft_ada.html \ 168 ft_sql.html \ 169 gui.html \ 170 gui_w16.html \ 171 gui_w32.html \ 172 gui_x11.html \ 173 hangulin.html \ 174 hebrew.html \ 175 helphelp.html \ 176 howto.html \ 177 if_cscop.html \ 178 if_lua.html \ 179 if_mzsch.html \ 180 if_ole.html \ 181 if_perl.html \ 182 if_pyth.html \ 183 if_ruby.html \ 184 if_sniff.html \ 185 if_tcl.html \ 186 indent.html \ 187 index.html \ 188 insert.html \ 189 intro.html \ 190 map.html \ 191 mbyte.html \ 192 message.html \ 193 mlang.html \ 194 motion.html \ 195 netbeans.html \ 196 options.html \ 197 os_390.html \ 198 os_amiga.html \ 199 os_beos.html \ 200 os_dos.html \ 201 os_mac.html \ 202 os_mint.html \ 203 os_msdos.html \ 204 os_os2.html \ 205 os_qnx.html \ 206 os_risc.html \ 207 os_unix.html \ 208 os_vms.html \ 209 os_win32.html \ 210 pattern.html \ 211 pi_getscript.html \ 212 pi_gzip.html \ 213 pi_logipat.html \ 214 pi_netrw.html \ 215 pi_paren.html \ 216 pi_spec.html \ 217 pi_tar.html \ 218 pi_vimball.html \ 219 pi_zip.html \ 220 print.html \ 221 quickfix.html \ 222 quickref.html \ 223 quotes.html \ 224 recover.html \ 225 remote.html \ 226 repeat.html \ 227 rileft.html \ 228 russian.html \ 229 scroll.html \ 230 sign.html \ 231 spell.html \ 232 sponsor.html \ 233 starting.html \ 234 syntax.html \ 235 tabpage.html \ 236 tagsrch.html \ 237 term.html \ 238 tips.html \ 239 todo.html \ 240 uganda.html \ 241 undo.html \ 242 usr_01.html \ 243 usr_02.html \ 244 usr_03.html \ 245 usr_04.html \ 246 usr_05.html \ 247 usr_06.html \ 248 usr_07.html \ 249 usr_08.html \ 250 usr_09.html \ 251 usr_10.html \ 252 usr_11.html \ 253 usr_12.html \ 254 usr_20.html \ 255 usr_21.html \ 256 usr_22.html \ 257 usr_23.html \ 258 usr_24.html \ 259 usr_25.html \ 260 usr_26.html \ 261 usr_27.html \ 262 usr_28.html \ 263 usr_29.html \ 264 usr_30.html \ 265 usr_31.html \ 266 usr_32.html \ 267 usr_40.html \ 268 usr_41.html \ 269 usr_42.html \ 270 usr_43.html \ 271 usr_44.html \ 272 usr_45.html \ 273 usr_90.html \ 274 usr_toc.html \ 275 various.html \ 276 version4.html \ 277 version5.html \ 278 version6.html \ 279 version7.html \ 280 vi_diff.html \ 281 vimindex.html \ 282 visual.html \ 283 windows.html \ 284 workshop.html 285 286CONVERTED = \ 287 vim-fr.UTF-8.1 \ 288 evim-fr.UTF-8.1 \ 289 vimdiff-fr.UTF-8.1 \ 290 vimtutor-fr.UTF-8.1 \ 291 xxd-fr.UTF-8.1 \ 292 vim-it.UTF-8.1 \ 293 evim-it.UTF-8.1 \ 294 vimdiff-it.UTF-8.1 \ 295 vimtutor-it.UTF-8.1 \ 296 xxd-it.UTF-8.1 \ 297 vim-pl.UTF-8.1 \ 298 evim-pl.UTF-8.1 \ 299 vimdiff-pl.UTF-8.1 \ 300 vimtutor-pl.UTF-8.1 \ 301 xxd-pl.UTF-8.1 \ 302 vim-ru.UTF-8.1 \ 303 evim-ru.UTF-8.1 \ 304 vimdiff-ru.UTF-8.1 \ 305 vimtutor-ru.UTF-8.1 \ 306 xxd-ru.UTF-8.1 307 308.SUFFIXES: 309.SUFFIXES: .c .o .txt .html 310 311all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED) 312 313# Use Vim to generate the tags file. Can only be used when Vim has been 314# compiled and installed. Supports multiple languages. 315vimtags: $(DOCS) 316 $(VIMEXE) -u NONE -esX -c "helptags ++t ." -c quit 317 318# Use "doctags" to generate the tags file. Only works for English! 319tags: doctags $(DOCS) 320 ./doctags $(DOCS) | LANG=C LC_ALL=C sort >tags 321 uniq -d -2 tags 322 323doctags: doctags.c 324 $(CC) doctags.c -o doctags 325 326vim.man: vim.1 327 nroff -man vim.1 | sed -e s/.//g > vim.man 328 329evim.man: evim.1 330 nroff -man evim.1 | sed -e s/.//g > evim.man 331 332vimdiff.man: vimdiff.1 333 nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man 334 335vimtutor.man: vimtutor.1 336 nroff -man vimtutor.1 | sed -e s/.//g > vimtutor.man 337 338xxd.man: xxd.1 339 nroff -man xxd.1 | sed -e s/.//g > xxd.man 340 341uganda.nsis.txt: uganda.txt 342 sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78://' \ 343 uganda.txt | uniq >uganda.nsis.txt 344 345# Awk version of .txt to .html conversion. 346html: noerrors tags $(HTMLS) 347 @if test -f errors.log; then more errors.log; fi 348 349noerrors: 350 -rm -f errors.log 351 352$(HTMLS): tags.ref 353 354.txt.html: 355 $(AWK) -f makehtml.awk $< >$@ 356 357# index.html is the starting point for HTML, but for the help files it is 358# help.txt. Therefore use vimindex.html for index.txt. 359index.html: help.txt 360 $(AWK) -f makehtml.awk help.txt >index.html 361 362vimindex.html: index.txt 363 $(AWK) -f makehtml.awk index.txt >vimindex.html 364 365tags.ref tags.html: tags 366 $(AWK) -f maketags.awk tags >tags.html 367 368# Perl version of .txt to .html conversion. 369# There can't be two rules to produce a .html from a .txt file. 370# Just run over all .txt files each time one changes. It's fast anyway. 371perlhtml: tags $(DOCS) 372 ./vim2html.pl tags $(DOCS) 373 374clean: 375 -rm doctags *.html tags.ref 376 377# These files are in the extra archive, skip if not present 378 379arabic.txt: 380 touch arabic.txt 381 382farsi.txt: 383 touch farsi.txt 384 385hebrew.txt: 386 touch hebrew.txt 387 388russian.txt: 389 touch russian.txt 390 391gui_w16.txt: 392 touch gui_w16.txt 393 394gui_w32.txt: 395 touch gui_w32.txt 396 397if_ole.txt: 398 touch if_ole.txt 399 400os_390.txt: 401 touch os_390.txt 402 403os_amiga.txt: 404 touch os_amiga.txt 405 406os_beos.txt: 407 touch os_beos.txt 408 409os_dos.txt: 410 touch os_dos.txt 411 412os_mac.txt: 413 touch os_mac.txt 414 415os_mint.txt: 416 touch os_mint.txt 417 418os_msdos.txt: 419 touch os_msdos.txt 420 421os_os2.txt: 422 touch os_os2.txt 423 424os_qnx.txt: 425 touch os_qnx.txt 426 427os_risc.txt: 428 touch os_risc.txt 429 430os_win32.txt: 431 touch os_win32.txt 432 433# Note that $< works with GNU make while $> works for BSD make. 434# Is there a solution that works for both?? 435vim-fr.UTF-8.1: vim-fr.1 436 iconv -f latin1 -t utf-8 $< >$@ 437 438evim-fr.UTF-8.1: evim-fr.1 439 iconv -f latin1 -t utf-8 $< >$@ 440 441vimdiff-fr.UTF-8.1: vimdiff-fr.1 442 iconv -f latin1 -t utf-8 $< >$@ 443 444vimtutor-fr.UTF-8.1: vimtutor-fr.1 445 iconv -f latin1 -t utf-8 $< >$@ 446 447xxd-fr.UTF-8.1: xxd-fr.1 448 iconv -f latin1 -t utf-8 $< >$@ 449 450vim-it.UTF-8.1: vim-it.1 451 iconv -f latin1 -t utf-8 $< >$@ 452 453evim-it.UTF-8.1: evim-it.1 454 iconv -f latin1 -t utf-8 $< >$@ 455 456vimdiff-it.UTF-8.1: vimdiff-it.1 457 iconv -f latin1 -t utf-8 $< >$@ 458 459vimtutor-it.UTF-8.1: vimtutor-it.1 460 iconv -f latin1 -t utf-8 $< >$@ 461 462xxd-it.UTF-8.1: xxd-it.1 463 iconv -f latin1 -t utf-8 $< >$@ 464 465vim-pl.UTF-8.1: vim-pl.1 466 iconv -f latin2 -t utf-8 $< >$@ 467 468evim-pl.UTF-8.1: evim-pl.1 469 iconv -f latin2 -t utf-8 $< >$@ 470 471vimdiff-pl.UTF-8.1: vimdiff-pl.1 472 iconv -f latin2 -t utf-8 $< >$@ 473 474vimtutor-pl.UTF-8.1: vimtutor-pl.1 475 iconv -f latin2 -t utf-8 $< >$@ 476 477xxd-pl.UTF-8.1: xxd-pl.1 478 iconv -f latin2 -t utf-8 $< >$@ 479 480vim-ru.UTF-8.1: vim-ru.1 481 iconv -f KOI8-R -t utf-8 $< >$@ 482 483evim-ru.UTF-8.1: evim-ru.1 484 iconv -f KOI8-R -t utf-8 $< >$@ 485 486vimdiff-ru.UTF-8.1: vimdiff-ru.1 487 iconv -f KOI8-R -t utf-8 $< >$@ 488 489vimtutor-ru.UTF-8.1: vimtutor-ru.1 490 iconv -f KOI8-R -t utf-8 $< >$@ 491 492xxd-ru.UTF-8.1: xxd-ru.1 493 iconv -f KOI8-R -t utf-8 $< >$@ 494