XCOMM ----------------------------------------------------------------------
XCOMM X Window System Build Parameters and Rules
XCOMM $XdotOrg: xc/config/cf/X11.tmpl,v 1.54 2005/12/14 23:41:52 alanc Exp $
XCOMM $Xorg: X11.tmpl,v 1.6 2000/08/17 19:41:46 cpqbld Exp $
XCOMM
XCOMM
XCOMM
XCOMM
XCOMM $XFree86: xc/config/cf/X11.tmpl,v 1.248 2004/02/16 04:07:37 dawes Exp $

/***************************************************************************
 *                                                                         *
 *                            DEFAULT DEFINITIONS                          *
 *                                                                         *
 * The following section contains defaults for things that can             *
 * overridden in the various *.cf and site.def files.  DO NOT EDIT!        *
 *                                                                         *
 **************************************************************************/

#define ProjectX		604	/* do *not* change this line */

/* The following project-specific rules are defined at the end of this file:
 *
 * InstallAppDefaults		(class)
 */

/* X.Org release string */
#ifndef XOrgReleaseString
# if defined XorgVersionString
#   define XOrgReleaseString	Release XorgVersionString
# else
#   define XOrgReleaseString	Release 6.9
# endif
#endif

#ifndef XOrgManNameString
#define XOrgManNameString	X Version 11
#endif
#ifndef XOrgNameString
# define XOrgNameString   The X.Org Foundation
#endif
#ifndef XOrgNameStringShort
# define XOrgNameStringShort   X.Org
#endif
#ifndef XOrgStdFilePrefix
# define XOrgStdFilePrefix     xorg
#endif
#ifndef XOrgWebSupportAddress
# define XOrgWebSupportAddress http://wiki.X.Org
#endif

XORGRELSTRING = XorgManVersionString 	 
  XORGMANNAME = XOrgManNameString

#ifndef XOrgManDefs
#define XOrgManDefs -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\""
#endif

#ifndef XVendorManNameString
#define XVendorManNameString XOrgManNameString
#endif
#ifndef XVendorManVersionString
#define XVendorManVersionString XOrgReleaseString
#endif
#ifndef XVendorNameString
# define XVendorNameString XOrgNameString
#endif
#ifndef XVendorNameStringShort
# define XVendorNameStringShort XOrgNameStringShort
#endif
#ifndef XVendorWebSupport
# define XVendorWebSupport XOrgWebSupportAddress
#endif
#ifndef XVendorStdFilePrefix
# define XVendorStdFilePrefix XOrgStdFilePrefix
#endif

#ifndef VendorManDefs
#define VendorManDefs -D__vendorversion__="$(VENDORMANVERSION) $(VENDORMANNAME)"
#endif

#ifndef VendorDefines
#define VendorDefines -DXVENDORNAME='"$(VENDORNAME)"' -DXVENDORNAMESHORT='"$(VENDORNAMESHORT)"'
#endif

#ifndef VendorSupportDefines
# if defined XVendorWebSupport
#  define VendorSupportDefines -D__VENDORDWEBSUPPORT__='"$(VENDORWEBSUPPORT)"'
# endif
#endif
/*
 * X-specific things
 */
#if CrossCompiling && !defined(UseInstalledOnCrossCompile)
# if defined(UseInstalled)
#  define UseInstalledOnCrossCompile YES
# else
#  define UseInstalledOnCrossCompile NO
# endif
#else
# define UseInstalledOnCrossCompile NO
#endif

#ifndef HasXServer
#define HasXServer		YES
#endif
/* xorg.cf sets XorgServer to YES - to build Xorg you must include xorg.cf 
 * from the .cf file for your platform.
 */
#ifndef XorgServer
#define XorgServer		NO  
#endif
#ifndef BuildServer
#define BuildServer		HasXServer
#endif
#ifndef BuildServersOnly
#define BuildServersOnly	NO
#endif
#ifndef BuildClients
#define BuildClients		!BuildServersOnly
#endif
#ifndef BuildDocs
#define BuildDocs		!BuildServersOnly
#endif
#ifndef BuildLibraries
#define BuildLibraries		(!BuildServersOnly || BuildClients)
#endif
#ifndef BuildLibrariesForXServers
#define BuildLibrariesForXServers	BuildServer
#endif
#ifndef BuildX11Lib
#define BuildX11Lib		BuildLibraries
#endif

#ifndef BuildLoadableXlibI18n
#define BuildLoadableXlibI18n	(HasDlopen && SharedLibX11)
#endif
#ifndef InstallXcmsTxt
#define InstallXcmsTxt		YES
#endif
/*
 * This disables XLOCALEDIR.  Set it if you're using BuildLoadableXlibI18n,
 * don't have either issetugid() or getresuid(), and you need to protect
 * clients that are setgid or setuid to an id other than 0.
 */
#ifndef DisableXLocaleDirEnv
#define DisableXLocaleDirEnv	BuildLoadableXlibI18n && \
					!(HasIssetugid || HasGetresuid)
#endif
#ifndef BuildLoadableXlibXcursor
#define BuildLoadableXlibXcursor (HasDlopen && SharedLibX11)
#endif
#ifndef BuildTestExt
#define BuildTestExt		YES
#endif
#ifndef BuildSyncExt
#define BuildSyncExt		YES
#endif
#ifndef BuildXCMiscExt
#define BuildXCMiscExt		YES
#endif
#ifndef BuildShapeExt
#define BuildShapeExt		YES
#endif
#ifndef BuildBigReqsExt
#define BuildBigReqsExt		YES
#endif
#ifndef BuildXInputExt
#define BuildXInputExt		NO
#endif
#ifndef BuildDBE
#define BuildDBE		YES
#endif
#ifndef BuildDPMS
#define BuildDPMS		YES
#endif
#ifndef BuildXKB
#define BuildXKB		YES
#endif
#ifndef BuildXKBlib
#define BuildXKBlib		(BuildXKB && !BuildServersOnly)
#endif
#ifndef BuildXKBfilelib
#define BuildXKBfilelib		(BuildXKB && !BuildServersOnly)
#endif

	/*
	 * WARNING: Setting UseXKBInClients to YES cause incompatibilities
	 *          between many clients (such as xterm) and pre-XKB shared
	 *          libraries.
	 */
#ifndef UseXKBInClients
#define	UseXKBInClients		NO	/* use XKB in "normal" clients? */
#endif
#ifndef BuildRECORD
#define BuildRECORD		YES
#endif
#ifndef BuildRECORDlib
#define BuildRECORDlib		BuildRECORD
#endif
#ifndef BuildXinerama
#define BuildXinerama		NO
#endif
#ifndef BuildXCSecurity
#define BuildXCSecurity		YES
#endif
#ifndef HasPlugin
/* Browser plugins are shared libraries - only build them if the OS
 * supports shared libs.
 */
