Commit: patch 9.1.1591: VMS support can be improved

4 views
Skip to first unread message

Christian Brabandt

unread,
Jul 25, 2025, 1:30:16 PMJul 25
to vim...@googlegroups.com
patch 9.1.1591: VMS support can be improved

Commit: https://github.com/vim/vim/commit/e9d1259111daf9c91b14c252047defc99c03a8de
Author: Zoltan Arpadffy <zoltan....@gmail.com>
Date: Fri Jul 25 19:16:09 2025 +0200

patch 9.1.1591: VMS support can be improved

Problem: VMS support can be improved
Solution: Merge chagnes from Steven M. Schweda
(Zoltan)

closes: #17810

Co-authored-by: Steven M. Schweda <s...@antinode.info>
Signed-off-by: Zoltan Arpadffy <zoltan....@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index fb247f3ba..8eb2455a8 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <zoltan....@gmail.com>
-# Last change: 2024 Jan 03
+# Last change: 2025-07-04 Steven M. Schweda <s...@antinode.info>
#
# This script has been tested on VMS 6.2 to 9.2 on VAX, ALPHA, IA64 and X86_64
# with MMS and MMK
@@ -11,10 +11,14 @@
# vim.exe: standard (terminal, GUI/Motif, GUI/GTK)
# dvim.exe: debug
#
+######################################################################
+#
# Edit the lines in the Configuration section below for fine tuning.
#
# To build: mms/descrip=Make_vms.mms /ignore=warning
# To clean up: mms/descrip=Make_vms.mms clean
+# To display --help report: mms/descrip=Make_vms.mms help
+# To display --version report: mms/descrip=Make_vms.mms version
#
# Hints and detailed description could be found in INSTALLVMS.TXT file.
#
@@ -22,10 +26,6 @@
# Configuration section.
######################################################################

-# Compiler selection.
-# Comment out if you use the VAXC compiler
-DECC = YES
-
# Build model selection
# TINY - No optional features enabled
# NORMAL - A default selection of features enabled
@@ -53,7 +53,10 @@ MODEL = HUGE
# NOTE: This part can make some complications if you're using some
# predefined symbols/flags for your compiler. If does, just leave behind
# the comment variable CCVER.
-CCVER = YES
+.IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
+.ELSE # VAXC_OR_FORCE_VAXC
+CCVER = YES # Unreliable with VAX C.
+.ENDIF # VAXC_OR_FORCE_VAXC [ELSE]

# Uncomment if want a debug version. Resulting executable is DVIM.EXE
# Development purpose only! Normally, it should not be defined. !!!
@@ -96,40 +99,172 @@ CCVER = YES
# You can find some explanation in INSTALLVMS.TXT
######################################################################

+# Architecture identification and product destination selection.
+
+# Define old MMK architecture macros when using MMS.
+
+.IFDEF MMS$ARCH_NAME # MMS$ARCH_NAME
+ALPHA_X_ALPHA = 1
+IA64_X_IA64 = 1
+VAX_X_VAX = 1
+X86_64_X_X86_64 = 1
+.IFDEF ARCH # ARCH
+ARCH_NAME = $(ARCH)
+.ELSE # ARCH
+ARCH_NAME = $(MMS$ARCH_NAME)
+.ENDIF # ARCH
+.IFDEF $(ARCH_NAME)_X_ALPHA # $(ARCH_NAME)_X_ALPHA
+__ALPHA__ = 1
+.ENDIF # $(ARCH_NAME)_X_ALPHA
+.IFDEF $(ARCH_NAME)_X_IA64 # $(ARCH_NAME)_X_IA64
+__IA64__ = 1
+.ENDIF # $(ARCH_NAME)_X_IA64
+.IFDEF $(ARCH_NAME)_X_VAX # $(ARCH_NAME)_X_VAX
+__VAX__ = 1
+.ENDIF # $(ARCH_NAME)_X_VAX
+.IFDEF $(ARCH_NAME)_X_X86_64 # $(ARCH_NAME)_X_X86_64
+__X86_64__ = 1
+.ENDIF # $(ARCH_NAME)_X_X86_64
+.ELSE # MMS$ARCH_NAME
+.IFDEF __MMK__ # __MMK__
+.IFDEF ARCH # ARCH
+.IFDEF __$(ARCH)__ # __$(ARCH)__
+.ELSE # __$(ARCH)__
+__$(ARCH)__ = 1
+.ENDIF # __$(ARCH)__
+.ENDIF # ARCH
+.ENDIF # __MMK__
+.ENDIF # MMS$ARCH_NAME
+
+# Combine command-line VAX C compiler macros.
+
+.IFDEF VAXC # VAXC
+VAXC_OR_FORCE_VAXC = 1
+.ELSE # VAXC
+.IFDEF FORCE_VAXC # FORCE_VAXC
+VAXC_OR_FORCE_VAXC = 1
+.ENDIF # FORCE_VAXC
+.ENDIF # VAXC
+
+# Analyze architecture-related and option macros.
+# (Sense x86_64 before IA64 for old MMK and x86_64 cross tools.)
+
+.IFDEF __X86_64__ # __X86_64__
+DECC = 1
+DESTM = X86_64
+.ELSE # __X86_64__
+.IFDEF __IA64__ # __IA64__
+DECC = 1
+DESTM = IA64
+.ELSE # __IA64__
+.IFDEF __ALPHA__ # __ALPHA__
+DECC = 1
+DESTM = ALPHA
+.ELSE # __ALPHA__
+.IFDEF __VAX__ # __VAX__
+.IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
+DESTM = VAXV
+.ELSE # VAXC_OR_FORCE_VAXC
+DECC = 1
+DESTM = VAX
+.ENDIF # VAXC_OR_FORCE_VAXC
+.ELSE # __VAX__
+DESTM = UNK
+UNK_DEST = 1
+.ENDIF # __VAX__
+.ENDIF # __ALPHA__
+.ENDIF # __IA64__
+.ENDIF # __X86_64__
+
+.IFDEF PROD # PROD
+DEST = $(PROD)
+.ELSE # PROD
+DEST = $(DESTM)
+.ENDIF # PROD
+
+.FIRST
+.IFDEF __MMK__ # __MMK__
+ @ write sys$output ""
+.ENDIF # __MMK__
+
+# Create destination directory.
+ @ write sys$output "Destination: [.$(DEST)]"
+ @ write sys$output ""
+ @ if (f$search( "$(DEST).DIR;1") .eqs. "") then -
+ create /directory [.$(DEST)]
+
# Compiler setup

-.IFDEF MMSVAX
-.IFDEF DECC # VAX with DECC
-CC_DEF = cc # /decc # some versions require /decc switch but when it is not required /ver might fail
-PREFIX = /prefix=all/name=(upper,short)
-OPTIMIZE= /noopt # do not optimize on VAX. The compiler has hard time with crypto functions
-.ELSE # VAX with VAXC
-CC_DEF = cc
-PREFIX =
-OPTIMIZE= /noopt
-CCVER =
-.ENDIF
-.ELSE # AXP, IA64, X86 with DECC
-CC_DEF = cc
-PREFIX = /prefix=all/name=(upper,short)
-OPTIMIZE= /opt
-.IFDEF MMSX86_64
-ARCH_DEF= # ,__CRTL_VER_OVERRIDE=80400000
-.ENDIF
-.ENDIF
+# Optimization. The .c.obj rule will override this for specific modules
+# where the VAX C compilers hang. See VAX_NOOPTIM_LIST, below.
+OPTIMIZE= /optim
+
+.IFDEF __VAX__ # __VAX__
+
+# List of modules for which "Compaq C V6.4-005 on OpenVMS VAX V7.3"
+# hangs. Add more as needed (plus-separated).
+VAX_NOOPTIM_LIST = blowfish+regexp+sha256
+
+# Compiler command.
+# Default: CC /DECC. On non-VAX, or VAX with only DEC C installed,
+# /DECC is harmless. If both DEC C and VAX C are installed, and VAX C
+# was selected as the default, then /DECC must be specified explicitly.
+# If both are installed, and DEC C is the default, but VAX C is desired,
+# then define FORCE_VAXC to get VAX C (CC /VAXC). If only VAX C is
+# installed, then define VAXC to get (plain) CC.
+
+.IFDEF DECC # DECC
+CC_DEF = cc /decc
+PREFIX = /prefix=all/name=(upper,short) /repository=[.$(DEST)]
+.ELSE # DECC
+.IFDEF FORCE_VAXC # FORCE_VAXC
+CC_DEF = cc /vaxc
+.ELSE # FORCE_VAXC
+CC_DEF = cc
+.ENDIF # FORCE_VAXC
+.ENDIF # DECC
+.ELSE # __VAX__
+
+# Not VAX, therefore DEC C (with /NAMES, /PREFIX, and /REPOSITORY).
+
+CC_DEF = cc /decc
+PREFIX = /prefix=all/name=(upper,short) /repository=[.$(DEST)]
+
+# These floating-point options are the defaults on IA64 and x86_64.
+# This makes Alpha consistent.
+FLOAT = /float = ieee_float /ieee_mode = denorm_results
+
+# Large-file support. Unavailable on VAX and very old Alpha. To
+# disable, define NOLARGE.
+.IFDEF NOLARGE
+.ELSE
+LARGE_DEF = , "_LARGEFILE"
+.ENDIF # NOLARGE [ELSE]
+
+# .IFDEF MMSX86_64
+# ARCH_DEF= # ,__CRTL_VER_OVERRIDE=80400000
+# .ENDIF
+
+.ENDIF # __VAX__
+
+.IFDEF LIST
+LIST_OPT = /list=[.$(DEST)] /show=(all, nomessages)
+MAP_OPT = /map /cross_reference /full
+.ENDIF # LIST
+

LD_DEF = link
C_INC = [.proto]

.IFDEF DEBUG
DEBUG_DEF = ,"DEBUG"
-TARGET = dvim.exe
-CFLAGS = /debug/noopt$(PREFIX)
-LDFLAGS = /debug
+TARGET = [.$(DEST)]dvim.exe
+CFLAGS = /debug/noopt$(PREFIX)$(FLOAT)$(LIST_OPT)
+LDFLAGS = /debug $(MAP_OPT)
.ELSE
-TARGET = vim.exe
-CFLAGS = $(OPTIMIZE)$(PREFIX)
-LDFLAGS =
+TARGET = [.$(DEST)]vim.exe
+CFLAGS = $(OPTIMIZE)$(PREFIX)$(FLOAT)$(LIST_OPT)
+LDFLAGS = $(MAP_OPT)
.ENDIF

# Predefined VIM directories
@@ -173,7 +308,14 @@ DEFS = ,"HAVE_CONFIG_H","FEAT_GUI_GTK"
LIBS = ,OS_VMS_GTK.OPT/OPT
GUI_FLAG = /float=ieee/ieee=denorm/WARNINGS=(DISABLE=MACROREDEF)
GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_gtk_x11.c gui_beval.c pty.c
-GUI_OBJ = gui.obj gui_gtk.obj gui_gtk_f.obj gui_gtk_x11.obj gui_beval.obj pty.obj
+GUI_OBJ = \
+[.$(DEST)]gui.obj \
+[.$(DEST)]gui_gtk.obj \
+[.$(DEST)]gui_gtk_f.obj \
+[.$(DEST)]gui_gtk_x11.obj \
+[.$(DEST)]gui_beval.obj \
+[.$(DEST)]pty.obj
+
GUI_INC = ,"/gtk_root/gtk","/gtk_root/glib"
# GUI_INC_VER is used just for :ver information
# this string should escape from C and DCL in the same time
@@ -191,7 +333,14 @@ XPM_INC =
LIBS = ,OS_VMS_MOTIF.OPT/OPT
GUI_FLAG = /WARNINGS=(DISABLE=MACROREDEF)
GUI_SRC = gui.c gui_motif.c gui_x11.c gui_beval.c gui_xmdlg.c gui_xmebw.c
-GUI_OBJ = gui.obj gui_motif.obj gui_x11.obj gui_beval.obj gui_xmdlg.obj gui_xmebw.obj
+GUI_OBJ = \
+[.$(DEST)]gui.obj \
+[.$(DEST)]gui_motif.obj \
+[.$(DEST)]gui_x11.obj \
+[.$(DEST)]gui_beval.obj \
+[.$(DEST)]gui_xmdlg.obj \
+[.$(DEST)]gui_xmebw.obj
+
GUI_INC =
.ENDIF

