1INSTALLvms.txt - Installation of Vim on OpenVMS
2
3Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
4Last change:  2008 Jan 06
5
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 optimized (and tested) source code from:
60ftp://ftp.polarhome.com/pub/vim/source/vms/
61(http://www.polarhome.com/vim/files/source/vms/)
62
63Current OpenVMS source code as .zip or .tar.gz file is possible to download
64from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
65(http://www.polarhome.com/cvs/SOURCE/)
66
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 features 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
103	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
110	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	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
242     To be able to build external GUI or language support you have to enable
243     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.
300     So far it works just on Alpha and IA64. More information at:
301     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
306     Source code for GTK and porting library that is used to build
307     VMS executables at polarhome.com are at
308     http://www.polarhome.com/vim/files/source/vms/
309
310     Enable GTK in make_vms.mms file with GTK = YES
311     Define GTK_ROOT that points to your GTK root directory.
312
313     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
320     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
329     copied to SYS$LIBRARY: to be able to use it without problems.
330     Also VMS_JACKETS.EXE from OpenVMS Porting Library.
331
332     Please note, that GTK uses /name=(as_is,short)/float=ieee/ieee=denorm
333     complier directives that is not compatible with "standard" VMS usage,
334     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
393     Initial version, 2000 Jul 19, Zoltan Arpadffy <arpadffy@polarhome.com>
394