#define HasPlugin		HasSharedLibraries
#endif
#ifndef BuildPlugin
#define BuildPlugin		HasPlugin
#endif

#ifndef BuildScreenSaverExt
#define BuildScreenSaverExt	NO
#endif
#ifndef BuildXF86BigfontExt
#define BuildXF86BigfontExt	NO
#endif
#ifndef BuildXResExt
#define BuildXResExt            NO
#endif
#ifndef BuildXvExt
#define BuildXvExt		NO
#endif
#ifndef BuildXvMCExt
#define BuildXvMCExt		NO
#endif
#ifndef BuildGlxExt
#define BuildGlxExt		NO
#endif
#ifndef BuildOSMesaLib
#define BuildOSMesaLib		BuildGlxExt
#endif
#ifndef BuildRender
#define BuildRender		YES
#endif

#ifndef BuildRandR
#define BuildRandR		YES
#endif

#ifndef BuildXfixes
#define BuildXfixes		YES
#endif

#ifndef BuildDamage
#define BuildDamage		BuildXfixes
#endif

#ifndef BuildComposite
#define BuildComposite		(BuildXfixes && BuildDamage)
#endif
#ifndef BuildCompositeLibrary
#define BuildCompositeLibrary	!BuildServersOnly && BuildXfixesLibrary
#endif

#ifndef BuildRootless
#define BuildRootless	NO
#endif

#ifndef DefaultCursorTheme
#define DefaultCursorTheme	core
#endif

#ifndef BuildMiscDocs
#define BuildMiscDocs		NO
#endif
#ifndef BuildSpecsDocs
#define BuildSpecsDocs		NO
#endif
#ifndef BuildAllSpecsDocs
#define BuildAllSpecsDocs	NO
#endif

#ifndef InstallHardcopyDocs
#define InstallHardcopyDocs	YES
#endif

#ifndef InstallMiscManPages
#define InstallMiscManPages	YES
#endif

#ifndef FSUseSyslog
#define FSUseSyslog		NO
#endif

#ifndef InstallLibManPages
#define InstallLibManPages	YES
#endif

#ifndef UseConfDirForXkb
#define UseConfDirForXkb	YES
#endif
#ifndef ThreadedX
#if HasPosixThreads || HasCThreads
#define ThreadedX		YES	/* multi-threaded libraries */
#else
#define ThreadedX		NO
#endif
#endif
#ifndef ThreadedProject
#define ThreadedProject ThreadedX
#endif
#ifndef NeedUIThrStubs
#define NeedUIThrStubs		NO
#endif
#ifndef HasWChar32
#define HasWChar32		SystemV4
#endif
#ifndef HasXdmAuth
#define HasXdmAuth		NO	/* if you can not use XDM-AUTH* */
#endif
#ifndef PrimaryScreenResolution
#define PrimaryScreenResolution 72		/* a common resolution */
#endif
#ifndef DefaultFontPath
# if PrimaryScreenResolution < 88		/* (75 + 100) / 2 */
#  define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/TTF/,$(FONTDIR)/Type1/,$(FONTDIR)/CID/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/
# else
#  define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/TTF/,$(FONTDIR)/Type1/,$(FONTDIR)/CID/,$(FONTDIR)/100dpi/,$(FONTDIR)/75dpi/
# endif
#endif
#ifndef DefaultFSFontPath
# define DefaultFSFontPath DefaultFontPath
#endif
#ifndef DefaultRGBDatabase
#define DefaultRGBDatabase $(LIBDIR)/rgb
#endif
#ifndef UseRgbTxt
#define UseRgbTxt		NO	/* default is to compile with dbm */
#endif
#ifndef UseMemLeak
#define UseMemLeak		NO
#endif
#ifndef ServerErrorDefines
#define ServerErrorDefines	/**/
#endif
/*
 * NOTE:  IPv6Flags could be tacked on to either ConnectionFlags or
 *        ExtraConnectionDefs.  Here, we choose the later in order to
 *        maximise exposure of the IPv6 code (a number of <OS>.def files
 *        contain ConnectionFlags overrides).  Mind you, this might not
 *        the right thing to do when HasStreams is asserted.
 */
#ifndef BuildIPv6		/* If the OS also #define's AF_INET6 */
#define BuildIPv6		YES
#endif
#ifndef IPv6Flags
#if BuildIPv6
#define IPv6Flags -DIPv6
#else
#define IPv6Flags /**/
#endif
#endif
/*
 * Assume by default that IPv6 sockets also listen for IPv4 connections.
 * XDMCP support currently only works for both IPv4 and IPv6 when this is
 * true.
 */
#ifndef IPv6SocketsAlsoIPv4
#define IPv6SocketsAlsoIPv4	YES
#endif
#ifndef DECnetFlags
#if HasDECnet
#define DECnetFlags -DDNETCONN
#else
#define DECnetFlags
#endif
#endif
#ifndef ConnectionFlags
#if HasStreams
#define ConnectionFlags -DSTREAMSCONN
#else
#define ConnectionFlags -DTCPCONN -DUNIXCONN DECnetFlags
#endif
#endif
#if HasStickyDirBit
STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
#endif
#if HasFchown
FCHOWN_DEFINES = -DHAS_FCHOWN
#endif
#ifndef ExtraConnectionDefs
#define ExtraConnectionDefs $(STICKY_DEFINES) $(FCHOWN_DEFINES) IPv6Flags
#endif
#ifndef ProjectThreadsDefines
#define ProjectThreadsDefines -DXTHREADS
#endif
#if Malloc0ReturnsNull
#ifndef XMalloc0ReturnsNullDefines
#define XMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines
#endif
#ifndef XtMalloc0ReturnsNullDefines
#define XtMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines -DXTMALLOC_BC
#endif
#endif
#ifndef ExtensionOSDefines
#define ExtensionOSDefines /**/
#endif

