VMS below version 7 doesn't have strcasecmp, so let's roll our own on VMS.
PR: 184
diff --git a/apps/apps.c b/apps/apps.c
index 1a24b1c..5863b33 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -354,6 +354,22 @@
 	}
 #endif
 
+#ifdef OPENSSL_SYS_VMS
+int VMS_strcasecmp(const char *str1, const char *str2)
+	{
+	while (*str1 && *str2)
+		{
+		int res = toupper(*str1) - toupper(*str2);
+		if (res) return res < 0 ? -1 : 1;
+		}
+	if (*str1)
+		return 1;
+	if (*str2)
+		return -1;
+	return 0;
+	}
+#endif
+
 int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
 	{
 	int num,len,i;
diff --git a/apps/apps.h b/apps/apps.h
index dae52bd..31dd0dc 100644
--- a/apps/apps.h
+++ b/apps/apps.h
@@ -139,6 +139,12 @@
 int WIN32_rename(char *oldname,char *newname);
 #endif
 
+/* VMS below version 7.0 doesn't have strcasecmp() */
+#ifdef OPENSSL_SYS_VMS
+#define strcasecmp(str1,str2) VMS_strcasecmp((str1),(str2))
+int VMS_strcasecmp(const char *str1, const char *str2);
+#endif
+
 #ifndef MONOLITH
 
 #define MAIN(a,v)	main(a,v)