# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
-# Last change: 2025-07-04 Steven M. Schweda <sms@antinode.info>
+# Last change: 2026-05-04
#
# This script has been tested on VMS 6.2 to 9.2 on VAX, ALPHA, IA64 and X86_64
# with MMS and MMK
# If you have XPM installed you might want to build Motif version with toolbar
# XPM = YES
+# Large-file support. Unavailable on VAX and very old Alpha.
+# To disable, define NOLARGE.
+# NOLARGE = YES
+
# Comment out if you want the compiler version with :ver command.
# NOTE: This part can make some complications if you're using some
# predefined symbols/flags for your compiler. If does, just leave behind
IA64_X_IA64 = 1
VAX_X_VAX = 1
X86_64_X_X86_64 = 1
-.IFDEF ARCH # ARCH
+.IFDEF ARCH # ARCH
ARCH_NAME = $(ARCH)
-.ELSE # ARCH
+.ELSE # ARCH
ARCH_NAME = $(MMS$ARCH_NAME)
-.ENDIF # ARCH
-.IFDEF $(ARCH_NAME)_X_ALPHA # $(ARCH_NAME)_X_ALPHA
+.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
+.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
+.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
+.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
+.ENDIF # $(ARCH_NAME)_X_X86_64
.ELSE # MMS$ARCH_NAME
.IFDEF __MMK__ # __MMK__
.IFDEF ARCH # ARCH
# 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.
+# Large-file support. Unavailable on VAX and very old Alpha.
.IFDEF NOLARGE
.ELSE
LARGE_DEF = , "_LARGEFILE"
.c.obj :
# 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. -
+ -@ 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. -
+ -@ if (f$locate( mod, "+$(VAX_NOOPTIM_LIST)+") .lt. -
f$length( "+$(VAX_NOOPTIM_LIST)+")) then -
- @ write sys$output -
- " *** NOTE: USING SPECIAL /NOOPTIMIZE RULE. ***"
+ write sys$output "*** NOTE: USING SPECIAL /NOOPTIMIZE RULE. ***"
$(CC_DEF) $(ALL_CFLAGS) 'optim_qual' $< /object = $@
.ELSE # __VAX__
$(CC_DEF) $(ALL_CFLAGS) $< /object = $@
[.$(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 option.h ex_cmds.h proto.h \
- errors.h globals.h gui_gtk_f.h [-.runtime]vim32x32_png.h \
- [-.runtime]vim16x16_png.h [-.runtime]vim48x48_png.h version.h
+ errors.h globals.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
+ [-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm version.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 option.h ex_cmds.h proto.h \
// Define to `int' if <sys/types.h> doesn't define.
// #undef uid_t
-// Define to `unsigned int' or other type that is 32 bit.
-#define UINT32_T unsigned int
-
// Define to `int' if <sys/types.h> doesn't define.
// #undef gid_t
# 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_ISNAN
# endif
-# define HAVE_XOS_R_H
+# if defined(X86_64)
+# define HAVE_FSEEKO
+# define HAVE_STDINT_H
+# define HAVE_XOS_R_H
+# endif
#endif /* VAX [else] */
# define HAVE_LOCALE_H
# define BROKEN_LOCALE
# undef DYNAMIC_ICONV
-# define HAVE_STRFTIME
+# define HAVE_STRFTIME
#endif
#if defined(USE_ICONV)
# define USE_FONTSET
# undef X_LOCALE
#endif
+
+// Define needed types from stdint - older VMS do not have stdint.h
+#ifndef HAVE_STDINT_H
+ typedef unsigned char uint8_t;
+ typedef unsigned short uint16_t;
+ typedef unsigned int uint32_t;
+#endif