#ifndef ExtensionDefines
#ifndef XTestDefines
#if BuildTestExt
#define XTestDefines -DXTEST
#else
#define XTestDefines /**/
#endif
#endif
#ifndef XSyncDefines
#if BuildSyncExt
#define XSyncDefines -DXSYNC
#else
#define XSyncDefines /**/
#endif
#endif
#ifndef XCMiscDefines
#if BuildXCMiscExt
#define XCMiscDefines -DXCMISC
#else
#define XCMiscDefines /**/
#endif
#endif
#ifndef ShapeDefines
#if BuildShapeExt
#define ShapeDefines -DSHAPE
#else
#define ShapeDefines /**/
#endif
#endif
#ifndef GlxDefines
#if BuildGlxExt
#ifdef GlxExtraDefines
#define GlxDefines -DGLXEXT GlxExtraDefines
#else
#define GlxDefines -DGLXEXT
#endif
#else
#define GlxDefines /**/
#endif
#endif
#ifndef DRMSrcDir
#define DRMSrcDir $(TOP)/extras/drm
#endif
#ifndef MesaSrcDir
#define MesaSrcDir $(TOP)/extras/Mesa
#endif
#ifndef OglSampleSrcDir
#define OglSampleSrcDir $(TOP)/extras/ogl-sample
#endif
#ifndef ShmDefines
#if HasShm
#define ShmDefines -DMITSHM
#else
#define ShmDefines /**/
#endif
#endif
#ifndef XInputDefines
#if BuildXInputExt
#define XInputDefines -DXINPUT
#else
#define XInputDefines /**/
#endif
#endif
#ifndef XineramaDefines
#if BuildXinerama
#define XineramaDefines -DPANORAMIX
#else
#define XineramaDefines /**/
#endif
#endif
#ifndef XkbDefines
#if BuildXKB
#define XkbDefines -DXKB
#else
#define XkbDefines /**/
#endif
#endif
#ifndef XkbClientDefines
#if UseXKBInClients
#define XkbClientDefines -DXKB
#else
#define XkbClientDefines /**/
#endif
#endif
#ifndef XkbServerDefines
#define XkbServerDefines /**/
#endif
#ifndef XkbDefRulesDefines
#define XkbDefRulesDefines  -D__XKBDEFRULES__='"$(XKBDEFRULES)"'
#endif
# ifndef XkbDefaultRulesFile
# define XkbDefaultRulesFile  XVendorStdFilePrefix
#endif
#ifndef BigReqDefines
#if BuildBigReqsExt
#define BigReqDefines -DBIGREQS
#else
#define BigReqDefines /**/
#endif
#endif

#ifndef DBEDefines
#if BuildDBE
#define DBEDefines -DDBE
#else
#define DBEDefines /**/
#endif
#endif

#ifndef PervasiveDBEDefines
#define PervasiveDBEDefines /* -DNEED_DBE_BUF_BITS -DNEED_DBE_BUF_VALIDATE */
#endif

#ifndef ScreenSaverExtensionDefines
#if BuildScreenSaverExt
#define ScreenSaverExtensionDefines -DSCREENSAVER
#else
#define ScreenSaverExtensionDefines /**/
#endif
#endif

#ifndef XF86BigfontExtensionDefines
#if BuildXF86BigfontExt
#define XF86BigfontExtensionDefines -DXF86BIGFONT
#else
#define XF86BigfontExtensionDefines /**/
#endif
#endif

#ifndef XvExtensionDefines
#if BuildXvExt
#define XvExtensionDefines -DXV
#else
#define XvExtensionDefines /**/
#endif
#endif

#ifndef XvMCExtensionDefines
#if BuildXvMCExt
#define XvMCExtensionDefines -DXVMC
#else
#define XvMCExtensionDefines /**/
#endif
#endif

#ifndef XResExtensionDefines
#if BuildXResExt
#define XResExtensionDefines -DRES
#else
#define XResExtensionDefines /**/
#endif
#endif

#ifndef RECORDDefines
#if BuildRECORD
#define RECORDDefines -DXRECORD
#else
#define RECORDDefines /**/
#endif
#endif

#ifndef XCSecurityDefines
#if BuildXCSecurity
#define XCSecurityDefines -DXCSECURITY
#else
#define XCSecurityDefines /**/
#endif
#endif

#ifndef DPMSDefines
#if BuildDPMS
#define DPMSDefines -DDPMSExtension
#else
#define DPMSDefines /**/
#endif
#endif

#ifndef RenderDefines
#if BuildRender
#define RenderDefines -DRENDER
#else
#define RenderDefines /**/
#endif
#endif

#ifndef RandRDefines
#if BuildRandR
#define RandRDefines -DRANDR
#else
#define RandRDefines /**/
#endif
#endif

#ifndef XfixesDefines
#if BuildXfixes
#define XfixesDefines -DXFIXES
#else
#define XfixesDefines /**/
#endif
#endif

#ifndef XDamageDefines
#if BuildDamage
#define XDamageDefines -DDAMAGE
#else
#define XDamageDefines /**/
#endif
#endif

#ifndef CompositeDefines
#if BuildComposite
#define CompositeDefines -DCOMPOSITE
#else
#define CompositeDefines /**/
#endif
#endif

#ifndef RootlessDefines
#if BuildRootless
#define RootlessDefines -DROOTLESS
#else
#define RootlessDefines /**/
#endif
#endif

#ifndef SitePervasiveExtensionDefines
#define SitePervasiveExtensionDefines /**/
#endif
#ifndef PervasiveExtensionDefines
#define PervasiveExtensionDefines \
	PervasiveDBEDefines \
	ShapeDefines \
	XInputDefines \
	XkbDefines \
	XCSecurityDefines \
	XF86BigfontExtensionDefines \
	DPMSDefines \
	SitePervasiveExtensionDefines \
	RenderDefines \
	RandRDefines \
	XineramaDefines \
	XfixesDefines \
	XDamageDefines \
	CompositeDefines \
	RootlessDefines
#endif
#ifndef SiteExtensionDefines
#define SiteExtensionDefines /**/
#endif
#ifndef BaseExtensionDefines
#define BaseExtensionDefines \
	DBEDefines \
	XTestDefines \
	XSyncDefines \
	RECORDDefines \
	ShmDefines \
	BigReqDefines \
	DPMSDefines \
	ScreenSaverExtensionDefines \
	XvExtensionDefines \
	XvMCExtensionDefines \
	GlxDefines \
	SiteExtensionDefines \
        XResExtensionDefines
#endif
#define ExtensionDefines BaseExtensionDefines ExtensionOSDefines
#endif /* ExtensionDefines */

#ifndef HasStrcasecmp
#define HasStrcasecmp YES
#endif

#ifndef StrcasecmpDefines
# if HasStrcasecmp
#  define StrcasecmpDefines /**/
# else
#  define StrcasecmpDefines -DNEED_STRCASECMP
# endif
#endif

#ifndef HasDevRandom
#define HasDevRandom NO
#endif

#ifndef HasArc4Random
#define HasArc4Random NO
#endif

#ifndef RandomDefines
# if HasDevRandom
#  ifndef RandomDeviceFile
#   define RandomDeviceFile /dev/random
#  endif
#  ifndef ExtraRandomDefines
#   ifdef PollDevRandom /* Set if can poll() /dev/random to avoid blocking */
#    define ExtraRandomDefines -DPOLL_DEV_RANDOM
#   else
#    define ExtraRandomDefines /**/
#   endif
#  endif
#  define RandomDefines -DDEV_RANDOM=\"RandomDeviceFile\" ExtraRandomDefines
# elif HasArc4Random
#  define RandomDefines -DARC4_RANDOM
# else
#  define RandomDefines /**/
# endif
#endif