@@ -211,7 +360,10 @@ LIBS =
PERL = perl
PERL_DEF = ,"FEAT_PERL"
PERL_SRC = if_perlsfio.c if_perl.xs
-PERL_OBJ = if_perlsfio.obj if_perl.obj
+PERL_OBJ = \
+[.$(DEST)]if_perlsfio.obj \
+[.$(DEST)]if_perl.obj
+
PERL_LIB = ,OS_VMS_PERL.OPT/OPT
PERL_INC = ,dka0:[perlbuild.perl.lib.vms_axp.5_6_1.core]
.ENDIF
@@ -220,7 +372,7 @@ PERL_INC = ,dka0:[perlbuild.perl.lib.vms_axp.5_6_1.core]
# Python related setup.
PYTHON_DEF = ,"FEAT_PYTHON"
PYTHON_SRC = if_python.c
-PYTHON_OBJ = if_python.obj
+PYTHON_OBJ = [.$(DEST)]if_python.obj
PYTHON_LIB = ,OS_VMS_PYTHON.OPT/OPT
PYTHON_INC = ,PYTHON_INCLUDE
.ENDIF
@@ -229,7 +381,7 @@ PYTHON_INC = ,PYTHON_INCLUDE
# Python related setup.
PYTHON3_DEF = ,"FEAT_PYTHON3"
PYTHON3_SRC = if_python3.c
-PYTHON3_OBJ = if_python3.obj
+PYTHON3_OBJ = [.$(DEST)]if_python3.obj
PYTHON3_LIB = ,OS_VMS_PYTHON3.OPT/OPT
PYTHON3_INC = ,PYTHON3_INCLUDE
.ENDIF
@@ -239,7 +391,7 @@ PYTHON3_INC = ,PYTHON3_INCLUDE
# TCL related setup.
TCL_DEF = ,"FEAT_TCL"
TCL_SRC = if_tcl.c
-TCL_OBJ = if_tcl.obj
+TCL_OBJ = [.$(DEST)]if_tcl.obj
TCL_LIB = ,OS_VMS_TCL.OPT/OPT
TCL_INC = ,dka0:[tcl80.generic]
.ENDIF
@@ -248,7 +400,7 @@ TCL_INC = ,dka0:[tcl80.generic]
# RUBY related setup.
RUBY_DEF = ,"FEAT_RUBY"
RUBY_SRC = if_ruby.c
-RUBY_OBJ = if_ruby.obj
+RUBY_OBJ = [.$(DEST)]if_ruby.obj
RUBY_LIB = ,OS_VMS_RUBY.OPT/OPT
RUBY_INC =
.ENDIF
@@ -257,7 +409,7 @@ RUBY_INC =
# LUA related setup.
LUA_DEF = ,"FEAT_LUA"
LUA_SRC = if_lua.c
-LUA_OBJ = if_lua.obj
+LUA_OBJ = [.$(DEST)]if_lua.obj
LUA_LIB = ,OS_VMS_LUA.OPT/OPT
LUA_INC = ,LUA$ROOT:[INCLUDE]
.ENDIF
@@ -273,7 +425,7 @@ XIM_DEF = ,"FEAT_XIM"
# MZSCHEME related setup
MZSCHEME_DEF = ,"FEAT_MZSCHEME"
MZSCHEME_SRC = if_mzsch.c
-MZSCHEME_OBJ = if_mzsch.obj
+MZSCHEME_OBJ = [.$(DEST)]if_mzsch.obj
.ENDIF

.IFDEF VIM_ICONV
@@ -283,7 +435,14 @@ ICONV_DEF = ,"USE_ICONV"

# XDIFF related setup.
XDIFF_SRC = xdiffi.c,xemit.c,xprepare.c,xutils.c,xhistogram.c,xpatience.c
-XDIFF_OBJ = xdiffi.obj,xemit.obj,xprepare.obj,xutils.obj,xhistogram.obj,xpatience.obj
+XDIFF_OBJ = \
+[.$(DEST)]xdiffi.obj,\
+[.$(DEST)]xemit.obj,\
+[.$(DEST)]xprepare.obj,\
+[.$(DEST)]xutils.obj,\
+[.$(DEST)]xhistogram.obj,\
+[.$(DEST)]xpatience.obj
+
XDIFF_INC = ,[.xdiff]

.IFDEF MODIFIED_BY
@@ -303,371 +462,408 @@ MODEL_DEF = "FEAT_$(MODEL)"
VIMUSER = "''F$EDIT(F$GETJPI(" ","USERNAME"),"TRIM")'"
VIMHOST = "''F$TRNLNM("SYS$NODE")'''F$TRNLNM("UCX$INET_HOST")'.''F$TRNLNM("UCX$INET_DOMAIN")'"

-.SUFFIXES : .obj .c
+.SUFFIXES : .obj .c # Case problems with old MMS? Ignore: %MMS-I-ALRINSUFFLST

-ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF)$(PYTHON3_DEF) -
- $(TCL_DEF)$(RUBY_DEF)$(LUA_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCHEME_DEF) -
- $(ICONV_DEF)$(ARCH_DEF)) -
+ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF) -
+ $(PYTHON_DEF)$(PYTHON3_DEF) $(TCL_DEF)$(RUBY_DEF)$(LUA_DEF) -
+ $(XIM_DEF)$(TAG_DEF)$(MZSCHEME_DEF) $(ICONV_DEF)$(ARCH_DEF) -
+ $(LARGE_DEF)) -
$(CFLAGS)$(GUI_FLAG) -
- /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC)$(PYTHON3_INC) -
- $(TCL_INC)$(XDIFF_INC)$(XPM_INC))
+ /include=([.$(DEST)],$(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC) -
+ $(PYTHON_INC)$(PYTHON3_INC)$(TCL_INC)$(XDIFF_INC)$(XPM_INC))

