patch 9.1.1591: VMS support can be improved Commit: https://github.com/vim/vim/commit/e9d1259111daf9c91b14c252047defc99c03a8de Author: Zoltan Arpadffy <zoltan.arpad...@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.arpad...@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.arpad...@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 <arpad...@polarhome.com> +# Maintained by Zoltan Arpadffy <zoltan.arpad...@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 -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1ufMFC-00A0no-Fn%40256bit.org.