blob: cbcbc4928be48d2d8131efac5bbcbb101838782a [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
12The file "feature.h" can be edited to match your preferences, but this files
13does not describe possibilities hidden in feature.h acrobatics, however
14parameters from MAKE_VMS.MMS actively uses and sets up parameters in relation
15with feature.h
16
17More information and case analysis you can found in os_vms.txt
18([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
80 Options: : TINY - Almost no features enabled, not even
81 multiple windows
82 SMALL - Few features enabled, as basic as possible
83 NORMAL - A default selection of features enabled
84 BIG - Many features enabled, as rich as possible.
85 (OpenVMS default)
Bram Moolenaara7241f52008-06-24 20:39:31 +000086 HUGE - All possible features enabled.
Bram Moolenaar071d4272004-06-13 20:20:40 +000087 Uncommented - will default to BIG
88 Default : MODEL = BIG
89
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
123 Description : Building a debug version
124 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
148 like chinese and Japanese. Please define just
149 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
169 You can edit the *_INC and *_LIB qualifiers, but it is really
170 not recommended for beginners.
171
1723. Compilation DECC
173
1743.1. If you have MSS on your system, the command
175
176 mms /descrip=Make_vms.mms
177
178 will start building your own customized version of Vim.
179 The adequate command for mmk is:
180
181 mmk /descrip=Make_vms.mms
182
183 NOTE: Because of empty /auto/config.h (needed for Unix configure) build
184 will fail with very strange messages. Therefore before building, it is
185 recommended to make one clean up, to prepare everything for OpenVMS
186 development. The command is:
187
188 mms /descrip=Make_vms.mms clean
189
1904. Compilation VAXC
191
1924.1. VAXC compiler is not fully ANSI C compatible in pre-processor directives
193 semantics, therefore you have to use a converter program what will do the
194 lion part of the job.
195
196 @os_vms_fix.com *.c *.h <.proto>*.pro
197
198 more information can be found in os_vms_fix.com file itself.
199
200 NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
201 leave singe (long) line directives. You have to fix them manually.
202 Known problematic files are option.h and option.c
203
2044.2. After the conversion you can continue building as it has been described
205 above.
206
2075. CTAGS, XXD
208
2095.1. MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and
210 XXD.EXE you should change to subdirectory <.CTAGS> or <.XXD> and build
211 them separately.
212
2135.2. In these directories you can found one make file for VMS as well.
214 Please read the detailed build instructions in the related *.MMS file.
215
2166. Deployment
217
2186.1. Copy over all executables to the deployment directory.
219
2206.2. Vim uses a special directory structure to hold the document and runtime
221 files:
222
223 vim (or wherever)
224 |-- doc
225 |-- syntax
226 vimrc (system rc files)
227 gvimrc
228
2296.3 Define logicals VIM
230
231 define/nolog VIM device:[leading-path-here.vim]
232
233 to get vim.exe to find its document, filetype, and syntax files.
234
235 Now, if you are lucky you should have one own built, customized and
236 working Vim.
237
2387. GTK and other features
239
2407.1 General notes
241
Bram Moolenaar3b0dd7c2010-08-01 14:36:59 +0200242 To be able to build external GUI or language support you have to enable
Bram Moolenaar071d4272004-06-13 20:20:40 +0000243 related feature in MAKE_VMS.MMS file. Usually it need some extra tuning
244 around include files, shared libraries etc.
245
246 Please note, that leading "," are valuable for MMS/MMK syntax.
247
248 MAKE_VMS.MMS uses defines as described below:
249
2507.1.1 feature_DEF = ,"SOME_FEATURE"
251
252 Submits definition to compiler preprocessor to enable code blocks
253 defined with
254 #ifdef SOME_FEATURE
255 {some code here}
256 #endif
257
258 Example: TCL_DEF = ,"FEAT_TCL"
259
260
2617.1.2 feature_SRC = code1.c code2.c
262
263 Defines source code related with particular feature.
264 Example: TCL_SRC = if_tcl.c
265
2667.1.3 feature_OBJ = code1.obj code2.obj
267
268 Lists objects created from source codes listed in feature_SRC
269 Example: PERL_OBJ = if_perlsfio.obj if_perl.obj
270
2717.1.4 feature_LIB = ,OS_VMS_TCL.OPT/OPT
272
273 Defines the libraries that have to be used for build.
274 If it is an OPT file then MAKE_VMS.MMS creates OPT files
275 in gen_feature procedure.
276
277 Example:
278 PERL_LIB = ,OS_VMS_PERL.OPT/OPT
279
280.IFDEF VIM_PERL
281perl_env :
282 -@ write sys$output "creating OS_VMS_PERL.OPT file."
283 -@ open/write opt_file OS_VMS_PERL.OPT
284 -@ write opt_file "PERLSHR /share"
285 -@ close opt_file
286.ELSE
287perl_env :
288 -@ !
289.ENDIF
290
291
2927.1.5 feature_INC = ,dka0:[tcl80.generic]
293
294 Defines the directory where the necessary include files are.
295 Example: TCL_INC = ,dka0:[tcl80.generic]
296
2977.2 GTK
298
299 To build VIM with GTK you have to install GTK on your OpenVMS.
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000300 So far it works just on Alpha and IA64. More information at:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000301 http://www.openvms.compaq.com/openvms/products/ips/gtk.html
302
303 You need also the OpenVMS Porting Library:
304 http://www.openvms.compaq.com/openvms/products/ips/porting.html
305
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000306 Source code for GTK and porting library that is used to build
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000307 VMS executables at polarhome.com are at
308 http://www.polarhome.com/vim/files/source/vms/
309
Bram Moolenaar071d4272004-06-13 20:20:40 +0000310 Enable GTK in make_vms.mms file with GTK = YES
311 Define GTK_ROOT that points to your GTK root directory.
312
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000313 You will need to edit GTKDIR variable in order to point
314 to GTK header files and libraries.
315
316 GTK_DIR = ALPHA$DKA0:[GTK128.]
317
318 ".]" at the end is very important.
319
Bram Moolenaar071d4272004-06-13 20:20:40 +0000320 Build it as normally.
321
322 Used sharable images are:
323 gtk_root:[glib]libglib.exe /share,-
324 gtk_root:[glib.gmodule]libgmodule.exe /share,-
325 gtk_root:[gtk.gdk]libgdk.exe /share,-
326 gtk_root:[gtk.gtk]libgtk.exe /share
327
328 During runtime it is suggested to have all these files installed and
Bram Moolenaarf711faf2007-05-10 16:48:19 +0000329 copied to SYS$LIBRARY: to be able to use it without problems.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000330 Also VMS_JACKETS.EXE from OpenVMS Porting Library.
331
332 Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
Bram Moolenaar84a05ac2013-05-06 04:24:17 +0200333 compiler directives that is not compatible with "standard" VMS usage,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000334 therefore other external features might fail as PERL, PYTHON and TCL
335 support.
336
3377.3 PERL
338
339 You have to install OpenVMS perl package from:
340 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
341
342 You need defined PERLSHR logical that points to PERL shareable image
343 (or you can just copy over to SYS$LIBRARY:)
344
345 Enable Perl feature at make_vms.mms with VIM_PERL = YES
346
347 Edit PERL_INC = to point to perl includes directory where is extern.h
348
349 Build as usually.
350
3517.4 PYTHON
352
353 You have to install an OpenVMS python package.
354 Set up the normal Python work environment.
355
356 You have to have defined PYTHON_INCLUDE and PYTHON_OLB logicals.
357 PYTHON_INCLUDE should point to Python include files where for ex:
358 python.h is located.
359 Enable Python feature at make_vms.mms with VIM_PYTHON = YES
360
361 Build as usually.
362
3637.5 TCL
364
365 You have to install an OpenVMS TCL package.
366 Set up the normal TCL work environment.
367
368 You have to have defined TCLSHR logical that points to shareable image.
369
370 Enable TCL feature at make_vms.mms with VIM_TCL = YES
371
372 Edit TCL_INC = to point to TCL includes directory where is tcl.h
373
374 Build as usually.
375
3768. Notes
377
3788.1. New Compaq C compiler
379
380 If you are using Compaq C compiler V6.2 or newer, Informational messages
381 of the type QUESTCOMPARE will be displayed. You should ignore those
382 messages ; they are generated only because some test comparisons are done
383 with variables which type vary depending on the OS. Under VMS, those are
384 "unsigned" and the compiler issue a message whenever the comparison is
385 done with '<=' to 0. However, the code is correct and will behave as
386 expected.
387 ( Jerome Lauret <JLAURET@mail.chem.sunysb.edu> Vim 6.0n )
388 NOTE: from version 6.0ad Vim code has been reviewed and these warnings
389 have been corrected.
390
3919. Authors
392
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000393 Initial version, 2000 Jul 19, Zoltan Arpadffy <arpadffy@polarhome.com>