diff --git a/src/bin/pgevent/Makefile b/src/bin/pgevent/Makefile
index 1d902762c567d0e8e8c82129ab9f95908c0c5159..d3c73297a7e136b58fc9da029ced18488c32dbe6 100644
--- a/src/bin/pgevent/Makefile
+++ b/src/bin/pgevent/Makefile
@@ -17,30 +17,21 @@ include $(top_builddir)/src/Makefile.global
 ifeq ($(PORTNAME), win32)
 
 OBJS=pgevent.o pgmsgevent.o
-NAME=pgevent.dll
+NAME=pgevent
 
-all: $(NAME)
+SHLIB_LINK =
+SHLIB_EXPORTS = exports.txt
+
+all: all-lib
 
 install: all install-lib
 
-pgevent.dll: pgevent.def $(OBJS)
-	$(DLLWRAP) --def $< -o $(NAME) $(OBJS)
+include $(top_srcdir)/src/Makefile.shlib
 
 pgmsgevent.o: pgmsgevent.rc win32ver.rc
 	$(WINDRES) $< -o $@ --include-dir=$(top_builddir)/src/include --include-dir=$(top_srcdir)/src/include --include-dir=$(srcdir) --include-dir=.
 
-all-lib: $(NAME)
-
-install-lib: $(NAME)
-	$(INSTALL_STLIB) $< '$(DESTDIR)$(libdir)/$<'
-
-uninstall-lib:
-	rm -f '$(DESTDIR)$(libdir)/$(NAME)'
-
-clean distclean:
-	rm -f $(OBJS) $(NAME) win32ver.rc
-
-clean-lib:
-	rm -f $(NAME)
+clean distclean: clean-lib
+	rm -f $(OBJS) win32ver.rc
 
 endif
diff --git a/src/bin/pgevent/exports.txt b/src/bin/pgevent/exports.txt
new file mode 100644
index 0000000000000000000000000000000000000000..70dcd25bd8e16233a93ca004b208c4acd9ade500
--- /dev/null
+++ b/src/bin/pgevent/exports.txt
@@ -0,0 +1,5 @@
+; dlltool --output-def pgevent.def pgevent.o pgmsgevent.o
+EXPORTS
+	DllUnregisterServer@0 ;
+	DllRegisterServer@0 ;
+	DllInstall ;