#ifndef PreferXdmcpIPv6
#define PreferXdmcpIPv6 NO
#endif
#ifndef ServerXdmcpIPv6Defines
#if BuildIPv6 && !IPv6SocketsAlsoIPv4 && !PreferXdmcpIPv6
#define ServerXdmcpIPv6Defines -DXDMCP_NO_IPV6
#else
#define ServerXdmcpIPv6Defines /**/
#endif
#endif

#ifndef ServerXdmcpDefines
#define ServerXdmcpDefines -DXDMCP ServerXdmcpIPv6Defines
#endif
#ifndef ServerOSDefines
#define ServerOSDefines /**/
#endif
#ifndef ServerExtraDefines
#define ServerExtraDefines /* -DPIXPRIV */
#endif
#ifndef ServerAssertDefines
#define ServerAssertDefines -DNDEBUG
#endif
#ifndef ServerSnprintfDefines
#if !HasSnprintf
#define ServerSnprintfDefines -DNEED_SNPRINTF
#else
#define ServerSnprintfDefines /**/
#endif
#endif
#ifndef ServerDefines
#define ServerDefines StandardDefines PervasiveExtensionDefines ServerExtraDefines ServerAssertDefines ServerSnprintfDefines
#endif

#ifndef MesaUseX86Asm
/* The current Mesa X86 ASM code doesn't work well with SVR4 shared libs. */
# if HasX86Support && !SystemV4
#  define MesaUseX86Asm YES
# else
#  define MesaUseX86Asm NO
# endif
#endif

#ifndef MesaUseMMX
#ifdef HasMMXSupport
#define MesaUseMMX HasMMXSupport
#else
#define MesaUseMMX NO
#endif
#endif

#ifndef MesaUse3DNow
#ifdef Has3DNowSupport
#define MesaUse3DNow Has3DNowSupport
#else
#define MesaUse3DNow NO
#endif
#endif

#ifndef MesaUseSSE
#ifdef HasSSESupport
#define MesaUseSSE HasSSESupport
#else
#define MesaUseSSE NO
#endif
#endif

/* For compatibility */
#ifdef HasSSESupport
#undef HasKatmaiSupport
#define HasKatmaiSupport HasSSESupport
#endif
#undef MesaUseKatmai
#define MesaUseKatmai MesaUseSSE

#ifndef UsbMouseSupport
# define UsbMouseSupport NO
#endif

#ifndef DefaultFSConfigFile
#define DefaultFSConfigFile $(LIBDIR)/fs/config
#endif

#ifndef BinDir
#ifdef ProjectRoot
#define BinDir Concat(ProjectRoot,/lib/nx/bin)
#else
#define BinDir /usr/bin/X11
#endif
#endif
#ifndef BuildIncRoot
#define BuildIncRoot $(TOP)/exports
#endif
#ifndef BuildIncDir
#define BuildIncDir $(BUILDINCROOT)/include
#endif
#ifndef BuildIncTop
#define BuildIncTop ../..	/* relative to BuildIncDir */
#endif
#ifndef XTop
# if ImportX11
#  define XTop $(TOP)/imports/x11
# else
#  define XTop $(TOP)
# endif
#endif
#ifndef XBuildIncRoot
# if ImportX11
#  define XBuildIncRoot	$(XTOP)
# else
#  define XBuildIncRoot	$(XTOP)/exports
# endif
#endif
#ifndef XBuildIncDir
# define XBuildIncDir	$(XBUILDINCROOT)/include/X11
#endif
#ifndef XBuildIncTop
# define XBuildIncTop	../../..
#endif
#ifndef XBuildBinDir
# define XBuildBinDir	$(XBUILDINCROOT)/bin
#endif
#ifndef BuildBinDir
#define BuildBinDir $(TOP)/exports/bin
#endif
#ifndef BuildBinTop
#define BuildBinTop ../..	/* relative to BuildBinDir */
#endif
#ifndef BuildLibDir
#define BuildLibDir $(TOP)/exports/lib
#endif
#ifndef BuildLibTop
#define BuildLibTop ../..	/* relative to BuildLibDir */
#endif
#ifndef BuildModuleDir
#define BuildModuleDir $(BUILDLIBDIR)/modules
#endif
#ifndef BuildI18NDir
# define BuildI18NDir $(BUILDLIBDIR)/locale
#endif
#ifndef BuildModuleTop
#define BuildModuleTop $(BUILDLIBTOP)/..
#endif
#ifndef LibDir
# ifdef ProjectRoot
#  define LibDir Concat(ProjectRoot,/lib/nx/X11)
# else
#  define LibDir /usr/lib/X11
# endif
#endif
#ifndef ModuleDir
#define ModuleDir $(USRLIBDIR)/modules
#endif
#ifndef InstSrcDir
#define InstSrcDir Concat(ProjectRoot,/src)
#endif
#ifndef LibexecDir
#ifdef ProjectRoot
#define LibexecDir Concat(ProjectRoot,/libexec)
#else
#define LibexecDir /usr/X11/libexec
#endif
#endif
#ifndef ConfigDir
#define ConfigDir $(LIBDIR)/config
#endif
#ifndef DocDir
#define DocDir $(LIBDIR)/doc
#endif
#ifndef DocHtmlDir
#define DocHtmlDir $(DOCDIR)/html
#endif
#ifndef DocPsDir
#define DocPsDir $(DOCDIR)/PostScript
#endif
#ifndef DocPdfDir
#define DocPdfDir $(DOCDIR)/PDF
#endif
#ifndef FontDir
#define FontDir $(LIBDIR)/fonts
#endif
#ifndef FontEncDir
#define FontEncDir $(LIBDIR)/fonts/encodings
#endif
#ifndef AdmDir
#define AdmDir /usr/adm
#endif
#ifndef XinitDir
#define XinitDir $(LIBDIR)/xinit
#endif
#ifndef XdmDir
#define XdmDir $(LIBDIR)/xdm
#endif
#ifndef XdmVarDir
#define XdmVarDir $(VARLIBDIR)/xdm
#endif
#ifndef XdmAuthDir
#define XdmAuthDir $(LIBDIR)/xdm
#endif
#ifndef XdmConfigurationSubdirectory		/* under xdm sources */
#define XdmConfigurationSubdirectory config
#endif
#ifndef TwmDir
#define TwmDir $(LIBDIR)/twm
#endif
#ifndef XsmDir
#define XsmDir $(LIBDIR)/xsm
#endif
#ifndef NlsDir
#define NlsDir $(LIBDIR)/nls
#endif
#ifndef XLocaleDir
#define XLocaleDir $(LIBDIR)/locale
#endif
#ifndef ProxyManagerDir
#define ProxyManagerDir $(LIBDIR)/proxymngr
#endif
#ifndef ServerConfigDir
#define ServerConfigDir $(LIBDIR)/xserver
#endif
#ifndef EtcX11Directory
#define EtcX11Directory /etc/X11
#endif
#ifndef InstallSecurityConfig
#define InstallSecurityConfig YES	/* Install sample security policy */
#endif
#ifndef XFileSearchPathBase
/* avoid SCCS keyword */
#define XFileSearchPathBase Concat4($(LIBDIR)/%L/%T/%N%C,%S:$(LIBDIR)/%l/%T/%N%C,%S:$(LIBDIR)/%T/%N%C,%S:$(LIBDIR)/%L/%T/%N%S:$(LIBDIR)/%l/%T/%N%S:$(LIBDIR)/%T/%N%S)
#endif
#ifndef XFileSearchPathDefault
#ifdef XAppLoadDir
/* avoid SCCS keyword */
#define XFileSearchPathDefault XAppLoadDir/Concat(%N%C,%S):XAppLoadDir/%N%S:XFileSearchPathBase
#else
#define XFileSearchPathDefault XFileSearchPathBase
#endif
#endif
#ifndef XAppLoadDir
#define XAppLoadDir $(LIBDIR)/app-defaults
#endif
#ifndef XtErrorPrefix
#define XtErrorPrefix /* as empty string */
#endif
#ifndef XtExtraDefines
#define XtExtraDefines /* as empty string */
#endif
#ifndef XtWarningPrefix
#define XtWarningPrefix /* as empty string */
#endif
#ifndef OsNameDefines
#define OsNameDefines /* as nothing */
#endif
#ifndef DefaultUserPath			/* for xdm */
#define DefaultUserPath :/bin:/usr/bin:$(BINDIR):/usr/ucb
#endif
#ifndef DefaultSystemPath		/* for xdm */
#define DefaultSystemPath /etc:/bin:/usr/bin:$(BINDIR):/usr/ucb
#endif
#ifndef DefaultSystemShell		/* for xdm to set in SHELL */
#define DefaultSystemShell BourneShell
#endif
#ifndef ContribDir
#define ContribDir $(XTOP)/../contrib	/* contrib is outside core tree */
#endif
#ifndef UnsupportedDir
#define UnsupportedDir $(XTOP)/unsupported
#endif
#ifndef AllocateLocalDefines
#define AllocateLocalDefines /**/
#endif