# CFLAGS displayed in :ver information
# It is specially formatted for correct display of unix like includes
# as $(GUI_INC) - replaced with $(GUI_INC_VER)
# Otherwise should not be any other difference.
-ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF)$(PYTHON3_DEF) -
- $(TCL_DEF)$(RUBY_DEF)$(LUA_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCHEME_DEF) -
- $(ICONV_DEF)$(ARCH_DEF)) -
+ALL_CFLAGS_VER1 = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF) -
+ $(PYTHON_DEF)$(PYTHON3_DEF) -
+ $(TCL_DEF)$(RUBY_DEF)$(LUA_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCHEME_DEF)
+ALL_CFLAGS_VER2 = $(ICONV_DEF)$(ARCH_DEF)$(LARGE_DEF)) -
$(CFLAGS)$(GUI_FLAG) -
- /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC)$(PYTHON3_INC) -
- $(TCL_INC)$(XDIFF_INC)$(XPM_INC))
+ /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC) -
+ $(PYTHON_INC)$(PYTHON3_INC) $(TCL_INC)$(XDIFF_INC)$(XPM_INC))

ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) $(XPM_LIB)\
$(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(TCL_LIB) $(RUBY_LIB) $(LUA_LIB)

SRC = \
- alloc.c \
- arabic.c \
- arglist.c \
- autocmd.c \
- beval.c \
- blob.c \
- blowfish.c \
- buffer.c \
- bufwrite.c \
- change.c \
- channel.c \
- charset.c \
- cindent.c \
- clientserver.c \
- clipboard.c \
- cmdexpand.c \
- cmdhist.c \
- crypt.c \
- crypt_zip.c \
- debugger.c \
- dict.c \
- diff.c \
- digraph.c \
- drawline.c \
- drawscreen.c \
- edit.c \
- eval.c \
- evalbuffer.c \
- evalfunc.c \
- evalvars.c \
- evalwindow.c \
- ex_cmds.c \
- ex_cmds2.c \
- ex_docmd.c \
- ex_eval.c \
- ex_getln.c \
- fileio.c \
- filepath.c, \
- findfile.c \
- float.c \
- fold.c \
- getchar.c \
- gc.c \
- gui_xim.c \
- hardcopy.c \
- hashtab.c \
- help.c \
- highlight.c \
- if_cscope.c \
- if_xcmdsrv.c \
- indent.c \
- insexpand.c \
- job.c \
- json.c \
- linematch.c \
- list.c \
- locale.c \
- logfile.c \
- main.c \
- map.c \
- mark.c \
- match.c \
- mbyte.c \
- memfile.c \
- memline.c \
- menu.c \
- message.c \
- misc1.c \
- misc2.c \
- mouse.c \
- move.c \
- normal.c \
- ops.c \
- option.c \
- optionstr.c \
- os_unix.c \
- os_vms.c \
- pathdef.c \
- popupmenu.c \
- popupwin.c \
- profiler.c \
- pty.c \
- quickfix.c \
- regexp.c \
- register.c \
- screen.c \
- scriptfile.c \
- search.c \
- session.c \
- sha256.c \
- sign.c \
- sound.c \
- spell.c \
- spellfile.c \
- spellsuggest.c \
- strings.c \
- syntax.c \
- tabpanel.c \
- tag.c \
- term.c \
- terminal.c \
- termlib.c \
- testing.c \
- textformat.c \
- textobject.c \
- textprop.c \
- time.c \
- tuple.c \
- typval.c \
- ui.c \
- undo.c \
- usercmd.c \
- userfunc.c \
- version.c \
- vim9class.c \
- vim9cmds.c \
- vim9compile.c \
- vim9execute.c \
- vim9expr.c \
- vim9generics.c \
- vim9instr.c \
- vim9script.c \
- vim9type.c \
- viminfo.c \
- window.c \
- $(GUI_SRC) \
- $(XDIFF_SRC) \
- $(LUA_SRC) \
- $(MZSCHEME_SRC) \
- $(PERL_SRC) \
- $(PYTHON_SRC) \
- $(PYTHON3_SRC) \
- $(TCL_SRC) \
- $(RUBY_SRC)
+ alloc.c \
+ arabic.c \
+ arglist.c \
+ autocmd.c \
+ beval.c \
+ blob.c \
+ blowfish.c \
+ buffer.c \
+ bufwrite.c \
+ change.c \
+ channel.c \
+ charset.c \
+ cindent.c \
+ clientserver.c \
+ clipboard.c \
+ cmdexpand.c \
+ cmdhist.c \
+ crypt.c \
+ crypt_zip.c \
+ debugger.c \
+ dict.c \
+ diff.c \
+ digraph.c \
+ drawline.c \
+ drawscreen.c \
+ edit.c \
+ eval.c \
+ evalbuffer.c \
+ evalfunc.c \
+ evalvars.c \
+ evalwindow.c \
+ ex_cmds.c \
+ ex_cmds2.c \
+ ex_docmd.c \
+ ex_eval.c \
+ ex_getln.c \
+ fileio.c \
+ filepath.c, \
+ findfile.c \
+ float.c \
+ fold.c \
+ getchar.c \
+ gc.c \
+ gui_xim.c \
+ hardcopy.c \
+ hashtab.c \
+ help.c \
+ highlight.c \
+ if_cscope.c \
+ if_xcmdsrv.c \
+ indent.c \
+ insexpand.c \
+ job.c \
+ json.c \
+ linematch.c \
+ list.c \
+ locale.c \
+ logfile.c \
+ main.c \
+ map.c \
+ mark.c \
+ match.c \
+ mbyte.c \
+ memfile.c \
+ memline.c \
+ menu.c \
+ message.c \
+ misc1.c \
+ misc2.c \
+ mouse.c \
+ move.c \
+ normal.c \
+ ops.c \
+ option.c \
+ optionstr.c \
+ os_unix.c \
+ os_vms.c \
+ [.$(DEST)]pathdef.c \
+ popupmenu.c \
+ popupwin.c \
+ profiler.c \
+ pty.c \
+ quickfix.c \
+ regexp.c \
+ register.c \
+ screen.c \
+ scriptfile.c \
+ search.c \
+ session.c \
+ sha256.c \
+ sign.c \
+ sound.c \
+ spell.c \
+ spellfile.c \
+ spellsuggest.c \
+ strings.c \
+ syntax.c \
+ tabpanel.c \
+ tag.c \
+ term.c \
+ terminal.c \
+ termlib.c \
+ testing.c \
+ textformat.c \
+ textobject.c \
+ textprop.c \
+ time.c \
+ tuple.c \
+ typval.c \
+ ui.c \
+ undo.c \
+ usercmd.c \
+ userfunc.c \
+ version.c \
+ vim9class.c \
+ vim9cmds.c \
+ vim9compile.c \
+ vim9execute.c \
+ vim9expr.c \
+ vim9instr.c \
+ vim9generics.c \
+ vim9script.c \
+ vim9type.c \
+ viminfo.c \
+ window.c \
+ $(GUI_SRC) \
+ $(XDIFF_SRC) \
+ $(LUA_SRC) \
+ $(MZSCHEME_SRC) \
+ $(PERL_SRC) \
+ $(PYTHON_SRC) \
+ $(PYTHON3_SRC) \
+ $(TCL_SRC) \
+ $(RUBY_SRC)

OBJ = \
- alloc.obj \
- arabic.obj \
- arglist.obj \
- autocmd.obj \
- beval.obj \
- blob.obj \
- blowfish.obj \
- buffer.obj \
- bufwrite.obj \
- change.obj \
- channel.obj \
- charset.obj \
- cindent.obj \
- clientserver.obj \
- clipboard.obj \
- cmdexpand.obj \
- cmdhist.obj \
- crypt.obj \
- crypt_zip.obj \
- debugger.obj \
- dict.obj \
- diff.obj \
- digraph.obj \
- drawline.obj \
- drawscreen.obj \
- edit.obj \
- eval.obj \
- evalbuffer.obj \
- evalfunc.obj \
- evalvars.obj \
- evalwindow.obj \
- ex_cmds.obj \
- ex_cmds2.obj \
- ex_docmd.obj \
- ex_eval.obj \
- ex_getln.obj \
- fileio.obj \
- filepath.obj \
- findfile.obj \
- float.obj \
- fold.obj \
- getchar.obj \
- gc.obj \
- gui_xim.obj \
- hardcopy.obj \
- hashtab.obj \
- help.obj \
- highlight.obj \
- if_cscope.obj \
- if_mzsch.obj \
- if_xcmdsrv.obj \
- indent.obj \
- insexpand.obj \
- job.obj \
- json.obj \
- linematch.obj \
- list.obj \
- locale.obj \
- logfile.obj \
- main.obj \
- map.obj \
- mark.obj \
- match.obj \
- mbyte.obj \
- memfile.obj \
- memline.obj \
- menu.obj \
- message.obj \
- misc1.obj \
- misc2.obj \
- mouse.obj \
- move.obj \
- normal.obj \
- ops.obj \
- option.obj \
- optionstr.obj \
- os_unix.obj \
- os_vms.obj \
- pathdef.obj \
- popupmenu.obj \
- popupwin.obj \
- profiler.obj \
- pty.obj \
- quickfix.obj \
- regexp.obj \
- register.obj \
- screen.obj \
- scriptfile.obj \
- search.obj \
- session.obj \
- sha256.obj \
- sign.obj \
- sound.obj \
- spell.obj \
- spellfile.obj \
- spellsuggest.obj \
- strings.obj \
- syntax.obj \
- tabpanel.obj \
- tag.obj \
- term.obj \
- terminal.obj \
- termlib.obj \
- testing.obj \
- textformat.obj \
- textobject.obj \
- textprop.obj \
- time.obj \
- tuple.obj \
- typval.obj \
- ui.obj \
- undo.obj \
- usercmd.obj \
- userfunc.obj \
- version.obj \
- vim9class.obj \
- vim9cmds.obj \
- vim9compile.obj \
- vim9execute.obj \
- vim9expr.obj \
- vim9generics.obj \
- vim9instr.obj \
- vim9script.obj \
- vim9type.obj \
- viminfo.obj \
- window.obj \
- $(GUI_OBJ) \
- $(XDIFF_OBJ) \
- $(LUA_OBJ) \
- $(MZSCHEME_OBJ) \
- $(PERL_OBJ) \
- $(PYTHON_OBJ) \
- $(PYTHON3_OBJ) \
- $(TCL_OBJ) \
- $(RUBY_OBJ)
+ [.$(DEST)]alloc.obj \
+ [.$(DEST)]arabic.obj \
+ [.$(DEST)]arglist.obj \
+ [.$(DEST)]autocmd.obj \
+ [.$(DEST)]beval.obj \
+ [.$(DEST)]blob.obj \
+ [.$(DEST)]blowfish.obj \
+ [.$(DEST)]buffer.obj \
+ [.$(DEST)]bufwrite.obj \
+ [.$(DEST)]change.obj \
+ [.$(DEST)]channel.obj \
+ [.$(DEST)]charset.obj \
+ [.$(DEST)]cindent.obj \
+ [.$(DEST)]clientserver.obj \
+ [.$(DEST)]clipboard.obj \
+ [.$(DEST)]cmdexpand.obj \
+ [.$(DEST)]cmdhist.obj \
+ [.$(DEST)]crypt.obj \
+ [.$(DEST)]crypt_zip.obj \
+ [.$(DEST)]debugger.obj \
+ [.$(DEST)]dict.obj \
+ [.$(DEST)]diff.obj \
+ [.$(DEST)]digraph.obj \
+ [.$(DEST)]drawline.obj \
+ [.$(DEST)]drawscreen.obj \
+ [.$(DEST)]edit.obj \
+ [.$(DEST)]eval.obj \
+ [.$(DEST)]evalbuffer.obj \
+ [.$(DEST)]evalfunc.obj \
+ [.$(DEST)]evalvars.obj \
+ [.$(DEST)]evalwindow.obj \
+ [.$(DEST)]ex_cmds.obj \
+ [.$(DEST)]ex_cmds2.obj \
+ [.$(DEST)]ex_docmd.obj \
+ [.$(DEST)]ex_eval.obj \
+ [.$(DEST)]ex_getln.obj \
+ [.$(DEST)]fileio.obj \
+ [.$(DEST)]filepath.obj \
+ [.$(DEST)]findfile.obj \
+ [.$(DEST)]float.obj \
+ [.$(DEST)]fold.obj \
+ [.$(DEST)]getchar.obj \
+ [.$(DEST)]gc.obj \
+ [.$(DEST)]gui_xim.obj \
+ [.$(DEST)]hardcopy.obj \
+ [.$(DEST)]hashtab.obj \
+ [.$(DEST)]help.obj \
+ [.$(DEST)]highlight.obj \
+ [.$(DEST)]if_cscope.obj \
+ [.$(DEST)]if_mzsch.obj \
+ [.$(DEST)]if_xcmdsrv.obj \
+ [.$(DEST)]indent.obj \
+ [.$(DEST)]insexpand.obj \
+ [.$(DEST)]job.obj \
+ [.$(DEST)]json.obj \
+ [.$(DEST)]linematch.obj \
+ [.$(DEST)]list.obj \
+ [.$(DEST)]locale.obj \
+ [.$(DEST)]logfile.obj \
+ [.$(DEST)]main.obj \
+ [.$(DEST)]map.obj \
+ [.$(DEST)]mark.obj \
+ [.$(DEST)]match.obj \
+ [.$(DEST)]mbyte.obj \
+ [.$(DEST)]memfile.obj \
+ [.$(DEST)]memline.obj \
+ [.$(DEST)]menu.obj \
+ [.$(DEST)]message.obj \
+ [.$(DEST)]misc1.obj \
+ [.$(DEST)]misc2.obj \
+ [.$(DEST)]mouse.obj \
+ [.$(DEST)]move.obj \
+ [.$(DEST)]normal.obj \
+ [.$(DEST)]ops.obj \
+ [.$(DEST)]option.obj \
+ [.$(DEST)]optionstr.obj \
+ [.$(DEST)]os_unix.obj \
+ [.$(DEST)]os_vms.obj \
+ [.$(DEST)]pathdef.obj \
+ [.$(DEST)]popupmenu.obj \
+ [.$(DEST)]popupwin.obj \
+ [.$(DEST)]profiler.obj \
+ [.$(DEST)]pty.obj \
+ [.$(DEST)]quickfix.obj \
+ [.$(DEST)]regexp.obj \
+ [.$(DEST)]register.obj \
+ [.$(DEST)]screen.obj \
+ [.$(DEST)]scriptfile.obj \
+ [.$(DEST)]search.obj \
+ [.$(DEST)]session.obj \
+ [.$(DEST)]sha256.obj \
+ [.$(DEST)]sign.obj \
+ [.$(DEST)]sound.obj \
+ [.$(DEST)]spell.obj \
+ [.$(DEST)]spellfile.obj \
+ [.$(DEST)]spellsuggest.obj \
+ [.$(DEST)]strings.obj \
+ [.$(DEST)]syntax.obj \
+ [.$(DEST)]tabpanel.obj \
+ [.$(DEST)]tag.obj \
+ [.$(DEST)]term.obj \
+ [.$(DEST)]terminal.obj \
+ [.$(DEST)]termlib.obj \
+ [.$(DEST)]testing.obj \
+ [.$(DEST)]textformat.obj \
+ [.$(DEST)]textobject.obj \
+ [.$(DEST)]textprop.obj \
+ [.$(DEST)]time.obj \
+ [.$(DEST)]tuple.obj \
+ [.$(DEST)]typval.obj \
+ [.$(DEST)]ui.obj \
+ [.$(DEST)]undo.obj \
+ [.$(DEST)]usercmd.obj \
+ [.$(DEST)]userfunc.obj \
+ [.$(DEST)]version.obj \
+ [.$(DEST)]vim9class.obj \
+ [.$(DEST)]vim9cmds.obj \
+ [.$(DEST)]vim9compile.obj \
+ [.$(DEST)]vim9execute.obj \
+ [.$(DEST)]vim9expr.obj \
+ [.$(DEST)]vim9instr.obj \
+ [.$(DEST)]vim9generics.obj \
+ [.$(DEST)]vim9script.obj \
+ [.$(DEST)]vim9type.obj \
+ [.$(DEST)]viminfo.obj \
+ [.$(DEST)]window.obj \
+ $(GUI_OBJ) \
+ $(XDIFF_OBJ) \
+ $(LUA_OBJ) \
+ $(MZSCHEME_OBJ) \
+ $(PERL_OBJ) \
+ $(PYTHON_OBJ) \
+ $(PYTHON3_OBJ) \
+ $(TCL_OBJ) \
+ $(RUBY_OBJ)

# Default target is making the executable
-all : [.auto]config.h mmk_compat motif_env gtk_env perl_env python_env tcl_env ruby_env lua_env $(TARGET)
+all : [.$(DEST)]config.h mmk_compat motif_env gtk_env perl_env \
+ python_env tcl_env ruby_env lua_env $(TARGET)
! $@

-[.auto]config.h : $(CONFIG_H)
- copy/nolog $(CONFIG_H) [.auto]config.h
- -@ open/append ac [.auto]config.h
+[.$(DEST)]config.h : $(CONFIG_H)
+ copy/nolog $(CONFIG_H) [.$(DEST)]config.h
+ -@ open/append ac [.$(DEST)]config.h
-@ hash[0,8]=35
-@ quotes[0,8]=34
-@ if ""$(DEF_MODIFIED)"" .EQS. "YES" then write ac ''hash',"define MODIFIED_BY ",''quotes',$(MODIFIED_BY),''quotes'
-@ close ac

mmk_compat :
- -@ open/write pd pathdef.c
+ -@ open/write pd [.$(DEST)]pathdef.c
-@ write pd "/* Empty file to satisfy MMK depend. */"
- -@ write pd "/* It will be overwritten later on... */"
+ -@ write pd "/* It will be overwritten later... */"
-@ close pd
clean :
- -@ if "''F$SEARCH("*.exe")'" .NES. "" then delete/noconfirm/nolog *.exe;*
- -@ if "''F$SEARCH("*.obj")'" .NES. "" then delete/noconfirm/nolog *.obj;*
- -@ if "''F$SEARCH("[.auto]config.h")'" .NES. "" then delete/noconfirm/nolog [.auto]config.h;*
- -@ if "''F$SEARCH("pathdef.c")'" .NES. "" then delete/noconfirm/nolog pathdef.c;*
- -@ if "''F$SEARCH("if_perl.c")'" .NES. "" then delete/noconfirm/nolog if_perl.c;*
- -@ if "''F$SEARCH("*.opt")'" .NES. "" then delete/noconfirm/nolog *.opt;*
- -@ if "''F$SEARCH("*.dmp")'" .NES. "" then delete/noconfirm/nolog *.dmp;*
+ -@ if (f$search( "[.$(DEST)]*.*") .nes. "") then -
+ delete /noconfirm [.$(DEST)]*.*;*
+ -@ if (f$search( "$(DEST).DIR") .nes. "") then -
+ set protection = w:d $(DEST).DIR;*
+ -@ if (f$search( "$(DEST).DIR") .nes. "") then -
+ delete /noconfirm $(DEST).DIR;*
+
+help :
+ mcr sys$disk:$(TARGET) --help
+
+version :
+ mcr sys$disk:$(TARGET) --version

# Link the target
$(TARGET) : $(OBJ)
# make an OPT file - as the obj file list is too long for one command line
- -@ DIRECTORY *.OBJ. /BRIEF/COLUMNS=1/NOHEADING/NOTRAILING /SELECT=FILE=(NONODE,NODEVICE,NODIRECTORY,NOVERSION)/OUTPUT=ALL_OBJS_LIST.OPT
- $(LD_DEF) $(LDFLAGS) /exe=$(TARGET) ALL_OBJS_LIST.OPT/OPT $(ALL_LIBS)
+ -@ DIRECTORY [.$(DEST)]*.OBJ. /BRIEF/COLUMNS=1 /NOHEADING -
+ /NOTRAILING /SELECT=FILE=(NONODE,NODEVICE,NODIRECTORY,NOVERSION) -
+ /OUTPUT=[.$(DEST)]ALL_OBJS_LIST.OPT
+ -@ def_dev_dir_orig = f$environment( "default")
+ -@ target_name_type = -
+ f$parse( "$(TARGET)", , , "NAME", "SYNTAX_ONLY")+ -
+ f$parse( "$(TARGET)", , , "TYPE", "SYNTAX_ONLY")
+ -@ set default [.$(DEST)]
+ $(LD_DEF) $(LDFLAGS) /exe = 'target_name_type' -
+ ALL_OBJS_LIST.OPT/OPT $(ALL_LIBS)
+ -@ set default 'def_dev_dir_orig'

.c.obj :
- $(CC_DEF) $(ALL_CFLAGS) $<
-
-pathdef.c : check_ccver $(CONFIG_H)
+# Override /optimize for selected modules on VAX.
+.IFDEF __VAX__ # __VAX__
+ @ mod = f$parse( "$@", , , "NAME", "SYNTAX_ONLY")
+ @ mod = "+"+ f$edit( mod, "LOWERCASE")+ "+"
+ @ optim_qual = ""
+ @ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
+ f$length( "+$(VAX_NOOPTIM_LIST)+")) then optim_qual = "/nooptim"
+ @ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
+ f$length( "+$(VAX_NOOPTIM_LIST)+")) then -
+ @ write sys$output -
+ " *** NOTE: USING SPECIAL /NOOPTIMIZE RULE. ***"
+ $(CC_DEF) $(ALL_CFLAGS) 'optim_qual' $< /object = $@
+.ELSE # __VAX__
+ $(CC_DEF) $(ALL_CFLAGS) $< /object = $@
+.ENDIF # __VAX__ [ELSE]
+
+[.$(DEST)]pathdef.c : check_ccver $(CONFIG_H)
-@ write sys$output "creating PATHDEF.C file."
- -@ open/write pd pathdef.c
+ -@ open/write pd $@
-@ write pd "/* pathdef.c -- DO NOT EDIT! */"
-@ write pd "/* This file is automatically created by MAKE_VMS.MMS"
-@ write pd " * Change the file MAKE_VMS.MMS Only. */"
-@ write pd "typedef unsigned char char_u;"
-@ write pd "char_u *default_vim_dir = (char_u *)"$(VIMLOC)";"
-@ write pd "char_u *default_vimruntime_dir = (char_u *)"$(VIMRUN)";"
- -@ write pd "char_u *all_cflags = (char_u *)""$(CC_DEF)$(ALL_CFLAGS_VER)"";"
- -@ write pd "char_u *all_lflags = (char_u *)""$(LD_DEF)$(LDFLAGS) /exe=$(TARGET) ALL_OBJS_LIST.OPT/OPT $(ALL_LIBS)"";"
+ -@ write pd "char_u *all_cflags = (char_u *)""$(CC_DEF)"""
+ -@ write pd " ""$(ALL_CFLAGS_VER1)"""
+ -@ write pd " ""$(ALL_CFLAGS_VER2)"";"
+ -@ write pd "char_u *all_lflags = (char_u *)""$(LD_DEF)$(LDFLAGS)"""
+ -@ write pd " ""/exe=$(TARGET) ALL_OBJS_LIST.OPT/OPT $(ALL_LIBS)"";"
-@ write pd "char_u *compiler_version = (char_u *) ""''CC_VER'"";"
-@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";"
-@ write pd "char_u *compiled_sys = (char_u *) "$(VIMHOST)";"
-@ write pd "char_u *compiled_arch = (char_u *) ""$(MMSARCH_NAME)"";"
+ -@ write pd "char_u *compiled_vers = (char_u *) """ + -
+ f$getsyi( "version")+ """;"
-@ close pd

-if_perl.c : if_perl.xs
+[.$(DEST)]if_perl.c : if_perl.xs
-@ $(PERL) PERL_ROOT:[LIB.ExtUtils]xsubpp -prototypes -typemap - PERL_ROOT:[LIB.ExtUtils]typemap if_perl.xs >> $@

make_vms.mms :
-@ write sys$output "The name of the makefile MUST be <MAKE_VMS.MMS> !!!"
+# WHY??? (SMS.)

.IFDEF CCVER
# This part can make some complications if you're using some predefined
# symbols/flags for your compiler. If does, just comment out CCVER variable
check_ccver :
- -@ define sys$output cc_ver.tmp
+ -@ define /user_mode sys$error nl:
+ -@ define /user_mode sys$output [.$(DEST)]cc_ver.tmp
-@ $(CC_DEF)/version
- -@ deassign sys$output
- -@ open/read file cc_ver.tmp
+ -@ open/read file [.$(DEST)]cc_ver.tmp
-@ read file CC_VER
-@ close file
- -@ delete/noconfirm/nolog cc_ver.tmp.*
+ -@ delete/noconfirm/nolog [.$(DEST)]cc_ver.tmp.*
.ELSE
check_ccver :
-@ !
@@ -678,24 +874,21 @@ motif_env :
.IFDEF XPM
-@ write sys$output "using DECW/Motif/XPM environment."
-@ write sys$output "creating OS_VMS_XPM.OPT file."
- -@ open/write opt_file OS_VMS_XPM.OPT
-.IFDEF MMSVAX
- -@ write opt_file "[.xpm.vms.vax]libxpm.olb/lib"
-.ENDIF
-.IFDEF MMSALPHA
- -@ write opt_file "[.xpm.vms.axp]libxpm.olb/lib"
-.ENDIF
-.IFDEF MMSIA64
- -@ write opt_file "[.xpm.vms.ia64]libxpm.olb/lib"
+ -@ open/write opt_file [.$(DEST)]OS_VMS_XPM.OPT
+.IFDEF __ALPHA__
+ARCH_XPM = axp
+.ELSE
+ARCH_XPM = $(ARCH)
.ENDIF
+ -@ write opt_file "[.xpm.vms.$(ARCH_XPM)]libxpm.olb/lib"
-@ close opt_file
.ELSE
-@ write sys$output "using DECW/Motif environment."
.ENDIF
-@ write sys$output "creating OS_VMS_MOTIF.OPT file."
- -@ open/write opt_file OS_VMS_MOTIF.OPT
- -@ write opt_file "sys$share:decw$xmlibshr12.exe/share,-"
- -@ write opt_file "sys$share:decw$xtlibshrr5.exe/share,-"
+ -@ open/write opt_file [.$(DEST)]OS_VMS_MOTIF.OPT
+ -@ write opt_file "sys$share:decw$xmlibshr12.exe/share"
+ -@ write opt_file "sys$share:decw$xtlibshrr5.exe/share"
-@ write opt_file "sys$share:decw$xlibshr.exe/share"
-@ close opt_file
.ELSE
@@ -711,7 +904,7 @@ gtk_env :
-@ show logical gtk_root
-@ write sys$output " include path: "$(GUI_INC)""
-@ write sys$output "creating OS_VMS_GTK.OPT file."
- -@ open/write opt_file OS_VMS_GTK.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_GTK.OPT
-@ write opt_file "gtk_root:[glib]libglib.exe /share,-"
-@ write opt_file "gtk_root:[glib.gmodule]libgmodule.exe /share,-"
-@ write opt_file "gtk_root:[gtk.gdk]libgdk.exe /share,-"
@@ -731,12 +924,12 @@ perl_env :
-@ show logical PERLSHR
-@ write sys$output " include path: ""$(PERL_INC)"""
-@ show symbol perl
- -@ open/write pd if_perl.c
+ -@ open/write pd [.$(DEST)]if_perl.c
-@ write pd "/* Empty file to satisfy MMK depend. */"
- -@ write pd "/* It will be overwritten later on... */"
+ -@ write pd "/* It will be overwritten later... */"
-@ close pd
-@ write sys$output "creating OS_VMS_PERL.OPT file."
- -@ open/write opt_file OS_VMS_PERL.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_PERL.OPT
-@ write opt_file "PERLSHR /share"
-@ close opt_file
.ELSE
@@ -750,7 +943,7 @@ python_env :
-@ show logical PYTHON_INCLUDE
-@ show logical PYTHON_OLB
-@ write sys$output "creating OS_VMS_PYTHON.OPT file."
- -@ open/write opt_file OS_VMS_PYTHON.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_PYTHON.OPT
-@ write opt_file "PYTHON_OLB:PYTHON.OLB /share"
-@ close opt_file
.ELSE
@@ -764,7 +957,7 @@ python3_env :
-@ show logical PYTHON3_INCLUDE
-@ show logical PYTHON3_OLB
-@ write sys$output "creating OS_VMS_PYTHON3.OPT file."
- -@ open/write opt_file OS_VMS_PYTHON3.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_PYTHON3.OPT
-@ write opt_file "PYTHON3_OLB:PYTHON3.OLB /share"
-@ close opt_file
.ELSE
@@ -778,7 +971,7 @@ tcl_env :
-@ show logical TCLSHR
-@ write sys$output " include path: ""$(TCL_INC)"""
-@ write sys$output "creating OS_VMS_TCL.OPT file."
- -@ open/write opt_file OS_VMS_TCL.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_TCL.OPT
-@ write opt_file "TCLSHR /share"
-@ close opt_file
.ELSE
@@ -791,7 +984,7 @@ ruby_env :
-@ write sys$output "using RUBY environment:"
-@ write sys$output " include path: ""$(RUBY_INC)"""
-@ write sys$output "creating OS_VMS_RUBY.OPT file."
- -@ open/write opt_file OS_VMS_RUBY.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_RUBY.OPT
-@ write opt_file "RUBYSHR /share"
-@ close opt_file
.ELSE
@@ -804,7 +997,7 @@ lua_env :
-@ write sys$output "using LUA environment:"
-@ write sys$output " include path: ""$(LUA_INC)"""
-@ write sys$output "creating OS_VMS_LUA.OPT file."
- -@ open/write opt_file OS_VMS_LUA.OPT
+ -@ open/write opt_file [.$(DEST)]OS_VMS_LUA.OPT
-@ write opt_file "LUA$ROOT:[LIB]LUA$SHR.EXE /share"
-@ close opt_file
.ELSE
@@ -812,467 +1005,467 @@ lua_env :
-@ !
.ENDIF

