blob: de1446b2cb0155a3a08836f1c9aa597d691263f6 [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
82 BIG - Many features enabled, as rich as possible.
83 (OpenVMS default)
Bram Moolenaara7241f52008-06-24 20:39:31 +000084 HUGE - All possible features enabled.
Bram Moolenaar071d4272004-06-13 20:20:40 +000085 Uncommented - will default to BIG
86 Default : MODEL = BIG
87
88 Parameter name : GUI
89 Description : GUI or terminal mode executable
90 Options: : YES - GUI executable
91 Uncommented - char only
92 Default : GUI = YES
93
94 Parameter name : GTK
95 Description : Enable GTK in GUI mode.
96 It enables features as toolbar etc.
97 Options: : YES - GTK executable
98 Uncommented - without GTK
99 Default : Uncommented
100
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000101 Parameter name : XPM
102 Description : Enable XPM libraries in GUI/Motif mode.
103 It enables features as toolbar etc.
104 Options: : YES - GUI executable
105 Uncommented - without XPM
106 Default : Uncommented
107
Bram Moolenaar071d4272004-06-13 20:20:40 +0000108 Parameter name : DECC
109 Description : Compiler selection
110 Options: : YES - DECC compiler
111 Uncommented - VAXC compiler
112 Default : DECC = YES
113
114 Parameter name : CCVER
115 Description : Compiler version with :ver command
116 Options: : YES - Compiler version info will be added
117 Uncommented - will not be added
118 Default : CCVER = YES
119
120 Parameter name : DEBUG
121 Description : Building a debug version
122 Options: : YES - debug version will be built
123 Uncommented - building normal executable
124 Default : Uncommented
125
126 Parameter name : VIM_TCL
127 Description : Add Tcl support
128 Options: : YES - Build with support
129 Uncommented - build without support.
130 Default : Uncommented
131
132 Parameter name : VIM_PERL
133 Description : Add Perl support
134 Options: : YES - Build with support
135 Uncommented - build without support.
136 Default : Uncommented
137
138 Parameter name : VIM_PYTHON
139 Description : Add Python support
140 Options: : YES - Build with support
141 Uncommented - build without support.
142 Default : Uncommented
143
Bram Moolenaar071d4272004-06-13 20:20:40 +0000144 Parameter name : VIM_XIM
145 Description : X Input Method. For entering special languages
Bram Moolenaar23515b42020-11-29 14:36:24 +0100146 like Chinese and Japanese. Please define just
Bram Moolenaar071d4272004-06-13 20:20:40 +0000147 one: VIM_XIM or VIM_HANGULIN
148 Options: : YES - Build with support
149 Uncommented - build without support.
150 Default : Uncommented
151
152 Parameter name : VIM_HANGULIN
153 Description : Internal Hangul input method. GUI only.
154 Please define just one: VIM_XIM or VIM_HANGULIN
155 Options: : YES - Build with support
156 Uncommented - build without support.
157 Default : Uncommented
158
159 Parameter name : VIM_TAG_ANYWHITE
160 Description : Allow any white space to separate the fields in a
161 tags file
162 When not defined, only a TAB is allowed.
163 Options: : YES - Build with support
164 Uncommented - build without support.
165 Default : Uncommented
166
167 You can edit the *_INC and *_LIB qualifiers, but it is really
168 not recommended for beginners.
169
1703. Compilation DECC
171
1723.1. If you have MSS on your system, the command
173
174 mms /descrip=Make_vms.mms
175
176 will start building your own customized version of Vim.
177 The adequate command for mmk is:
178
179 mmk /descrip=Make_vms.mms
180
181 NOTE: Because of empty /auto/config.h (needed for Unix configure) build
182 will fail with very strange messages. Therefore before building, it is
183 recommended to make one clean up, to prepare everything for OpenVMS
184 development. The command is:
185
186 mms /descrip=Make_vms.mms clean
187
1884. Compilation VAXC
189
1904.1. VAXC compiler is not fully ANSI C compatible in pre-processor directives
191 semantics, therefore you have to use a converter program what will do the
192 lion part of the job.
193
194 @os_vms_fix.com *.c *.h <.proto>*.pro
195
196 more information can be found in os_vms_fix.com file itself.
197
198 NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
Bram Moolenaar4b96df52020-01-26 22:00:26 +0100199 leave single (long) line directives. You have to fix them manually.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000200 Known problematic files are option.h and option.c
201
2024.2. After the conversion you can continue building as it has been described
203 above.
204
2055. CTAGS, XXD
206
2075.1. MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and
208 XXD.EXE you should change to subdirectory <.CTAGS> or <.XXD> and build
209 them separately.
210
Bram Moolenaar23515b42020-11-29 14:36:24 +01002115.2. In these directories you can find one make file for VMS as well.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000212 Please read the detailed build instructions in the related *.MMS file.
213
2146. Deployment
215
2166.1. Copy over all executables to the deployment directory.
217
2186.2. Vim uses a special directory structure to hold the document and runtime
219 files:
220
221 vim (or wherever)
222 |-- doc
223 |-- syntax
224 vimrc (system rc files)
225 gvimrc
226
2276.3 Define logicals VIM
228
229 define/nolog VIM device:[leading-path-here.vim]
230
231 to get vim.exe to find its document, filetype, and syntax files.
232
233 Now, if you are lucky you should have one own built, customized and
234 working Vim.
235
2367. GTK and other features
237
2387.1 General notes
239
Bram Moolenaar3b0dd7c2010-08-01 14:36:59 +0200240 To be able to build external GUI or language support you have to enable
Bram Moolenaar96f45c02019-10-26 19:53:45 +0200241 related feature in MAKE_VMS.MMS file. Usually it needs some extra tuning
Bram Moolenaar071d4272004-06-13 20:20:40 +0000242 around include files, shared libraries etc.
243
244 Please note, that leading "," are valuable for MMS/MMK syntax.
245
246 MAKE_VMS.MMS uses defines as described below:
247
2487.1.1 feature_DEF = ,"SOME_FEATURE"
249
250 Submits definition to compiler preprocessor to enable code blocks
251 defined with
252 #ifdef SOME_FEATURE
253 {some code here}
254 #endif
255
256 Example: TCL_DEF = ,"FEAT_TCL"
257
258
2597.1.2 feature_SRC = code1.c code2.c
260
261 Defines source code related with particular feature.
262 Example: TCL_SRC = if_tcl.c
263
2647.1.3 feature_OBJ = code1.obj code2.obj
265
266 Lists objects created from source codes listed in feature_SRC
267 Example: PERL_OBJ = if_perlsfio.obj if_perl.obj
268
2697.1.4 feature_LIB = ,OS_VMS_TCL.OPT/OPT
270
271 Defines the libraries that have to be used for build.
272 If it is an OPT file then MAKE_VMS.MMS creates OPT files
273 in gen_feature procedure.
274
275 Example:
276 PERL_LIB = ,OS_VMS_PERL.OPT/OPT
277
278.IFDEF VIM_PERL
279perl_env :
280 -@ write sys$output "creating OS_VMS_PERL.OPT file."
281 -@ open/write opt_file OS_VMS_PERL.OPT
282 -@ write opt_file "PERLSHR /share"
283 -@ close opt_file
284.ELSE
285perl_env :
286 -@ !
287.ENDIF
288
289
2907.1.5 feature_INC = ,dka0:[tcl80.generic]
291
292 Defines the directory where the necessary include files are.
293 Example: TCL_INC = ,dka0:[tcl80.generic]
294
2957.2 GTK
296
297 To build VIM with GTK you have to install GTK on your OpenVMS.
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000298 So far it works just on Alpha and IA64. More information at:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000299 http://www.openvms.compaq.com/openvms/products/ips/gtk.html
300
Bram Moolenaar23515b42020-11-29 14:36:24 +0100301 You also need the OpenVMS Porting Library:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000302 http://www.openvms.compaq.com/openvms/products/ips/porting.html
303
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000304 Source code for GTK and porting library that is used to build
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000305 VMS executables at polarhome.com are at
306 http://www.polarhome.com/vim/files/source/vms/
307
Bram Moolenaar071d4272004-06-13 20:20:40 +0000308 Enable GTK in make_vms.mms file with GTK = YES
309 Define GTK_ROOT that points to your GTK root directory.
310
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000311 You will need to edit GTKDIR variable in order to point
312 to GTK header files and libraries.
313
314 GTK_DIR = ALPHA$DKA0:[GTK128.]
315
316 ".]" at the end is very important.
317
Bram Moolenaar071d4272004-06-13 20:20:40 +0000318 Build it as normally.
319
Bram Moolenaar4b96df52020-01-26 22:00:26 +0100320 Used shareable images are:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000321 gtk_root:[glib]libglib.exe /share,-
322 gtk_root:[glib.gmodule]libgmodule.exe /share,-
323 gtk_root:[gtk.gdk]libgdk.exe /share,-
324 gtk_root:[gtk.gtk]libgtk.exe /share
325
326 During runtime it is suggested to have all these files installed and
Bram Moolenaarf711faf2007-05-10 16:48:19 +0000327 copied to SYS$LIBRARY: to be able to use it without problems.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000328 Also VMS_JACKETS.EXE from OpenVMS Porting Library.
329
330 Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
Bram Moolenaar84a05ac2013-05-06 04:24:17 +0200331 compiler directives that is not compatible with "standard" VMS usage,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000332 therefore other external features might fail as PERL, PYTHON and TCL
333 support.
334
3357.3 PERL
336
337 You have to install OpenVMS perl package from:
338 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
339
340 You need defined PERLSHR logical that points to PERL shareable image
341 (or you can just copy over to SYS$LIBRARY:)
342
343 Enable Perl feature at make_vms.mms with VIM_PERL = YES
344
345 Edit PERL_INC = to point to perl includes directory where is extern.h
346
Bram Moolenaar23515b42020-11-29 14:36:24 +0100347 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000348
3497.4 PYTHON
350
351 You have to install an OpenVMS python package.
352 Set up the normal Python work environment.
353
354 You have to have defined PYTHON_INCLUDE and PYTHON_OLB logicals.
355 PYTHON_INCLUDE should point to Python include files where for ex:
356 python.h is located.
357 Enable Python feature at make_vms.mms with VIM_PYTHON = YES
358
Bram Moolenaar23515b42020-11-29 14:36:24 +0100359 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000360
3617.5 TCL
362
363 You have to install an OpenVMS TCL package.
364 Set up the normal TCL work environment.
365
366 You have to have defined TCLSHR logical that points to shareable image.
367
368 Enable TCL feature at make_vms.mms with VIM_TCL = YES
369
370 Edit TCL_INC = to point to TCL includes directory where is tcl.h
371
Bram Moolenaar23515b42020-11-29 14:36:24 +0100372 Build as usual.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000373
3748. Notes
375
3768.1. New Compaq C compiler
377
Bram Moolenaar23515b42020-11-29 14:36:24 +0100378 If you are using Compaq C compiler V6.2 or newer, informational messages
Bram Moolenaar071d4272004-06-13 20:20:40 +0000379 of the type QUESTCOMPARE will be displayed. You should ignore those
380 messages ; they are generated only because some test comparisons are done
381 with variables which type vary depending on the OS. Under VMS, those are
382 "unsigned" and the compiler issue a message whenever the comparison is
383 done with '<=' to 0. However, the code is correct and will behave as
384 expected.
385 ( Jerome Lauret <JLAURET@mail.chem.sunysb.edu> Vim 6.0n )
386 NOTE: from version 6.0ad Vim code has been reviewed and these warnings
387 have been corrected.
388
3899. Authors
390
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000391 Initial version, 2000 Jul 19, Zoltan Arpadffy <arpadffy@polarhome.com>