blob: 8e07c2803862040c372debb5ed1a1ccd690cdc47 [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>
4Last change: 2005 Jul 12
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
59code,however it is available OpenVMS oprimized (and tested) source code from:
60ftp://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)
86 HUGE - All possible featues enabled.
87 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
146
147 Parameter name : VIM_XIM
148 Description : X Input Method. For entering special languages
149 like chinese and Japanese. Please define just
150 one: VIM_XIM or VIM_HANGULIN
151 Options: : YES - Build with support
152 Uncommented - build without support.
153 Default : Uncommented
154
155 Parameter name : VIM_HANGULIN
156 Description : Internal Hangul input method. GUI only.
157 Please define just one: VIM_XIM or VIM_HANGULIN
158 Options: : YES - Build with support
159 Uncommented - build without support.
160 Default : Uncommented
161
162 Parameter name : VIM_TAG_ANYWHITE
163 Description : Allow any white space to separate the fields in a
164 tags file
165 When not defined, only a TAB is allowed.
166 Options: : YES - Build with support
167 Uncommented - build without support.
168 Default : Uncommented
169
170 You can edit the *_INC and *_LIB qualifiers, but it is really
171 not recommended for beginners.
172
1733. Compilation DECC
174
1753.1. If you have MSS on your system, the command
176
177 mms /descrip=Make_vms.mms
178
179 will start building your own customized version of Vim.
180 The adequate command for mmk is:
181
182 mmk /descrip=Make_vms.mms
183
184 NOTE: Because of empty /auto/config.h (needed for Unix configure) build
185 will fail with very strange messages. Therefore before building, it is
186 recommended to make one clean up, to prepare everything for OpenVMS
187 development. The command is:
188
189 mms /descrip=Make_vms.mms clean
190
1914. Compilation VAXC
192
1934.1. VAXC compiler is not fully ANSI C compatible in pre-processor directives
194 semantics, therefore you have to use a converter program what will do the
195 lion part of the job.
196
197 @os_vms_fix.com *.c *.h <.proto>*.pro
198
199 more information can be found in os_vms_fix.com file itself.
200
201 NOTE: even if os_vms_fix.com will fix all pre-processor directives it will
202 leave singe (long) line directives. You have to fix them manually.
203 Known problematic files are option.h and option.c
204
2054.2. After the conversion you can continue building as it has been described
206 above.
207
2085. CTAGS, XXD
209
2105.1. MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and
211 XXD.EXE you should change to subdirectory <.CTAGS> or <.XXD> and build
212 them separately.
213
2145.2. In these directories you can found one make file for VMS as well.
215 Please read the detailed build instructions in the related *.MMS file.
216
2176. Deployment
218
2196.1. Copy over all executables to the deployment directory.
220
2216.2. Vim uses a special directory structure to hold the document and runtime
222 files:
223
224 vim (or wherever)
225 |-- doc
226 |-- syntax
227 vimrc (system rc files)
228 gvimrc
229
2306.3 Define logicals VIM
231
232 define/nolog VIM device:[leading-path-here.vim]
233
234 to get vim.exe to find its document, filetype, and syntax files.
235
236 Now, if you are lucky you should have one own built, customized and
237 working Vim.
238
2397. GTK and other features
240
2417.1 General notes
242
243 To be able to build external GUI or language support wyo have to enable
244 related feature in MAKE_VMS.MMS file. Usually it need some extra tuning
245 around include files, shared libraries etc.
246
247 Please note, that leading "," are valuable for MMS/MMK syntax.
248
249 MAKE_VMS.MMS uses defines as described below:
250
2517.1.1 feature_DEF = ,"SOME_FEATURE"
252
253 Submits definition to compiler preprocessor to enable code blocks
254 defined with
255 #ifdef SOME_FEATURE
256 {some code here}
257 #endif
258
259 Example: TCL_DEF = ,"FEAT_TCL"
260
261
2627.1.2 feature_SRC = code1.c code2.c
263
264 Defines source code related with particular feature.
265 Example: TCL_SRC = if_tcl.c
266
2677.1.3 feature_OBJ = code1.obj code2.obj
268
269 Lists objects created from source codes listed in feature_SRC
270 Example: PERL_OBJ = if_perlsfio.obj if_perl.obj
271
2727.1.4 feature_LIB = ,OS_VMS_TCL.OPT/OPT
273
274 Defines the libraries that have to be used for build.
275 If it is an OPT file then MAKE_VMS.MMS creates OPT files
276 in gen_feature procedure.
277
278 Example:
279 PERL_LIB = ,OS_VMS_PERL.OPT/OPT
280
281.IFDEF VIM_PERL
282perl_env :
283 -@ write sys$output "creating OS_VMS_PERL.OPT file."
284 -@ open/write opt_file OS_VMS_PERL.OPT
285 -@ write opt_file "PERLSHR /share"
286 -@ close opt_file
287.ELSE
288perl_env :
289 -@ !
290.ENDIF
291
292
2937.1.5 feature_INC = ,dka0:[tcl80.generic]
294
295 Defines the directory where the necessary include files are.
296 Example: TCL_INC = ,dka0:[tcl80.generic]
297
2987.2 GTK
299
300 To build VIM with GTK you have to install GTK on your OpenVMS.
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000301 So far it works just on Alpha and IA64. More information at:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000302 http://www.openvms.compaq.com/openvms/products/ips/gtk.html
303
304 You need also the OpenVMS Porting Library:
305 http://www.openvms.compaq.com/openvms/products/ips/porting.html
306
307 Enable GTK in make_vms.mms file with GTK = YES
308 Define GTK_ROOT that points to your GTK root directory.
309
310 Build it as normally.
311
312 Used sharable images are:
313 gtk_root:[glib]libglib.exe /share,-
314 gtk_root:[glib.gmodule]libgmodule.exe /share,-
315 gtk_root:[gtk.gdk]libgdk.exe /share,-
316 gtk_root:[gtk.gtk]libgtk.exe /share
317
318 During runtime it is suggested to have all these files installed and
319 copyed to SYS$LIBRARY: to be able to use it without problems.
320 Also VMS_JACKETS.EXE from OpenVMS Porting Library.
321
322 Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
323 complier directives that is not compatible with "standard" VMS usage,
324 therefore other external features might fail as PERL, PYTHON and TCL
325 support.
326
3277.3 PERL
328
329 You have to install OpenVMS perl package from:
330 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
331
332 You need defined PERLSHR logical that points to PERL shareable image
333 (or you can just copy over to SYS$LIBRARY:)
334
335 Enable Perl feature at make_vms.mms with VIM_PERL = YES
336
337 Edit PERL_INC = to point to perl includes directory where is extern.h
338
339 Build as usually.
340
3417.4 PYTHON
342
343 You have to install an OpenVMS python package.
344 Set up the normal Python work environment.
345
346 You have to have defined PYTHON_INCLUDE and PYTHON_OLB logicals.
347 PYTHON_INCLUDE should point to Python include files where for ex:
348 python.h is located.
349 Enable Python feature at make_vms.mms with VIM_PYTHON = YES
350
351 Build as usually.
352
3537.5 TCL
354
355 You have to install an OpenVMS TCL package.
356 Set up the normal TCL work environment.
357
358 You have to have defined TCLSHR logical that points to shareable image.
359
360 Enable TCL feature at make_vms.mms with VIM_TCL = YES
361
362 Edit TCL_INC = to point to TCL includes directory where is tcl.h
363
364 Build as usually.
365
3668. Notes
367
3688.1. New Compaq C compiler
369
370 If you are using Compaq C compiler V6.2 or newer, Informational messages
371 of the type QUESTCOMPARE will be displayed. You should ignore those
372 messages ; they are generated only because some test comparisons are done
373 with variables which type vary depending on the OS. Under VMS, those are
374 "unsigned" and the compiler issue a message whenever the comparison is
375 done with '<=' to 0. However, the code is correct and will behave as
376 expected.
377 ( Jerome Lauret <JLAURET@mail.chem.sunysb.edu> Vim 6.0n )
378 NOTE: from version 6.0ad Vim code has been reviewed and these warnings
379 have been corrected.
380
3819. Authors
382
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000383 Initial version, 2000 Jul 19, Zoltan Arpadffy <arpadffy@polarhome.com>