-alloc.obj : alloc.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]alloc.obj : alloc.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-arabic.obj : arabic.c vim.h
-arglist.obj : arglist.c vim.h [.auto]config.h feature.h os_unix.h
-autocmd.obj : autocmd.c vim.h [.auto]config.h feature.h os_unix.h
-blowfish.obj : blowfish.c vim.h [.auto]config.h feature.h os_unix.h
-blob.obj : blob.c vim.h [.auto]config.h feature.h os_unix.h
-buffer.obj : buffer.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]arabic.obj : arabic.c vim.h
+[.$(DEST)]arglist.obj : arglist.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]autocmd.obj : autocmd.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]blowfish.obj : blowfish.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]blob.obj : blob.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]buffer.obj : buffer.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-bufwrite.obj : bufwrite.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]bufwrite.obj : bufwrite.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-change.obj : change.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]change.obj : change.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-charset.obj : charset.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]charset.obj : charset.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-channel.obj : channel.c vim.h [.auto]config.h feature.h
-cindent.obj : cindent.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]channel.obj : channel.c vim.h [.$(DEST)]config.h feature.h
+[.$(DEST)]cindent.obj : cindent.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-clientserver.obj : clientserver.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]clientserver.obj : clientserver.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-clipboard.obj : clipboard.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]clipboard.obj : clipboard.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-cmdexpand.obj : cmdexpand.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]cmdexpand.obj : cmdexpand.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-cmdhist.obj : cmdhist.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]cmdhist.obj : cmdhist.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-crypt.obj : crypt.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]crypt.obj : crypt.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-crypt_zip.obj : crypt_zip.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]crypt_zip.obj : crypt_zip.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-debugger.obj : debugger.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]debugger.obj : debugger.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-dict.obj : dict.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]dict.obj : dict.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-diff.obj : diff.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]diff.obj : diff.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-digraph.obj : digraph.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]digraph.obj : digraph.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-drawline.obj : drawline.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]drawline.obj : drawline.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-drawscreen.obj : drawscreen.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]drawscreen.obj : drawscreen.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-edit.obj : edit.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]edit.obj : edit.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-eval.obj : eval.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]eval.obj : eval.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-evalbuffer.obj : evalbuffer.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]evalbuffer.obj : evalbuffer.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-evalfunc.obj : evalfunc.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]evalfunc.obj : evalfunc.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h version.h
-evalvars.obj : evalvars.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]evalvars.obj : evalvars.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h version.h
-evalwindow.obj : evalwindow.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]evalwindow.obj : evalwindow.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-ex_cmds.obj : ex_cmds.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ex_cmds.obj : ex_cmds.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-ex_cmds2.obj : ex_cmds2.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ex_cmds2.obj : ex_cmds2.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-ex_docmd.obj : ex_docmd.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ex_docmd.obj : ex_docmd.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h ex_cmdidxs.h
-ex_eval.obj : ex_eval.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ex_eval.obj : ex_eval.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-ex_getln.obj : ex_getln.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ex_getln.obj : ex_getln.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-fileio.obj : fileio.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]fileio.obj : fileio.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-filepath.obj : filepath.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]filepath.obj : filepath.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-findfile.obj : findfile.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]findfile.obj : findfile.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-float.obj : float.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]float.obj : float.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-fold.obj : fold.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]fold.obj : fold.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-getchar.obj : getchar.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]getchar.obj : getchar.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-gc.obj : gc.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gc.obj : gc.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-gui_xim.obj : gui_xim.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_xim.obj : gui_xim.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-hardcopy.obj : hardcopy.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]hardcopy.obj : hardcopy.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-hashtab.obj : hashtab.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]hashtab.obj : hashtab.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-help.obj : help.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]help.obj : help.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-highlight.obj : highlight.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]highlight.obj : highlight.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_cscope.obj : if_cscope.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-if_mzsch.obj : if_mzsch.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_mzsch.obj : if_mzsch.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro ex_cmds.h proto.h \
errors.h globals.h if_mzsch.h
-indent.obj : indent.c vim.h [.auto]config.h feature.h os_unix.h
-insexpand.obj : insexpand.c vim.h [.auto]config.h feature.h os_unix.h
-job.obj : job.c vim.h [.auto]config.h feature.h os_unix.h
-json.obj : json.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]indent.obj : indent.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]insexpand.obj : insexpand.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]job.obj : job.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]json.obj : json.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-linematch.obj : linematch.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]linematch.obj : linematch.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-list.obj : list.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]list.obj : list.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-locale.obj : locale.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]locale.obj : locale.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-logfile.obj : logfile.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]logfile.obj : logfile.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-main.obj : main.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]main.obj : main.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h \
arabic.c
-map.obj : map.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]map.obj : map.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-mark.obj : mark.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]mark.obj : mark.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-match.obj : match.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]match.obj : match.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-memfile.obj : memfile.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]memfile.obj : memfile.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-memline.obj : memline.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]memline.obj : memline.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-menu.obj : menu.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]menu.obj : menu.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-message.obj : message.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]message.obj : message.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-misc1.obj : misc1.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]misc1.obj : misc1.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h \
version.h
-misc2.obj : misc2.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]misc2.obj : misc2.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-mouse.obj : mouse.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]mouse.obj : mouse.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-move.obj : move.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]move.obj : move.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-mbyte.obj : mbyte.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]mbyte.obj : mbyte.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-normal.obj : normal.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]normal.obj : normal.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h nv_cmdidxs.h nv_cmds.h
-ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ops.obj : ops.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-option.obj : option.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]option.obj : option.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h optiondefs.h
-optionstr.obj : optionstr.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]optionstr.obj : optionstr.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-os_unix.obj : os_unix.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]os_unix.obj : os_unix.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h os_unixx.h
-os_vms.obj : os_vms.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]os_vms.obj : os_vms.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h os_unixx.h
-pathdef.obj : pathdef.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]pathdef.obj : [.$(DEST)]pathdef.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-popupmenu.obj : popupmenu.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]popupmenu.obj : popupmenu.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-popupwin.obj : popupwin.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]popupwin.obj : popupwin.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-pty.obj : pty.c vim.h [.auto]config.h feature.h os_unix.h
-profiler.obj : profiler.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]pty.obj : pty.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]profiler.obj : profiler.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-quickfix.obj : quickfix.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]quickfix.obj : quickfix.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-regexp.obj : regexp.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]regexp.obj : regexp.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-register.obj : register.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]register.obj : register.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-scriptfile.obj : scriptfile.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]scriptfile.obj : scriptfile.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-screen.obj : screen.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]screen.obj : screen.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-search.obj : search.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]search.obj : search.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-session.obj : session.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]session.obj : session.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-sha256.obj : sha256.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]sha256.obj : sha256.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-sign.obj : sign.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]sign.obj : sign.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
errors.h globals.h
-sound.obj : sound.c vim.h [.auto]config.h feature.h
-spell.obj : spell.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]sound.obj : sound.c vim.h [.$(DEST)]config.h feature.h
+[.$(DEST)]spell.obj : spell.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-spellfile.obj : spellfile.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]spellfile.obj : spellfile.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-spellsuggest.obj : spellsuggest.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]spellsuggest.obj : spellsuggest.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-strings.obj : strings.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]strings.obj : strings.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-syntax.obj : syntax.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]syntax.obj : syntax.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-tabpanel.obj : tabpanel.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]tabpanel.obj : tabpanel.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-tag.obj : tag.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]tag.obj : tag.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-term.obj : term.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]term.obj : term.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-terminal.obj : terminal.c vim.h [.auto]config.h feature.h os_unix.h
-termlib.obj : termlib.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]terminal.obj : terminal.c vim.h [.$(DEST)]config.h feature.h os_unix.h
+[.$(DEST)]termlib.obj : termlib.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-testing.obj : testing.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]testing.obj : testing.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-textformat.obj : textformat.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]textformat.obj : textformat.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-textobject.obj : textobject.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]textobject.obj : textobject.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]textprop.obj : textprop.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-time.obj : time.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]time.obj : time.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-tuple.obj : tuple.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]tuple.obj : tuple.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-typval.obj : typval.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]typval.obj : typval.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-ui.obj : ui.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]ui.obj : ui.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-undo.obj : undo.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]undo.obj : undo.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-usercmd.obj : usercmd.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]usercmd.obj : usercmd.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-userfunc.obj : userfunc.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]userfunc.obj : userfunc.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h errors.h globals.h
-version.obj : version.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]version.obj : version.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-viminfo.obj : viminfo.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]viminfo.obj : viminfo.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9class.obj : vim9class.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9class.obj : vim9class.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9cmds.obj : vim9cmds.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9cmds.obj : vim9cmds.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9compile.obj : vim9compile.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9compile.obj : vim9compile.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9execute.obj : vim9execute.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9execute.obj : vim9execute.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9expr.obj : vim9expr.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9expr.obj : vim9expr.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9generics.obj : vim9generics.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9instr.obj : vim9instr.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9instr.obj : vim9instr.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9generics.obj : vim9generics.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9script.obj : vim9script.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9script.obj : vim9script.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-vim9type.obj : vim9type.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]vim9type.obj : vim9type.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-window.obj : window.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]window.obj : window.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-gui.obj : gui.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui.obj : gui.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-gui_gtk.obj : gui_gtk.c gui_gtk_f.h vim.h [.auto]config.h feature.h \
+[.$(DEST)]gui_gtk.obj : gui_gtk.c gui_gtk_f.h vim.h [.$(DEST)]config.h feature.h \
os_unix.h ascii.h keymap.h termdefs.h macros.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
proto.h errors.h globals.h [-.pixmaps]stock_icons.h
-gui_gtk_f.obj : gui_gtk_f.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_gtk_f.obj : gui_gtk_f.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h gui_gtk_f.h
-gui_motif.obj : gui_motif.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_motif.obj : gui_motif.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
[-.pixmaps]generic.xpm [-.pixmaps]info.xpm [-.pixmaps]quest.xpm
-gui_athena.obj : gui_athena.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_athena.obj : gui_athena.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h gui_at_sb.h
-gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm version.h
-gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_x11.obj : gui_x11.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h [-.runtime]vim32x32.xpm \
@@ -1292,56 +1485,56 @@ gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
[-.pixmaps]tb_shell.xpm [-.pixmaps]tb_replace.xpm \
[-.pixmaps]tb_vsplit.xpm [-.pixmaps]tb_maxwidth.xpm \
[-.pixmaps]tb_minwidth.xpm
-gui_at_sb.obj : gui_at_sb.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_at_sb.obj : gui_at_sb.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h gui_at_sb.h
-gui_at_fs.obj : gui_at_fs.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_at_fs.obj : gui_at_fs.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h gui_at_sb.h
-pty.obj : pty.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]pty.obj : pty.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
-if_perl.obj : [.auto]if_perl.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_perl.obj : [.auto]if_perl.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-if_perlsfio.obj : if_perlsfio.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_perlsfio.obj : if_perlsfio.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-if_python.obj : if_python.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_python.obj : if_python.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-if_tcl.obj : if_tcl.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_tcl.obj : if_tcl.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-if_ruby.obj : if_ruby.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_ruby.obj : if_ruby.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-if_lua.obj : if_lua.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]if_lua.obj : if_lua.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
errors.h globals.h version.h
-beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]beval.obj : beval.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h option.h ex_cmds.h proto.h \
errors.h globals.h
-gui_beval.obj : gui_beval.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]gui_beval.obj : gui_beval.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h
-netbeans.obj : netbeans.c vim.h [.auto]config.h feature.h os_unix.h \
+[.$(DEST)]netbeans.obj : netbeans.c vim.h [.$(DEST)]config.h feature.h os_unix.h \
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h
-gui_xmdlg.obj : gui_xmdlg.c [.auto]config.h vim.h feature.h os_unix.h
-gui_xmebw.obj : gui_xmebw.c [.auto]config.h vim.h feature.h os_unix.h
-xdiffi.obj : [.xdiff]xdiffi.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
-xemit.obj : [.xdiff]xemit.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
-xprepare.obj : [.xdiff]xprepare.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
-xutils.obj : [.xdiff]xutils.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
-xhistogram.obj : [.xdiff]xhistogram.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
-xpatience.obj : [.xdiff]xpatience.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
+[.$(DEST)]gui_xmdlg.obj : gui_xmdlg.c [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]gui_xmebw.obj : gui_xmebw.c [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]xdiffi.obj : [.xdiff]xdiffi.c [.xdiff]xinclude.h [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]xemit.obj : [.xdiff]xemit.c [.xdiff]xinclude.h [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]xprepare.obj : [.xdiff]xprepare.c [.xdiff]xinclude.h [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]xutils.obj : [.xdiff]xutils.c [.xdiff]xinclude.h [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]xhistogram.obj : [.xdiff]xhistogram.c [.xdiff]xinclude.h [.$(DEST)]config.h vim.h feature.h os_unix.h
+[.$(DEST)]xpatience.obj : [.xdiff]xpatience.c [.xdiff]xinclude.h [.$(DEST)]config.h vim.h feature.h os_unix.h
diff --git a/src/globals.h b/src/globals.h
index f8b8ade2f..9e3a68120 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1694,6 +1694,7 @@ extern char_u *all_lflags;
# ifdef VMS
extern char_u *compiler_version;
extern char_u *compiled_arch;
+extern char_u *compiled_vers;
# endif
extern char_u *compiled_user;
extern char_u *compiled_sys;
diff --git a/src/main.c b/src/main.c
index 5c767a21b..34576c3e2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2096,7 +2096,19 @@ command_line_scan(mparm_T *parmp)
{
want_argument = FALSE;
c = argv[0][argv_idx++];
-#ifdef VMS
+#if defined( VMS)
+ /* 2025-05-13 SMS
+ * On sufficiently recent non-VAX systems, case preservation
+ * of the command line is possible/routine. And quotation
+ * always works, and is the expected method in such cases.
+ * However, leaving this slash-prefix scheme available is
+ * nearly harmless. But note that it doesn't help with the
+ * case of other command-line arguments, such as file names.
+ * For details, see os_vms.c:vms_init().
+ * On VAX and old non-VAX systems, or with SET PROC/PARSE=TRAD,
+ * DCL upcases the command line, and the C RTL downcases it.
+ * I would not say "only uses upper case command lines".
+ */
/*
* VMS only uses upper case command lines. Interpret "-X" as "-x"
* and "-/X" as "-X".
@@ -2106,9 +2118,12 @@ command_line_scan(mparm_T *parmp)
c = argv[0][argv_idx++];
c = TOUPPER_ASC(c);
}
- else
- c = TOLOWER_ASC(c);
-#endif
+ /* Note that although DCL might upcase things, the C RTL
+ * will only downcase them, so there should be no need for
+ * the following (additional?) downcasing (which spoils the
+ * preserve-case results):
+ */
+#endif /* defined( VMS) */
switch (c)
{
case NUL: // "vim -" read from stdin
@@ -3610,9 +3625,10 @@ usage(void)
break;
mch_msg(_("
or:"));
}
-#ifdef VMS
- mch_msg(_("
Where case is ignored prepend / to make flag upper case"));
-#endif
+#if defined( VMS)
+ mch_msg(_("
Where command is down-cased, prepend / (like: -/R) to treat flag as upper-case."));
+ mch_msg(_("
Or, where supported, SET PROC/PARSE=EXT, or else quote upper-case material."));
+#endif /* defined( VMS) */

mch_msg(_("

Arguments:
"));
main_msg(_("-- Only file names after this"));
diff --git a/src/os_vms.c b/src/os_vms.c
index 0a67a6b75..42dbc4b00 100644
--- a/src/os_vms.c
+++ b/src/os_vms.c
@@ -9,7 +9,7 @@
* See README.txt for an overview of the Vim source code.
*/

-#include "vim.h"
+#include "vim.h"

// define _generic_64 for use in time functions
#if !defined(VAX) && !defined(PROTO)
@@ -18,11 +18,11 @@
// based on Alpha's gen64def.h; the file is absent on VAX
typedef struct _generic_64 {
# pragma __nomember_alignment
- __union { // You can treat me as...
+ __union { // You can treat me as...
// long long is not available on VAXen
// unsigned __int64 gen64$q_quadword; ...a single 64-bit value, or

- unsigned int gen64$l_longword [2]; // ...two 32-bit values, or
+ unsigned int gen64$l_longword [2]; // ...two 32-bit values, or
unsigned short int gen64$w_word [4]; // ...four 16-bit values
} gen64$r_quad_overlay;
} GENERIC_64;
@@ -583,7 +583,7 @@ vms_unix_mixed_filespec(char *in, char *out)
ch = '[';
SKIP_FOLLOWING_SLASHES(in);
}
- else if (EQN(in, "../", 3)) // Unix parent directory?
+ else if (EQN(in, "../", 3)) // Unix parent directory?
{
*out++ = '[';
*out++ = '-';
@@ -593,20 +593,20 @@ vms_unix_mixed_filespec(char *in, char *out)
SKIP_FOLLOWING_SLASHES(in);
}
else
- { // not a special character
- while (EQN(in, "./", 2)) // Ignore Unix "current dir"
+ { // not a special character
+ while (EQN(in, "./", 2)) // Ignore Unix "current dir"
{
in += 2;
SKIP_FOLLOWING_SLASHES(in);
}
- if (strchr(in, '/') == NULL) // any more Unix directories ?
+ if (strchr(in, '/') == NULL) // any more Unix directories ?
{
- strcpy(out, in); // No - get rest of the spec
+ strcpy(out, in); // No - get rest of the spec
return;
}
else
{
- *out++ = '['; // Yes, denote a Vms subdirectory
+ *out++ = '['; // Yes, denote a Vms subdirectory
ch = '.';
--in;
}
@@ -627,7 +627,7 @@ vms_unix_mixed_filespec(char *in, char *out)
ch = '.';
SKIP_FOLLOWING_SLASHES(in);
}
- else if (EQN(in, "../", 3)) // Unix parent directory?
+ else if (EQN(in, "../", 3)) // Unix parent directory?
{
*out++ = '-';
end_of_dir = out;
@@ -637,7 +637,7 @@ vms_unix_mixed_filespec(char *in, char *out)
}
else
{
- while (EQN(in, "./", 2)) // Ignore Unix "current dir"
+ while (EQN(in, "./", 2)) // Ignore Unix "current dir"
{
end_of_dir = out;
in += 2;
@@ -651,7 +651,7 @@ vms_unix_mixed_filespec(char *in, char *out)
++in;
}

- *out = '
+ *out = '

if (end_of_dir != NULL) // Terminate directory portion
*end_of_dir = ']';
@@ -725,28 +725,82 @@ vms_fixfilename(void *instring)
* Remove version number from file name
* we need it in some special cases as:
* creating swap file name and writing new file
+ */
+
+/*
+ * 2025-05-13 SMS.
+ * Using $PARSE would be simpler and more accurate, if all-VMS (not
+ * mixed UNIX+VMS) path were ensured. Meanwhile, to improve (imperfect)
+ * handling of extended name syntax:
+ * o All characters (up to five (32767)) after semi-colon (or last
+ * of multiple dots) must be numeric.
+ * o Caret-escaped semi-colon (^;) or dot (^.) does not delimit
+ * version.
+ * Whether it makes sense to detect syntax errors here is not entirely
+ * clear. Currently, many invalid version strings are not treated as
+ * version strings. (More could be.)
*/
void
vms_remove_version(void * fname)
{
- char_u *cp;
- char_u *fp;
+ char_u *dp; // Dot pointer
+ char_u *rp; // Right pointer
+ int done = 0;
+ int vdigits = 0;

- if ((cp = vim_strchr( fname, ';')) != NULL) // remove version
- *cp = '
- else if ((cp = vim_strrchr( fname, '.')) != NULL )
+ rp = (char_u *)fname+ strlen( (char *)fname)- 1; // Rightmost char
+ while ((done == 0) && (rp > (char_u *)fname)) // Count digits
{
- if ((fp = vim_strrchr( fname, ']')) != NULL )
- {;}
- else if ((fp = vim_strrchr( fname, '>')) != NULL )
- {;}
+ if (isdigit( *rp))
+ {
+ vdigits++;
+ *rp--;
+ }
else
- fp = fname;
+ {
+ done = 1; // Quit at non-digit
+ }
+ } // while (Count digits)
+
+ if (vdigits <= 5) // If likely version digits, check delimiter
+ { // (Could check for <= 32767, not just five digits or fewer.)
+ if (*rp == (char_u)';')
+ {
+ if ((rp >= (char_u *)fname) && (*(rp- 1) != (char_u)'^'))
+ { // Unescaped ";"
+ *rp = '
+ }
+ }
+ else if (*rp == (char_u)'.') // Last of multiple dots?
+ {
+ if ((rp >= (char_u *)fname) && (*(rp- 1) != '^'))
+ { // Unescaped dot. Version requires previous one
+ dp = rp- 1; // Scan chars before "."
+ done = 0;
+ while ((done == 0) && (dp >= (char_u *)fname))
+ {
+ if ((*dp == ']') || (*dp == '>') || (*dp == ':') || (*dp == '/'))
+ { // Possible VMS dev:[dir] delimiter (or UNIX "/")
+ if ((dp >= (char_u *)fname) && (*(dp- 1) != '^'))
+ { // Unescaped dev:[dir] (or /) delimiter
+ done = 1; // No previous dot found in name
+ }
+ }
+ else if (*dp == '.')
+ { // Possible dot delimiter
+ if ((dp >= (char_u *)fname) && (*(dp- 1) != '^'))
+ { // Unescaped dot delimiter
+ done = 1; // Previous dot found in name
+ *rp = '
+ }
+ }
+ dp--; // Next char to right
+ } // while
+ }
+ }
+ // Else no version found to remove
+ } // if (vdigits <= 5)

- while ( *fp != '
- if ( *fp++ == '.' )
- *cp = '
- }
return ;
}

@@ -783,23 +837,29 @@ RealWaitForChar(
if (sec > 0)
{
// time-out specified; convert it to absolute time
- // sec>0 requirement of lib$cvtf_to_internal_time()
+ // sec>0 requirement of lib$cvt[fs]_to_internal_time()

// get current time (number of 100ns ticks since the VMS Epoch)
status = sys$gettim(&time_curr);
if (status != SS$_NORMAL)
return 0; // error
// construct the delta time
-#if __G_FLOAT==0
-# ifndef VAX
- // IEEE is default on IA64, but can be used on Alpha too - but not on VAX
- status = lib$cvts_to_internal_time(
- &convert_operation, &sec, &time_diff);
-# endif
-#else // default on Alpha and VAX
- status = lib$cvtf_to_internal_time(
+
+/* On all non-VAX hardware architectures, the "CC /FLOAT=option"
+ * determines the floating-point format. The default format on Alpha
+ * is VAX; on IA64 and x86_64 it's IEEE. But, except on VAX, the user
+ * can specify either. What matters here is the actual floating-point
+ * format being used, not the hardware architecture. Choose the
+ * appropriate time conversion function accordingly.
+ */
+#if __IEEE_FLOAT
+# define LIB_CVTX_TO_INTERNAL_TIME lib$cvts_to_internal_time // IEEE
+#else
+# define LIB_CVTX_TO_INTERNAL_TIME lib$cvtf_to_internal_time // VAX
+#endif // __IEEE_FLOAT CVTS
+
+ status = LIB_CVTX_TO_INTERNAL_TIME(
&convert_operation, &sec, &time_diff);
-#endif
if (status != LIB$_NORMAL)
return 0; // error
// add them up
@@ -851,3 +911,130 @@ RealWaitForChar(
}
}
}
+
+#if !defined( __VAX) && (__CRTL_VER >= 70301000)
+
+#include <stdio.h>
+#include <unixlib.h>
+
+// Structure to hold a DECC$* feature name and its desired value
+
+typedef struct
+ {
+ char *name;
+ int value;
+ } decc_feat_t;
+
+int vms_init_done = -1;
+
+decc_feat_t decc_feat_array[] = {
+
+ // Preserve command-line case with SET PROCESS/PARSE_STYLE=EXTENDED
+ { "DECC$ARGV_PARSE_STYLE", 1 },
+
+ // Preserve case for file names on ODS5 disks
+ { "DECC$EFS_CASE_PRESERVE", 1 },
+
+ // Enable multiple dots (and most characters) in ODS5 file names,
+ // while preserving VMS-ness of ";version"
+ { "DECC$EFS_CHARSET", 1 },
+
+ // List terminator
+ { (char *)NULL, 0 } };
+
+
+/* LIB$INITIALIZE initialization.
+ *
+ * On sufficiently recent non-VAX systems, set a collection of C RTL
+ * features without using the DECC$* logical name method.
+ *
+ * Note: Old VAX VMS versions may suffer from a linker complaint like
+ * this:
+ *
+ * %LINK-W-MULPSC, conflicting attributes for psect LIB$INITIALIZE
+ * in module LIB$INITIALIZE file SYS$COMMON:[SYSLIB]STARLET.OLB;1
+ *
+ * Using a LINK options file which includes a line like this one should
+ * stop this complaint:
+ *
+ * PSECT_ATTR=LIB$INITIALIZE,NOPIC
+ */
+
+/* vms_init()
+ *
+ * Uses LIB$INITIALIZE to set a collection of C RTL features without
+ * requiring the user to define the corresponding logical names.
+ *
+ * LIB$INITIALIZE initialization function
+ */
+
+static void
+vms_init(void)
+{
+ // Set the global flag to indicate that LIB$INITIALIZE worked
+
+ vms_init_done = 1;
+
+ int feat_index;
+ int feat_value;
+ int feat_value_max;
+ int feat_value_min;
+ int i;
+ int sts;
+
+ // Loop through all items in the decc_feat_array[]
+ for (i = 0; decc_feat_array[i].name != NULL; i++)
+ {
+ // Get the feature index
+ feat_index = decc$feature_get_index(decc_feat_array[i].name);
+ if (feat_index >= 0)
+ {
+ // Valid item. Collect its properties
+ feat_value = decc$feature_get_value(feat_index, 1);
+ feat_value_min = decc$feature_get_value(feat_index, 2);
+ feat_value_max = decc$feature_get_value(feat_index, 3);
+
+ if ((decc_feat_array[i].value >= feat_value_min) && (decc_feat_array[i].value <= feat_value_max))
+ // Valid value. Set it if necessary
+ if (feat_value != decc_feat_array[i].value)
+ sts = decc$feature_set_value(feat_index, 1, decc_feat_array[i].value);
+ else
+ // Invalid DECC feature value
+ printf("INVALID DECC FEATURE VALUE, %d: %d <= %s <= %d.
",
+ feat_value, feat_value_min, decc_feat_array[i].name, feat_value_max);
+ }
+ else
+ // Invalid DECC feature name
+ printf("UNKNOWN DECC FEATURE: %s.
", decc_feat_array[i].name);
+ }
+}
+
+
+/* Get "vms_init()" into a valid, loaded LIB$INITIALIZE PSECT. */
+
+#pragma nostandard
+
+/* Establish the LIB$INITIALIZE PSECTs, with proper alignment and
+ * other attributes. Note that "nopic" is significant only on VAX.
+ */
+#pragma extern_model save
+
+#pragma extern_model strict_refdef "LIB$INITIALIZE" 2, nopic, nowrt
+void (*const x_vms_init)() = vms_init;
+
+#pragma extern_model strict_refdef "LIB$INITIALIZ" 2, nopic, nowrt
+const int spare[ 8] = { 0 };
+
+#pragma extern_model restore
+
+// Fake reference to ensure loading the LIB$INITIALIZE PSECT
+
+#pragma extern_model save
+int LIB$INITIALIZE(void);
+#pragma extern_model strict_refdef
+int dmy_lib$initialize = (int) LIB$INITIALIZE;
+#pragma extern_model restore
+
+#pragma standard
+
+#endif // !defined( __VAX) && (__CRTL_VER >= 70301000)
diff --git a/src/os_vms_conf.h b/src/os_vms_conf.h
index ad19dbef4..c9e75e68c 100644
--- a/src/os_vms_conf.h
+++ b/src/os_vms_conf.h
@@ -9,10 +9,12 @@
#endif
#endif

+#include <decc$types.h> // Required early for large-file support
+
#define CASE_INSENSITIVE_FILENAME // Open VMS is case insensitive
-#define SPACE_IN_FILENAME // There could be space between user and passwd
+#define SPACE_IN_FILENAME // There could be space between user and passwd
#define FNAME_ILLEGAL "|*#?%" // Illegal characters in a file name
-#define BINARY_FILE_IO // Use binary fileio
+#define BINARY_FILE_IO // Use binary fileio
#define USE_GETCWD
#define USE_SYSTEM
#define XPMATTRIBUTES_TYPE XpmAttributes
@@ -146,6 +148,15 @@
#define FEAT_IPV6
#define FEAT_XTERM_SAVE

+#define VIM_SIZEOF_INT 4
+#define VIM_SIZEOF_LONG 4
+
+#if __USE_OFF64_T
+# define SIZEOF_OFF_T 8
+#else
+# define SIZEOF_OFF_T 4
+#endif
+
// Hardware specific
#if defined(__VAX) || defined(VAX)
#undef HAVE_GETTIMEOFDAY
@@ -156,37 +167,32 @@
#undef HAVE_ISNAN
#undef HAVE_XOS_R_H
#define HAVE_NO_LONG_LONG
-#define VIM_SIZEOF_INT 4
-#define VIM_SIZEOF_LONG 4
#define LONG_LONG_MIN (-2147483647-1)
#define LONG_LONG_MAX (2147483647)
#define ULONG_LONG_MAX (4294967295U)

#else // ALPHA, IA64, X86_64
+#define HAVE_FSEEKO /* Use off_t. */
#define HAVE_GETTIMEOFDAY
#define HAVE_USLEEP
#define HAVE_STRCASECMP
#define HAVE_STRINGS_H
#define HAVE_SIGSETJMP
-#define HAVE_ISNAN
#undef HAVE_XOS_R_H
#undef HAVE_NO_LONG_LONG
-#define VIM_SIZEOF_INT 4
-#define VIM_SIZEOF_LONG 8
#define LONG_LONG_MIN (-9223372036854775807-1)
#define LONG_LONG_MAX (9223372036854775807)
#define ULONG_LONG_MAX (18446744073709551615U)

-#if defined(__x86_64) || defined(__x86_64__)
-#if !defined(X86_64)
-#define X86_64
-#endif
-#define HAVE_ISNAN
+#if defined(__DECC) && (__CRTL_VER >= 80500000) && (__STDC_VERSION__ >= 199901L) /* C99 */
#define HAVE_ISINF
-#define HAVE_XOS_R_H
-#endif
+#define HAVE_ISNAN
#endif

+#define HAVE_XOS_R_H
+
+#endif /* VAX [else] */
+
// Compiler specific
#if defined(VAXC) || defined(__VAXC)
#undef HAVE_SELECT
@@ -218,7 +224,7 @@

// GUI support defines
#if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK)
-#define X_INCLUDE_GRP_H // To use getgrgid
+#define X_INCLUDE_GRP_H // To use getgrgid
#define XUSE_MTSAFE_API
#define HAVE_X11
#define WANT_X11
diff --git a/src/po/vim.pot b/src/po/vim.pot
index 4948309af..cdb2e2ea2 100644
--- a/src/po/vim.pot
+++ b/src/po/vim.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION
"
"Report-Msgid-Bugs-To:
"
-"POT-Creation-Date: 2025-07-25 18:40+0200
"
+"POT-Creation-Date: 2025-07-25 19:14+0200
"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE
"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>
"
"Language-Team: LANGUAGE <L...@li.org>
"
@@ -1540,7 +1540,13 @@ msgstr ""

msgid ""
"
"
-"Where case is ignored prepend / to make flag upper case"
+"Where command is down-cased, prepend / (like: -/R) to treat flag as upper-"
+"case."
+msgstr ""
+
+msgid ""
+"
"
+"Or, where supported, SET PROC/PARSE=EXT, or else quote upper-case material."
msgstr ""

msgid ""
@@ -3386,7 +3392,7 @@ msgstr ""

msgid ""
"
"
-"OpenVMS version"
+"OpenVMS (build) arch, version"
msgstr ""

msgid ""
diff --git a/src/version.c b/src/version.c
index d06745272..cb6454639 100644
--- a/src/version.c
+++ b/src/version.c
@@ -719,6 +719,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1591,
/**/
1590,
/**/
@@ -4158,13 +4160,19 @@ list_version(void)
#endif

#ifdef VMS
- msg_puts(_("
OpenVMS version"));
+ msg_puts(_("
OpenVMS (build) arch, version"));
# ifdef HAVE_PATHDEF
if (*compiled_arch != NUL)
{
- msg_puts(" - ");
+ msg_puts(": ");
msg_puts((char *)compiled_arch);
+ if (*compiled_vers != NUL)
+ {
+ msg_puts(", ");
+ msg_puts((char *)compiled_vers);
+ }
}
+
# endif

#endif
diff --git a/src/vim.h b/src/vim.h
index fcadb8912..2c42c2cdd 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -24,7 +24,11 @@
// ============ the header file puzzle: order matters =========

#ifdef HAVE_CONFIG_H // GNU autoconf (or something else) was here
-# include "auto/config.h"
+# ifdef VMS
+# include "config.h" /* Rely on /INCLUDE to find it. */
+# else
+# include "auto/config.h"
+# endif /* def VMS [else] */
# define HAVE_PATHDEF

/*
diff --git a/src/xdiff/xinclude.h b/src/xdiff/xinclude.h
index 6e9f50a2d..1e0fbbaaa 100644
--- a/src/xdiff/xinclude.h
+++ b/src/xdiff/xinclude.h
@@ -25,7 +25,7 @@
// defines HAVE_ATTRIBUTE_UNUSED
#ifdef HAVE_CONFIG_H
# ifdef VMS
-# include "[.auto]config.h"
+# include "config.h"
# else
# include "../auto/config.h"
# endif
diff --git a/src/xxd/Make_vms.mms b/src/xxd/Make_vms.mms
index df6c1af24..41e261bf8 100644
--- a/src/xxd/Make_vms.mms
+++ b/src/xxd/Make_vms.mms
@@ -1,7 +1,10 @@
# VMS MM[KS] makefile for XXD
# tested with MMK and MMS as well.
#
-# Maintained by Zoltan Arpadffy <arpa...@polarhome.com>
+# Maintained by Zoltan Arpadffy <zoltan....@gmail.com>
+# 2025-05-24 Steven M. Schweda <s...@antinode.info>
+#
+######################################################################
#
# Edit the lines in the Configuration section below to select.
#
@@ -16,12 +19,6 @@
######################################################################
# Configuration section.
######################################################################
-# Compiler selection.
-# Comment out if you use the VAXC compiler
-######################################################################
-# DECC = YES
-
-#####################################################################
# Uncomment if want a debug version. Resulting executable is DVIM.EXE
######################################################################
# DEBUG = YES
@@ -32,41 +29,209 @@
# Please, do not change anything below without programming experience.
######################################################################

-CC = cc
+# Define old MMK architecture macros when using MMS.
+#
+######################################################################
+# Architecture identification and product destination selection.
+# Define old MMK architecture macros when using MMS.
+#
+.IFDEF MMS$ARCH_NAME # MMS$ARCH_NAME
+ALPHA_X_ALPHA = 1
+IA64_X_IA64 = 1
+VAX_X_VAX = 1
+X86_64_X_X86_64 = 1
+.IFDEF ARCH # ARCH
+ARCH_NAME = $(ARCH)
+.ELSE # ARCH
+ARCH_NAME = $(MMS$ARCH_NAME)
+.ENDIF # ARCH
+.IFDEF $(ARCH_NAME)_X_ALPHA # $(ARCH_NAME)_X_ALPHA
+__ALPHA__ = 1
+.ENDIF # $(ARCH_NAME)_X_ALPHA
+.IFDEF $(ARCH_NAME)_X_IA64 # $(ARCH_NAME)_X_IA64
+__IA64__ = 1
+.ENDIF # $(ARCH_NAME)_X_IA64
+.IFDEF $(ARCH_NAME)_X_VAX # $(ARCH_NAME)_X_VAX
+__VAX__ = 1
+.ENDIF # $(ARCH_NAME)_X_VAX
+.IFDEF $(ARCH_NAME)_X_X86_64 # $(ARCH_NAME)_X_X86_64
+__X86_64__ = 1
+.ENDIF # $(ARCH_NAME)_X_X86_64
+.ELSE # MMS$ARCH_NAME
+.IFDEF __MMK__ # __MMK__
+.IFDEF ARCH # ARCH
+.IFDEF __$(ARCH)__ # __$(ARCH)__
+.ELSE # __$(ARCH)__
+__$(ARCH)__ = 1
+.ENDIF # __$(ARCH)__
+.ENDIF # ARCH
+.ENDIF # __MMK__
+.ENDIF # MMS$ARCH_NAME
+#
+# Combine command-line VAX C compiler macros.
+#
+.IFDEF VAXC # VAXC
+VAXC_OR_FORCE_VAXC = 1
+.ELSE # VAXC
+.IFDEF FORCE_VAXC # FORCE_VAXC
+VAXC_OR_FORCE_VAXC = 1
+.ENDIF # FORCE_VAXC
+.ENDIF # VAXC
+#
+# Analyze architecture-related and option macros.
+# (Sense x86_64 before IA64 for old MMK and x86_64 cross tools.)
+#
+.IFDEF __X86_64__ # __X86_64__
+DECC = 1
+DESTM = X86_64
+.ELSE # __X86_64__
+.IFDEF __IA64__ # __IA64__
+DECC = 1
+DESTM = IA64
+.ELSE # __IA64__
+.IFDEF __ALPHA__ # __ALPHA__
+DECC = 1
+DESTM = ALPHA
+.ELSE # __ALPHA__
+.IFDEF __VAX__ # __VAX__
+.IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
+DESTM = VAXV
+.ELSE # VAXC_OR_FORCE_VAXC
+DECC = 1
+DESTM = VAX
+.ENDIF # VAXC_OR_FORCE_VAXC
+.ELSE # __VAX__
+DESTM = UNK
+UNK_DEST = 1
+.ENDIF # __VAX__
+.ENDIF # __ALPHA__
+.ENDIF # __IA64__
+.ENDIF # __X86_64__
+
+.IFDEF PROD # PROD
+DEST = $(PROD)
+.ELSE # PROD
+DEST = $(DESTM)
+.ENDIF # PROD
+
+.FIRST
+.IFDEF __MMK__ # __MMK__
+ @ write sys$output ""
+.ENDIF # __MMK__
+#
+# Create destination directory.
+ @ write sys$output "Destination: [.$(DEST)]"
+ @ write sys$output ""
+ @ if (f$search( "$(DEST).DIR;1") .eqs. "") then -
+ create /directory [.$(DEST)]
+#
+# Compiler setup
+
+# Optimization. The .c.obj rule will override this for specific modules
+# where the VAX C compilers hang. See VAX_NOOPTIM_LIST, below.
+OPTIMIZE= /optim
+
+.IFDEF __VAX__ # __VAX__

-.IFDEF DECC
-CC_DEF = $(CC)/decc
+# List of modules for which "Compaq C V6.4-005 on OpenVMS VAX V7.3"
+# hangs. Add more as needed (plus-separated).
+VAX_NOOPTIM_LIST = blowfish+regexp+sha256
+
+# Compiler command.
+# Default: CC /DECC. On non-VAX, or VAX with only DEC C installed,
+# /DECC is harmless. If both DEC C and VAX C are installed, and VAX C
+# was selected as the default, then /DECC must be specified explicitly.
+# If both are installed, and DEC C is the default, but VAX C is desired,
+# then define FORCE_VAXC to get VAX C (CC /VAXC). If only VAX C is
+# installed, then define VAXC to get (plain) CC.
+
+.IFDEF DECC # DECC
+CC_DEF = cc /decc
+PREFIX = /prefix=all
+.ELSE # DECC
+.IFDEF FORCE_VAXC # FORCE_VAXC
+CC_DEF = cc /vaxc
+.ELSE # FORCE_VAXC
+CC_DEF = cc
+.ENDIF # FORCE_VAXC
+.ENDIF # DECC
+.ELSE # __VAX__
+
+# Not VAX, therefore DEC C (/PREFIX).
+
+CC_DEF = cc /decc
PREFIX = /prefix=all
+
+# These floating-point options are the defaults on IA64 and x86_64.
+# This makes Alpha consistent.
+FLOAT = /float = ieee_float /ieee_mode = denorm_results
+
+# Large-file support. Unavailable on VAX and very old Alpha. To
+# disable, define NOLARGE.
+.IFDEF NOLARGE
.ELSE
-CC_DEF = $(CC)
-PREFIX =
-.ENDIF
+LARGE_DEF = , "_LARGEFILE"
+.ENDIF # NOLARGE [ELSE]
+.ENDIF # __VAX__ [ELSE]

-LD_DEF = link
+.IFDEF VAXC_OR_FORCE_VAXC # VAXC_OR_FORCE_VAXC
+.ELSE # VAXC_OR_FORCE_VAXC
+CCVER = YES # Unreliable with VAX C.
+.ENDIF # VAXC_OR_FORCE_VAXC [ELSE]
+
+CDEFS = VMS $(LARGE_DEF)
+DEFS = /define = ($(CDEFS))
+
+.IFDEF LIST # LIST
+LIST_OPT = /list=[.$(DEST)] /show=(all, nomessages)
+.ENDIF # LIST

-.IFDEF DEBUG
-TARGET = dxxd.exe
-CFLAGS = /debug/noopt$(PREFIX)/cross_reference/include=[]
+.IFDEF DEBUG # DEBUG
+TARGET = [.$(DEST)]dxxd.exe
+CFLAGS = /debug/noopt$(PREFIX) $(LIST_OPT) /cross_reference/include=[]
LDFLAGS = /debug
-.ELSE
-TARGET = xxd.exe
-CFLAGS = /opt$(PREFIX)/include=[]
+.ELSE # DEBUG
+TARGET = [.$(DEST)]xxd.exe
+CFLAGS = $(OPTIMIZE) $(PREFIX) $(LIST_OPT) /include=[]
+
LDFLAGS =
-.ENDIF
+.ENDIF # DEBUG [ELSE]
+
+CC = $(CC_DEF) $(CFLAGS)
+
+LD_DEF = link

.SUFFIXES : .obj .c

SOURCES = xxd.c
-OBJ = xxd.obj
+OBJ_BASE = xxd.obj
+OBJ = [.$(DEST)]$(OBJ_BASE)

.c.obj :
- $(CC_DEF) $(CFLAGS) $<
+ $(CC) $(DEFS) $< /object = $@

$(TARGET) : $(OBJ)
- $(LD_DEF) $(LDFLAGS) /exe=$(TARGET) $+
+ -@ def_dev_dir_orig = f$environment( "default")
+ -@ target_name_type = -
+ f$parse( "$(TARGET)", , , "NAME", "SYNTAX_ONLY")+ -
+ f$parse( "$(TARGET)", , , "TYPE", "SYNTAX_ONLY")
+ -@ set default [.$(DEST)]
+ $(LD_DEF) $(LDFLAGS) /exe = 'target_name_type' $(OBJ_BASE)
+ -@ set default 'def_dev_dir_orig'

clean :
- -@ if "''F$SEARCH("*.obj")'" .NES. "" then delete/noconfirm/nolog *.obj;*
- -@ if "''F$SEARCH("*.exe")'" .NES. "" then delete/noconfirm/nolog *.exe;*
+ -@ if (f$search( "[.$(DEST)]*.*") .nes. "") then -
+ delete /noconfirm [.$(DEST)]*.*;*
+ -@ if (f$search( "$(DEST).DIR") .nes. "") then -
+ set protection = w:d $(DEST).DIR;*
+ -@ if (f$search( "$(DEST).DIR") .nes. "") then -
+ delete /noconfirm $(DEST).DIR;*
+
+help :
+ mcr sys$disk:$(TARGET) -h
+
+version :
+ mcr sys$disk:$(TARGET) -v
+

-xxd.obj : xxd.c
+[.$(DEST)]xxd.obj : xxd.c
Reply all
Reply to author
Forward
0 new messages