#ifndef ForceNormalLib
#define ForceNormalLib (HasGcc && !HasGcc2)
#endif

#ifndef PsWrap
# ifndef UseInstalled
#  define PsWrap $(PSWRAPSRC)/pswrap
# else
#  define PsWrap pswrap
# endif
#endif

#ifndef ResourceConfigurationManagement
#define ResourceConfigurationManagement YES
#endif

#ifndef XtPopdownConformance
#define XtPopdownConformance YES
#endif

XCOMM -----------------------------------------------------------------------
XCOMM X Window System make variables; these need to be coordinated with rules

/*
 * This list must be reflected in the DIRS_TO_BUILD list in the top-level
 * Makefile.
 */
             XTOP = XTop
           BINDIR = BinDir		/* programs */
     BUILDINCROOT = BuildIncRoot	/* base of build loc */
      BUILDINCDIR = BuildIncDir		/* built headers */
      BUILDINCTOP = BuildIncTop		/* top relative to BUILDINCDIR */
      BUILDLIBDIR = BuildLibDir		/* built libraries */
      BUILDLIBTOP = BuildLibTop		/* top relative to BUILDLIBDIR */
      BUILDBINDIR = BuildBinDir		/* built binaries */
      BUILDBINTOP = BuildBinTop		/* top relative to BUILDBINDIR */
   BUILDMODULEDIR = BuildModuleDir	/* built server modules */
     BUILDI18NDIR = BuildI18NDir	/* built i81n modules */
   BUILDMODULETOP = BuildModuleTop	/* top relative to BUILDMODULEDIR */
    XBUILDINCROOT = XBuildIncRoot	/* base of X build loc */
     XBUILDINCDIR = XBuildIncDir
     XBUILDINCTOP = XBuildIncTop
     XBUILDBINDIR = XBuildBinDir
           INCDIR = $(INCROOT)		/* header files */
           ADMDIR = AdmDir		/* server log files */
           LIBDIR = LibDir		/* rgb, XErrorDB, etc. */
       LIBEXECDIR = LibexecDir
        MODULEDIR = ModuleDir
   TOP_X_INCLUDES = TopXInclude
          XBINDIR = XBinDir		/* BINDIR for X11ProjectRoot */

       INSTSRCDIR = InstSrcDir		/* Installed source (kernel modules). */

#ifdef EtcX11Directory
        ETCX11DIR = EtcX11Directory
#endif
#if UseEtcX11
          CONFDIR = $(ETCX11DIR)
#elif HasVarDirectory
          CONFDIR = $(VARDIR)
#endif
           DOCDIR = DocDir
       DOCHTMLDIR = DocHtmlDir
         DOCPSDIR = DocPsDir
        DOCPDFDIR = DocPdfDir
          FONTDIR = FontDir		/* font directories */
     ENCODINGSDIR = FontEncDir          /* font encodings directory */
         XINITDIR = XinitDir		/* xinit config files */
           XDMDIR = XdmDir		/* xdm config files */
        XDMVARDIR = XdmVarDir		/* xdm config files */
           TWMDIR = TwmDir		/* twm config files */
           XSMDIR = XsmDir		/* xsm config files */
           NLSDIR = NlsDir		/* nls files */
       XLOCALEDIR = XLocaleDir		/* locale files */
  PROXYMANAGERDIR = ProxyManagerDir	/* proxy manager config files */
      XAPPLOADDIR = XAppLoadDir		/* application default resource dir */

     INSTAPPFLAGS = $(INSTDATFLAGS)	/* XXX - this should go away - XXX */

#if UseInstalledX11
              RGB = $(XBINDIR)/rgb
      MKHTMLINDEX = $(XBINDIR)/mkhtmlindex
#else
              RGB = $(CLIENTENVSETUP) $(XBUILDBINDIR)/rgb
# if HasPerl
      MKHTMLINDEX = RunPerlScript($(CONFIGSRC)/util/mkhtmlindex.pl,)
# else
      MKHTMLINDEX = $(SHELL) $(CONFIGSRC)/util/mkhtmlindex.sh
# endif
#endif
     HTMLINDEXCMD = HtmlIndexCmd

       DOCUTILSRC = $(XTOP)/doc/util
        CLIENTSRC = $(TOP)/clients
          DEMOSRC = $(TOP)/demos
       XDOCMACROS = $(DOCUTILSRC)/macros.t
       XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
       PROGRAMSRC = $(TOP)/programs
           LIBSRC = $(XTOP)/lib
       INCLUDESRC = BuildIncDir
      XINCLUDESRC = $(INCLUDESRC)/nx-X11
        SERVERSRC = $(XTOP)/programs/Xserver
       CONTRIBSRC = ContribDir
   UNSUPPORTEDSRC = UnsupportedDir
           DOCSRC = $(XTOP)/doc
           RGBSRC = $(XTOP)/programs/rgb
        EXTINCSRC = $(XTOP)/include/extensions
        DRMSRCDIR = DRMSrcDir
       MESASRCDIR = MesaSrcDir
  OGLSAMPLESRCDIR = OglSampleSrcDir
        PSWRAPSRC = $(XTOP)/config/pswrap
     TRANSCOMMSRC = $(LIBSRC)/xtrans
   TRANS_INCLUDES = -I$(TRANSCOMMSRC)
 CONNECTION_FLAGS = ConnectionFlags ExtraConnectionDefs
