diff --git a/man/Makefile.am b/man/Makefile.am
index 73068e6..f003101 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,11 +1,5 @@
-libmandir = $(LIB_MAN_DIR)
-libman_PRE = drmAvailable.man \
-	drmHandleEvent.man \
-	drmModeGetResources.man
-libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@)
-EXTRA_DIST = $(libman_PRE)
-CLEANFILE = $(libman_DATA)
-SUFFIXES = .$(LIB_MAN_SUFFIX) .man
-
-.man.$(LIB_MAN_SUFFIX):
-	$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+man_MANS = \
+	drmAvailable.3 \
+	drmHandleEvent.3 \
+	drmModeGetResources.3
+EXTRA_DIST = $(man_MANS)
diff --git a/man/drmAvailable.3 b/man/drmAvailable.3
new file mode 100644
index 0000000..d3abcf1
--- /dev/null
+++ b/man/drmAvailable.3
@@ -0,0 +1,26 @@
+.TH "drmAvailable" 3 "September 2012" "libdrm" "Direct Rendering Manager"
+.SH NAME
+drmAvailable \- determine whether a DRM kernel driver has been loaded
+
+.SH SYNOPSIS
+.nf
+.B "#include <xf86drm.h>"
+
+.B "int drmAvailable(void);"
+.fi
+
+.SH DESCRIPTION
+This function allows the caller to determine whether a kernel DRM driver is
+loaded.
+
+.SH RETURN VALUE
+If a DRM driver is currently loaded, this function returns 1.  Otherwise 0
+is returned.
+
+.SH REPORTING BUGS
+Bugs in this function should be reported to http://bugs.freedesktop.org under
+the "Mesa" product, with "Other" or "libdrm" as the component.
+
+.SH "SEE ALSO"
+.BR drm (7),
+.BR drmOpen (3)
diff --git a/man/drmAvailable.man b/man/drmAvailable.man
deleted file mode 100644
index e1bb8dc..0000000
--- a/man/drmAvailable.man
+++ /dev/null
@@ -1,25 +0,0 @@
-.\" shorthand for double quote that works everywhere.
-.ds q \N'34'
-.TH drmAvailable  __drivermansuffix__ __vendorversion__
-.SH NAME
-drmAvailable \- determine whether a DRM kernel driver has been loaded
-.SH SYNOPSIS
-.nf
-.B "#include <xf86drm.h>"
-
-.B "int drmAvailable(void);"
-.fi
-.SH DESCRIPTION
-This function allows the caller to determine whether a kernel DRM driver is
-loaded.
-
-.SH RETURN VALUE
-If a DRM driver is currently loaded, this function returns 1.  Otherwise 0
-is returned.
-
-.SH REPORTING BUGS
-Bugs in this function should be reported to http://bugs.freedesktop.org under
-the "Mesa" product, with "Other" or "libdrm" as the component.
-
-.SH "SEE ALSO"
-drmOpen(__libmansuffix__)
diff --git a/man/drmHandleEvent.3 b/man/drmHandleEvent.3
new file mode 100644
index 0000000..bc933ed
--- /dev/null
+++ b/man/drmHandleEvent.3
@@ -0,0 +1,48 @@
+.TH "drmHandleEvent" 3 "September 2012" "libdrm" "Direct Rendering Manager"
+.SH NAME
+drmHandleEvent \- read and process pending DRM events
+
+.SH SYNOPSIS
+.nf
+.B "#include <xf86drm.h>"
+
+.B "typedef struct _drmEventContext {"
+.BI "	int version;"
+.BI "	void (*vblank_handler)(int fd,"
+.BI "			       unsigned int sequence,"
+.BI "			       unsigned int tv_sec,"
+.BI "			       unsigned int tv_usec,"
+.BI "			       void *user_data);"
+.BI "	void (*page_flip_handler)(int fd,"
+.BI "				  unsigned int sequence,"
+.BI "				  unsigned int tv_sec,"
+.BI "				  unsigned int tv_usec,"
+.BI "				  void *user_data);"
+.B "} drmEventContext, *drmEventContextPtr;"
+
+.B "int drmHandleEvent(int fd, drmEventContextPtr evctx);"
+.fi
+
+.SH DESCRIPTION
+This function will process outstanding DRM events on
+.I fd
+, which must be an open DRM device.  This function should be called after
+the DRM file descriptor has polled readable; it will read the events and
+use the passed-in
+.I evctx
+structure to call function pointers with the parameters noted above.
+
+.SH RETURN VALUE
+Returns 0 on success, or if there is no data to read from the file descriptor.
+Returns -1 if the read on the file descriptor fails or returns less than a
+full event record.
+
+.SH REPORTING BUGS
+Bugs in this function should be reported to http://bugs.freedesktop.org under
+the "Mesa" product, with "Other" or "libdrm" as the component.
+
+.SH "SEE ALSO"
+.BR drm (7),
+.BR drm-kms (7),
+.BR drmModePageFlip (3),
+.BR drmWaitVBlank (3)
diff --git a/man/drmHandleEvent.man b/man/drmHandleEvent.man
deleted file mode 100644
index b98f417..0000000
--- a/man/drmHandleEvent.man
+++ /dev/null
@@ -1,45 +0,0 @@
-.\" shorthand for double quote that works everywhere.
-.ds q \N'34'
-.TH drmHandleEvent  __drivermansuffix__ __vendorversion__
-.SH NAME
-drmHandleEvent \- read and process pending DRM events
-.SH SYNOPSIS
-.nf
-.B "#include <xf86drm.h>"
-
-.B "typedef struct _drmEventContext {"
-.BI "	int version;"
-.BI "	void (*vblank_handler)(int fd,"
-.BI "			       unsigned int sequence,"
-.BI "			       unsigned int tv_sec,"
-.BI "			       unsigned int tv_usec,"
-.BI "			       void *user_data);"
-.BI "	void (*page_flip_handler)(int fd,"
-.BI "				  unsigned int sequence,"
-.BI "				  unsigned int tv_sec,"
-.BI "				  unsigned int tv_usec,"
-.BI "				  void *user_data);"
-.B "} drmEventContext, *drmEventContextPtr;"
-
-.B "int drmHandleEvent(int fd, drmEventContextPtr evctx);"
-.fi
-.SH DESCRIPTION
-This function will process outstanding DRM events on
-.I fd
-, which must be an open DRM device.  This function should be called after
-the DRM file descriptor has polled readable; it will read the events and
-use the passed-in
-.I evctx
-structure to call function pointers with the parameters noted above.
-
-.SH RETURN VALUE
-Returns 0 on success, or if there is no data to read from the file descriptor.
-Returns -1 if the read on the file descriptor fails or returns less than a
-full event record.
-
-.SH REPORTING BUGS
-Bugs in this function should be reported to http://bugs.freedesktop.org under
-the "Mesa" product, with "Other" or "libdrm" as the component.
-
-.SH "SEE ALSO"
-drmModePageFlip(__libmansuffix__), drmWaitVBlank(__libmansuffix__)
diff --git a/man/drmModeGetResources.3 b/man/drmModeGetResources.3
new file mode 100644
index 0000000..a06a58a
--- /dev/null
+++ b/man/drmModeGetResources.3
@@ -0,0 +1,89 @@
+.TH "drmModeGetResources" 7 "September 2012" "libdrm" "Direct Rendering Manager"
+.SH NAME
+drmModeGetResources \- retrieve current display configuration information
+
+.SH SYNOPSIS
+.nf
+.B "#include <xf86drmMode.h>"
+
+.BI "typedef struct _drmModeRes {"
+
+.BI "	int count_fbs;"
+.BI "	uint32_t *fbs;"
+
+.BI "	int count_crtcs;"
+.BI "	uint32_t *crtcs;"
+
+.BI "	int count_connectors;"
+.BI "	uint32_t *connectors;"
+
+.BI "	int count_encoders;"
+.BI "	uint32_t *encoders;"
+
+.BI "	uint32_t min_width, max_width;"
+.BI "	uint32_t min_height, max_height;"
+.B "} drmModeRes, *drmModeResPtr;"
+
+.B "drmModeResPtr drmModeGetResources(int fd);"
+.fi
+
+.SH DESCRIPTION
+This function will allocate, populate, and return a drmModeRes structure
+containing information about the current display configuration.
+
+The
+.I count_fbs
+and
+.I fbs
+fields indicate the number of currently allocated framebuffer objects (i.e.
+objects that can be attached to a given CRTC or sprite for display).
+
+The
+.I count_crtcs
+and
+.I crtcs
+fields list the available CRTCs in the configuration.  A CRTC is simply
+an object that can scan out a framebuffer to a display sink, and contains
+mode timing and relative position information.  CRTCs drive encoders, which
+are responsible for converting the pixel stream into a specific display
+protocol (e.g. MIPI or HDMI).
+
+The
+.I count_connectors
+and
+.I connectors
+fields list the available physical connectors on the system.  Note that
+some of these may not be exposed from the chassis (e.g. LVDS or eDP).
+Connectors are attached to encoders and contain information about the
+attached display sink (e.g. width and height in mm, subpixel ordering, and
+various other properties).
+
+The
+.I count_encoders
+and
+.I encoders
+fields list the available encoders on the device.  Each encoder may be
+associated with a CRTC, and may be used to drive a particular encoder.
+
+The min and max height fields indicate the maximum size of a framebuffer
+for this device (i.e. the scanout size limit).
+
+.SH RETURN VALUE
+Returns a drmModeRes structure pointer on success, 0 on failure.
+
+.SH REPORTING BUGS
+Bugs in this function should be reported to http://bugs.freedesktop.org under
+the "Mesa" product, with "Other" or "libdrm" as the component.
+
+.SH "SEE ALSO"
+.BR drm (7),
+.BR drm-kms (7),
+.BR drmModeGetFB (3),
+.BR drmModeAddFB (3),
+.BR drmModeAddFB2 (3),
+.BR drmModeRmFB (3),
+.BR drmModeDirtyFB (3),
+.BR drmModeGetCrtc (3),
+.BR drmModeSetCrtc (3),
+.BR drmModeGetEncoder (3),
+.BR drmModeGetConnector (3)
diff --git a/man/drmModeGetResources.man b/man/drmModeGetResources.man
deleted file mode 100644
index 369bf7d..0000000
--- a/man/drmModeGetResources.man
+++ /dev/null
@@ -1,79 +0,0 @@
-.\" shorthand for double quote that works everywhere.
-.ds q \N'34'
-.TH drmModeGetResources  __drivermansuffix__ __vendorversion__
-.SH NAME
-drmModeGetResources \- retrieve current display configuration information
-.SH SYNOPSIS
-.nf
-.B "#include <xf86drmMode.h>"
-
-.BI "typedef struct _drmModeRes {"
-
-.BI "	int count_fbs;"
-.BI "	uint32_t *fbs;"
-
-.BI "	int count_crtcs;"
-.BI "	uint32_t *crtcs;"
-
-.BI "	int count_connectors;"
-.BI "	uint32_t *connectors;"
-
-.BI "	int count_encoders;"
-.BI "	uint32_t *encoders;"
-
-.BI "	uint32_t min_width, max_width;"
-.BI "	uint32_t min_height, max_height;"
-.B "} drmModeRes, *drmModeResPtr;"
-
-.B "drmModeResPtr drmModeGetResources(int fd);"
-.fi
-.SH DESCRIPTION
-This function will allocate, populate, and return a drmModeRes structure
-containing information about the current display configuration.
-
-The
-.I count_fbs
-and
-.I fbs
-fields indicate the number of currently allocated framebuffer objects (i.e.
-objects that can be attached to a given CRTC or sprite for display).
-
-The
-.I count_crtcs
-and
-.I crtcs
-fields list the available CRTCs in the configuration.  A CRTC is simply
-an object that can scan out a framebuffer to a display sink, and contains
-mode timing and relative position information.  CRTCs drive encoders, which
-are responsible for converting the pixel stream into a specific display
-protocol (e.g. MIPI or HDMI).
-
-The
-.I count_connectors
-and
-.I connectors
-fields list the available physical connectors on the system.  Note that
-some of these may not be exposed from the chassis (e.g. LVDS or eDP).
-Connectors are attached to encoders and contain information about the
-attached display sink (e.g. width and height in mm, subpixel ordering, and
-various other properties).
-
-The
-.I count_encoders
-and
-.I encoders
-fields list the available encoders on the device.  Each encoder may be
-associated with a CRTC, and may be used to drive a particular encoder.
-
-The min and max height fields indicate the maximum size of a framebuffer
-for this device (i.e. the scanout size limit).
-
-.SH RETURN VALUE
-Returns a drmModeRes structure pointer on success, 0 on failure.
-
-.SH REPORTING BUGS
-Bugs in this function should be reported to http://bugs.freedesktop.org under
-the "Mesa" product, with "Other" or "libdrm" as the component.
-
-.SH "SEE ALSO"
-drmModeGetFB(__libmansuffix__), drmModeAddFB(__libmansuffix__), drmModeAddFB2(__libmansuffix__), drmModeRmFB(__libmansuffix__), drmModeDirtyFB(__libmansuffix__), drmModeGetCrtc(__libmansuffix__), drmModeSetCrtc(__libmansuffix__), drmModeGetEncoder(__libmansuffix__), drmModeGetConnector(__libmansuffix__)
