diff --git a/mk/FILES b/mk/FILES
index a6bf9a2..fa50e79 100644
--- a/mk/FILES
+++ b/mk/FILES
@@ -51,2 +51,5 @@ sys/IRIX.mk
 sys/Linux.mk
+sys/MINGW32.mk
+sys/MINGW64.mk
+sys/MSYS.mk
 sys/NetBSD.mk
diff --git a/mk/sys/MINGW32.mk b/mk/sys/MINGW32.mk
index 10da919..9d04333 100644
--- a/mk/sys/MINGW32.mk
+++ b/mk/sys/MINGW32.mk
@@ -1,2 +1,2 @@
-#	$Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
+#	$Id: MINGW32.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
 #	$NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
@@ -14,5 +14,14 @@ NEED_SOLINKS=yes
 
+LD_X=
+LD_x=
+SHLIB_LD = ${CC}
+SHLIB_LDADD?= ${LDADD}
+
 .SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
 
-.LIBS:		.a
+.LIBS:		.a .dll
+
+SHLIBEXT =	.dll
+HOST_LIBEXT =	.dll
+DSHLIBEXT =	.dll
 
@@ -21,2 +30,5 @@ ARFLAGS=	rl
 RANLIB=		ranlib
+LD_shared= -Bshareable -shared
+LD_so= dll.${SHLIB_FULLVERSION}
+LD_solink= dll
 
diff --git a/mk/sys/MINGW64.mk b/mk/sys/MINGW64.mk
index 10da919..793b169 100644
--- a/mk/sys/MINGW64.mk
+++ b/mk/sys/MINGW64.mk
@@ -1,2 +1,2 @@
-#	$Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
+#	$Id: MINGW64.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
 #	$NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
@@ -14,5 +14,14 @@ NEED_SOLINKS=yes
 
+LD_X=
+LD_x=
+SHLIB_LD = ${CC}
+SHLIB_LDADD?= ${LDADD}
+
 .SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
 
-.LIBS:		.a
+.LIBS:		.a .dll
+
+SHLIBEXT =	.dll
+HOST_LIBEXT =	.dll
+DSHLIBEXT =	.dll
 
@@ -21,2 +30,5 @@ ARFLAGS=	rl
 RANLIB=		ranlib
+LD_shared= -Bshareable -shared
+LD_so= dll.${SHLIB_FULLVERSION}
+LD_solink= dll
 
diff --git a/mk/sys/MSYS.mk b/mk/sys/MSYS.mk
index 10da919..16b3b53 100644
--- a/mk/sys/MSYS.mk
+++ b/mk/sys/MSYS.mk
@@ -1,2 +1,2 @@
-#	$Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
+#	$Id: MSYS.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
 #	$NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
@@ -14,5 +14,14 @@ NEED_SOLINKS=yes
 
+LD_X=
+LD_x=
+SHLIB_LD = ${CC}
+SHLIB_LDADD?= ${LDADD}
+
 .SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
 
-.LIBS:		.a
+.LIBS:		.a .dll
+
+SHLIBEXT =	.dll
+HOST_LIBEXT =	.dll
+DSHLIBEXT =	.dll
 
@@ -21,2 +30,5 @@ ARFLAGS=	rl
 RANLIB=		ranlib
+LD_shared= -Bshareable -shared
+LD_so= dll.${SHLIB_FULLVERSION}
+LD_solink= dll
 