XTRANS_FAILDEFINES = XtransFailDefine 
#ifdef X11ProjectRoot
     XPROJECTROOT = X11ProjectRoot
#endif
    VENDORMANNAME = XVendorManNameString
 VENDORMANVERSION = XVendorManVersionString
      XORGMANDEFS = XOrgManDefs
    VENDORMANDEFS = VendorManDefs
       VENDORNAME = XVendorNameString
  VENDORNAMESHORT = XVendorNameStringShort

#if defined (XVendorWebSupport)
 VENDORWEBSUPPORT = XVendorWebSupport
#endif
VENDORSUPPORTDEFS = VendorSupportDefines

      XKBDEFRULES = XkbDefaultRulesFile
  XKBDEFRULESDEFS = XkbDefRulesDefines
  
     XCONFIGFILE = XConfigFile
      XCONFIGDIR = XConfigDir
        XLOGFILE = XLogFile
     XSERVERNAME = XServerName

#if HasSharedLibraries
#ifndef DontUseLibPathVar
#ifndef BuildLibPathVar
#define BuildLibPathVar LD_LIBRARY_PATH
#endif
#endif
#endif
#ifdef BuildLibPathVar
# ifdef SystemBuildLibPath
  SYSTEMENVLIBDIR = SystemBuildLibPath
# endif
#define XlocaleClientSetup Concat3(XLOCALEDIR,=,BuildI18NDir)
       XENVLIBDIR = X11BuildLibPath
   CLIENTENVSETUP = Concat3(BuildLibPathVar,=,BuildLibPath) XlocaleClientSetup
#else
   CLIENTENVSETUP =
#endif

#ifdef PreloadSetup
     PRELOADSETUP = PreloadSetup
#endif

#ifndef ShLibIncludeFile
/* need this to make ANSI-style preprocessors happy */
#define ShLibIncludeFile <noop.rules>
#endif

#include ShLibIncludeFile

#ifndef XBuildLibDir
# define XBuildLibDir	BuildLibDir
#endif

#ifndef NeedLibInsideFlag
#define NeedLibInsideFlag	NO
#endif

#ifndef SharedLibX11
#define SharedLibX11 HasSharedLibraries
#endif
#ifndef NormalLibX11
#define NormalLibX11 (!SharedLibX11 | ForceNormalLib)
#endif
#ifndef DebugLibX11
#define DebugLibX11		NO	/* debugged X library */
#endif
#ifndef ProfileLibX11
#define ProfileLibX11		NO	/* profiled X library */
#endif
          XLIBSRC = $(LIBSRC)/X11
#if SharedLibX11
#ifndef SharedX11Rev
#define SharedX11Rev 6.2
#endif
SharedLibReferences(XONLY,NX_X11,$(XLIBSRC),SOXLIBREV,SharedX11Rev)
#else
ProjectUnsharedLibReferences(XONLY,NX_X11,$(XLIBSRC),XBuildLibDir)
#endif
      /* Common alternate spellings */
      DEPXLIBONLY = $(DEPXONLYLIB)
         XLIBONLY = $(XONLYLIB)
     LINTXONLYLIB = $(LINTXONLY)

#if HasMotif

#ifndef MotifDir
#define MotifDir /usr/X11R6
#endif
#ifndef MotifDirStandard
#define MotifDirStandard NO
#endif

#ifndef MotifLibDir
# define MotifLibDir MotifDir/LibDirName
# if MotifDirStandard
#  define MotifLibDirStandard YES
# endif
#endif
#ifndef MotifLibDirStandard
# define MotifLibDirStandard NO
#endif

#ifndef MotifIncDir
# define MotifIncDir MotifDir/include
# if MotifDirStandard
#  define MotifIncDirStandard YES
# endif
#endif
#ifndef MotifIncDirStandard
# define MotifIncDirStandard NO
#endif

MOTIFDIR = MotifDir
MOTIFLIBDIR = MotifLibDir
MOTIFINCDIR = MotifIncDir

#if MotifLibDirStandard
MOTIFLIB = -lXm
#else
MOTIFLIB = -L$(MOTIFLIBDIR) LinkerRuntimeLibraryPathFlag($(MOTIFLIBDIR)) -lXm
#endif

#if MotifIncDirStandard
MOTIFINCLUDES = 
#else
MOTIFINCLUDES = -I$(MOTIFINCDIR)
#endif

#endif /* HasMotif */

#ifndef LdLibraryPath
#define LdLibraryPath LD_LIBRARY_PATH
#endif

#if BuildXKBlib
# ifndef SharedLibxkbfile
#  define SharedLibxkbfile	HasSharedLibraries
# endif
# ifndef NormalLibxkbfile
#  define NormalLibxkbfile	(!SharedLibxkbfile | ForceNormalLib)
# endif
# ifndef DebugLibxkbfile
#  define DebugLibxkbfile	NO
# endif
# ifndef ProfileLibxkbfile
#  define ProfileLibxkbfile	NO
# endif
#else
# ifndef SharedLibxkbfile
#  define SharedLibxkbfile	NO
# endif
# ifndef NormalLibxkbfile
#  define NormalLibxkbfile	NO
# endif
# ifndef DebugLibxkbfile
#  define DebugLibxkbfile	NO
# endif
# ifndef ProfileLibxkbfile
#  define ProfileLibxkbfile	NO
# endif
#endif
    XKBFILELIBSRC = $(LIBSRC)/xkbfile
#if SharedLibxkbfile
# ifndef SharedxkbfileRev
#  define SharedxkbfileRev	1.0
# endif
SharedLibReferences(XKBFILE,NX_xkbfile,$(XKBFILESRC),SOXKBFILEREV, SharedxkbfileRev)
#else
ProjectUnsharedLibReferences(XKBFILE,NX_xkbfile,$(XKBFILELIBSRC),XBuildLibDir)
#endif

#if BuildXKBlib
# ifndef XkbClientDepLibs
#  if UseXKBInClients
#   define XkbClientDepLibs	$(DEPXKBFILELIB)
#  else
#   define XkbClientDepLibs	/**/
#  endif
# endif
# ifndef XkbClientLibs
#  if UseXKBInClients
#   define XkbClientLibs	$(XKBFILELIB)
#  else
#   define XkbClientLibs	/**/
#  endif
# endif

