blob: 97406ab535b83f35d7ceea1d6b87ba197e033a44 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001INSTALLvms.txt - Installation of Vim on OpenVMS
2
Zoltan Arpadffy1c8e2332023-12-05 16:04:23 +01003Maintainer: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
4Last change: 2023 Nov 29
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
6This file contains instructions for compiling Vim on Openvms.
7If you already have an executable version of Vim, you don't need this.
8
9If you skip settings described here, then you will get the default Vim
10behavior as it is documented, which should be fine for most users.
11
Bram Moolenaar23515b42020-11-29 14:36:24 +010012The file "feature.h" can be edited to match your preferences, but this file
Bram Moolenaar071d4272004-06-13 20:20:40 +000013does not describe possibilities hidden in feature.h acrobatics, however
Bram Moolenaar23515b42020-11-29 14:36:24 +010014parameters from MAKE_VMS.MMS actively use and set up parameters in relation
Bram Moolenaar071d4272004-06-13 20:20:40 +000015with feature.h
16
Bram Moolenaar23515b42020-11-29 14:36:24 +010017More information and case analysis you can find in os_vms.txt
Bram Moolenaar071d4272004-06-13 20:20:40 +000018([runtime.doc]os_vms.txt or :help vms from vim prompt)
19
20Contents:
211. Download files
222. Configuration
233. Compilation DECC
244. Compilation VAXC
255. CTAGS, XXD
266. Deployment
277. GTK and other features
288. Notes
299. Authors
30
31----------------------------------------------------------------------------
321. Download files
33
341.1. Visit the Vim ftp site (see ftp://ftp.vim.org/pub/vim/MIRRORS)
35 and obtain the following three files:
36
37 unix/vim-X.X-src.tar.gz
38 unix/vim-X.X-rt.tar.gz
39 extra/vim-X.X-extra.tar.gz
40
41 where X.X is the version number.
42
Zoltan Arpadffy1c8e2332023-12-05 16:04:23 +010043You may want to clone the latest source code from https://github/vim/vim
44Or the last tested on OpenVMS from http://polarhome.com/vim/files/source/vms/
45
Bram Moolenaar071d4272004-06-13 20:20:40 +0000461.2. Expand the three archives.
47
481.3. Apply patches if they exist. (Patch files are found in the ftp
49 site in the "patches" directory.)
50
511.4. You will need either the DECSET mms utility or the freely available clone
52 of it called mmk (VMS has no make utility in the standard distribution).
53 You can download mmk from http://www.openvms.digital.com/freeware/MMK/
54
551.5. If you want to have Perl, Python or Tcl support in Vim you will need VMS
56 distributions for them as well.
57
581.6 If you want to have GTK executable, you need to have properly installed
59 GTK libraries.
60
61NOTE: procedure in chapter 1 describes source code preparation from multi OS
Bram Moolenaarf711faf2007-05-10 16:48:19 +000062code, however it is available OpenVMS optimized (and tested) source code from:
Bram Moolenaar071d4272004-06-13 20:20:40 +000063ftp://ftp.polarhome.com/pub/vim/source/vms/
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000064(http://www.polarhome.com/vim/files/source/vms/)
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
66Current OpenVMS source code as .zip or .tar.gz file is possible to download
67from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000068(http://www.polarhome.com/cvs/SOURCE/)
Bram Moolenaar071d4272004-06-13 20:20:40 +000069
702. Configuration
71
722.1. Edit vim-X.X/src/feature.h for your preference. (You can skip
73 this, then you will get the default behavior as is documented,
74 which should be fine for most people.)
75
76 For example, if you want to add the MULTI_BYTE feature, turn on
77 #define MULTI_BYTE
78
792.2 Edit vim-X.X/src/Make_vms.mms to customize your Vim. Options are:
80
81 Parameter name : MODEL
82 Description : Build model selection
Martin Tournoij7904fa42022-10-04 16:28:45 +010083 Options: : TINY - No optional features enabled
Bram Moolenaar071d4272004-06-13 20:20:40 +000084 NORMAL - A default selection of features enabled
Martin Tournoij25f3a142022-10-08 19:26:41 +010085 (OpenVMS default)
Bram Moolenaara7241f52008-06-24 20:39:31 +000086 HUGE - All possible features enabled.
Zoltan Arpadffy1c8e2332023-12-05 16:04:23 +010087 Uncommented - will default to HUGE
Martin Tournoij25f3a142022-10-08 19:26:41 +010088 Default : MODEL = NORMAL
Bram Moolenaar071d4272004-06-13 20:20:40 +000089
90 Parameter name : GUI
91 Description : GUI or terminal mode executable
92 Options: : YES - GUI executable
93 Uncommented - char only
94 Default : GUI = YES
95
96 Parameter name : GTK
97 Description : Enable GTK in GUI mode.
98 It enables features as toolbar etc.
99 Options: : YES - GTK executable
100 Uncommented - without GTK
101 Default : Uncommented
102
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000103 Parameter name : XPM
104 Description : Enable XPM libraries in GUI/Motif mode.
105 It enables features as toolbar etc.
106 Options: : YES - GUI executable
107 Uncommented - without XPM
108 Default : Uncommented
109
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110 Parameter name : DECC
111 Description : Compiler selection
112 Options: : YES - DECC compiler
113 Uncommented - VAXC compiler
114 Default : DECC = YES
115
116 Parameter name : CCVER
117 Description : Compiler version with :ver command
118 Options: : YES - Compiler version info will be added
119 Uncommented - will not be added
120 Default : CCVER = YES
121
122 Parameter name : DEBUG
Zoltan Arpadffy1c8e2332023-12-05 16:04:23 +0100123 Description : Building a debug version (DVIM.EXE)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124 Options: : YES - debug version will be built
125 Uncommented - building normal executable
126 Default : Uncommented
127
128 Parameter name : VIM_TCL
129 Description : Add Tcl support
130 Options: : YES - Build with support
131 Uncommented - build without support.
132 Default : Uncommented
133
134 Parameter name : VIM_PERL
135 Description : Add Perl support
136 Options: : YES - Build with support
137 Uncommented - build without support.
138 Default : Uncommented
139
140 Parameter name : VIM_PYTHON
141 Description : Add Python support
142 Options: : YES - Build with support
143 Uncommented - build without support.
144 Default : Uncommented
145
Bram Moolenaar071d4272004-06-13 20:20:40 +0000146 Parameter name : VIM_XIM
147 Description : X Input Method. For entering special languages
Bram Moolenaar23515b42020-11-29 14:36:24 +0100148 like Chinese and Japanese. Please define just
Bram Moolenaar071d4272004-06-13 20:20:40 +0000149 one: VIM_XIM or VIM_HANGULIN
150 Options: : YES - Build with support
151 Uncommented - build without support.
152 Default : Uncommented
153
154 Parameter name : VIM_HANGULIN
155 Description : Internal Hangul input method. GUI only.
156 Please define just one: VIM_XIM or VIM_HANGULIN
157 Options: : YES - Build with support
158 Uncommented - build without support.
159 Default : Uncommented
160
161 Parameter name : VIM_TAG_ANYWHITE
162 Description : Allow any white space to separate the fields in a
163 tags file
164 When not defined, only a TAB is allowed.
165 Options: : YES - Build with support
166 Uncommented - build without support.
167 Default : Uncommented
168
Zoltan Arpadffy1c8e2332023-12-05 16:04:23 +0100169 Parameter name : VIM_RUBY
170 Description : Add Ruby support
171 Options: : YES - Build with support
172 Uncommented - build without support.
173 Default : Uncommented
174
175 Parameter name : VIM_LUA
176 Description : Add Lua support
177 Options: : YES - Build with support
178 Uncommented - build without support.
179 Default : Uncommented
180
181 Parameter name : VIM_MZSCHEME
182 Description : Add support for FEATURE_MZSCHEM
183 Options: : YES - Build with support
184 Uncommented - build without FEATURE_MZSCHEM.
185 Default : Uncommented
186
187 Parameter name : VIM_ICONV
188 Description : Build with using the ICONV library
189 Options: : YES - Build with support
190 Uncommented - build without support.
191 Default : Uncommented
192
193 Parameter name : MODIFIED_BY
194 Description : Add note if you modified the code
195 Options: : YES - Build with adding the MODIFIED_BY define
196 Uncommented - build without the define
197 Default : Uncommented
198
Bram Moolenaar071d4272004-06-13 20:20:40 +0000199 You can edit the *_INC and *_LIB qualifiers, but it is really
200 not recommended for beginners.
201
2023. Compilation DECC
203
2043.1. If you have MSS on your system, the command
205
206 mms /descrip=Make_vms.mms
207
208 will start building your own customized version of Vim.
209 The adequate command for mmk is:
210
211 mmk /descrip=Make_vms.mms
212
213 NOTE: Because of empty /auto/config.h (needed for Unix configure) build
214 will fail with very strange messages. Therefore before building, it is
215 recommended to make one clean up, to prepare everything for OpenVMS
216 development. The command is:
217
218 mms /descrip=Make_vms.mms clean
219
Zoltan Arpadffy1c8e2332023-12-05 16:04:23 +0100220 The build will stop if any error or warning is encontered. In some cases
221 the warnings can be ignored. Use:
222
223 mms /descrip=Make_vms.mms /ignore=warning
224
Bram Moolenaar071d4272004-06-13 20:20:40 +00002254. Compilation VAXC
226
2274.1. VAXC compiler is not fully ANSI C compatible in pre-processor directives
228 semantics, therefore you have to use a converter program what will do the
229 lion part of the job.
230
231 @os_vms_fix.com *.c *.h <.proto>*.pro
232
233 more information can be found in os_vms_fix.com file itself.
234
235 NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
Bram Moolenaar4b96df52020-01-26 22:00:26 +0100236 leave single (long) line directives. You have to fix them manually.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000237 Known problematic files are option.h and option.c
238
2394.2. After the conversion you can continue building as it has been described
240 above.
241
2425. CTAGS, XXD
243
2445.1. MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and
245 XXD.EXE you should change to subdirectory <.CTAGS> or <.XXD> and build
246 them separately.
247
Bram Moolenaar23515b42020-11-29 14:36:24 +01002485.2. In these directories you can find one make file for VMS as well.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000249 Please read the detailed build instructions in the related *.MMS file.
250
2516. Deployment
252
2536.1. Copy over all executables to the deployment directory.
254
2556.2. Vim uses a special directory structure to hold the document and runtime
256 files:
257
258 vim (or wherever)
259 |-- doc
260 |-- syntax
261 vimrc (system rc files)
262 gvimrc
263
2646.3 Define logicals VIM
265
266 define/nolog VIM device:[leading-path-here.vim]
267
268 to get vim.exe to find its document, filetype, and syntax files.
269
270 Now, if you are lucky you should have one own built, customized and
271 working Vim.
272
2737. GTK and other features
274
2757.1 General notes
276
Bram Moolenaar3b0dd7c2010-08-01 14:36:59 +0200277 To be able to build external GUI or language support you have to enable
Bram Moolenaar96f45c02019-10-26 19:53:45 +0200278 related feature in MAKE_VMS.MMS file. Usually it needs some extra tuning
Bram Moolenaar071d4272004-06-13 20:20:40 +0000279 around include files, shared libraries etc.
280
281 Please note, that leading "," are valuable for MMS/MMK syntax.
282
283 MAKE_VMS.MMS uses defines as described below:
284
2857.1.1 feature_DEF = ,"SOME_FEATURE"
286
287 Submits definition to compiler preprocessor to enable code blocks
288 defined with
289 #ifdef SOME_FEATURE
290 {some code here}
291 #endif
292
293 Example: TCL_DEF = ,"FEAT_TCL"
294
295
2967.1.2 feature_SRC = code1.c code2.c
297
298 Defines source code related with particular feature.
299 Example: TCL_SRC = if_tcl.c
300
3017.1.3 feature_OBJ = code1.obj code2.obj
302
303 Lists objects created from source codes listed in feature_SRC
304 Example: PERL_OBJ = if_perlsfio.obj if_perl.obj
305
3067.1.4 feature_LIB = ,OS_VMS_TCL.OPT/OPT
307
308 Defines the libraries that have to be used for build.
309 If it is an OPT file then MAKE_VMS.MMS creates OPT files
310 in gen_feature procedure.
311
312 Example:
313 PERL_LIB = ,OS_VMS_PERL.OPT/OPT
314
315.IFDEF VIM_PERL
316perl_env :
317 -@ write sys$output "creating OS_VMS_PERL.OPT file."
318 -@ open/write opt_file OS_VMS_PERL.OPT
319 -@ write opt_file "PERLSHR /share"
320 -@ close opt_file
321.ELSE
322perl_env :
323 -@ !
324.ENDIF
325
326
3277.1.5 feature_INC = ,dka0:[tcl80.generic]
328
329 Defines the directory where the necessary include files are.
330 Example: TCL_INC = ,dka0:[tcl80.generic]
331
3327.2 GTK
333
334 To build VIM with GTK you have to install GTK on your OpenVMS.
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000335 So far it works just on Alpha and IA64. More information at:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000336 http://www.openvms.compaq.com/openvms/products/ips/gtk.html
337
Bram Moolenaar23515b42020-11-29 14:36:24 +0100338 You also need the OpenVMS Porting Library:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000339 http://www.openvms.compaq.com/openvms/products/ips/porting.html
340
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000341 Source code for GTK and porting library that is used to build
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000342 VMS executables at polarhome.com are at
343 http://www.polarhome.com/vim/files/source/vms/
344
Bram Moolenaar071d4272004-06-13 20:20:40 +0000345 Enable GTK in make_vms.mms file with GTK = YES
346 Define GTK_ROOT that points to your GTK root directory.
347
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000348 You will need to edit GTKDIR variable in order to point
349 to GTK header files and libraries.
350
351 GTK_DIR = ALPHA$DKA0:[GTK128.]
352
353 ".]" at the end is very important.
354
Bram Moolenaar071d4272004-06-13 20:20:40 +0000355 Build it as normally.
356
Bram Moolenaar4b96df52020-01-26 22:00:26 +0100357 Used shareable images are:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000358 gtk_root:[glib]libglib.exe /share,-
359 gtk_root:[glib.gmodule]libgmodule.exe /share,-
360 gtk_root:[gtk.gdk]libgdk.exe /share,-
361 gtk_root:[gtk.gtk]libgtk.exe /share
362
363 During runtime it is suggested to have all these files installed and
Bram Moolenaarf711faf2007-05-10 16:48:19 +0000364 copied to SYS$LIBRARY: to be able to use it without problems.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000365 Also VMS_JACKETS.EXE from OpenVMS Porting Library.
366
367 Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
Bram Moolenaar84a05ac2013-05-06 04:24:17 +0200368 compiler directives that is not compatible with "standard" VMS usage,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000369 therefore other external features might fail as PERL, PYTHON and TCL
370 support.
371
3727.3 PERL
373
374 You have to install OpenVMS perl package from:
375 http://www.openvms.compaq.com/openvms/products/ips/apache/csws_perl_relnotes.html or build on your own from sources downloaded from http://www.perl.org
376
377 You need defined PERLSHR logical that points to PERL shareable image
378 (or you can just copy over to SYS$LIBRARY:)
379
380 Enable Perl feature at make_vms.mms with VIM_PERL = YES
381
382 Edit PERL_INC = to point to perl includes directory where is extern.h
383
Bram Moolenaar23515b42020-11-29 14:36:24 +0100384 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000385
3867.4 PYTHON
387
388 You have to install an OpenVMS python package.
389 Set up the normal Python work environment.
390
391 You have to have defined PYTHON_INCLUDE and PYTHON_OLB logicals.
392 PYTHON_INCLUDE should point to Python include files where for ex:
393 python.h is located.
394 Enable Python feature at make_vms.mms with VIM_PYTHON = YES
395
Bram Moolenaar23515b42020-11-29 14:36:24 +0100396 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000397
3987.5 TCL
399
400 You have to install an OpenVMS TCL package.
401 Set up the normal TCL work environment.
402
403 You have to have defined TCLSHR logical that points to shareable image.
404
405 Enable TCL feature at make_vms.mms with VIM_TCL = YES
406
407 Edit TCL_INC = to point to TCL includes directory where is tcl.h
408
Bram Moolenaar23515b42020-11-29 14:36:24 +0100409 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000410
4118. Notes
412
4138.1. New Compaq C compiler
414
Bram Moolenaar23515b42020-11-29 14:36:24 +0100415 If you are using Compaq C compiler V6.2 or newer, informational messages
Bram Moolenaar071d4272004-06-13 20:20:40 +0000416 of the type QUESTCOMPARE will be displayed. You should ignore those
417 messages ; they are generated only because some test comparisons are done
418 with variables which type vary depending on the OS. Under VMS, those are
419 "unsigned" and the compiler issue a message whenever the comparison is
420 done with '<=' to 0. However, the code is correct and will behave as
421 expected.
422 ( Jerome Lauret <JLAURET@mail.chem.sunysb.edu> Vim 6.0n )
423 NOTE: from version 6.0ad Vim code has been reviewed and these warnings
424 have been corrected.
425
4269. Authors
427
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000428 Initial version, 2000 Jul 19, Zoltan Arpadffy <arpadffy@polarhome.com>