blob: c23515116520ef2c014a9e7aac650d4b2033f030 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001INSTALLvms.txt - Installation of Vim on OpenVMS
2
Bram Moolenaar5eba4c22005-07-12 22:40:29 +00003Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
Bram Moolenaara7241f52008-06-24 20:39:31 +00004Last change: 2008 Jan 06
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
431.2. Expand the three archives.
44
451.3. Apply patches if they exist. (Patch files are found in the ftp
46 site in the "patches" directory.)
47
481.4. You will need either the DECSET mms utility or the freely available clone
49 of it called mmk (VMS has no make utility in the standard distribution).
50 You can download mmk from http://www.openvms.digital.com/freeware/MMK/
51
521.5. If you want to have Perl, Python or Tcl support in Vim you will need VMS
53 distributions for them as well.
54
551.6 If you want to have GTK executable, you need to have properly installed
56 GTK libraries.
57
58NOTE: procedure in chapter 1 describes source code preparation from multi OS
Bram Moolenaarf711faf2007-05-10 16:48:19 +000059code, however it is available OpenVMS optimized (and tested) source code from:
Bram Moolenaar071d4272004-06-13 20:20:40 +000060ftp://ftp.polarhome.com/pub/vim/source/vms/
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000061(http://www.polarhome.com/vim/files/source/vms/)
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
63Current OpenVMS source code as .zip or .tar.gz file is possible to download
64from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000065(http://www.polarhome.com/cvs/SOURCE/)
Bram Moolenaar071d4272004-06-13 20:20:40 +000066
672. Configuration
68
692.1. Edit vim-X.X/src/feature.h for your preference. (You can skip
70 this, then you will get the default behavior as is documented,
71 which should be fine for most people.)
72
73 For example, if you want to add the MULTI_BYTE feature, turn on
74 #define MULTI_BYTE
75
762.2 Edit vim-X.X/src/Make_vms.mms to customize your Vim. Options are:
77
78 Parameter name : MODEL
79 Description : Build model selection
Martin Tournoij7904fa42022-10-04 16:28:45 +010080 Options: : TINY - No optional features enabled
Bram Moolenaar071d4272004-06-13 20:20:40 +000081 NORMAL - A default selection of features enabled
Martin Tournoij25f3a142022-10-08 19:26:41 +010082 (OpenVMS default)
Bram Moolenaara7241f52008-06-24 20:39:31 +000083 HUGE - All possible features enabled.
Martin Tournoij25f3a142022-10-08 19:26:41 +010084 Uncommented - will default to NORMAL
85 Default : MODEL = NORMAL
Bram Moolenaar071d4272004-06-13 20:20:40 +000086
87 Parameter name : GUI
88 Description : GUI or terminal mode executable
89 Options: : YES - GUI executable
90 Uncommented - char only
91 Default : GUI = YES
92
93 Parameter name : GTK
94 Description : Enable GTK in GUI mode.
95 It enables features as toolbar etc.
96 Options: : YES - GTK executable
97 Uncommented - without GTK
98 Default : Uncommented
99
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000100 Parameter name : XPM
101 Description : Enable XPM libraries in GUI/Motif mode.
102 It enables features as toolbar etc.
103 Options: : YES - GUI executable
104 Uncommented - without XPM
105 Default : Uncommented
106
Bram Moolenaar071d4272004-06-13 20:20:40 +0000107 Parameter name : DECC
108 Description : Compiler selection
109 Options: : YES - DECC compiler
110 Uncommented - VAXC compiler
111 Default : DECC = YES
112
113 Parameter name : CCVER
114 Description : Compiler version with :ver command
115 Options: : YES - Compiler version info will be added
116 Uncommented - will not be added
117 Default : CCVER = YES
118
119 Parameter name : DEBUG
120 Description : Building a debug version
121 Options: : YES - debug version will be built
122 Uncommented - building normal executable
123 Default : Uncommented
124
125 Parameter name : VIM_TCL
126 Description : Add Tcl support
127 Options: : YES - Build with support
128 Uncommented - build without support.
129 Default : Uncommented
130
131 Parameter name : VIM_PERL
132 Description : Add Perl support
133 Options: : YES - Build with support
134 Uncommented - build without support.
135 Default : Uncommented
136
137 Parameter name : VIM_PYTHON
138 Description : Add Python support
139 Options: : YES - Build with support
140 Uncommented - build without support.
141 Default : Uncommented
142
Bram Moolenaar071d4272004-06-13 20:20:40 +0000143 Parameter name : VIM_XIM
144 Description : X Input Method. For entering special languages
Bram Moolenaar23515b42020-11-29 14:36:24 +0100145 like Chinese and Japanese. Please define just
Bram Moolenaar071d4272004-06-13 20:20:40 +0000146 one: VIM_XIM or VIM_HANGULIN
147 Options: : YES - Build with support
148 Uncommented - build without support.
149 Default : Uncommented
150
151 Parameter name : VIM_HANGULIN
152 Description : Internal Hangul input method. GUI only.
153 Please define just one: VIM_XIM or VIM_HANGULIN
154 Options: : YES - Build with support
155 Uncommented - build without support.
156 Default : Uncommented
157
158 Parameter name : VIM_TAG_ANYWHITE
159 Description : Allow any white space to separate the fields in a
160 tags file
161 When not defined, only a TAB is allowed.
162 Options: : YES - Build with support
163 Uncommented - build without support.
164 Default : Uncommented
165
166 You can edit the *_INC and *_LIB qualifiers, but it is really
167 not recommended for beginners.
168
1693. Compilation DECC
170
1713.1. If you have MSS on your system, the command
172
173 mms /descrip=Make_vms.mms
174
175 will start building your own customized version of Vim.
176 The adequate command for mmk is:
177
178 mmk /descrip=Make_vms.mms
179
180 NOTE: Because of empty /auto/config.h (needed for Unix configure) build
181 will fail with very strange messages. Therefore before building, it is
182 recommended to make one clean up, to prepare everything for OpenVMS
183 development. The command is:
184
185 mms /descrip=Make_vms.mms clean
186
1874. Compilation VAXC
188
1894.1. VAXC compiler is not fully ANSI C compatible in pre-processor directives
190 semantics, therefore you have to use a converter program what will do the
191 lion part of the job.
192
193 @os_vms_fix.com *.c *.h <.proto>*.pro
194
195 more information can be found in os_vms_fix.com file itself.
196
197 NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
Bram Moolenaar4b96df52020-01-26 22:00:26 +0100198 leave single (long) line directives. You have to fix them manually.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000199 Known problematic files are option.h and option.c
200
2014.2. After the conversion you can continue building as it has been described
202 above.
203
2045. CTAGS, XXD
205
2065.1. MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and
207 XXD.EXE you should change to subdirectory <.CTAGS> or <.XXD> and build
208 them separately.
209
Bram Moolenaar23515b42020-11-29 14:36:24 +01002105.2. In these directories you can find one make file for VMS as well.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000211 Please read the detailed build instructions in the related *.MMS file.
212
2136. Deployment
214
2156.1. Copy over all executables to the deployment directory.
216
2176.2. Vim uses a special directory structure to hold the document and runtime
218 files:
219
220 vim (or wherever)
221 |-- doc
222 |-- syntax
223 vimrc (system rc files)
224 gvimrc
225
2266.3 Define logicals VIM
227
228 define/nolog VIM device:[leading-path-here.vim]
229
230 to get vim.exe to find its document, filetype, and syntax files.
231
232 Now, if you are lucky you should have one own built, customized and
233 working Vim.
234
2357. GTK and other features
236
2377.1 General notes
238
Bram Moolenaar3b0dd7c2010-08-01 14:36:59 +0200239 To be able to build external GUI or language support you have to enable
Bram Moolenaar96f45c02019-10-26 19:53:45 +0200240 related feature in MAKE_VMS.MMS file. Usually it needs some extra tuning
Bram Moolenaar071d4272004-06-13 20:20:40 +0000241 around include files, shared libraries etc.
242
243 Please note, that leading "," are valuable for MMS/MMK syntax.
244
245 MAKE_VMS.MMS uses defines as described below:
246
2477.1.1 feature_DEF = ,"SOME_FEATURE"
248
249 Submits definition to compiler preprocessor to enable code blocks
250 defined with
251 #ifdef SOME_FEATURE
252 {some code here}
253 #endif
254
255 Example: TCL_DEF = ,"FEAT_TCL"
256
257
2587.1.2 feature_SRC = code1.c code2.c
259
260 Defines source code related with particular feature.
261 Example: TCL_SRC = if_tcl.c
262
2637.1.3 feature_OBJ = code1.obj code2.obj
264
265 Lists objects created from source codes listed in feature_SRC
266 Example: PERL_OBJ = if_perlsfio.obj if_perl.obj
267
2687.1.4 feature_LIB = ,OS_VMS_TCL.OPT/OPT
269
270 Defines the libraries that have to be used for build.
271 If it is an OPT file then MAKE_VMS.MMS creates OPT files
272 in gen_feature procedure.
273
274 Example:
275 PERL_LIB = ,OS_VMS_PERL.OPT/OPT
276
277.IFDEF VIM_PERL
278perl_env :
279 -@ write sys$output "creating OS_VMS_PERL.OPT file."
280 -@ open/write opt_file OS_VMS_PERL.OPT
281 -@ write opt_file "PERLSHR /share"
282 -@ close opt_file
283.ELSE
284perl_env :
285 -@ !
286.ENDIF
287
288
2897.1.5 feature_INC = ,dka0:[tcl80.generic]
290
291 Defines the directory where the necessary include files are.
292 Example: TCL_INC = ,dka0:[tcl80.generic]
293
2947.2 GTK
295
296 To build VIM with GTK you have to install GTK on your OpenVMS.
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000297 So far it works just on Alpha and IA64. More information at:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000298 http://www.openvms.compaq.com/openvms/products/ips/gtk.html
299
Bram Moolenaar23515b42020-11-29 14:36:24 +0100300 You also need the OpenVMS Porting Library:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000301 http://www.openvms.compaq.com/openvms/products/ips/porting.html
302
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000303 Source code for GTK and porting library that is used to build
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000304 VMS executables at polarhome.com are at
305 http://www.polarhome.com/vim/files/source/vms/
306
Bram Moolenaar071d4272004-06-13 20:20:40 +0000307 Enable GTK in make_vms.mms file with GTK = YES
308 Define GTK_ROOT that points to your GTK root directory.
309
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000310 You will need to edit GTKDIR variable in order to point
311 to GTK header files and libraries.
312
313 GTK_DIR = ALPHA$DKA0:[GTK128.]
314
315 ".]" at the end is very important.
316
Bram Moolenaar071d4272004-06-13 20:20:40 +0000317 Build it as normally.
318
Bram Moolenaar4b96df52020-01-26 22:00:26 +0100319 Used shareable images are:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000320 gtk_root:[glib]libglib.exe /share,-
321 gtk_root:[glib.gmodule]libgmodule.exe /share,-
322 gtk_root:[gtk.gdk]libgdk.exe /share,-
323 gtk_root:[gtk.gtk]libgtk.exe /share
324
325 During runtime it is suggested to have all these files installed and
Bram Moolenaarf711faf2007-05-10 16:48:19 +0000326 copied to SYS$LIBRARY: to be able to use it without problems.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000327 Also VMS_JACKETS.EXE from OpenVMS Porting Library.
328
329 Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
Bram Moolenaar84a05ac2013-05-06 04:24:17 +0200330 compiler directives that is not compatible with "standard" VMS usage,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000331 therefore other external features might fail as PERL, PYTHON and TCL
332 support.
333
3347.3 PERL
335
336 You have to install OpenVMS perl package from:
337 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
338
339 You need defined PERLSHR logical that points to PERL shareable image
340 (or you can just copy over to SYS$LIBRARY:)
341
342 Enable Perl feature at make_vms.mms with VIM_PERL = YES
343
344 Edit PERL_INC = to point to perl includes directory where is extern.h
345
Bram Moolenaar23515b42020-11-29 14:36:24 +0100346 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000347
3487.4 PYTHON
349
350 You have to install an OpenVMS python package.
351 Set up the normal Python work environment.
352
353 You have to have defined PYTHON_INCLUDE and PYTHON_OLB logicals.
354 PYTHON_INCLUDE should point to Python include files where for ex:
355 python.h is located.
356 Enable Python feature at make_vms.mms with VIM_PYTHON = YES
357
Bram Moolenaar23515b42020-11-29 14:36:24 +0100358 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000359
3607.5 TCL
361
362 You have to install an OpenVMS TCL package.
363 Set up the normal TCL work environment.
364
365 You have to have defined TCLSHR logical that points to shareable image.
366
367 Enable TCL feature at make_vms.mms with VIM_TCL = YES
368
369 Edit TCL_INC = to point to TCL includes directory where is tcl.h
370
Bram Moolenaar23515b42020-11-29 14:36:24 +0100371 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000372
3738. Notes
374
3758.1. New Compaq C compiler
376
Bram Moolenaar23515b42020-11-29 14:36:24 +0100377 If you are using Compaq C compiler V6.2 or newer, informational messages
Bram Moolenaar071d4272004-06-13 20:20:40 +0000378 of the type QUESTCOMPARE will be displayed. You should ignore those
379 messages ; they are generated only because some test comparisons are done
380 with variables which type vary depending on the OS. Under VMS, those are
381 "unsigned" and the compiler issue a message whenever the comparison is
382 done with '<=' to 0. However, the code is correct and will behave as
383 expected.
384 ( Jerome Lauret <JLAURET@mail.chem.sunysb.edu> Vim 6.0n )
385 NOTE: from version 6.0ad Vim code has been reviewed and these warnings
386 have been corrected.
387
3889. Authors
389
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000390 Initial version, 2000 Jul 19, Zoltan Arpadffy <arpadffy@polarhome.com>