#else /* !BuildXKBlib */
# ifndef XkbClientDepLibs
#  define XkbClientDepLibs
# endif
# ifndef XkbClientLibs
#  define XkbClientLibs
# endif
#endif /* BuildXKBlib */

#ifndef NeedDefaultDepLibs
#define NeedDefaultDepLibs YES
#endif

#if NeedDefaultDepLibs
/*
 * Individual libraries should override this
 */
#if HasSharedLibraries || defined(UseInstalled)
          DEPLIBS = $(DEPXLIB)
#else
          DEPLIBS = $(LOCAL_LIBRARIES)
#endif
         DEPLIBS1 = $(DEPLIBS)
         DEPLIBS2 = $(DEPLIBS)
         DEPLIBS3 = $(DEPLIBS)
         DEPLIBS4 = $(DEPLIBS)
         DEPLIBS5 = $(DEPLIBS)
         DEPLIBS6 = $(DEPLIBS)
         DEPLIBS7 = $(DEPLIBS)
         DEPLIBS8 = $(DEPLIBS)
         DEPLIBS9 = $(DEPLIBS)
         DEPLIBS10 = $(DEPLIBS)
#endif /* NeedDefaultDepLibs */


/*
 * InstallAppDefaults - simple rules to install application default file
 */
#ifndef InstallAppDefaults
#define InstallAppDefaults(class) InstallAppDefaultsLong(class,class)
#endif /* InstallAppDefaults */

/*
 * PostProcessTroffPS - by default moves the working output into place,
 * but can be a hook for more complicated post-processing.
 */
#ifndef PostProcessTroffPS
#define PostProcessTroffPS(temp,real) $(MV) temp real
#endif

/*
 * PostProcessTroffHTML - by default moves the working output into place,
 * but can be a hook for more complicated post-processing.
 */
#ifndef PostProcessTroffHTML
#define PostProcessTroffHTML(temp,real) $(MV) temp real
#endif

#ifdef HTMLroffCmd
#define HtmlTarget(file) file.html
#define HtmlClean(file) file.nhtml file.html file*.png
#else
#define HtmlTarget(file) /**/
#define HtmlClean(file) /**/
#endif

#ifdef PsToPdfCmd
#define PdfTarget(file) file.pdf
#define PdfClean(file) file.pdf
#else
#define PdfTarget(file) /**/
#define PdfClean(file) /**/
#endif

#ifndef ConvertPsToPdf
#ifdef PsToPdfCmd
#define ConvertPsToPdf(file)						@@\
file.pdf: file.ps							@@\
	RemoveFile(file.pdf)						@@\
	$(PSTOPDFCMD) < file.ps > file.pdf
#else
#define ConvertPsToPdf(file) /**/
#endif
#endif

#if HasPdfLatex
#define PdfLatexTarget(file) file.pdf
#define PdfLatexClean(file) file.pdf
#else
#define PdfLatexTarget(file) /**/
#define PdfLatexClean(file) /**/
#endif

#ifndef LatexToPdf
#if HasPdfLatex && defined(PdfLatexCmd)
#define LatexToPdf(file)						@@\
file.pdf: file.tex							@@\
	RemoveFile(file.pdf)						@@\
	$(PDFLATEXCMD) file.tex
#else
#define LatexToPdf(file) /**/
#endif
#endif


#ifndef MakeDepSimpleHtmlDoc
#ifdef HTMLroffCmd
#define MakeDepSimpleHtmlDoc(file,deps,srcs)				@@\
HtmlTarget(file): deps							@@\
	$(HTMLROFF) $(MSMACROS) $(XDOCMACROS) Concat(-P-I,file) srcs \		@@\
		2> index.raw > file.nhtml \				@@\
	  && PostProcessTroffHTML(file.nhtml,$@)
#else
#define MakeDepSimpleHtmlDoc(file,deps,srcs) /**/
#endif
#endif

#ifndef MakeTblHtmlDoc
#ifdef HTMLroffCmd
#define MakeTblHtmlDoc(file,srcs)					@@\
file.html: srcs								@@\
	$(TBL) $(XDOCMACROS) srcs | $(HTMLROFF) $(MSMACROS) Concat(-P-I,file) \	@@\
		2> index.raw > file.nhtml \				@@\
	  && PostProcessTroffHTML(file.nhtml,$@)
#else
#define MakeTblHtmlDoc(file,srcs) /**/
#endif
#endif

#ifndef MakeEqnHtmlDoc
#ifdef HTMLroffCmd
#define MakeEqnHtmlDoc(file,srcs)					@@\
file.html: srcs								@@\
	$(TBL) $(XDOCMACROS) srcs | $(EQN) | $(HTMLROFF) $(MSMACROS) Concat(-P-I,file) \ @@\
		2> index.raw > file.nhtml \				@@\
	  && PostProcessTroffHTML(file.nhtml,$@)
#else
#define MakeEqnHtmlDoc(file,srcs) /**/
#endif
#endif


#ifndef MakeDepSimpleDoc
#define MakeDepSimpleDoc(file,deps,srcs)				@@\
all:: file.ps file.txt HtmlTarget(file) PdfTarget(file)			@@\
.PRECIOUS: file.ps							@@\
									@@\
file.ps: deps								@@\
	-$(TROFF) $(MSMACROS) $(XDOCMACROS) srcs \			@@\
		2> index.raw > file.nps \				@@\
	&& PostProcessTroffPS(file.nps,$@)				@@\
	@if grep '^[^1-9.]' index.raw | grep -v warning; then exit 1; \	@@\
		else test $$? -le 1; fi					@@\
									@@\
file.txt: deps								@@\
	$(NROFF) $(MSMACROS) $(XDOCMACROS) srcs 2> index.raw | \	@@\
		 $(COL) $(COLFLAGS) > $@				@@\
									@@\
MakeDepSimpleHtmlDoc(file,deps,srcs)					@@\
									@@\
ConvertPsToPdf(file)							@@\
									@@\
clean::									@@\
	$(RM) index.raw file.nps file.ps file.txt HtmlClean(file) PdfClean(file)
#endif

#ifndef MakeSimpleDoc
#define MakeSimpleDoc(file,srcs) MakeDepSimpleDoc(file,srcs,srcs)
#endif

#ifndef MakeTblDoc
#define MakeTblDoc(file,srcs)						@@\
all:: file.ps file.txt HtmlTarget(file) PdfTarget(file)			@@\
.PRECIOUS: file.ps							@@\
									@@\
file.ps: srcs								@@\
	-$(TBL) $(XDOCMACROS) srcs | $(TROFF) $(MSMACROS) \		@@\
		2> index.raw > file.nps \				@@\
	&& PostProcessTroffPS(file.nps,$@)				@@\
	@if grep '^[^1-9.]' index.raw | grep -v warning; then exit 1; \	@@\
		else test $$? -le 1; fi					@@\
									@@\
