Makefile.am   [plain text]


libmandir = $(LIB_MAN_DIR)

LIB_MAN_DIR_SUFFIX = $(LIB_MAN_DIR:@mandir@/man%=%)

libman_PRE = \
	DBE.man \
	DPMSCapable.man \
	DPMSDisable.man \
	DPMSEnable.man \
	DPMSForceLevel.man \
	DPMSGetTimeouts.man \
	DPMSGetVersion.man \
	DPMSInfo.man \
	DPMSQueryExtension.man \
	DPMSSetTimeouts.man \
	XShape.man \
	XShm.man \
	XcupGetReservedColormapEntries.man \
	XcupQueryVersion.man \
	XcupStoreColors.man \
	XdbeAllocateBackBufferName.man \
	XdbeBeginIdiom.man \
	XdbeDeallocateBackBufferName.man \
	XdbeEndIdiom.man \
	XdbeFreeVisualInfo.man \
	XdbeGetBackBufferAttributes.man \
	XdbeGetVisualInfo.man \
	XdbeQueryExtension.man \
	XdbeSwapBuffers.man \
	Xevi.man \
	Xmbuf.man

XShape_man_aliases = XShapeQueryExtension XShapeQueryVersion XShapeCombineRegion XShapeCombineRectangles XShapeCombineMask XShapeCombineShape XShapeOffsetShape XShapeQueryExtents XShapeSelectInput XShapeInputSelected XShapeGetRectangles

XShm_man_aliases = XShmQueryExtension XShmQueryVersion XShmPixmapFormat XShmAttach XShmDetach XShmCreateImage XShmPutImage XShmGetImage XShmCreatePixmap XShmGetEventBase

Xmbuf_man_aliases = XmbufQueryExtension XmbufGetVersion XmbufCreateBuffers XmbufDestroyBuffers XmbufDisplayBuffers XmbufGetWindowAttributes XmbufChangeWindowAttributes XmbufGetBufferAttributes XmbufChangeBufferAttributes XmbufGetScreenInfo XmbufCreateStereoWindow

Xevi_man_aliases = XeviQueryVersion XeviGetVisualInfo XeviQueryExtension

all_aliases = $(XShape_man_aliases) $(XShm_man_aliases) $(Xmbuf_man_aliases) $(Xevi_man_aliases)

libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@) \
	      $(all_aliases:=.@LIB_MAN_SUFFIX@)

EXTRA_DIST  = $(libman_PRE)

CLEANFILES  = $(libman_DATA)

# Generate man page shadow files (Replaces InstallManPageAliases from Imake)
BUILT_SOURCES = shadows.DONE

shadows.DONE:
	-rm -f $(all_aliases:=.@LIB_MAN_SUFFIX@)
	(for i in $(XShape_man_aliases:=.@LIB_MAN_SUFFIX@) ; do \
	echo .so man$(LIB_MAN_DIR_SUFFIX)/XShape.$(LIB_MAN_SUFFIX) > $$i; \
	done)
	(for i in $(XShm_man_aliases:=.@LIB_MAN_SUFFIX@) ; do \
	echo .so man$(LIB_MAN_DIR_SUFFIX)/XShm.$(LIB_MAN_SUFFIX) > $$i; \
	done)
	(for i in $(Xmbuf_man_aliases:=.@LIB_MAN_SUFFIX@) ; do \
	echo .so man$(LIB_MAN_DIR_SUFFIX)/Xmbuf.$(LIB_MAN_SUFFIX) > $$i; \
	done)
	(for i in $(Xevi_man_aliases:=.@LIB_MAN_SUFFIX@) ; do \
	echo .so man$(LIB_MAN_DIR_SUFFIX)/Xevi.$(LIB_MAN_SUFFIX) > $$i; \
	done)
	touch shadows.DONE

CLEANFILES += shadows.DONE

# Rules for generating files using the C pre-processor
# (Replaces CppFileTarget from Imake)

SED = sed

SUFFIXES = .$(LIB_MAN_SUFFIX) .man

# Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM
# to cpp, because that trick does not work on all ANSI C preprocessors.
# Delete line numbers from the cpp output (-P is not portable, I guess).
# Allow XCOMM to be preceded by whitespace and provide a means of generating
# output lines with trailing backslashes.
# Allow XHASH to always be substituted, even in cases where XCOMM isn't.

CPP_SED_MAGIC = $(SED) -e '/^\#  *[0-9][0-9]*  *.*$$/d' \
                       -e '/^\#line  *[0-9][0-9]*  *.*$$/d' \
                       -e '/^[         ]*XCOMM$$/s/XCOMM/\#/' \
                       -e '/^[         ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
                       -e '/^[         ]*XHASH/s/XHASH/\#/' \
                       -e '/\@\@$$/s/\@\@$$/\\/'

# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
  XORGMANNAME = X Version 11
  XSERVERNAME = Xorg

MANDEFS = \
        -D__vendorversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
        -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
	-D__appmansuffix__=$(APP_MAN_SUFFIX) \
	-D__filemansuffix__=$(FILE_MAN_SUFFIX) \
	-D__libmansuffix__=$(LIB_MAN_SUFFIX) \
	-D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
	-D__drivermansuffix__=$(DRIVER_MAN_SUFFIX) \
	-D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \
	-D__projectroot__=$(prefix)

.man.$(LIB_MAN_SUFFIX):
	$(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@