file.txt: srcs								@@\
	$(TBL) $(XDOCMACROS) srcs | $(NROFF) $(MSMACROS) 2> index.raw \	@@\
		| $(COL) $(COLFLAGS) > $@				@@\
									@@\
MakeTblHtmlDoc(file,srcs)						@@\
									@@\
ConvertPsToPdf(file)							@@\
									@@\
clean::									@@\
	$(RM) index.raw file.nps file.ps file.txt HtmlClean(file) PdfClean(file)
#endif

#ifndef MakeEqnDoc
#define MakeEqnDoc(file,srcs)						@@\
all:: file.ps file.txt HtmlTarget(file) PdfTarget(file)			@@\
.PRECIOUS: file.ps							@@\
									@@\
file.ps: srcs								@@\
	-$(TBL) $(XDOCMACROS) srcs | $(EQN) | $(TROFF) $(MSMACROS) \	@@\
		2> index.raw > file.nps \				@@\
	&& PostProcessTroffPS(file.nps,$@)				@@\
	@if grep '^[^1-9.]' index.raw | grep -v warning; then exit 1; \	@@\
		else test $$? -le 1; fi					@@\
									@@\
file.txt: srcs								@@\
	$(TBL) $(XDOCMACROS) srcs | $(NEQN) | $(NROFF) $(MSMACROS) \	@@\
		2> index.raw | $(COL) $(COLFLAGS) > $@			@@\
									@@\
MakeEqnHtmlDoc(file,srcs)						@@\
									@@\
ConvertPsToPdf(file)							@@\
									@@\
clean::									@@\
	$(RM) index.raw file.nps file.ps file.txt HtmlClean(file) PdfClean(file)
#endif

#ifndef MakeDocIndex
#define MakeDocIndex(file,srcs)						@@\
all:: file.idx.ps							@@\
									@@\
file.idx.ps: srcs index.raw						@@\
	sed -n '$$p' index.raw > index.pageno				@@\
	grep '^[1-9]' index.raw | \					@@\
		(sort -f '-t:' -k2,2 -k1,1n 2>/dev/null || \		@@\
		 sort -f '-t:' +1 -3 +0n -1n) | \			@@\
		awk -f $(DOCUTILSRC)/fixindex.awk | \			@@\
		awk -f $(DOCUTILSRC)/block.awk > index.troff		@@\
	cat srcs $(XIDXMACROS) index.troff | \				@@\
		$(TROFF) -me > file.idx.nps && \			@@\
		$(MV) file.idx.nps $@					@@\
	$(RM) index.troff index.pageno					@@\
									@@\
clean::									@@\
	$(RM) index.troff index.pageno file.idx.nps file.idx.ps
#endif

#ifndef MakeLatexDoc
#if HasLatex
#define MakeLatexDoc(file,src)						@@\
all:: file.ps PdfLatexTarget(file)					@@\
									@@\
file.dvi: src								@@\
	$(LATEX) src							@@\
									@@\
file.ps: file.dvi							@@\
	$(DVIPS) -o file.nps file && $(MV) file.nps $@			@@\
									@@\
LatexToPdf(file)							@@\
									@@\
clean::									@@\
	RemoveFiles(file.nps file.ps file.dvi file.log)			@@\
	RemoveFiles(file.aux file.toc file.lof file.lot)		@@\
	$(RM) PdfLatexClean(file)
#else /* HasLatex */
#define MakeLatexDoc(file,src)						@@\
all::									@@\
file.ps: src								@@\
	@echo "cannot make file.ps: no latex on this system"; exit 1
#endif /* HasLatex (else) */
#endif /* MakeLatexDoc */

#ifndef InstallDoc
#define InstallDoc(name,deps)						@@\
install:: deps								@@\
	MakeDir($(DESTDIR)$(DOCPSDIR))					@@\
	@if [ -f name.ps -a X$(NOPS) = X ]; then set -x; \		@@\
	  $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) name.ps \		@@\
		$(DESTDIR)$(DOCPSDIR); \				@@\
	fi ; RemoveOldFile(name.ps,name.PS,$(DOCPSDIR))			@@\
	MakeDir($(DESTDIR)$(DOCDIR))					@@\
	@if [ -f name.txt -a X$(NOTXT) = X ]; then set -x; \		@@\
	  $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) name.txt \		@@\
		$(DESTDIR)$(DOCDIR); \					@@\
	fi ; RemoveOldFile(name.txt,name.TXT,$(DOCDIR))			@@\
	MakeDir($(DESTDIR)$(DOCHTMLDIR))				@@\
	@if [ -f name.html -a X$(NOHTML) = X ]; then (set -x; \		@@\
	  $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) name.html \	@@\
		$(DESTDIR)$(DOCHTMLDIR)); \				@@\
	  for i in name*.png; do \					@@\
	    if [ -f $$i ]; then (set -x; \				@@\
	      $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) $$i \		@@\
		$(DESTDIR)$(DOCHTMLDIR)); \				@@\
	    fi; \							@@\
	  done; \							@@\
	fi								@@\
	MakeDir($(DESTDIR)$(DOCPDFDIR))					@@\
	@if [ -f name.pdf -a X$(NOPDF) = X ]; then set -x; \		@@\
	  $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) name.pdf \		@@\
		$(DESTDIR)$(DOCPDFDIR); \				@@\
	fi
#endif

#ifndef InstallRoffDoc
#define InstallRoffDoc(name) InstallDoc(name,name.ps name.txt)
#endif

#ifndef InstallLatexDoc
#if HasLatex
#define InstallLatexDoc(name) InstallDoc(name,name.ps)
#else
#define InstallLatexDoc(name)
#endif
#endif

#ifndef LinkHardcopyPS
# if CaseSensitiveFileSystem
#  define LinkHardcopyPS(name)						  \
	@if [ -f name.PS ]; then set -x; \				@@\
	  RemoveFile(name.ps); \					@@\
	  $(LN) name.PS name.ps; \					@@\
	fi
# else
#  define LinkHardcopyPS(name)
# endif
#endif


#ifndef InstallHardcopyDoc
#define InstallHardcopyDoc(name,deps)					@@\
all:: name.ps PdfTarget(name)						@@\
									@@\
name.ps: deps								@@\
	@if [ -f name.PS.gz ]; then set -x; \				@@\
	  RemoveFile(name.ps); \					@@\
	  gzip -d < name.PS.gz > name.ps; \				@@\
	fi								@@\
	LinkHardcopyPS(name)						@@\
									@@\
ConvertPsToPdf(name)							@@\
									@@\
clean::									@@\
	$(RM) name.ps PdfClean(name)					@@\
									@@\
InstallDoc(name,deps)
#endif

  XRENDERPRELOADPATTERN = libXrender.so.?
    XFONTPRELOADPATTERN = libXfont*.so.?