XCOMM ----------------------------------------------------------------------
XCOMM X Window System Build Parameters and Rules
XCOMM $XFree86: xc/config/cf/X11.tmpl,v 1.300 2008/12/06 17:00:39 tsi Exp $
/*
 * Copyright (c) 1994-2005 by The XFree86 Project, Inc.
 * All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject
 * to the following conditions:
 *
 *   1.  Redistributions of source code must retain the above copyright
 *       notice, this list of conditions, and the following disclaimer.
 *
 *   2.  Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer
 *       in the documentation and/or other materials provided with the
 *       distribution, and in the same place and form as other copyright,
 *       license and disclaimer information.
 *
 *   3.  The end-user documentation included with the redistribution,
 *       if any, must include the following acknowledgment: "This product
 *       includes software developed by The XFree86 Project, Inc
 *       (http://www.xfree86.org/) and its contributors", in the same
 *       place and form as other third-party acknowledgments.  Alternately,
 *       this acknowledgment may appear in the software itself, in the
 *       same form and location as other such third-party acknowledgments.
 *
 *   4.  Except as contained in this notice, the name of The XFree86
 *       Project, Inc shall not be used in advertising or otherwise to
 *       promote the sale, use or other dealings in this Software without
 *       prior written authorization from The XFree86 Project, Inc.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/***************************************************************************
 *                                                                         *
 *                            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)
 * InstallAppDefaultsLong	(file,class)
 * MakeFontsDir			(deplist)
 * MakeFcCache			(deplist)
 * MakeFonts			()
 * InstallFontObjs		(objs,dest)
 * InstallFonts			(dest)
 * InstallFontAliases		(dest)
 * InstallFcCache		(dest)
 * FontSrc			(basename)
 * FontBaseObj			(basename)
 * InstallFontScale		(dest)
 * UncompressedFontTarget	(basename)
 * CompressedFontTarget		(basename)
 * FontTarget			(basename)
 * FontObj			(basename)
 * MakeXkbDir			(basedir,subdir)
 */

#ifndef XVendorString
# define XVendorString  "The XFree86 Project, Inc"
#endif

#ifndef XVendorRelease
# ifdef XF86_VERSION_CURRENT
#  define XVendorRelease XF86_VERSION_CURRENT
# else /* Must be defined for bootstrapping purposes. */
#  define XVendorRelease 0
# endif
#endif

#if !defined(XVendorManVersionString) && \
    defined(XF86_VERSION_MAJOR) && defined(XF86_VERSION_MINOR) && \
    defined(XF86_VERSION_PATCH) && defined(XF86_VERSION_SNAP)
# if XF86_VERSION_SNAP == 0
#define XVendorManVersionString `echo XF86_VERSION_MAJOR XF86_VERSION_MINOR XF86_VERSION_PATCH | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
#else
#define XVendorManVersionString `echo XF86_VERSION_MAJOR XF86_VERSION_MINOR XF86_VERSION_PATCH XF86_VERSION_SNAP | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
# endif
#endif

#ifndef XVendorManVersionString
# define XVendorManVersionString 4.x
#endif

#ifndef XVendorManNameString
#define XVendorManNameString XFree86
#endif

    VENDORMANNAME = XVendorManNameString
 VENDORMANVERSION = XVendorManVersionString

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

/*
 * X-specific things
 */
#if CrossCompiling && !defined(UseInstalledOnCrossCompile)
# if defined(UseInstalled)
#  define UseInstalledOnCrossCompile YES
# else
#  define UseInstalledOnCrossCompile NO
# endif
#endif

#ifndef HasXServer
#define HasXServer		YES
#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 BuildDmx
#define BuildDmx		YES
#endif
#ifndef XdmxServer
#define XdmxServer		BuildDmx && BuildServer
#endif
#ifndef BuildXdm
#define BuildXdm		YES
#endif
#ifndef BuildLibrariesForDmx
#define BuildLibrariesForDmx	XdmxServer
#endif
#ifndef BuildLibraries
#define BuildLibraries		(!BuildServersOnly || BuildClients)
#endif
#ifndef BuildLibrariesForXServers
#define BuildLibrariesForXServers	BuildServer
#endif
#ifndef BuildDebugLibraries
#define BuildDebugLibraries	NO
#endif
#ifndef BuildProfileLibraries
#define BuildProfileLibraries	NO
#endif
#ifndef BuildFontServer
#define BuildFontServer		YES
#endif
#ifndef OmitSnfSupport
#define OmitSnfSupport		NO
#endif
#ifndef XserverStaticFontLib
#define XserverStaticFontLib	YES
#endif
#ifndef BuildSpeedo
#define BuildSpeedo		YES
#endif
#ifndef BuildType1
#define BuildType1		YES
#endif
#ifndef BuildCID
#define BuildCID		YES
#endif
#ifndef BuildFreeType
#define BuildFreeType		NO
#endif
#ifndef BuildBuiltinFonts
#define BuildBuiltinFonts	NO
#endif
#ifndef BuildFonts
#define BuildFonts		((BuildServer && !BuildServersOnly) \
					|| BuildClients)
#endif
#ifndef Build75DpiFonts
#define Build75DpiFonts		YES
#endif
#ifndef Build100DpiFonts
#define Build100DpiFonts	YES
#endif
#ifndef BuildSpeedoFonts
#define BuildSpeedoFonts	YES
#endif
#ifndef BuildType1Fonts
#define BuildType1Fonts		YES
#endif
#ifndef BuildCIDFonts
#define BuildCIDFonts		YES
#endif
#ifndef BuildTrueTypeFonts
#define BuildTrueTypeFonts	YES
#endif
#ifndef BuildBethMarduthoFonts
#define BuildBethMarduthoFonts	NO
#endif
#ifndef BuildEthiopicFonts
#define BuildEthiopicFonts	NO
#endif
#ifndef BuildCyrillicFonts
#define BuildCyrillicFonts	YES
#endif
/* Some bdf font generation details.  The scripts for this require perl. */
#ifndef TruncateUCSFonts
#define TruncateUCSFonts	HasPerl5
#endif
#ifndef MaxUCSChar
#define MaxUCSChar		0x3200
#endif
#ifndef DerivedUCSFonts
#define DerivedUCSFonts		YES
#endif
/* These primarily control generation of derived 8-bit fonts. */
#ifndef BuildUCSFonts
#define BuildUCSFonts		YES
#endif
/* Setting BuildISO8859_1Fonts to NO might result in problems. */
#ifndef BuildISO8859_1Fonts
#define BuildISO8859_1Fonts	YES
#endif
#ifndef BuildISO8859_2Fonts
#define BuildISO8859_2Fonts	YES
#endif
#ifndef BuildISO8859_3Fonts
#define BuildISO8859_3Fonts	YES
#endif
#ifndef BuildISO8859_4Fonts
#define BuildISO8859_4Fonts	YES
#endif
#ifndef BuildISO8859_5Fonts
#define BuildISO8859_5Fonts	BuildCyrillicFonts
#endif
#ifndef BuildArabicFonts
#define BuildArabicFonts	YES
#endif
#ifndef BuildISO8859_6Fonts
#define BuildISO8859_6Fonts	BuildArabicFonts
#endif
#ifndef BuildGreekFonts
#define BuildGreekFonts		YES
#endif
#ifndef BuildISO8859_7Fonts
#define BuildISO8859_7Fonts	BuildGreekFonts
#endif
#ifndef BuildHebrewFonts
#define BuildHebrewFonts	YES
#endif
#ifndef BuildISO8859_8Fonts
#define BuildISO8859_8Fonts	BuildHebrewFonts
#endif
#ifndef BuildISO8859_9Fonts
#define BuildISO8859_9Fonts	YES
#endif
#ifndef BuildISO8859_10Fonts
#define BuildISO8859_10Fonts	YES
#endif
#ifndef BuildThaiFonts
#define BuildThaiFonts		YES
#endif
#ifndef BuildISO8859_11Fonts
#define BuildISO8859_11Fonts	BuildThaiFonts
#endif
#ifndef BuildISO8859_13Fonts
#define BuildISO8859_13Fonts	YES
#endif
#ifndef BuildISO8859_14Fonts
#define BuildISO8859_14Fonts	YES
#endif
#ifndef BuildISO8859_15Fonts
#define BuildISO8859_15Fonts	YES
#endif
#ifndef BuildISO8859_16Fonts
#define BuildISO8859_16Fonts	YES
#endif
#ifndef BuildKOI8_RFonts
#define BuildKOI8_RFonts	BuildCyrillicFonts
#endif
#ifndef BuildJapaneseFonts
#define BuildJapaneseFonts	YES
#endif
#ifndef BuildJISX0201Fonts
#define BuildJISX0201Fonts	BuildJapaneseFonts
#endif
#ifndef BuildKoreanFonts
#define BuildKoreanFonts	YES
#endif
#ifndef BuildChineseFonts
#define BuildChineseFonts	YES
#endif
#ifndef MakeLocalFontDir
#define MakeLocalFontDir	YES
#endif
#ifndef BuildX11Lib
#define BuildX11Lib		BuildLibraries
#endif
#ifndef BuildNLS
#define BuildNLS		BuildX11Lib
#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 BuildXextLib
#define BuildXextLib		BuildLibraries
#endif
#ifndef BuildXauLib
#define BuildXauLib		(BuildLibraries || BuildLibrariesForXServers)
#endif
#define UseInstalledXauLib	(defined(UseInstalled) || !BuildXauLib)
#ifndef BuildXawLib
#define BuildXawLib		BuildLibraries
#endif
#ifndef BuildOldXLib
#define BuildOldXLib		BuildLibraries
#endif
#ifndef BuildICELib
#define BuildICELib		BuildLibraries
#endif
#ifndef BuildSMLib
#define BuildSMLib		BuildLibraries
#endif
#ifndef BuildXmuLib
#define BuildXmuLib		BuildLibraries
#endif
#ifndef BuildXmuuLib
#define BuildXmuuLib		BuildLibraries
#endif
#ifndef BuildXpmLib
#define BuildXpmLib		BuildLibraries
#endif
#ifndef BuildXtstLib
#define BuildXtstLib		BuildLibraries
#endif
#ifndef BuildFSLib
#define BuildFSLib		BuildLibraries
#endif
#ifndef BuildXdmcpLib
#define BuildXdmcpLib		(BuildLibraries || BuildLibrariesForXServers)
#endif
#define UseInstalledXdmcpLib	(defined(UseInstalled) || !BuildXdmcpLib)
#ifndef BuildMITMiscExt
#define BuildMITMiscExt		YES
#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		YES
#endif
#ifndef BuildXInputLib
#define BuildXInputLib		((BuildXInputExt && BuildLibraries) || \
				 BuildLibrariesForDmx)
#endif

#ifndef NeedXTrans
#define NeedXTrans		(BuildServer || BuildX11Lib || BuildFontLib || \
				 BuildICELib || BuildSMLib || BuildFSLib || \
				 (BuildFontServer && BuildClients))
#endif

#ifndef NeedBerklib
#define NeedBerklib		NO
#endif

#ifndef BuildEVI
#define BuildEVI		YES
#endif
#ifndef BuildDBE
#define BuildDBE		YES
#endif
#ifndef BuildDBElib
#define BuildDBElib		(BuildDBE && BuildLibraries)
#endif
#ifndef BuildDPMS
#define BuildDPMS		YES
#endif
#ifndef BuildFontLib
#if !defined(XF86Server) || !XF86Server
#define BuildFontLib		(BuildLibraries || BuildServer)
#else
#define BuildFontLib		(BuildLibraries || \
				 (BuildServer && !DoLoadableServer) || \
				 XnestServer || XVirtualFramebufferServer || \
				 XprtServer || XdmxServer || \
				 (defined(TinyXServer) && TinyXServer))
#endif
#endif
#ifndef BuildFontCache
#define BuildFontCache		YES
#endif
#ifndef BuildFontCacheLib
#define BuildFontCacheLib	(BuildFontCache && BuildLibraries)
#endif
#ifndef BuildFontEncLib
#define BuildFontEncLib		BuildLibraries
#endif
/*
 * This enables binary compatibility with the older (XFree86 <= 4.1) fontenc
 * entry points in the Xfont library (and X server).  If this is turned off,
 * then SharedFontRev should have it's major revision bumped, and the
 * XFree86 font module ABI (in xfree86/common/xf86Module.h) should have it's
 * major revision bumped.
 *
 * Note: this does not enable those older functions in the separate libfontenc
 * library (which didn't exist previously).
 */
#ifndef FontencCompatibility
#define FontencCompatibility	YES
#endif
#ifndef BuildLowMem
#define BuildLowMem		NO
#endif

#ifndef TinyXFontDefines
#define TinyXFontDefines	/**/
#endif
#ifndef TinyXSpeedo
#define TinyXSpeedo		NO
#endif
#ifndef TinyXType1
#define TinyXType1		NO
#endif
#ifndef TinyXCID
#define TinyXCID		NO
#endif
#ifndef TinyXFreeType
#define TinyXFreeType		NO
#endif
#ifndef TinyXFontServerAccess
#define TinyXFontServerAccess	NO
#endif
#if !TinyXFontServerAccess && XserverStaticFontLib
#define TinyXFontServerDefines	-DNOFONTSERVERACCESS
#else
#define TinyXFontServerDefines	/**/
#endif

#ifndef BuildLBX
#define BuildLBX		YES
#endif
#ifndef BuildLbxUtilLibrary
#define BuildLbxUtilLibrary	(BuildLBX && (BuildServer || BuildClients))
#endif
#ifndef NeedZlib
#define NeedZlib		(BuildLBX || \
				 (GzipFontCompression && \
				  (BuildServer || BuildClients)))
#endif
#ifndef BuildZlib
#define BuildZlib		(NeedZlib && !HasZlib)
#endif
#ifndef BuildRegexLib
#define BuildRegexLib		(defined(XF86Server) && XF86Server && \
				!HasPosixRegex)
#endif
#ifndef BuildXKB
#define BuildXKB		YES
#endif
#ifndef BuildXKBlib
#define BuildXKBlib		(BuildXKB && BuildLibraries)
#endif
#ifndef BuildXKBuilib
#define BuildXKBuilib		(BuildXKB && BuildLibraries)
#endif
#ifndef BuildXKBfilelib
#define BuildXKBfilelib		(BuildXKB && BuildLibraries)
#endif
#ifndef BuildXTrap
#define BuildXTrap		YES
#endif
#ifndef BuildXTrapLibrary
#define BuildXTrapLibrary	(BuildXTrap && BuildLibraries)
#endif
#ifndef BuildXtLib
#define BuildXtLib		(BuildLibraries || BuildXTrapLibrary)
#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 BuildMultibuffer
#define BuildMultibuffer	NO
#endif
#ifndef BuildRECORD
#define BuildRECORD		YES
#endif
#ifndef BuildRECORDlib
#define BuildRECORDlib		(BuildRECORD && BuildLibraries)
#endif
#ifndef BuildXinerama
#define BuildXinerama		YES
#endif
#ifndef BuildXineramaLibrary
#define BuildXineramaLibrary	(BuildXinerama && BuildLibraries)
#endif
#ifndef BuildDmxDevelTools
#define BuildDmxDevelTools	NO
#endif
#ifndef BuildDmxLibrary
#define BuildDmxLibrary		(BuildDmx && \
				 (BuildDmxDevelTools || BuildLibraries))
#endif
#ifndef BuildXCSecurity
#define BuildXCSecurity		YES
#endif
#ifndef BuildAppgroup
#define BuildAppgroup		YES
#endif
#ifndef BuildCup
#define BuildCup		YES
#endif
#ifndef HasPlugin
#define HasPlugin		NO
#endif
#ifndef BuildPlugin
#define BuildPlugin		HasPlugin
#endif
#ifndef XprtServer
#define XprtServer		BuildServer
#endif
#ifndef BuildXprint
#if XprtServer
#define BuildXprint		YES
#else
#define BuildXprint		NO
#endif
#endif
#if BuildXprint
#ifndef XpRasterDDX
#define XpRasterDDX		YES
#endif
#ifndef XpColorPclDDX
#define XpColorPclDDX		YES
#endif
#ifndef XpMonoPclDDX
#define XpMonoPclDDX		NO
#endif
#ifndef XpPostScriptDDX
#define XpPostScriptDDX		YES
#endif
#endif
#ifndef BuildXprintLib
#define BuildXprintLib		(BuildXprint && BuildLibraries)
#endif
#ifndef BuildScreenSaverExt
#define BuildScreenSaverExt	YES
#endif
#ifndef BuildScreenSaverLibrary
#define BuildScreenSaverLibrary	(BuildScreenSaverExt && BuildLibraries)
#endif
#ifndef BuildXF86VidModeExt
#define BuildXF86VidModeExt	NO
#endif
#ifndef BuildXF86VidModeLibrary
#define BuildXF86VidModeLibrary (BuildXF86VidModeExt && BuildLibraries)
#endif
#ifndef BuildXF86MiscExt
#define BuildXF86MiscExt	NO
#endif
#ifndef BuildXF86MiscLibrary
#define BuildXF86MiscLibrary	(BuildXF86MiscExt && BuildLibraries)
#endif
#ifndef BuildXF86BigfontExt
#define BuildXF86BigfontExt	NO
#endif
#ifndef BuildXF86DGA
#define BuildXF86DGA		NO
#endif
#ifndef BuildXF86DGALibrary
#define BuildXF86DGALibrary	(BuildXF86DGA && BuildLibraries)
#endif
#ifndef BuildXResExt
#define BuildXResExt            NO
#endif
#ifndef BuildXResLibrary
#define BuildXResLibrary        (BuildXResExt && \
				 (BuildDmxDevelTools || BuildLibraries))
#endif
#ifndef BuildXvExt
#define BuildXvExt		NO
#endif
#ifndef BuildXvLibrary
#define BuildXvLibrary		(BuildXvExt && BuildLibraries)
#endif
#ifndef BuildXvMCExt
#define BuildXvMCExt		NO
#endif
#ifndef BuildXvMCLibrary
#define BuildXvMCLibrary	(BuildXvMCExt && BuildLibraries)
#endif
#ifndef BuildGlxExt
#define BuildGlxExt		NO
#else
#if     BuildGlxExt && !defined(XFree86Version)
#undef  BuildXF86DRI
#undef  BuildXF86DRIDriverSupport
#define BuildXF86DRI			NO
#define BuildXF86DRIDriverSupport	NO
#endif
#endif
#ifndef BuildGLXLibrary
#define BuildGLXLibrary		(BuildGlxExt && BuildLibraries)
#endif
#ifndef BuildGlxInDmx
#define BuildGlxInDmx		(XdmxServer && BuildGlxExt)
#endif
#ifndef BuildOSMesaLib
#define BuildOSMesaLib		BuildGlxExt
#endif
#ifndef BuildGLULibrary
#define BuildGLULibrary		(BuildGLXLibrary && BuildLibraries && \
				 HasCplusplus)
#endif
#ifndef BuildGLwLibrary
#define BuildGLwLibrary		(BuildGLXLibrary && BuildLibraries)
#endif
#ifndef BuildXF86RushExt
#define BuildXF86RushExt	NO
#endif
#ifndef BuildXF86RushLibrary
#define BuildXF86RushLibrary	(BuildXF86RushExt && BuildLibraries)
#endif
#ifndef BuildDPSLibraries
#define BuildDPSLibraries	BuildLibraries
#endif
#ifndef BuildDPSLibrary
#define BuildDPSLibrary		BuildDPSLibraries
#endif
#ifndef BuildDPSTkLibrary
#define BuildDPSTkLibrary	BuildDPSLibraries
#endif
#ifndef BuildPSResLibrary
#define BuildPSResLibrary	BuildDPSLibraries
#endif
#ifndef BuildDPSClients
#define BuildDPSClients         BuildDPSLibraries
#endif
#ifndef BuildRender
#define BuildRender		YES
#endif
#ifndef BuildRenderLibrary
#define BuildRenderLibrary	(XdmxServer || (BuildRender && BuildLibraries))
#endif
#ifndef BuildXftLibrary
#define BuildXftLibrary		BuildRenderLibrary
#endif
#ifndef BuildXft1Library
#define BuildXft1Library	BuildRenderLibrary
#endif
#ifndef UseFontconfig
#define UseFontconfig		BuildXftLibrary
#endif
#ifndef BuildFontconfigLibrary
#define BuildFontconfigLibrary	(UseFontconfig && !HasFontconfig)
#endif
#ifndef UseFreetype2
#define UseFreetype2		(BuildXftLibrary || BuildXft1Library || \
				 UseFontconfig || BuildFontconfigLibrary || \
				 BuildFreeType || TinyXFreeType)
#endif
#ifndef HasExpat
#define HasExpat		NO
#endif
#ifndef UseExpat
#define UseExpat		(UseFontconfig || \
				 (BuildXF86DRI && BuildGLXLibrary))
#endif
#ifndef BuildExpatLibrary
#define BuildExpatLibrary	(UseExpat && !HasExpat)
#endif
#ifndef BuildFreetype2Library
#define BuildFreetype2Library	(UseFreetype2 && !HasFreetype2)
#endif
#ifndef Freetype2BuildDefines
#define Freetype2BuildDefines	/**/
#endif
#ifndef UseMkfontscaleForMkfontdir
#define UseMkfontscaleForMkfontdir	NO
#endif

#ifndef BuildRandR
#define BuildRandR		YES
#endif
#ifndef BuildRandRLibrary
#define BuildRandRLibrary	(BuildRandR && BuildLibraries)
#endif

#ifndef BuildXcursorLibrary
#define BuildXcursorLibrary	BuildRenderLibrary
#endif

#ifndef BuildXcursorgen
#define BuildXcursorgen		HasLibpng
#endif

#ifndef DefaultCursorTheme
#define DefaultCursorTheme	core
#endif

#ifndef BuildAppleWMLibrary
#define BuildAppleWMLibrary	BuildLibraries
#endif

#ifndef BuildWindowsWMLibrary
#define BuildWindowsWMLibrary	NO
#endif

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

#ifndef InstallHardcopyDocs
#define InstallHardcopyDocs	NO
#endif

#ifndef InstallMiscManPages
#define InstallMiscManPages	NO
#endif

#ifndef FSUseSyslog
#define FSUseSyslog		NO
#endif

#ifndef InstallLibManPages
#define InstallLibManPages	YES
#endif
#ifndef InstallXtermSetUID
#define InstallXtermSetUID	YES	/* xterm may need to be set uid */
#endif
#ifndef InstallXtermSetGID
#define InstallXtermSetGID	NO	/* xterm may need to be set gid */
#endif
#ifndef InstallXloadSetGID
#define InstallXloadSetGID	YES	/* xload often needs set gid kmem */
#endif
#ifndef InstallXinitConfig
#define InstallXinitConfig	NO	/* install sample xinit config */
#endif
#ifndef InstallXdmConfig
#define InstallXdmConfig	NO	/* install sample xdm config */
#endif
#ifndef XdmServersType			/* what Xservers files to use */
#if BuildServer
#define XdmServersType ws
#else
#define XdmServersType fs
#endif
#endif
#ifndef InstallFSConfig
#define InstallFSConfig		NO	/* install sample fs config */
#endif
#ifndef InstallAppDefFiles
#define InstallAppDefFiles	YES	/* install application defaults */
#endif
#ifndef UseConfDirForAppDefaults
#define UseConfDirForAppDefaults YES
#endif
#ifndef UseConfDirForXkb
#define UseConfDirForXkb	YES
#endif
#ifndef CompressAllFonts
#define CompressAllFonts	NO
#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 NeedThreadStubLibrary
#define NeedThreadStubLibrary	NO
#endif
#ifndef NeedUIThrStubs
#define NeedUIThrStubs		NO
#endif
#ifndef HasWChar32
#define HasWChar32		SystemV4
#endif
#ifndef HasXdmAuth
#define HasXdmAuth		YES
#endif
#ifndef PrimaryScreenResolution
#define PrimaryScreenResolution 72		/* a common resolution */
#endif
#ifndef DefaultFontPath
	/*
	 * Turn off building Speedo, Type1 and CID fonts if you are building
	 * for low memory footprint
	 */
#if BuildLowMem
#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/
#else
#if PrimaryScreenResolution < 88		/* (75 + 100) / 2 */
#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/TTF/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/CID/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/
#else
#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/TTF/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/CID/,$(FONTDIR)/100dpi/,$(FONTDIR)/75dpi/
#endif
#endif
#endif
#ifndef DefaultFSFontPath
	/*
	 * Define a default fontpath for Font Server independent of that
	 * for X server if building the X server for low memory footprint
	 */
#if BuildLowMem
#if PrimaryScreenResolution < 88                /* (75 + 100) / 2 */
#define DefaultFSFontPath $(FONTDIR)/misc/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/CID/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/
#else
#define DefaultFSFontPath $(FONTDIR)/misc/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/CID/,$(FONTDIR)/100dpi/,$(FONTDIR)/75dpi/
#endif
#else
#define DefaultFSFontPath DefaultFontPath
#endif
#endif
#ifndef DefaultRGBDatabase
#define DefaultRGBDatabase $(LIBDIR)/rgb
#endif
#ifndef BuiltinRGB
#define BuiltinRGB		YES
#endif
#ifndef UseMemLeak
#define UseMemLeak		NO
#endif
#ifndef UseStackTrace
#define UseStackTrace		NO
#endif
#ifndef SpecialMalloc
#define SpecialMalloc		NO
#endif
#ifndef UseInternalMalloc
#define UseInternalMalloc	NO
#endif
#ifndef XallocDefines
#define XallocDefines		/**/
#endif
#ifndef ServerErrorDefines
#define ServerErrorDefines	/**/
#endif
#ifndef FontCompilerFlags
#define FontCompilerFlags -t
#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
 *        be 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
#ifndef FontOSDefines
#define FontOSDefines /**/
#endif
#ifndef FontDefines
#define FontDefines -DFONT_SNF -DFONT_BDF -DFONT_PCF -DCOMPRESSED_FONTS FontOSDefines
#endif
#ifndef XawI18nDefines
#if SystemV4
#define XawI18nDefines -DHAS_WCTYPE_H
#else
#define XawI18nDefines -DUSE_XWCHAR_STRING
#endif
#endif
#if Malloc0ReturnsNull
#ifndef XMalloc0ReturnsNullDefines
#define XMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines
#endif
#ifndef XtMalloc0ReturnsNullDefines
#define XtMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines -DXTMALLOC_BC
#endif
#endif

#ifndef ExtensionOSDefines
#define ExtensionOSDefines /**/
#endif

/* Do not allow overrides of extension #define's */

#undef   MITMiscDefines
#if BuildMITMiscExt
# define MITMiscDefines			-DMITMISC
#else
# define MITMiscDefines			/**/
#endif
#undef   MITMiscUndefines
#define  MITMiscUndefines		-UMITMISC

#undef   XTestDefines
#undef   XTestUndefines
#undef   XTest1Undefines
#define  XTest1Undefines		-UXTESTEXT1
#define  XTestUndefines			-UXTEST XTest1Undefines
#if BuildTestExt
# define XTestDefines			-DXTEST
#else
# define XTestDefines			XTestUndefines		/* Insurance */
#endif

#undef   XTrapDefines
#if BuildXTrap
# define XTrapDefines			-DXTRAP
#else
# define XTrapDefines			/**/
#endif
#undef   XTrapUndefines
#define  XTrapUndefines			-UXTRAP

#undef   XSyncDefines
#if BuildSyncExt
# define XSyncDefines			-DXSYNC
#else
# define XSyncDefines			/**/
#endif
#undef   XSyncUndefines
#define  XSyncUndefines			-UXSYNC

#undef   XCMiscDefines
#if BuildXCMiscExt
# define XCMiscDefines			-DXCMISC
#else
# define XCMiscDefines			/**/
#endif
#undef   XCMiscUndefines
#define  XCMiscUndefines		-UXCMISC

#undef   ShapeDefines
#if BuildShapeExt
# define ShapeDefines			-DSHAPE
#else
# define ShapeDefines			/**/
#endif
#undef   ShapeUndefines
#define  ShapeUndefines			-USHAPE

#undef    GlxDefines
#if BuildGlxExt
# ifdef GlxExtraDefines
#  define GlxDefines			-DGLXEXT GlxExtraDefines
# else
#  define GlxDefines			-DGLXEXT
# endif
#else
# define  GlxDefines			/**/
#endif
#undef    GlxUndefines
#define   GlxUndefines			-UGLXEXT
#undef    DRIUndefines
#define   DRIUndefines			-UXF86DRI

#ifndef  DRMIncludesDir
# define DRMIncludesDir			$(XF86OSSRC)/shared/drm/kernel
#endif

#ifndef  MesaSrcDir
# define MesaSrcDir			$(TOP)/extras/Mesa
#endif

#ifndef  OglSampleSrcDir
# define OglSampleSrcDir		$(TOP)/extras/ogl-sample
#endif

#undef   ShmDefines
#if HasShm
# define ShmDefines			-DMITSHM
#else
# define ShmDefines			/**/
#endif
#undef   ShmUndefines
#define  ShmUndefines			-UMITSHM

#undef   XInputDefines
#if BuildXInputExt
# define XInputDefines			-DXINPUT
#else
# define XInputDefines			/**/
#endif
#undef   XInoutUndefines
#define  XInputUndefines		-UXINPUT

#undef   XineramaDefines
#if BuildXinerama
# define XineramaDefines		-DPANORAMIX
#else
# define XineramaDefines		/**/
#endif
#undef   XineramaUndefines
#define  XineramaUndefines		-UPANORAMIX

#ifndef  PrintOnlyServer
# define PrintOnlyServer		YES
#endif

#undef    XprintDefines
#if BuildXprint
# if PrintOnlyServer
#  define XprintDefines			-DPIXPRIV
# else
#  define XprintDefines			-DXPRINT -DPIXPRIV
# endif
#else
# define  XprintDefines			/**/
#endif
#undef    XprintUndefines
#define   XprintUndefines		-UXPRINT

#undef   XkbDefines
#if BuildXKB
# define XkbDefines			-DXKB
#else
# define XkbDefines			/**/
#endif
#undef   XkbUndefines
#define  XkbUndefines			-UXKB

#ifndef   XkbClientDefines
# if UseXKBInClients
#  define XkbClientDefines		-DXKB
# else
#  define XkbClientDefines		/**/
# endif
#endif

#ifndef  XkbServerDefines
# define XkbServerDefines		/**/
#endif

#undef   LbxDefines
#if BuildLBX
# define LbxDefines			-DLBX
#else
# define LbxDefines			/**/
#endif
#undef   LbxUndefines
#define  LbxUndefines			-ULBX

#undef   BigReqDefines
#if BuildBigReqsExt
# define BigReqDefines			-DBIGREQS
#else
# define BigReqDefines			/**/
#endif
#undef   BigReqUndefines
#define  BigReqUndefines		-UBIGREQS

#undef   EVIDefines
#if BuildEVI
# define EVIDefines			-DEVI
#else
# define EVIDefines			/**/
#endif
#undef   EVIUndefines
#define  EVIUndefines			-UEVI

#if !BuildDBE || !defined(NeedDBERevalidateBuffer)
# undef  NeedDBERevalidateBuffer
# define NeedDBERevalidateBuffer	NO
#endif

#if !BuildDBE || NeedDBERevalidateBuffer || !defined(NeedDBEValidateBuffer)
# undef  NeedDBEValidateBuffer
# define NeedDBEValidateBuffer		NeedDBERevalidateBuffer
#endif

#if !BuildDBE || NeedDBEValidateBuffer || !defined(NeedDBEBufferBits)
# undef  NeedDBEBufferBits
# define NeedDBEBufferBits		NeedDBEValidateBuffer
#endif

#undef   DBEDefines
#if BuildDBE && !NeedDBEBufferBits
# define DBEDefines			-DDBE
#else
# define DBEDefines			/**/
#endif

#undef    PervasiveDBEDefines
#if NeedDBERevalidateBuffer
# define  PervasiveDBEDefines		-DDBE -DNEED_DBE_BUF_BITS \
					-DNEED_DBE_BUF_VALIDATE \
					-DNEED_DBE_BUF_REVALIDATE
#else
# if NeedDBEValidateBuffer
#  define PervasiveDBEDefines		-DDBE -DNEED_DBE_BUF_BITS \
					-DNEED_DBE_BUF_VALIDATE
# else
#  if NeedDBEBufferBits
#   define PervasiveDBEDefines		-DDBE -DNEED_DBE_BUF_BITS
#  else
#   define PervasiveDBEDefines		/**/
#  endif
# endif
#endif
#undef     DBEUndefines
#define    DBEUndefines			-UDBE -UNEED_DBE_BUF_BITS \
					-UNEED_DBE_BUF_VALIDATE \
					-UNEED_DBE_BUF_REVALIDATE

#undef   MultibufferDefines
#if BuildMultibuffer
# define MultibufferDefines		-DMULTIBUFFER
#else
# define MultibufferDefines		/**/
#endif
#undef   MultibufferUndefines
#define  MultibufferUndefines		-UMULTIBUFFER

#undef   ScreenSaverExtensionDefines
#if BuildScreenSaverExt
# define ScreenSaverExtensionDefines	-DSCREENSAVER
#else
# define ScreenSaverExtensionDefines	/**/
#endif
#undef   ScreenSaverExtensionUndefines
#define  ScreenSaverExtensionUndefines	-USCREENSAVER

#undef   VidModeExtensionDefines
#if BuildXF86VidModeExt
# define VidModeExtensionDefines	-DXF86VIDMODE
#else
# define VidModeExtensionDefines	/**/
#endif
#undef   VidModeExtensionUndefines
#define  VidModeExtensionUndefines	-UXF86VIDMODE

#undef   XF86MiscExtensionDefines
#if BuildXF86MiscExt
# define XF86MiscExtensionDefines	-DXF86MISC
#else
# define XF86MiscExtensionDefines	/**/
#endif
#undef   XF86MiscExtensionUndefines
#define  XF86MiscExtensionUndefines	-UXF86MISC

#undef   XF86BigfontExtensionDefines
#if BuildXF86BigfontExt
# define XF86BigfontExtensionDefines	-DXF86BIGFONT
#else
# define XF86BigfontExtensionDefines	/**/
#endif
#undef   XF86BigfontExtensionUndefines
#define  XF86BigfontExtensionUndefines	-UXF86BIGFONT

#undef   XFree86DGADefines
#if BuildXF86DGA
# define XFree86DGADefines		-DXFreeXDGA
#else
# define XFree86DGADefines		/**/
#endif
#undef   XFree86DGAUndefines
#define  XFree86DGAUndefines		-UXFreeXDGA

#undef   XvExtensionDefines
#if BuildXvExt
# define XvExtensionDefines		-DXV
#else
# define XvExtensionDefines		/**/
#endif
#undef   XvExtensionUndefines
#define  XvExtensionUndefines		-UXV

#undef   XvMCExtensionDefines
#if BuildXvMCExt
# define XvMCExtensionDefines		-DXVMC
#else
# define XvMCExtensionDefines		/**/
#endif
#undef   XvMCExtensionUndefines
#define  XvMCExtensionUndefines		-UXVMC

#undef   XResExtensionDefines
#if BuildXResExt
# define XResExtensionDefines		-DRES
#else
# define XResExtensionDefines		/**/
#endif
#undef   XResExtensionUndefines
#define  XResExtensionUndefines		-URES

#undef   RECORDDefines
#if BuildRECORD
# define RECORDDefines			-DXRECORD
#else
# define RECORDDefines			/**/
#endif
#undef   RECORDUndefines
#define  RECORDUndefines		-UXRECORD

#undef   AppgroupDefines
#if BuildAppgroup
# define AppgroupDefines		-DXAPPGROUP
#else
# define AppgroupDefines		/**/
#endif
#undef   AppgroupUndefines
#define  AppgroupUndefines		-UXAPPGROUP

#undef   XCSecurityDefines
#if BuildXCSecurity
# define XCSecurityDefines		-DXCSECURITY
#else
# define XCSecurityDefines		/**/
#endif
#undef   XCSecurityUndefines
#define  XCSecurityUndefines		-UXCSECURITY

#undef   CupDefines
#if BuildCup
# define CupDefines			-DTOGCUP
#else
# define CupDefines			/**/
#endif
#undef   CupUndefines
#define  CupUndefines			-UTOGCUP

#ifndef   LowMemDefines
# if BuildLowMem
#  define LowMemDefines			-DLOWMEMFTPT
# else
#  define LowMemDefines			/**/
# endif
#endif

#undef   DPMSDefines
#if BuildDPMS
# define DPMSDefines			-DDPMSExtension
#else
# define DPMSDefines			/**/
#endif
#undef   DPMSUndefines
#define  DPMSUndefines			-UDPMSExtension

#undef   RenderDefines
#if BuildRender
# define RenderDefines			-DRENDER
#else
# define RenderDefines			/**/
#endif
#undef   RenderUndefines
#define  RenderUndefines		-URENDER

#undef   RandRDefines
#if BuildRandR
# define RandRDefines			-DRANDR
#else
# define RandRDefines			/**/
#endif
#undef   RandRUndefines
#define  RandRUndefines			-URANDR

#undef   FontCacheExtentionDefines
#if BuildFontCache
# define FontCacheExtensionDefines	-DFONTCACHE
#else
# define FontCacheExtensionDefines	/**/
#endif
#undef   FontCacheExtensionUndefines
#define  FontCacheExtensionUndefines	-UFONTCACHE

/*
 * (miinitext.c does not exist for the purposes of this comment block.)
 *
 * Pervasive extensions are those whose server-side functionality is, partially
 * or entirely, implemented in #ifdef's of Xserver/dix, Xserver/os and/or some
 * other extension's code.  (The last of these cases is debatable.)  Should
 * different servers in the same build require different subsets of these
 * extensions, each server will likely need to be linked against its own build
 * of the following subdirectories of xc/programs/Xserver:  dix, os, mi, Xext,
 * lbx, xkb, fb, XTrap, dbe, cfb*, record, render and randr.  Which ones are
 * needed will depend on which pervasive extensions are to be included in the
 * particular server to be linked and which pervasive extensions differ amongst
 * all servers in the same build.
 *
 * (XXX I'd put in an extension vs. Xserver subdir table here, where it not for
 *  the fact that it would be highly subject to change.  The ideal solution
 *  here is to make all extensions non-pervasive, but this'll take a while...)
 *
 * DBE presents a special case.  It is pervasive if, and only if, Xserver/ is
 * also compiled with -DNEED_DBE_BUF_BITS.
 *
 * Note that an extension's pervasiveness is independent of its loadability.
 *
 * #define's for pervasive extensions are inserted into an X server's base
 * CFLAGS to ensure all pieces of these extensions are linked in.
 */

#ifndef SitePervasiveExtensionDefines
#define SitePervasiveExtensionDefines /**/
#endif

#ifndef PervasiveExtensionDefines
#define PervasiveExtensionDefines \
	ShapeDefines XInputDefines XkbDefines LbxDefines AppgroupDefines \
	XCSecurityDefines XSyncDefines XF86BigfontExtensionDefines \
	DPMSDefines BigReqDefines XineramaDefines RenderDefines RandRDefines \
	XResExtensionDefines PervasiveDBEDefines XprintDefines \
	SitePervasiveExtensionDefines LowMemDefines
#endif

#ifndef SiteExtensionDefines
#define SiteExtensionDefines /**/
#endif

#ifndef BaseExtensionDefines
#define BaseExtensionDefines \
	MultibufferDefines ShmDefines MITMiscDefines XTestDefines \
	XTrapDefines XCMiscDefines RECORDDefines CupDefines \
	VidModeExtensionDefines XF86MiscExtensionDefines XFree86DGADefines \
	DBEDefines EVIDefines ScreenSaverExtensionDefines XvExtensionDefines \
	XvMCExtensionDefines GlxDefines FontCacheExtensionDefines \
	SiteExtensionDefines
#endif

#ifndef ExtensionDefines
#define ExtensionDefines ExtensionOSDefines BaseExtensionDefines
#endif /* ExtensionDefines */

/*
 * The above specifies the set of extensions that are to be included in _any_
 * server to be built.  It also specifies that to be included in the "primary"
 * server, i.e. XFree86, XWin or XDarwin, whatever the case might be.
 *
 * Server-specific extension exclusions follow.  Changes to, or overrides of,
 * these are likely to cause build failures that can be fixed by linking
 * against more server-specific builds of the Xserver/ subdirectories
 * mentionned above.
 */

#ifndef TinyXExcludedExtensions
#define TinyXExcludedExtensions \
	XkbUndefines XInputUndefines LbxUndefines AppgroupUndefines \
	XCSecurityUndefines DPMSUndefines XineramaUndefines GlxUndefines \
	DRIUndefines VidModeExtensionUndefines XF86MiscExtensionUndefines \
	XFree86DGAUndefines EVIUndefines RECORDUndefines XTest1Undefines \
	ScreenSaverExtensionUndefines XResExtensionUndefines \
	XvExtensionUndefines XvMCExtensionUndefines XTrapUndefines \
	FontCacheExtensionUndefines DBEUndefines XprintUndefines \
	XF86BigfontExtensionUndefines XSyncUndefines CupUndefines \
	-UXFree86LOADER
#endif

#ifndef XdmxExcludedExtensions
/* MITSHM -- works but doesn't quite do what people think it should */
/* DPMSExtension -- compiled in but is non-functional */
/* MITMISC -- provides legacy support for X11R1,2 applications.  Disable. */
#if BuildGlxInDmx
#define XdmxExcludedExtensions \
	DBEUndefines ShmUndefines RandRUndefines XprintUndefines \
	MultibufferUndefines XvExtensionUndefines XvMCExtensionUndefines \
	XTest1Undefines VidModeExtensionUndefines XF86MiscExtensionUndefines \
	XFree86DGAUndefines -DGLXPROXY DRIUndefines CupUndefines \
	MITMiscUndefines ScreenSaverExtensionUndefines \
	FontCacheExtensionUndefines -UXFree86LOADER
#else
#define XdmxExcludedExtensions \
	DBEUndefines ShmUndefines RandRUndefines XprintUndefines \
	MultibufferUndefines XvExtensionUndefines XvMCExtensionUndefines \
	XTest1Undefines VidModeExtensionUndefines XF86MiscExtensionUndefines \
	XFree86DGAUndefines GlxUndefines DRIUndefines CupUndefines \
	MITMiscUndefines ScreenSaverExtensionUndefines \
	FontCacheExtensionUndefines -UXFree86LOADER
#endif
#endif

#ifndef XvfbExcludedExtensions
#define XvfbExcludedExtensions \
	XInputUndefines XkbUndefines DPMSUndefines XineramaUndefines \
	XprintUndefines XTest1Undefines VidModeExtensionUndefines \
	XF86MiscExtensionUndefines XFree86DGAUndefines DRIUndefines \
	ScreenSaverExtensionUndefines XvExtensionUndefines \
	XvMCExtensionUndefines -UXFree86LOADER
#endif

#ifndef XnestExcludedExtensions
#define XnestExcludedExtensions \
	XInputUndefines DPMSUndefines XineramaUndefines XprintUndefines \
	XTest1Undefines VidModeExtensionUndefines XF86MiscExtensionUndefines \
	XFree86DGAUndefines DRIUndefines ScreenSaverExtensionUndefines \
	XvExtensionUndefines XvMCExtensionUndefines ShmUndefines \
	-UXFree86LOADER
#endif

#ifndef XprtExcludedExtensions
#define XprtExcludedExtensions \
	XInputUndefines XkbUndefines DPMSUndefines XineramaUndefines \
	GlxUndefines DRIUndefines VidModeExtensionUndefines \
	XF86MiscExtensionUndefines XFree86DGAUndefines XTest1Undefines \
	ScreenSaverExtensionUndefines XvExtensionUndefines \
	XvMCExtensionUndefines -UXFree86LOADER -D_XP_PRINT_SERVER_
#endif

#ifndef XsunExcludedExtensions
#define XsunExcludedExtensions \
	XInputUndefines DPMSUndefines DRIUndefines VidModeExtensionUndefines \
	XF86MiscExtensionUndefines XFree86DGAUndefines XTest1Undefines \
	ScreenSaverExtensionUndefines XvExtensionUndefines \
	XvMCExtensionUndefines -UXFree86LOADER
#endif

#ifndef XsunLynxExcludedExtensions
#define XsunLynxExcludedExtensions XsunExcludedExtensions
#endif

#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
#if HasKrbIV
#ifndef KrbIVDefines
#define KrbIVDefines -DKERBEROS
#endif
#else
#define KrbIVDefines /**/
#endif
#if HasKrb5
#ifndef Krb5Defines
#define Krb5Defines -DK5AUTH
#endif
#else
#define Krb5Defines /**/
#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 ServerStrlcatDefines
#if !HasStrlcat
#define ServerStrlcatDefines -DNEED_STRLCAT
#else
#define ServerStrlcatDefines /**/
#endif
#endif
#ifndef ServerDefines
#define ServerDefines StandardDefines PervasiveExtensionDefines \
		      ServerAssertDefines ServerSnprintfDefines \
		      ServerStrlcatDefines ServerExtraDefines
#endif

#ifndef TinyDIXDefines
#define TinyDIXDefines	TinyXExcludedExtensions TinyXFontServerDefines
#endif

#ifndef MesaUseX86Asm
/* The current Mesa X86 ASM code doesn't work well with SVR4 shared libs. */
# if defined(i386Architecture) && 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,/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 BuildModuleTop
#define BuildModuleTop $(BUILDLIBTOP)/..
#endif
#ifndef UseBuildTree
#define UseBuildTree	NO
#endif
#ifndef LibDir
# ifdef ProjectRoot
#  define LibDir Concat(ProjectRoot,/lib/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 LibdataDir
#ifdef ProjectRoot
#define LibdataDir Concat(ProjectRoot,/libdata)
#else
#define LibdataDir /usr/X11/libdata
#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 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 LbxproxyDir
#define LbxproxyDir $(LIBDIR)/lbxproxy
#endif
#ifndef LbxproxyConfigSubdir		/* under lbxproxy sources */
#define LbxproxyConfigSubdir config
#endif
#ifndef ProxyManagerDir
#define ProxyManagerDir $(LIBDIR)/proxymngr
#endif
#ifndef ServerConfigDir
#define ServerConfigDir $(LIBDIR)/xserver
#endif
#ifndef XPrintDir
#define XPrintDir ServerConfigDir
#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 && !HasGcc3 && !HasGcc4)
#endif

#ifndef XkbComp
#define XkbComp xkbcomp
#endif

#ifndef PsWrap
#define PsWrap $(PSWRAPSRC)/pswrap
#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 */
   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
       LIBDATADIR = LibdataDir
        MODULEDIR = ModuleDir
   TOP_X_INCLUDES = TopXInclude

       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 = $(FONTDIR)/encodings /* 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 */
      LBXPROXYDIR = LbxproxyDir		/* lbxproxy files */
  PROXYMANAGERDIR = ProxyManagerDir	/* proxy manager config files */
        XPRINTDIR = XPrintDir		/* print config file root */
      XAPPLOADDIR = XAppLoadDir		/* application default resource dir */
       FONTCFLAGS = FontCompilerFlags

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

#if UseInstalledX11
              RGB = $(BINDIR)/rgb
            FONTC = $(BINDIR)/bdftopcf
      MKFONTSCALE = $(BINDIR)/mkfontscale
        MKFONTDIR = $(BINDIR)/mkfontdir
      MKHTMLINDEX = $(BINDIR)/mkhtmlindex
          UCS2ANY = $(BINDIR)/ProgramTargetName(ucs2any)
      BDFTRUNCATE = $(BINDIR)/bdftruncate
     UCSMAPPREFIX = $(FONTDIR)/util/map-
       XCURSORGEN = $(BINDIR)/xcursorgen
#else
              RGB = $(CLIENTENVSETUP) $(XBUILDBINDIR)/rgb
# if !CrossCompiling
            FONTC = $(CLIENTENVSETUP) $(PRELOADFONTSETUP) $(XBUILDBINDIR)/bdftopcf
      MKFONTSCALE = $(CLIENTENVSETUP) $(PRELOADFREETYPESETUP) $(XBUILDBINDIR)/mkfontscale
#if UseMkfontscaleForMkfontdir
        MKFONTDIR = $(MKFONTSCALE) -b -s -l
#else
        MKFONTDIR = $(CLIENTENVSETUP) $(PRELOADFONTSETUP) $(XBUILDBINDIR)/mkfontdir
#endif
       XCURSORGEN = $(CLIENTENVSETUP) $(PRELOADSETUP) $(XBUILDBINDIR)/xcursorgen
# elif UseInstalledOnCrossCompile
        MKFONTDIR = $(BINDIR)/mkfontdir
      MKFONTSCALE = $(BINDIR)/mkfontscale
            FONTC = $(BINDIR)/bdftopcf
       XCURSORGEN = $(BINDIR)/xcursorgen
# endif
# if HasPerl
      MKHTMLINDEX = RunPerlScript($(CONFIGSRC)/util/mkhtmlindex.pl,)
# else
      MKHTMLINDEX = $(SHELL) $(CONFIGSRC)/util/mkhtmlindex.sh
# endif
          UCS2ANY = $(XBUILDBINDIR)/ProgramTargetName(ucs2any)
      BDFTRUNCATE = $(FONTSRC)/util/bdftruncate.pl
     UCSMAPPREFIX = $(FONTSRC)/util/map-
#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
          FONTSRC = $(XTOP)/fonts
     ENCODINGSSRC = $(FONTSRC)/encodings
       INCLUDESRC = BuildIncDir
      XINCLUDESRC = $(INCLUDESRC)/X11
        SERVERSRC = $(XTOP)/programs/Xserver
       CONTRIBSRC = ContribDir
   UNSUPPORTEDSRC = UnsupportedDir
           DOCSRC = $(XTOP)/doc
           RGBSRC = $(XTOP)/programs/rgb
      BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
     MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
    FONTSERVERSRC = $(PROGRAMSRC)/xfs
       FONTINCSRC = $(XTOP)/include/fonts
        EXTINCSRC = $(XTOP)/include/extensions
       MESASRCDIR = MesaSrcDir
   DRMINCLUDESDIR = DRMIncludesDir
  OGLSAMPLESRCDIR = OglSampleSrcDir
        PSWRAPSRC = $(XTOP)/config/pswrap
     TRANSCOMMSRC = $(LIBSRC)/xtrans
   TRANS_INCLUDES = -I$(TRANSCOMMSRC)
 CONNECTION_FLAGS = ConnectionFlags ExtraConnectionDefs
#ifdef X11ProjectRoot
     XPROJECTROOT = X11ProjectRoot
#endif

    VENDORMANDEFS = VendorManDefs

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

#ifdef PreloadSetup
     PRELOADSETUP = PreloadSetup
#endif
#ifdef PreloadFontSetup
 PRELOADFONTSETUP = PreloadFontSetup
#endif
#ifdef PreloadFreetypeSetup
PRELOADFREETYPESETUP = PreloadFreetypeSetup
#endif
#ifdef PreloadXFTSetup
  PRELOADXFTSETUP = PreloadXFTSetup
#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

#if BuildX11Lib || BuildServer
#ifndef SharedLibX11
#define SharedLibX11		HasSharedLibraries
#endif
#ifndef ExtraLibX11
#define ExtraLibX11		SharedLibX11
#endif
#ifndef NormalLibX11
#define NormalLibX11		(!SharedLibX11 || ForceNormalLib)
#endif
#ifndef DebugLibX11
#define DebugLibX11		BuildDebugLibraries
#endif
#ifndef ProfileLibX11
#define ProfileLibX11		BuildProfileLibraries
#endif
#else
#undef  SharedLibX11
#define SharedLibX11		NO
#undef  ExtraLibX11
#define ExtraLibX11		NO
#undef  NormalLibX11
#define NormalLibX11		NO
#undef  DebugLibX11
#define DebugLibX11		NO
#undef  ProfileLibX11
#define ProfileLibX11		NO
#endif

          XLIBSRC = $(LIBSRC)/X11
#if SharedLibX11
#ifndef SharedX11Rev
#define SharedX11Rev 6.2
#endif
SharedLibReferences(XONLY,X11,$(XLIBSRC),SOXLIBREV,SharedX11Rev)
#else
ProjectUnsharedLibReferences(XONLY,X11,$(XLIBSRC),XBuildLibDir)
#endif
      /* Common alternate spellings */
      DEPXLIBONLY = $(DEPXONLYLIB)
         XLIBONLY = $(XONLYLIB)

#if BuildXextLib
#ifndef SharedLibXext
#define SharedLibXext		HasSharedLibraries
#endif
#ifndef ExtraLibXext
#define ExtraLibXext		SharedLibXext
#endif
#ifndef NormalLibXext
#define NormalLibXext		(!SharedLibXext || ForceNormalLib)
#endif
#ifndef DebugLibXext
#define DebugLibXext		BuildDebugLibraries
#endif
#ifndef ProfileLibXext
#define ProfileLibXext		BuildProfileLibraries
#endif
#else
#undef  SharedLibXext
#define SharedLibXext		NO
#undef  ExtraLibXext
#define ExtraLibXext		NO
#undef  NormalLibXext
#define NormalLibXext		NO
#undef  DebugLibXext
#define DebugLibXext		NO
#undef  ProfileLibXext
#define ProfileLibXext		NO
#endif

       XEXTLIBSRC = $(LIBSRC)/Xext
#if SharedLibXext
#ifndef SharedXextRev
#define SharedXextRev 6.5
#endif
SharedLibReferences(EXTENSION,Xext,$(XEXTLIBSRC),SOXEXTREV,SharedXextRev)
#else
ProjectUnsharedLibReferences(EXTENSION,Xext,$(XEXTLIBSRC),XBuildLibDir)
#endif
 LINTEXTENSIONLIB = $(LINTEXTENSION)
          DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
             XLIB = $(EXTENSIONLIB) $(XONLYLIB)
         LINTXLIB = $(LINTXONLYLIB)

#if BuildScreenSaverLibrary
#ifndef SharedLibXss
#define SharedLibXss		HasSharedLibraries
#endif
#ifndef ExtraLibXss
#define ExtraLibXss		SharedLibXss
#endif
#ifndef NormalLibXss
#define NormalLibXss		(!SharedLibXss || ForceNormalLib)
#endif
#ifndef DebugLibXss
#define DebugLibXss		BuildDebugLibraries
#endif
#ifndef ProfileLibXss
#define ProfileLibXss		BuildProfileLibraries
#endif
#else
#undef  SharedLibXss
#define SharedLibXss		NO
#undef  ExtraLibXss
#define ExtraLibXss		NO
#undef  NormalLibXss
#define NormalLibXss		NO
#undef  DebugLibXss
#define DebugLibXss		NO
#undef  ProfileLibXss
#define ProfileLibXss		NO
#endif

#if BuildScreenSaverExt
        XSSLIBSRC = $(LIBSRC)/Xss
#if SharedLibXss
#ifndef SharedXssRev
#define SharedXssRev 1.0
#endif
SharedLibReferences(XSS,Xss,$(XSSLIBSRC),SOXSSREV,SharedXssRev)
#else
ProjectUnsharedLibReferences(XSS,Xss,$(XSSLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXF86MiscLibrary
#ifndef SharedLibXxf86misc
#define SharedLibXxf86misc	HasSharedLibraries
#endif
#ifndef ExtraLibXxf86misc
#define ExtraLibXxf86misc	SharedLibXxf86misc
#endif
#ifndef NormalLibXxf86misc
#define NormalLibXxf86misc	(!SharedLibXxf86misc || ForceNormalLib)
#endif
#ifndef DebugLibXxf86misc
#define DebugLibXxf86misc	BuildDebugLibraries
#endif
#ifndef ProfileLibXxf86misc
#define ProfileLibXxf86misc	BuildProfileLibraries
#endif
#else
#undef  SharedLibXxf86misc
#define SharedLibXxf86misc	NO
#undef  ExtraLibXxf86misc
#define ExtraLibXxf86misc	NO
#undef  NormalLibXxf86misc
#define NormalLibXxf86misc	NO
#undef  DebugLibXxf86misc
#define DebugLibXxf86misc	NO
#undef  ProfileLibXxf86misc
#define ProfileLibXxf86misc	NO
#endif

#if BuildXF86MiscExt
  XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
#if SharedLibXxf86misc
#ifndef SharedXxf86miscRev
#define SharedXxf86miscRev 1.1
#endif
SharedLibReferences(XXF86MISC,Xxf86misc,$(XXF86MISCLIBSRC),SOXXF86MISCREV,SharedXxf86miscRev)
#else
ProjectUnsharedLibReferences(XXF86MISC,Xxf86misc,$(XXF86MISCLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXF86VidModeLibrary
#ifndef SharedLibXxf86vm
#define SharedLibXxf86vm	HasSharedLibraries
#endif
#ifndef ExtraLibXxf86vm
#define ExtraLibXxf86vm		SharedLibXxf86vm
#endif
#ifndef NormalLibXxf86vm
#define NormalLibXxf86vm	(!SharedLibXxf86vm || ForceNormalLib)
#endif
#ifndef DebugLibXxf86vm
#define DebugLibXxf86vm		BuildDebugLibraries
#endif
#ifndef ProfileLibXxf86vm
#define ProfileLibXxf86vm	BuildProfileLibraries
#endif
#else
#undef  SharedLibXxf86vm
#define SharedLibXxf86vm	NO
#undef  ExtraLibXxf86vm
#define ExtraLibXxf86vm		NO
#undef  NormalLibXxf86vm
#define NormalLibXxf86vm	NO
#undef  DebugLibXxf86vm
#define DebugLibXxf86vm		NO
#undef  ProfileLibXxf86vm
#define ProfileLibXxf86vm	NO
#endif

#if BuildXF86VidModeExt
    XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
#if SharedLibXxf86vm
#ifndef SharedXxf86vmRev
#define SharedXxf86vmRev 1.0
#endif
SharedLibReferences(XXF86VM,Xxf86vm,$(XXF86VMLIBSRC),SOXXF86VMREV,SharedXxf86vmRev)
#else
ProjectUnsharedLibReferences(XXF86VM,Xxf86vm,$(XXF86VMLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXF86DGALibrary
#ifndef SharedLibXxf86dga
#define SharedLibXxf86dga	HasSharedLibraries
#endif
#ifndef ExtraLibXxf86dga
#define ExtraLibXxf86dga	SharedLibXxf86dga
#endif
#ifndef NormalLibXxf86dga
#define NormalLibXxf86dga	(!SharedLibXxf86dga || ForceNormalLib)
#endif
#ifndef DebugLibXxf86dga
#define DebugLibXxf86dga	BuildDebugLibraries
#endif
#ifndef ProfileLibXxf86dga
#define ProfileLibXxf86dga	BuildProfileLibraries
#endif
#else
#undef  SharedLibXxf86dga
#define SharedLibXxf86dga	NO
#undef  ExtraLibXxf86dga
#define ExtraLibXxf86dga	NO
#undef  NormalLibXxf86dga
#define NormalLibXxf86dga	NO
#undef  DebugLibXxf86dga
#define DebugLibXxf86dga	NO
#undef  ProfileLibXxf86dga
#define ProfileLibXxf86dga	NO
#endif

#if BuildXF86DGA
   XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
#if SharedLibXxf86dga
#ifndef SharedXxf86dgaRev
#define SharedXxf86dgaRev 1.1
#endif
SharedLibReferences(XXF86DGA,Xxf86dga,$(XXF86DGALIBSRC),SOXXF86DGAREV,SharedXxf86dgaRev)
#else
ProjectUnsharedLibReferences(XXF86DGA,Xxf86dga,$(XXF86DGALIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXF86RushLibrary
#ifndef SharedLibXxf86rush
#define SharedLibXxf86rush	HasSharedLibraries
#endif
#ifndef ExtraLibXxf86rush
#define ExtraLibXxf86rush	SharedLibXxf86rush
#endif
#ifndef NormalLibXxf86rush
#define NormalLibXxf86rush	(!SharedLibXxf86rush || ForceNormalLib)
#endif
#ifndef DebugLibXxf86rush
#define DebugLibXxf86rush	BuildDebugLibraries
#endif
#ifndef ProfileLibXxf86rush
#define ProfileLibXxf86rush	BuildProfileLibraries
#endif
#else
#undef  SharedLibXxf86rush
#define SharedLibXxf86rush	NO
#undef  ExtraLibXxf86rush
#define ExtraLibXxf86rush	NO
#undef  NormalLibXxf86rush
#define NormalLibXxf86rush	NO
#undef  DebugLibXxf86rush
#define DebugLibXxf86rush	NO
#undef  ProfileLibXxf86rush
#define ProfileLibXxf86rush	NO
#endif

#if BuildXF86RushExt
  XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
#if SharedLibXxf86rush
#ifndef SharedXxf86rushRev
#define SharedXxf86rushRev 1.0
#endif
SharedLibReferences(XXF86RUSH,Xxf86rush,$(XXF86RUSHLIBSRC),SOXXF86RUSHREV,SharedXxf86rushRev)
#else
ProjectUnsharedLibReferences(XXF86RUSH,Xxf86rush,$(XXF86RUSHLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXvLibrary
#ifndef SharedLibXv
#define SharedLibXv		HasSharedLibraries
#endif
#ifndef ExtraLibXv
#define ExtraLibXv		SharedLibXv
#endif
#ifndef NormalLibXv
#define NormalLibXv		(!SharedLibXv || ForceNormalLib)
#endif
#ifndef DebugLibXv
#define DebugLibXv		BuildDebugLibraries
#endif
#ifndef ProfileLibXv
#define ProfileLibXv		BuildProfileLibraries
#endif
#else
#undef  SharedLibXv
#define SharedLibXv		NO
#undef  ExtraLibXv
#define ExtraLibXv		NO
#undef  NormalLibXv
#define NormalLibXv		NO
#undef  DebugLibXv
#define DebugLibXv		NO
#undef  ProfileLibXv
#define ProfileLibXv		NO
#endif

#if BuildXvExt
         XVLIBSRC = $(LIBSRC)/Xv
#if SharedLibXv
#ifndef SharedXvRev
#define SharedXvRev 1.0
#endif
SharedLibReferences(XV,Xv,$(XVLIBSRC),SOXVREV,SharedXvRev)
#else
ProjectUnsharedLibReferences(XV,Xv,$(XVLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXvMCLibrary
#ifndef SharedLibXvMC
#define SharedLibXvMC		HasSharedLibraries
#endif
#ifndef ExtraLibXvMC
#define ExtraLibXvMC		SharedLibXvMC
#endif
#ifndef NormalLibXvMC
#define NormalLibXvMC		(!SharedLibXvMC || ForceNormalLib)
#endif
#ifndef DebugLibXvMC
#define DebugLibXvMC		BuildDebugLibraries
#endif
#ifndef ProfileLibXvMC
#define ProfileLibXvMC		BuildProfileLibraries
#endif
#else
#undef  SharedLibXvMC
#define SharedLibXvMC		NO
#undef  ExtraLibXvMC
#define ExtraLibXvMC		NO
#undef  NormalLibXvMC
#define NormalLibXvMC		NO
#undef  DebugLibXvMC
#define DebugLibXvMC		NO
#undef  ProfileLibXvMC
#define ProfileLibXvMC		NO
#endif

#if BuildXvMCExt
       XVMCLIBSRC = $(LIBSRC)/XvMC
#if SharedLibXvMC
#ifndef SharedXvMCRev
#define SharedXvMCRev 1.0
#endif
SharedLibReferences(XVMC,XvMC,$(XVMCLIBSRC),SOXVMCREV,SharedXvMCRev)
#else
ProjectUnsharedLibReferences(XVMC,XvMC,$(XVMCLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXineramaLibrary
#ifndef SharedLibXinerama
#define SharedLibXinerama	HasSharedLibraries
#endif
#ifndef ExtraLibXinerama
#define ExtraLibXinerama	SharedLibXinerama
#endif
#ifndef NormalLibXinerama
#define NormalLibXinerama	(!SharedLibXinerama || ForceNormalLib)
#endif
#ifndef DebugLibXinerama
#define DebugLibXinerama	BuildDebugLibraries
#endif
#ifndef ProfileLibXinerama
#define ProfileLibXinerama	BuildProfileLibraries
#endif
#else
#undef  SharedLibXinerama
#define SharedLibXinerama	NO
#undef  ExtraLibXinerama
#define ExtraLibXinerama	NO
#undef  NormalLibXinerama
#define NormalLibXinerama	NO
#undef  DebugLibXinerama
#define DebugLibXinerama	NO
#undef  ProfileLibXinerama
#define ProfileLibXinerama	NO
#endif

#if BuildXinerama
   XINERAMALIBSRC = $(LIBSRC)/Xinerama
#if SharedLibXinerama
#ifndef SharedXineramaRev
#define SharedXineramaRev 1.0
#endif
SharedLibReferences(XINERAMA,Xinerama,$(XINERAMALIBSRC),SOXINERAMAREV,SharedXineramaRev)
#else
ProjectUnsharedLibReferences(XINERAMA,Xinerama,$(XINERAMALIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXResLibrary
#ifndef SharedLibXRes
#define SharedLibXRes		HasSharedLibraries
#endif
#ifndef ExtraLibXRes
#define ExtraLibXRes		SharedLibXRes
#endif
#ifndef NormalLibXRes
#define NormalLibXRes		(!SharedLibXRes || ForceNormalLib)
#endif
#ifndef DebugLibXRes
#define DebugLibXRes		BuildDebugLibraries
#endif
#ifndef ProfileLibXRes
#define ProfileLibXRes		BuildProfileLibraries
#endif
#else
#undef  SharedLibXRes
#define SharedLibXRes		NO
#undef  ExtraLibXRes
#define ExtraLibXRes		NO
#undef  NormalLibXRes
#define NormalLibXRes		NO
#undef  DebugLibXRes
#define DebugLibXRes		NO
#undef  ProfileLibXRes
#define ProfileLibXRes		NO
#endif

#if BuildXResExt
       XRESLIBSRC = $(LIBSRC)/XRes
#if SharedLibXRes
#ifndef SharedXResRev
#define SharedXResRev 1.0
#endif
SharedLibReferences(XRES,XRes,$(XRESLIBSRC),SOXRESREV,SharedXResRev)
#else
ProjectUnsharedLibReferences(XRES,XRes,$(XRESLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildDmxLibrary
#ifndef SharedLibDmx
#define SharedLibDmx		HasSharedLibraries
#endif
#ifndef ExtraLibDmx
#define ExtraLibDmx		SharedLibDmx
#endif
#ifndef NormalLibDmx
#define NormalLibDmx		YES
#endif
#ifndef DebugLibDmx
#define DebugLibDmx		BuildDebugLibraries
#endif
#ifndef ProfileLibDmx
#define ProfileLibDmx		BuildProfileLibraries
#endif
#else
#undef  SharedLibDmx
#define SharedLibDmx		NO
#undef  ExtraLibDmx
#define ExtraLibDmx		NO
#undef  NormalLibDmx
#define NormalLibDmx		NO
#undef  DebugLibDmx
#define DebugLibDmx		NO
#undef  ProfileLibDmx
#define ProfileLibDmx		NO
#endif

#if BuildDmx
        DMXLIBSRC = $(LIBSRC)/dmx
#if SharedLibDmx
#ifndef SharedDmxRev
#define SharedDmxRev 1.0
#endif
SharedLibReferences(DMX,dmx,$(DMXLIBSRC),SODMXREV,SharedDmxRev)
#else
ProjectUnsharedLibReferences(DMX,dmx,$(DMXLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildDPSLibrary
#ifndef SharedLibDps
#define SharedLibDps		HasSharedLibraries
#endif
#ifndef ExtraLibDps
#define ExtraLibDps		SharedLibDps
#endif
#ifndef NormalLibDps
#define NormalLibDps		(!SharedLibDps || ForceNormalLib)
#endif
#ifndef DebugLibDps
#define DebugLibDps		BuildDebugLibraries
#endif
#ifndef ProfileLibDps
#define ProfileLibDps		BuildProfileLibraries
#endif
#else
#undef  SharedLibDps
#define SharedLibDps		NO
#undef  ExtraLibDps
#define ExtraLibDps		NO
#undef  NormalLibDps
#define NormalLibDps		NO
#undef  DebugLibDps
#define DebugLibDps		NO
#undef  ProfileLibDps
#define ProfileLibDps		NO
#endif

        DPSLIBSRC = $(LIBSRC)/dps
#if SharedLibDps
#ifndef SharedDpsRev
#define SharedDpsRev 1.0
#endif
SharedLibReferences(DPS,dps,$(DPSLIBSRC),SODPSREV,SharedDpsRev)
#else
ProjectUnsharedLibReferences(DPS,dps,$(DPSLIBSRC),XBuildLibDir)
#endif

#if BuildDPSTkLibrary
#ifndef SharedLibDpsTk
#define SharedLibDpsTk		HasSharedLibraries
#endif
#ifndef ExtraLibDpsTk
#define ExtraLibDpsTk		SharedLibDpsTk
#endif
#ifndef NormalLibDpsTk
#define NormalLibDpsTk		(!SharedLibDpsTk || ForceNormalLib)
#endif
#ifndef DebugLibDpsTk
#define DebugLibDpsTk		BuildDebugLibraries
#endif
#ifndef ProfileLibDpsTk
#define ProfileLibDpsTk		BuildProfileLibraries
#endif
#else
#undef  SharedLibDpsTk
#define SharedLibDpsTk		NO
#undef  ExtraLibDpsTk
#define ExtraLibDpsTk		NO
#undef  NormalLibDpsTk
#define NormalLibDpsTk		NO
#undef  DebugLibDpsTk
#define DebugLibDpsTk		NO
#undef  ProfileLibDpsTk
#define ProfileLibDpsTk		NO
#endif

      DPSTKLIBSRC = $(LIBSRC)/dpstk
#if SharedLibDpsTk
#ifndef SharedDpsTkRev
#define SharedDpsTkRev 1.0
#endif
SharedLibReferences(DPSTK,dpstk,$(DPSTKLIBSRC),SODPSTKREV,SharedDpsTkRev)
#else
ProjectUnsharedLibReferences(DPSTK,dpstk,$(DPSTKLIBSRC),XBuildLibDir)
#endif

#if BuildPSResLibrary
#ifndef SharedLibPSRes
#define SharedLibPSRes		HasSharedLibraries
#endif
#ifndef ExtraLibPSRes
#define ExtraLibPSRes		SharedLibPSRes
#endif
#ifndef NormalLibPSRes
#define NormalLibPSRes		(!SharedLibPSRes || ForceNormalLib)
#endif
#ifndef DebugLibPSRes
#define DebugLibPSRes		BuildDebugLibraries
#endif
#ifndef ProfileLibPSRes
#define ProfileLibPSRes		BuildProfileLibraries
#endif
#else
#undef  SharedLibPSRes
#define SharedLibPSRes		NO
#undef  ExtraLibPSRes
#define ExtraLibPSRes		NO
#undef  NormalLibPSRes
#define NormalLibPSRes		NO
#undef  DebugLibPSRes
#define DebugLibPSRes		NO
#undef  ProfileLibPSRes
#define ProfileLibPSRes		NO
#endif

      PSRESLIBSRC = $(LIBSRC)/psres
#if SharedLibPSRes
#ifndef SharedPSResRev
#define SharedPSResRev 1.0
#endif
SharedLibReferences(PSRES,psres,$(PSRESLIBSRC),SOPSRESREV,SharedPSResRev)
#else
ProjectUnsharedLibReferences(PSRES,psres,$(PSRESLIBSRC),XBuildLibDir)
#endif

#if BuildGLXLibrary
#ifndef SharedLibGlx
#define SharedLibGlx		HasSharedLibraries
#endif
#ifndef ExtraLibGlx
#define ExtraLibGlx		SharedLibGlx
#endif
#ifndef NormalLibGlx
#define NormalLibGlx		(!SharedLibX11 || ForceNormalLib)
#endif
#ifndef DebugLibGlx
#define DebugLibGlx		BuildDebugLibraries
#endif
#ifndef ProfileLibGlx
#define ProfileLibGlx		BuildProfileLibraries
#endif
#ifndef BuildLibGlxWithoutPIC
#define BuildLibGlxWithoutPIC	NO
#endif
#if BuildLibGlxWithoutPIC && SharedLibGlx
#define SharedLibGlxWithoutPIC	YES
#else
#define SharedLibGlxWithoutPIC	NO
#endif
#ifndef LinkGLToUsrLib
#define LinkGLToUsrLib		NO
#endif
#if NothingOutsideProjectRoot
#undef  LinkGLToUsrLib
#define LinkGLToUsrLib		NO
#endif
#ifndef LinkGLToUsrInclude
#define LinkGLToUsrInclude	NO
#endif
#if NothingOutsideProjectRoot
#undef  LinkGLToUsrInclude
#define LinkGLToUsrInclude	NO
#endif
#else
#undef  SharedLibGlx
#define SharedLibGlx		NO
#undef  ExtraLibGlx
#define ExtraLibGlx		NO
#undef  NormalLibGlx
#define NormalLibGlx		NO
#undef  DebugLibGlx
#define DebugLibGlx		NO
#undef  ProfileLibGlx
#define ProfileLibGlx		NO
#undef  LinkGLToUsrInclude
#define LinkGLToUsrInclude	NO
#endif

#if BuildGlxExt
        GLXLIBSRC = $(LIBSRC)/GL
#if SharedLibGlx
#ifndef SharedGlxRev
#define SharedGlxRev 1.2
#endif
SharedLibReferences(GLX,GL,$(GLXLIBSRC),SOGLREV,SharedGlxRev)
#else
ProjectUnsharedLibReferences(GLX,GL,$(GLXLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildGLULibrary
#ifndef SharedLibGlu
#define SharedLibGlu		HasSharedLibraries
#endif
#ifndef ExtraLibGlu
#define ExtraLibGlu		SharedLibGlu
#endif
#ifndef NormalLibGlu
#define NormalLibGlu		(!SharedLibX11 || ForceNormalLib)
#endif
#ifndef DebugLibGlu
#define DebugLibGlu		BuildDebugLibraries
#endif
#ifndef ProfileLibGlu
#define ProfileLibGlu		BuildProfileLibraries
#endif
#else
#undef  SharedLibGlu
#define SharedLibGlu		NO
#undef  ExtraLibGlu
#define ExtraLibGlu		NO
#undef  NormalLibGlu
#define NormalLibGlu		NO
#undef  DebugLibGlu
#define DebugLibGlu		NO
#undef  ProfileLibGlu
#define ProfileLibGlu		NO
#endif

#if BuildGlxExt
        GLULIBSRC = $(LIBSRC)/GLU
#if SharedLibGlu
#ifndef SharedGluRev
#define SharedGluRev 1.3
#endif
SharedLibReferences(GLU,GLU,$(GLULIBSRC),SOGLUREV,SharedGluRev)
#else
ProjectUnsharedLibReferences(GLU,GLU,$(GLULIBSRC),XBuildLibDir)
#endif
#endif

/*
 * Only make a shared GLw library on systems with weak symbols
 * because it depends on Motif. See xc/lib/GLw/README.txt for details
 */
#if BuildGLwLibrary
#ifndef SharedLibGLw
#define SharedLibGLw		(HasSharedLibraries && HasWeakSymbols)
#endif
#ifndef ExtraLibGLw
#define ExtraLibGLw		SharedLibGLw
#endif
#ifndef NormalLibGLw
#define NormalLibGLw		(!SharedLibGLw || ForceNormalLib)
#endif
#ifndef DebugLibGLw
#define DebugLibGLw		BuildDebugLibraries
#endif
#ifndef ProfileLibGLw
#define ProfileLibGLw		BuildProfileLibraries
#endif
#ifndef GLwUseXmStubs
	/* create stub (weak) Motif symbols */
#define GLwUseXmStubs		(SharedLibGLw && HasWeakSymbols)
#endif
#else
#undef  SharedLibGLw
#define SharedLibGLw		NO
#undef  ExtraLibGLw
#define ExtraLibGLw		NO
#undef  NormalLibGLw
#define NormalLibGLw		NO
#undef  DebugLibGLw
#define DebugLibGLw		NO
#undef  ProfileLibGLw
#define ProfileLibGLw		NO
#endif

#if BuildGlxExt
      GLWIDGETSRC = $(LIBSRC)/GLw
#if SharedLibGLw
#ifndef SharedGLwRev
#define SharedGLwRev 1.0		/* used to name the shared library */
#endif
SharedDSLibReferences(GLW,GLw,$(GLWIDGETSRC),SOGLWREV,SharedGLwRev)
#else
ProjectUnsharedLibReferences(GLW,GLw,$(GLWIDGETSRC),XBuildLibDir)
#endif
#endif

#if BuildRenderLibrary
#ifndef SharedLibXrender
#define SharedLibXrender	HasSharedLibraries
#endif
#ifndef ExtraLibXrender
#define ExtraLibXrender		SharedLibXrender
#endif
#ifndef NormalLibXrender
#define NormalLibXrender	(!SharedLibXrender || ForceNormalLib)
#endif
#ifndef DebugLibXrender
#define DebugLibXrender		BuildDebugLibraries
#endif
#ifndef ProfileLibXrender
#define ProfileLibXrender	BuildProfileLibraries
#endif
#else
#undef  SharedLibXrender
#define SharedLibXrender	NO
#undef  ExtraLibXrender
#define ExtraLibXrender		NO
#undef  NormalLibXrender
#define NormalLibXrender	NO
#undef  DebugLibXrender
#define DebugLibXrender		NO
#undef  ProfileLibXrender
#define ProfileLibXrender	NO
#endif

#if BuildRender
    XRENDERLIBSRC = $(LIBSRC)/Xrender
#if SharedLibXrender
#ifndef SharedXrenderRev
#define SharedXrenderRev 1.2
#endif
SharedLibReferences(XRENDER,Xrender,$(XRENDERLIBSRC),SOXRENDERREV,SharedXrenderRev)
#else
ProjectUnsharedLibReferences(XRENDER,Xrender,$(XRENDERLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildRandRLibrary
#ifndef SharedLibXrandr
#define SharedLibXrandr		HasSharedLibraries
#endif
#ifndef ExtraLibXrandr
#define ExtraLibXrandr		SharedLibXrandr
#endif
#ifndef NormalLibXrandr
#define NormalLibXrandr		(!SharedLibXrandr || ForceNormalLib)
#endif
#ifndef DebugLibXrandr
#define DebugLibXrandr		BuildDebugLibraries
#endif
#ifndef ProfileLibXrandr
#define ProfileLibXrandr	BuildProfileLibraries
#endif
#else
#undef  SharedLibXrandr
#define SharedLibXrandr		NO
#undef  ExtraLibXrandr
#define ExtraLibXrandr		NO
#undef  NormalLibXrandr
#define NormalLibXrandr		NO
#undef  DebugLibXrandr
#define DebugLibXrandr		NO
#undef  ProfileLibXrandr
#define ProfileLibXrandr	NO
#endif

#if BuildRandR
    XRANDRRLIBSRC = $(LIBSRC)/Xrandr
#if SharedLibXrandr
#ifndef SharedXrandrRev
#define SharedXrandrRev 2.0
#endif
SharedLibReferences(XRANDR,Xrandr,$(XRANDRLIBSRC),SOXRANDRREV,SharedXrandrRev)
#else
ProjectUnsharedLibReferences(XRANDR,Xrandr,$(XRANDRLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXcursorLibrary
#ifndef SharedLibXcursor
#define SharedLibXcursor	HasSharedLibraries
#endif
#ifndef ExtraLibXcursor
#define ExtraLibXcursor		SharedLibXcursor
#endif
#ifndef NormalLibXcursor
#define NormalLibXcursor	(!SharedLibXcursor || ForceNormalLib)
#endif
#ifndef DebugLibXcursor
#define DebugLibXcursor		BuildDebugLibraries
#endif
#ifndef ProfileLibXcursor
#define ProfileLibXcursor	BuildProfileLibraries
#endif
#else
#undef  SharedLibXcursor
#define SharedLibXcursor	NO
#undef  ExtraLibXcursor
#define ExtraLibXcursor		NO
#undef  NormalLibXcursor
#define NormalLibXcursor	NO
#undef  DebugLibXcursor
#define DebugLibXcursor		NO
#undef  ProfileLibXcursor
#define ProfileLibXcursor	NO
#endif

#if BuildRender
   XCURSORRLIBSRC = $(LIBSRC)/Xcursor
#if SharedLibXcursor
#ifndef SharedXcursorRev
#define SharedXcursorRev 1.0
#endif
SharedLibReferences(XCURSOR,Xcursor,$(XCURSORLIBSRC),SOXCURSORREV,SharedXcursorRev)
#else
ProjectUnsharedLibReferences(XCURSOR,Xcursor,$(XCURSORLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildAppleWMLibrary
#ifndef SharedLibAppleWM
#define SharedLibAppleWM	HasSharedLibraries
#endif
#ifndef ExtraLibAppleWM
#define ExtraLibAppleWM		SharedLibAppleWM
#endif
#ifndef NormalLibAppleWM
#define NormalLibAppleWM	(!SharedLibAppleWM || ForceNormalLib)
#endif
#ifndef DebugLibAppleWM
#define DebugLibAppleWM		BuildDebugLibraries
#endif
#ifndef ProfileLibAppleWM
#define ProfileLibAppleWM	BuildProfileLibraries
#endif
#else
#undef  SharedLibAppleWM
#define SharedLibAppleWM	NO
#undef  ExtraLibAppleWM
#define ExtraLibAppleWM		NO
#undef  NormalLibAppleWM
#define NormalLibAppleWM	NO
#undef  DebugLibAppleWM
#define DebugLibAppleWM		NO
#undef  ProfileLibAppleWM
#define ProfileLibAppleWM	NO
#endif

    APPLEWMLIBSRC = $(LIBSRC)/apple
#if SharedLibAppleWM
#ifndef SharedAppleWMRev
#define SharedAppleWMRev 1.0
#endif
SharedLibReferences(APPLEWM,AppleWM,$(APPLEWMLIBSRC),SOAPPLEWMREV,SharedAppleWMRev)
#else
ProjectUnsharedLibReferences(APPLEWM,AppleWM,$(APPLEWMLIBSRC),XBuildLibDir)
#endif

#if BuildFontCacheLib
#ifndef SharedLibXfontcache
#define SharedLibXfontcache	HasSharedLibraries
#endif
#ifndef ExtraLibXfontcache
#define ExtraLibXfontcache	SharedLibXfontcache
#endif
#ifndef NormalLibXfontcache
#define NormalLibXfontcache	(!SharedLibXfontcache || ForceNormalLib)
#endif
#ifndef DebugLibXfontcache
#define DebugLibXfontcache	BuildDebugLibraries
#endif
#ifndef ProfileLibXfontcache
#define ProfileLibXfontcache	BuildProfileLibraries
#endif
#else
#undef  SharedLibXfontcache
#define SharedLibXfontcache	NO
#undef  ExtraLibXfontcache
#define ExtraLibXfontcache	NO
#undef  NormalLibXfontcache
#define NormalLibXfontcache	NO
#undef  DebugLibXfontcache
#define DebugLibXfontcache	NO
#undef  ProfileLibXfontcache
#define ProfileLibXfontcache	NO
#endif

#if BuildFontCache
 XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
#if SharedLibXfontcache
#ifndef SharedXfontcacheRev
#define SharedXfontcacheRev 1.2
#endif
SharedLibReferences(XFONTCACHE,Xfontcache,$(XFONTCACHELIBSRC),SOXFONTCACHEREV,SharedXfontcacheRev)
#else
ProjectUnsharedLibReferences(XFONTCACHE,Xfontcache,$(XFONTCACHELIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXauLib
#ifndef SharedLibXau
#define SharedLibXau		NO
#endif
#ifndef ExtraLibXau
#define ExtraLibXau		SharedLibXau
#endif
#ifndef NormalLibXau
#define NormalLibXau		(!SharedLibXau || ForceNormalLib)
#endif
#ifndef DebugLibXau
#define DebugLibXau		BuildDebugLibraries
#endif
#ifndef ProfileLibXau
#define ProfileLibXau		BuildProfileLibraries
#endif
#else
#undef  SharedLibXau
#define SharedLibXau		NO
#undef  ExtraLibXau
#define ExtraLibXau		NO
#undef  NormalLibXau
#define NormalLibXau		NO
#undef  DebugLibXau
#define DebugLibXau		NO
#undef  ProfileLibXau
#define ProfileLibXau		NO
#endif

         XAUTHSRC = $(LIBSRC)/Xau
#if SharedLibXau
#ifndef SharedXauRev
#define SharedXauRev 6.0
#endif
SharedLibReferences(XAUTH,Xau,$(XAUTHSRC),SOXAUTHREV,SharedXauRev)
#else
#if !UseInstalledXauLib
ProjectUnsharedLibReferences(XAUTH,Xau,$(XAUTHSRC),XBuildLibDir)
#else
ProjectUnsharedLibReferences(XAUTH,Xau,$(XAUTHSRC),$(USRLIBDIR))
#endif
#endif

#if BuildXdmcpLib
#ifndef SharedLibXdmcp
#define SharedLibXdmcp		NO
#endif
#ifndef ExtraLibXdmcp
#define ExtraLibXdmcp		SharedLibXdmcp
#endif
#ifndef NormalLibXdmcp
#define NormalLibXdmcp		(!SharedLibXdmcp || ForceNormalLib)
#endif
#ifndef DebugLibXdmcp
#define DebugLibXdmcp		BuildDebugLibraries
#endif
#ifndef ProfileLibXdmcp
#define ProfileLibXdmcp		BuildProfileLibraries
#endif
#else
#undef  SharedLibXdmcp
#define SharedLibXdmcp		NO
#undef  ExtraLibXdmcp
#define ExtraLibXdmcp		NO
#undef  NormalLibXdmcp
#define NormalLibXdmcp		NO
#undef  DebugLibXdmcp
#define DebugLibXdmcp		NO
#undef  ProfileLibXdmcp
#define ProfileLibXdmcp		NO
#endif

      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
#if SharedLibXdmcp
#ifndef SharedXdmcpRev
#define SharedXdmcpRev 6.0
#endif
SharedLibReferences(XDMCP,Xdmcp,$(XDMCPLIBSRC),SOXDMCPREV,SharedXdmcpRev)
#else
#if !UseInstalledXdmcpLib
ProjectUnsharedLibReferences(XDMCP,Xdmcp,$(XDMCPLIBSRC),XBuildLibDir)
#else
ProjectUnsharedLibReferences(XDMCP,Xdmcp,$(XDMCPLIBSRC),$(USRLIBDIR))
#endif
#endif

#if BuildXmuLib
#ifndef SharedLibXmu
#define SharedLibXmu		HasSharedLibraries
#endif
#ifndef ExtraLibXmu
#define ExtraLibXmu		SharedLibXmu
#endif
#ifndef NormalLibXmu
#define NormalLibXmu		(!SharedLibXmu || ForceNormalLib)
#endif
#ifndef DebugLibXmu
#define DebugLibXmu		BuildDebugLibraries
#endif
#ifndef ProfileLibXmu
#define ProfileLibXmu		BuildProfileLibraries
#endif
#else
#undef  SharedLibXmu
#define SharedLibXmu		NO
#undef  ExtraLibXmu
#define ExtraLibXmu		NO
#undef  NormalLibXmu
#define NormalLibXmu		NO
#undef  DebugLibXmu
#define DebugLibXmu		NO
#undef  ProfileLibXmu
#define ProfileLibXmu		NO
#endif

           XMUSRC = $(LIBSRC)/Xmu
#if SharedLibXmu
#ifndef SharedXmuRev
#define SharedXmuRev 6.2
#endif
SharedDSLibReferences(XMU,Xmu,$(XMUSRC),SOXMUREV,SharedXmuRev)
#else
ProjectUnsharedLibReferences(XMU,Xmu,$(XMUSRC),XBuildLibDir)
#endif

#if BuildXmuuLib
#ifndef SharedLibXmuu
#define SharedLibXmuu		HasSharedLibraries
#endif
#ifndef ExtraLibXmuu
#define ExtraLibXmuu		SharedLibXmuu
#endif
#ifndef NormalLibXmuu
#define NormalLibXmuu		(!SharedLibXmuu || ForceNormalLib)
#endif
#ifndef DebugLibXmuu
#define DebugLibXmuu		BuildDebugLibraries
#endif
#ifndef ProfileLibXmuu
#define ProfileLibXmuu		BuildProfileLibraries
#endif
#else
#undef  SharedLibXmuu
#define SharedLibXmuu		NO
#undef  ExtraLibXmuu
#define ExtraLibXmuu		NO
#undef  NormalLibXmuu
#define NormalLibXmuu		NO
#undef  DebugLibXmuu
#define DebugLibXmuu		NO
#undef  ProfileLibXmuu
#define ProfileLibXmuu		NO
#endif

          XMUUSRC = $(LIBSRC)/Xmuu
#if SharedLibXmuu
#ifndef SharedXmuuRev
#define SharedXmuuRev 1.0
#endif
SharedLibReferences(XMUU,Xmuu,$(XMUUSRC),SOXMUUREV,SharedXmuuRev)
#else
ProjectUnsharedLibReferences(XMUU,Xmuu,$(XMUUSRC),XBuildLibDir)
#endif

#if BuildOldXLib
#ifndef SharedOldX
#define SharedOldX		HasSharedLibraries
#endif
#ifndef ExtraOldX
#define ExtraOldX		SharedOldX
#endif
#ifndef NormalOldX
#define NormalOldX		(!SharedOldX || ForceNormalLib)
#endif
#ifndef DebugOldX
#define DebugOldX		BuildDebugLibraries
#endif
#ifndef ProfileOldX
#define ProfileOldX		BuildProfileLibraries
#endif
#else
#undef  SharedOldX
#define SharedOldX		NO
#undef  ExtraOldX
#define ExtraOldX		NO
#undef  NormalOldX
#define NormalOldX		NO
#undef  DebugOldX
#define DebugOldX		NO
#undef  ProfileOldX
#define ProfileOldX		NO
#endif

       OLDXLIBSRC = $(LIBSRC)/oldX
#if SharedOldX
#ifndef SharedOldXRev
#define SharedOldXRev 6.0
#endif
SharedLibReferences(OLDX,oldX,$(OLDXLIBSRC),SOOLDXREV,SharedOldXRev)
#else
ProjectUnsharedLibReferences(OLDX,oldX,$(OLDXLIBSRC),XBuildLibDir)
#endif

#if BuildXprintLib
#ifndef SharedLibXp
#define SharedLibXp		HasSharedLibraries
#endif
#ifndef ExtraLibXp
#define ExtraLibXp		SharedLibXp
#endif
#ifndef NormalLibXp
#define NormalLibXp		(!SharedLibXp || ForceNormalLib)
#endif
#ifndef DebugLibXp
#define DebugLibXp		BuildDebugLibraries
#endif
#ifndef ProfileLibXp
#define ProfileLibXp		BuildProfileLibraries
#endif
#else
#undef  SharedLibXp
#define SharedLibXp		NO
#undef  ExtraLibXp
#define ExtraLibXp		NO
#undef  NormalLibXp
#define NormalLibXp		NO
#undef  DebugLibXp
#define DebugLibXp		NO
#undef  ProfileLibXp
#define ProfileLibXp		NO
#endif

#if BuildXprint
         XPLIBSRC = $(LIBSRC)/Xp
#if SharedLibXp
#ifndef SharedXpRev
#define SharedXpRev 6.2
#endif
SharedLibReferences(XP,Xp,$(XPLIBSRC),SOXPREV,SharedXpRev)
#else
ProjectUnsharedLibReferences(XP,Xp,$(XPLIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXtLib
#ifndef SharedLibXt
#define SharedLibXt		HasSharedLibraries
#endif
#ifndef ExtraLibXt
#define ExtraLibXt		SharedLibXt
#endif
#ifndef NormalLibXt
#define NormalLibXt		(!SharedLibXt || ForceNormalLib)
#endif
#ifndef DebugLibXt
#define DebugLibXt		BuildDebugLibraries
#endif
#ifndef ProfileLibXt
#define ProfileLibXt		BuildProfileLibraries
#endif
#else
#undef  SharedLibXt
#define SharedLibXt		NO
#undef  ExtraLibXt
#define ExtraLibXt		NO
#undef  NormalLibXt
#define NormalLibXt		NO
#undef  DebugLibXt
#define DebugLibXt		NO
#undef  ProfileLibXt
#define ProfileLibXt		NO
#endif

       TOOLKITSRC = $(LIBSRC)/Xt
#if SharedLibXt
#ifndef SharedXtRev
#define SharedXtRev 6.1
#endif
SharedDSLibReferences(XTOOLONLY,Xt,$(TOOLKITSRC),SOXTREV,SharedXtRev)
#else
ProjectUnsharedLibReferences(XTOOLONLY,Xt,$(TOOLKITSRC),XBuildLibDir)
#endif
      DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
         XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
     LINTXTOOLLIB = $(LINTXTOOLONLYLIB)

#if BuildXawLib
#ifndef SharedLibXaw
#define SharedLibXaw		HasSharedLibraries
#endif
#ifndef ExtraLibXaw
#define ExtraLibXaw		SharedLibXaw
#endif
#ifndef NormalLibXaw
#define NormalLibXaw		(!SharedLibXaw || ForceNormalLib)
#endif
#ifndef DebugLibXaw
#define DebugLibXaw		BuildDebugLibraries
#endif
#ifndef ProfileLibXaw
#define ProfileLibXaw		BuildProfileLibraries
#endif
#else
#undef  SharedLibXaw
#define SharedLibXaw		NO
#undef  ExtraLibXaw
#define ExtraLibXaw		NO
#undef  NormalLibXaw
#define NormalLibXaw		NO
#undef  DebugLibXaw
#define DebugLibXaw		NO
#undef  ProfileLibXaw
#define ProfileLibXaw		NO
#endif

       AWIDGETSRC = $(LIBSRC)/Xaw
#if SharedLibXaw
#ifndef SharedXawRev
#define SharedXawRev 7.1
#endif
SharedDSLibReferences(XAW,Xaw,$(AWIDGETSRC),SOXAWREV,SharedXawRev)
#else
ProjectUnsharedLibReferences(XAW,Xaw,$(AWIDGETSRC),XBuildLibDir)
#endif

#ifndef BuildXaw6
#define BuildXaw6 (BuildXawLib && HasSharedLibraries)
#endif

#if BuildXaw6
#ifndef SharedLibXaw6
#define SharedLibXaw6		HasSharedLibraries
#endif
#ifndef ExtraLibXaw6
#define ExtraLibXaw6		SharedLibXaw6
#endif
#ifndef NormalLibXaw6
#define NormalLibXaw6		NO
#endif
#ifndef DebugLibXaw6
#define DebugLibXaw6		NO
#endif
#ifndef ProfileLibXaw6
#define ProfileLibXaw6		NO
#endif
#else
#undef  SharedLibXaw6
#define SharedLibXaw6		NO
#undef  ExtraLibXaw6
#define ExtraLibXaw6		NO
#undef  NormalLibXaw6
#define NormalLibXaw6		NO
#undef  DebugLibXaw6
#define DebugLibXaw6		NO
#undef  ProfileLibXaw6
#define ProfileLibXaw6		NO
#endif

      AWIDGET6SRC = $(LIBSRC)/Xaw6
#if SharedLibXaw6
#ifndef SharedXaw6Rev
#define SharedXaw6Rev 6.1
#endif
SharedDSLibReferences(XAW6,Xaw,$(AWIDGET6SRC),SOXAW6REV,SharedXaw6Rev)
#else
ProjectUnsharedLibReferences(XAW6,Xaw,$(AWIDGET6SRC),XBuildLibDir)
#endif

#if BuildXInputLib
#ifndef SharedLibXi
#define SharedLibXi		HasSharedLibraries
#endif
#ifndef ExtraLibXi
#define ExtraLibXi		SharedLibXi
#endif
#ifndef NormalLibXi
#define NormalLibXi		(!SharedLibXi || ForceNormalLib)
#endif
#ifndef DebugLibXi
#define DebugLibXi		BuildDebugLibraries
#endif
#ifndef ProfileLibXi
#define ProfileLibXi		BuildProfileLibraries
#endif
#else
#undef  SharedLibXi
#define SharedLibXi		NO
#undef  ExtraLibXi
#define ExtraLibXi		NO
#undef  NormalLibXi
#define NormalLibXi		NO
#undef  DebugLibXi
#define DebugLibXi		NO
#undef  ProfileLibXi
#define ProfileLibXi		NO
#endif

#if BuildXInputExt || BuildLibrariesForDmx
         XILIBSRC = $(LIBSRC)/Xi
#if SharedLibXi
#ifndef SharedXiRev
#define SharedXiRev 6.0
#endif
SharedLibReferences(XI,Xi,$(XILIBSRC),SOXINPUTREV,SharedXiRev)
#else
ProjectUnsharedLibReferences(XI,Xi,$(XILIBSRC),XBuildLibDir)
#endif
#endif

#if BuildXtstLib
#ifndef SharedLibXtst
#define SharedLibXtst		HasSharedLibraries
#endif
#ifndef ExtraLibXtst
#define ExtraLibXtst		SharedLibXtst
#endif
#ifndef NormalLibXtst
#define NormalLibXtst		(!SharedLibXtst || ForceNormalLib)
#endif
#ifndef DebugLibXtst
#define DebugLibXtst		BuildDebugLibraries
#endif
#ifndef ProfileLibXtst
#define ProfileLibXtst		BuildProfileLibraries
#endif
#else
#undef  SharedLibXtst
#define SharedLibXtst		NO
#undef  ExtraLibXtst
#define ExtraLibXtst		NO
#undef  NormalLibXtst
#define NormalLibXtst		NO
#undef  DebugLibXtst
#define DebugLibXtst		NO
#undef  ProfileLibXtst
#define ProfileLibXtst		NO
#endif

      XTESTLIBSRC = $(LIBSRC)/Xtst
#if SharedLibXtst
#ifndef SharedXtstRev
#define SharedXtstRev 6.1
#endif
SharedLibReferences(XTEST,Xtst,$(XTESTLIBSRC),SOXTESTREV,SharedXtstRev)
#else
ProjectUnsharedLibReferences(XTEST,Xtst,$(XTESTLIBSRC),XBuildLibDir)
#endif

ProjectUnsharedLibReferences(XBSD,Xbsd,$(LIBSRC)/Xbsd,XBuildLibDir)

#if BuildICELib
#ifndef SharedLibICE
#define SharedLibICE		HasSharedLibraries
#endif
#ifndef ExtraLibICE
#define ExtraLibICE		SharedLibICE
#endif
#ifndef NormalLibICE
#define NormalLibICE		(!SharedLibICE || ForceNormalLib)
#endif
#ifndef DebugLibICE
#define DebugLibICE		BuildDebugLibraries
#endif
#ifndef ProfileLibICE
#define ProfileLibICE		BuildProfileLibraries
#endif
#else
#undef  SharedLibICE
#define SharedLibICE		NO
#undef  ExtraLibICE
#define ExtraLibICE		NO
#undef  NormalLibICE
#define NormalLibICE		NO
#undef  DebugLibICE
#define DebugLibICE		NO
#undef  ProfileLibICE
#define ProfileLibICE		NO
#endif

           ICESRC = $(LIBSRC)/ICE
#if SharedLibICE
#ifndef SharedICERev
#define SharedICERev 6.3
#endif
SharedLibReferences(ICE,ICE,$(ICESRC),SOICEREV,SharedICERev)
#else
ProjectUnsharedLibReferences(ICE,ICE,$(ICESRC),XBuildLibDir)
#endif

#if BuildSMLib
#ifndef SharedLibSM
#define SharedLibSM		HasSharedLibraries
#endif
#ifndef ExtraLibSM
#define ExtraLibSM		SharedLibSM
#endif
#ifndef NormalLibSM
#define NormalLibSM		(!SharedLibSM || ForceNormalLib)
#endif
#ifndef DebugLibSM
#define DebugLibSM		BuildDebugLibraries
#endif
#ifndef ProfileLibSM
#define ProfileLibSM		BuildProfileLibraries
#endif
#else
#undef  SharedLibSM
#define SharedLibSM		NO
#undef  ExtraLibSM
#define ExtraLibSM		NO
#undef  NormalLibSM
#define NormalLibSM		NO
#undef  DebugLibSM
#define DebugLibSM		NO
#undef  ProfileLibSM
#define ProfileLibSM		NO
#endif

            SMSRC = $(LIBSRC)/SM
#if SharedLibSM
#ifndef SharedSMRev
#define SharedSMRev 6.0
#endif
SharedLibReferences(SM,SM,$(SMSRC),SOSMREV,SharedSMRev)
#else
ProjectUnsharedLibReferences(SM,SM,$(SMSRC),XBuildLibDir)
#endif

#if BuildFSLib
#ifndef SharedLibFS
#define SharedLibFS		HasSharedLibraries
#endif
#ifndef ExtraLibFS
#define ExtraLibFS		SharedLibFS
#endif
#ifndef NormalLibFS
#define NormalLibFS		(!SharedLibFS || ForceNormalLib)
#endif
#ifndef DebugLibFS
#define DebugLibFS		BuildDebugLibraries
#endif
#ifndef ProfileLibFS
#define ProfileLibFS		BuildProfileLibraries
#endif
#else
#undef  SharedLibFS
#define SharedLibFS		NO
#undef  ExtraLibFS
#define ExtraLibFS		NO
#undef  NormalLibFS
#define NormalLibFS		NO
#undef  DebugLibFS
#define DebugLibFS		NO
#undef  ProfileLibFS
#define ProfileLibFS		NO
#endif

         FSLIBSRC = $(LIBSRC)/FS
#if SharedLibFS
#ifndef SharedFSRev
#define SharedFSRev 6.0
#endif
SharedLibReferences(FS,FS,$(FSLIBSRC),SOFSREV,SharedFSRev)
#else
ProjectUnsharedLibReferences(FS,FS,$(FSLIBSRC),XBuildLibDir)
#endif

#if BuildServer || BuildClients || BuildLibraries || BuildFontLib
#ifndef SharedLibFont
#define SharedLibFont		HasSharedLibraries
#endif
#ifndef ExtraLibFont
#define ExtraLibFont		SharedLibFont
#endif
#ifndef NormalLibFont
#define NormalLibFont		(!SharedLibFont || ForceNormalLib || \
				 XserverStaticFontLib)
#endif
#ifndef DebugLibFont
#define DebugLibFont		BuildDebugLibraries
#endif
#ifndef ProfileLibFont
#define ProfileLibFont		BuildProfileLibraries
#endif
#else
#undef  SharedLibFont
#define SharedLibFont		NO
#undef  ExtraLibFont
#define ExtraLibFont		NO
#undef  NormalLibFont
#define NormalLibFont		NO
#undef  DebugLibFont
#define DebugLibFont		NO
#undef  ProfileLibFont
#define ProfileLibFont		NO
#endif

       FONTLIBSRC = $(LIBSRC)/font
#if SharedLibFont
#ifndef SharedFontRev
#define SharedFontRev 1.5
#endif
SharedFontLibReferences()
XCOMM SharedLibReferences(XFONT,Xfont,$(FONTLIBSRC),SOFONTREV,SharedFontRev)
#else
ProjectUnsharedFontLibReferences()
XCOMM ProjectUnsharedLibReferences(XFONT,Xfont,$(FONTLIBSRC),XBuildLibDir)
#endif

   FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
ProjectUnsharedLibReferences(FONTSTUB,fntstubs,$(FONTSUBLIBSRC),XBuildLibDir)
       DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
          FONTLIB = $(XFONTLIB) $(FONTSTUBLIB) $(FREETYPE2LIB)

#if BuildFontEncLib || BuildServer
#ifndef SharedLibFontEnc
#define SharedLibFontEnc	HasSharedLibraries
#endif
#ifndef ExtraLibFontEnc
#define ExtraLibFontEnc		SharedLibFontEnc
#endif
#ifndef NormalLibFontEnc
#define NormalLibFontEnc	(!SharedLibFontEnc || ForceNormalLib)
#endif
#ifndef DebugLibFontEnc
#define DebugLibFontEnc		BuildDebugLibraries
#endif
#ifndef ProfileLibFontEnc
#define ProfileLibFontEnc	BuildProfileLibraries
#endif
#else
#undef  SharedLibFontEnc
#define SharedLibFontEnc	NO
#undef  ExtraLibFontEnc
#define ExtraLibFontEnc		NO
#undef  NormalLibFontEnc
#define NormalLibFontEnc	NO
#undef  DebugLibFontEnc
#define DebugLibFontEnc		NO
#undef  ProfileLibFontEnc
#define ProfileLibFontEnc	NO
#endif

    FONTENCLIBSRC = $(LIBSRC)/fontenc
#if SharedLibFontEnc
#ifndef SharedFontEncRev
#define SharedFontEncRev 1.0
#endif
SharedLibReferences(XFONTENC,fontenc,$(FONTENCLIBSRC),SOFONTENCREV,SharedFontEncRev)
#else
ProjectUnsharedLibReferences(XFONTENC,fontenc,$(FONTENCLIBSRC),XBuildLibDir)
#endif

#if BuildXpmLib
#ifndef SharedLibXpm
#define SharedLibXpm		HasSharedLibraries
#endif
#ifndef ExtraLibXpm
#define ExtraLibXpm		SharedLibXpm
#endif
#ifndef NormalLibXpm
#define NormalLibXpm		(!SharedLibXpm || ForceNormalLib)
#endif
#ifndef DebugLibXpm
#define DebugLibXpm		BuildDebugLibraries
#endif
#ifndef ProfileLibXpm
#define ProfileLibXpm		BuildProfileLibraries
#endif
#else
#undef  SharedLibXpm
#define SharedLibXpm		NO
#undef  ExtraLibXpm
#define ExtraLibXpm		NO
#undef  NormalLibXpm
#define NormalLibXpm		NO
#undef  DebugLibXpm
#define DebugLibXpm		NO
#undef  ProfileLibXpm
#define ProfileLibXpm		NO
#endif

        XPMLIBSRC = $(LIBSRC)/Xpm
#if SharedLibXpm
#ifndef SharedXpmRev
#define SharedXpmRev 4.11
#endif
SharedLibReferences(XPM,Xpm,$(XPMLIBSRC),SOXPMREV,SharedXpmRev)
#else
ProjectUnsharedLibReferences(XPM,Xpm,$(XPMLIBSRC),XBuildLibDir)
#endif

#if BuildFreetype2Library

#ifndef SharedLibFreetype2
#define SharedLibFreetype2	HasSharedLibraries
#endif
#ifndef ExtraLibFreetype2
#define ExtraLibFreetype2	SharedLibFreetype2
#endif
#ifndef NormalLibFreetype2
#define NormalLibFreetype2	(!SharedLibFreetype2 || ForceNormalLib)
#endif
#ifndef DebugLibFreetype2
#define DebugLibFreetype2	BuildDebugLibraries
#endif
#ifndef ProfileLibFreetype2
#define ProfileLibFreetype2	BuildProfileLibraries
#endif
  FREETYPE2LIBSRC = $(LIBSRC)/freetype2

/*
 * FreeType 2.1.8
 *
 * Get the library version information from version_info in
 * in xc/extras/freetype2/builds/unix/configure.ac.
 *
 * current:revision:age = 9:6:3
 *
 * The LibtoolMinorVersions revision is "(current - age).age".
 * The !LibtoolMinorVersions revision is "current.0".
 * Freetype2Version should be set to "current.revision.age"
 */
#ifndef Freetype2Version
#define Freetype2Version		9.6.3
#endif

#if SharedLibFreetype2
#ifndef SharedLibtoolFreetype2Rev
#define SharedLibtoolFreetype2Rev	9:6:3
#endif
#ifndef SharedFreetype2Rev
#if LibtoolMinorVersions
#define SharedFreetype2Rev		6.3
#else
#define SharedFreetype2Rev		9.0
#endif
#endif
SharedLibReferences(FREETYPE2,freetype,$(FREETYPE2LIBSRC),SOFREETYPE2REV,SharedFreetype2Rev)
#else
ProjectUnsharedLibReferences(FREETYPE2,freetype,$(FREETYPE2LIBSRC),XBuildLibDir)
#endif

#ifdef UseInstalled
  FREETYPE2INCDIR = $(INCDIR)
#else
  FREETYPE2INCDIR = $(BUILDINCDIR)
#endif

#endif /* BuildFreetype2Library */

#if UseFreetype2
#if !BuildFreetype2Library && HasFreetype2

#ifndef Freetype2Dir
#define Freetype2Dir /usr
#ifndef Freetype2DirStandard
# define Freetype2DirStandard YES
#endif
#endif
#ifndef Freetype2DirStandard
#define Freetype2DirStandard NO
#endif

#ifndef Freetype2LibDir
#define Freetype2LibDir Freetype2Dir/LibDirName
# if Freetype2DirStandard
#  define Freetype2LibDirStandard YES
# endif
#endif
#ifndef Freetype2LibDirStandard
# define Freetype2LibDirStandard NO
#endif

#ifndef Freetype2IncDir
#define Freetype2IncDir Freetype2Dir/include
# if Freetype2DirStandard
#  define Freetype2IncDirStandard YES
# endif
#endif

     FREETYPE2DIR = Freetype2Dir
  FREETYPE2LIBDIR = Freetype2LibDir
  FREETYPE2INCDIR = Freetype2IncDir
#if Freetype2LibDirStandard
     FREETYPE2LIB = -lfreetype
#else
     FREETYPE2LIB = -L$(FREETYPE2LIBDIR) -lfreetype
#endif

#endif /* HasFreetype2 && !BuildFreetype2Library */

#ifndef Freetype2IncDirStandard
# define Freetype2IncDirStandard NO
#endif

#if BuildFreetype2Library || HasFreetype2
#if Freetype2IncDirStandard
FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)/freetype2
#else
FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR) -I$(FREETYPE2INCDIR)/freetype2
#endif
 FREETYPE2DEFINES = -DFREETYPE2
#endif

#endif /* UseFreetype2 */

#ifndef SharedLibExpat
#define SharedLibExpat		HasSharedLibraries
#endif
#ifndef ExtraLibExpat
#define ExtraLibExpat		SharedLibExpat
#endif
#ifndef NormalLibExpat
#define NormalLibExpat		(!SharedLibExpat || ForceNormalLib)
#endif
#ifndef DebugLibExpat
#define DebugLibExpat		BuildDebugLibraries
#endif
#ifndef ProfileLibExpat
#define ProfileLibExpat		BuildProfileLibraries
#endif
      EXPATLIBSRC = $(LIBSRC)/expat

/*
 * Expat 1.95.6.
 *
 * Get the library version information from LIBCURRENT, LIBREVISION and LIBAGE
 * in xc/extras/expat/configure.
 *
 * LIBCURRENT:LIBREVISION:LIBAGE = 4:0:4
 *
 * The LibtoolMinorVersions revision is "(LIBCURRENT - LIBAGE).LIBAGE".
 * The !LibtoolMinorVersions revision is "LIBCURRENT.0".
 */
#ifndef ExpatVersion
#define ExpatVersion		1.95.6
#endif

#if SharedLibExpat
#ifndef SharedLibtoolExpatRev
#define SharedLibtoolExpatRev	4:0:4
#endif
#ifndef SharedExpatRev
#if LibtoolMinorVersions
#define SharedExpatRev		0.4
#else
#define SharedExpatRev		4.0
#endif
#endif
SharedLibReferences(EXPAT,expat,$(EXPATLIBSRC),SOEXPATREV,SharedExpatRev)
#else
ProjectUnsharedLibReferences(EXPAT,expat,$(EXPATLIBSRC),XBuildLibDir)
#endif

#if UseExpat

#if BuildExpatLibrary
    EXPATINCLUDES = $(TOP_X_INCLUDES)
     EXPATDEFINES = -DEXPAT
#else	/* BuildExpatLibrary */

#if HasExpat

#ifndef ExpatDir
#define ExpatDir /usr
#define ExpatDirStandard YES
#endif
#ifndef ExpatDirStandard
#define ExpatDirStandard NO
#endif

#ifndef ExpatLibDir
#define ExpatLibDir ExpatDir/LibDirName
# if ExpatDirStandard
#  define ExpatLibDirStandard YES
# endif
#endif
#ifndef ExpatLibDirStandard
#define ExpatLibDirStandard NO
#endif

#ifndef ExpatIncDir
#define ExpatIncDir ExpatDir/include
# if ExpatDirStandard
#  define ExpatIncDirStandard YES
# endif
#endif
#ifndef ExpatIncDirStandard
#define ExpatIncDirStandard NO
#endif

         EXPATDIR = ExpatDir
      EXPATLIBDIR = ExpatLibDir
      EXPATINCDIR = ExpatIncDir
#if ExpatIncDirStandard
    EXPATINCLUDES =
#else
    EXPATINCLUDES = -I$(EXPATINCDIR)
#endif
#if ExpatLibDirStandard
         EXPATLIB = -lexpat
#else
         EXPATLIB = -L$(EXPATLIBDIR) -lexpat
#endif
     EXPATDEFINES = -DEXPAT
#endif /* HasExpat */

#endif /* else BuildExpatLibrary */

#define ExpatClientLibs $(EXPATLIB)
#define ExpatClientDepLibs $(DEPEXPATLIB)

#endif /* UseExpat */

#if BuildXft1Library
#ifndef SharedLibXft1
#define SharedLibXft1		HasSharedLibraries
#endif
#ifndef ExtraLibXft1
#define ExtraLibXft1		SharedLibXft1
#endif
#ifndef NormalLibXft1
#define NormalLibXft1		NO
#endif
#ifndef DebugLibXft1
#define DebugLibXft1		NO
#endif
#ifndef ProfileLibXft1
#define ProfileLibXft1		NO
#endif
#else
#undef  SharedLibXft1
#define SharedLibXft1		NO
#undef  ExtraLibXft1
#define ExtraLibXft1		NO
#undef  NormalLibXft1
#define NormalLibXft1		NO
#undef  DebugLibXft1
#define DebugLibXft1		NO
#undef  ProfileLibXft1
#define ProfileLibXft1		NO
#endif

#if BuildRender
       XFT1LIBSRC = $(LIBSRC)/Xft1
#if SharedLibXft1
#ifndef SharedXft1Rev
#define SharedXft1Rev 1.1
#endif
SharedLibReferences(XFT1,Xft,$(XFT1LIBSRC),SOXFT1REV,SharedXft1Rev)
#else
ProjectUnsharedLibReferences(XFT1,Xft,$(XFT1LIBSRC),XBuildLibDir)
#endif
#endif

#ifndef Xft1ClientDepLibs
#if UseFreetype2
#define Xft1ClientDepLibs $(DEPXFT1LIB) $(DEPFREETYPE2LIB) $(DEPXRENDERLIB)
#else
#define Xft1ClientDepLibs $(DEPXFT1LIB) $(DEPXRENDERLIB)
#endif
#endif
#ifndef Xft1ClientLibs
#if UseFreetype2
#define Xft1ClientLibs $(XFT1LIB) $(FREETYPE2LIB) $(XRENDERLIB)
#else
#define Xft1ClientLibs $(XFT1LIB) $(XRENDERLIB)
#endif
#endif

#if BuildXftLibrary
#ifndef SharedLibXft
#define SharedLibXft		HasSharedLibraries
#endif
#ifndef ExtraLibXft
#define ExtraLibXft		SharedLibXft
#endif
#ifndef NormalLibXft
#define NormalLibXft		(!SharedLibXft || ForceNormalLib)
#endif
#ifndef DebugLibXft
#define DebugLibXft		BuildDebugLibraries
#endif
#ifndef ProfileLibXft
#define ProfileLibXft		BuildProfileLibraries
#endif
#else
#undef  SharedLibXft
#define SharedLibXft		NO
#undef  ExtraLibXft
#define ExtraLibXft		NO
#undef  NormalLibXft
#define NormalLibXft		NO
#undef  DebugLibXft
#define DebugLibXft		NO
#undef  ProfileLibXft
#define ProfileLibXft		NO
#endif

#if BuildRender
        XFTLIBSRC = $(LIBSRC)/Xft
#if SharedLibXft
#ifndef SharedXftRev
#define SharedXftRev 2.1
#endif
SharedLibReferences(XFT,Xft,$(XFTLIBSRC),SOXFTREV,SharedXftRev)
#else
ProjectUnsharedLibReferences(XFT,Xft,$(XFTLIBSRC),XBuildLibDir)
#endif
#endif

#ifndef XftClientDepLibs
#define XftClientDepLibs $(DEPXFTLIB) FontconfigClientDepLibs $(DEPXRENDERLIB)
#endif
#ifndef XftClientLibs
#define XftClientLibs $(XFTLIB) FontconfigClientLibs $(XRENDERLIB)
#endif

#if BuildFontconfigLibrary
#ifndef SharedLibFontconfig
#define SharedLibFontconfig	HasSharedLibraries
#endif
#ifndef ExtraLibFontconfig
#define ExtraLibFontconfig	SharedLibFontconfig
#endif
#ifndef NormalLibFontconfig
#define NormalLibFontconfig	(!SharedLibFontconfig || ForceNormalLib)
#endif
#ifndef DebugLibFontconfig
#define DebugLibFontconfig	BuildDebugLibraries
#endif
#ifndef ProfileLibFontconfig
#define ProfileLibFontconfig	BuildProfileLibraries
#endif

 FONTCONFIGLIBSRC = $(LIBSRC)/fontconfig
#if SharedLibFontconfig
#ifndef SharedFontconfigRev
#define SharedFontconfigRev 1.0
#endif
SharedLibReferences(FONTCONFIG,fontconfig,$(FONTCONFIGLIBSRC),SOFONTCONFIGREV,SharedFontconfigRev)
#else
ProjectUnsharedLibReferences(FONTCONFIG,fontconfig,$(FONTCONFIGLIBSRC),XBuildLibDir)
#endif

#ifdef UseInstalled
 FONTCONFIGINCDIR = $(INCDIR)
#else
 FONTCONFIGINCDIR = $(BUILDINCDIR)
#endif

FONTCONFIGINCLUDES = -I$(FONTCONFIGINCDIR)

#if UseInstalledX11
          FCCACHE = $(BINDIR)/fc-cache
#else
          FCCACHE = set -x; $(CLIENTENVSETUP) $(PRELOADXFTSETUP) FONTCONFIG_PATH=$(FONTCONFIGLIBSRC) $(XBUILDBINDIR)/fc-cache
#endif

#endif /* BuildFontconfigLibrary */

      FCCACHEOPTS = -f -v

#if UseFontconfig
#if HasFontconfig && !BuildFontconfigLibrary

#ifndef FontconfigDir
# define FontconfigDir /usr
# ifndef FontconfigDirStandard
#  define FontconfigDirStandard YES
# endif
#endif

#ifndef FontconfigDirStandard
# define FontconfigDirStandard NO
#endif

#ifndef FontconfigLibDir
# define FontconfigLibDir FontconfigDir/LibDirName
# if FontconfigDirStandard
#  define FontconfigLibDirStandard YES
# endif
#endif
#ifndef FontconfigLibDirStandard
# define FontconfigLibDirStandard NO
#endif

#ifndef FontconfigBinDir
# define FontconfigBinDir FontconfigDir/bin
#endif

#ifndef FontconfigIncDir
# define FontconfigIncDir FontconfigDir/include
# if FontconfigDirStandard
#  define FontconfigIncDirStandard YES
# endif
#endif

#ifndef FontconfigIncDirStandard
# define FontconfigIncDirStandard NO
#endif

    FONTCONFIGDIR = FontconfigDir
 FONTCONFIGLIBDIR = FontconfigLibDir
 FONTCONFIGINCDIR = FontconfigIncDir
 FONTCONFIGBINDIR = FontconfigBinDir
#if FontconfigLibDirStandard
    FONTCONFIGLIB = -lfontconfig
#else
    FONTCONFIGLIB = -L$(FONTCONFIGLIBDIR) -lfontconfig
#endif

#if FontconfigIncDirStandard
FONTCONFIGINCLUDES =
#else
FONTCONFIGINCLUDES = -I$(FONTCONFIGINCDIR)
#endif

          FCCACHE = $(FONTCONFIGBINDIR)/fc-cache

#endif /* HasFontconfig && !BuildFontconfigLibrary */

#if BuildFontconfigLibrary || HasFontconfig
FONTCONFIGDEFINES = -DFONTCONFIG
#endif

#ifndef FontconfigClientDepLibs
#define FontconfigClientDepLibs $(DEPFONTCONFIGLIB) $(DEPFREETYPE2LIB) ExpatClientDepLibs
#endif
#ifndef FontconfigClientLibs
#define FontconfigClientLibs $(FONTCONFIGLIB) $(FREETYPE2LIB) ExpatClientLibs
#endif

#endif /* UseFontconfig */

      XFTINCLUDES = $(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES)

#if defined(HasLibpng) && HasLibpng

/*
 * Libpng controls:
 *
 *	LibpngDir		prefix for all libpng files
 *	LibpngDirStandard	Boolean - whether png headers/libs are
 *				in default compile/link paths
 *	LibpngLibDir		Directory holding png library
 *	LibpngLibDirStandard	Boolean - whether png libs are
 *				in default link path
 *	LibpngIncDir		Directory holding png includes
 *	LibpngIncDirStandard	Boolean - whether png includes are
 *				in default compile path
 *
 * Make sure that *Standard is set correctly, if not, the
 * standard compile/link paths will be added *before* the
 * local X directorys and installed versions of the standard
 * X headers will end up getting used.
 */

#ifndef LibpngDir
#define LibpngDir /usr
#define LibpngDirStandard YES
#endif
#ifndef LibpngDirStandard
#define LibpngDirStandard NO
#endif

#ifndef LibpngLibDir
#define LibpngLibDir LibpngDir/LibDirName
#if LibpngDirStandard
#define LibpngLibDirStandard YES
#endif
#endif
#ifndef LibpngLibDirStandard
#define LibpngLibDirStandard NO
#endif

#ifndef LibpngIncDir
#define LibpngIncDir LibpngDir/include
#if LibpngDirStandard
#define LibpngIncDirStandard YES
#endif
#endif
#ifndef LibpngIncDirStandard
#define LibpngIncDirStandard NO
#endif

     LIBPNGINCDIR = LibpngIncDir
#if LibpngIncDirStandard
        LIBPNGINC =
#else
        LIBPNGINC = -I$(LIBPNGINCDIR)
#endif
        LIBPNGDIR = LibpngDir
     LIBPNGLIBDIR = LibpngLibDir
     LIBPNGINCDIR = LibpngIncDir
#if LibpngLibDirStandard
        LIBPNGLIB = -lpng
#else
        LIBPNGLIB = -L$(LIBPNGLIBDIR) -lpng
#endif

#endif

#ifndef XmuuClientDepLibs
#define XmuuClientDepLibs $(DEPXMUULIB) $(DEPXLIB)
#endif
#ifndef XmuuClientLibs
#define XmuuClientLibs $(XMUULIB) $(XLIB)
#endif

#ifndef LdLibraryPath
#define LdLibraryPath LD_LIBRARY_PATH
#endif

#if BuildXKBlib
#ifndef SharedLibxkbfile
#define SharedLibxkbfile	HasSharedLibraries
#endif
#ifndef ExtraLibxkbfile
#define ExtraLibxkbfile		SharedLibxkbfile
#endif
#ifndef NormalLibxkbfile
#define NormalLibxkbfile	(!SharedLibxkbfile || ForceNormalLib)
#endif
#ifndef DebugLibxkbfile
#define DebugLibxkbfile		BuildDebugLibraries
#endif
#ifndef ProfileLibxkbfile
#define ProfileLibxkbfile	BuildProfileLibraries
#endif
#else
#undef  SharedLibxkbfile
#define SharedLibxkbfile	NO
#undef  ExtraLibxkbfile
#define ExtraLibxkbfile		NO
#undef  NormalLibxkbfile
#define NormalLibxkbfile	NO
#undef  DebugLibxkbfile
#define DebugLibxkbfile		NO
#undef  ProfileLibxkbfile
#define ProfileLibxkbfile	NO
#endif

#if BuildXKB
    XKBFILELIBSRC = $(LIBSRC)/xkbfile
#if SharedLibxkbfile
# ifndef SharedxkbfileRev
#  define SharedxkbfileRev	1.0
# endif
SharedLibReferences(XKBFILE,xkbfile,$(XKBFILESRC),SOXKBFILEREV, SharedxkbfileRev)
#else
ProjectUnsharedLibReferences(XKBFILE,xkbfile,$(XKBFILELIBSRC),XBuildLibDir)
#endif
#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

# if defined(UseInstalled) || (CrossCompiling &&  UseInstalledOnCrossCompile)
       XKBCOMPCMD = $(BINDIR)/XkbComp
# else
       XKBCOMPSRC = $(PROGRAMSRC)/XkbComp
#  if CrossCompiling
       XKBCOMPCMD = $(PROGRAMSRC)/XkbComp/cross/XkbComp
#  else
       XKBCOMPCMD = $(CLIENTENVSETUP) $(PRELOADSETUP) $(XBUILDBINDIR)/XkbComp
#  endif
# endif
#else /* !BuildXKBlib */
# ifndef XkbClientDepLibs
#  define XkbClientDepLibs
# endif
# ifndef XkbClientLibs
#  define XkbClientLibs
# endif
#endif /* BuildXKBlib */

#if BuildXKBlib
#ifndef SharedLibxkbui
#define SharedLibxkbui		HasSharedLibraries
#endif
#ifndef ExtraLibxkbui
#define ExtraLibxkbui		SharedLibxkbui
#endif
#ifndef NormalLibxkbui
#define NormalLibxkbui		(!SharedLibxkbui || ForceNormalLib)
#endif
#ifndef DebugLibxkbui
#define DebugLibxkbui		BuildDebugLibraries
#endif
#ifndef ProfileLibxkbui
#define ProfileLibxkbui		BuildProfileLibraries
#endif
#else
#undef  SharedLibxkbui
#define SharedLibxkbui		NO
#undef  NormalLibxkbui
#define NormalLibxkbui		NO
#undef  DebugLibxkbui
#define DebugLibxkbui		NO
#undef  ProfileLibxkbui
#define ProfileLibxkbui	NO
#endif

#if BuildXKB
      XKBUILIBSRC = $(LIBSRC)/xkbui
#if SharedLibxkbui
# ifndef SharedxkbuiRev
#  define SharedxkbuiRev	1.0
# endif
SharedLibReferences(XKBUI,xkbui,$(XKBUISRC),SOXKBUIREV, SharedxkbuiRev)
#else
ProjectUnsharedLibReferences(XKBUI,xkbui,$(XKBUILIBSRC),XBuildLibDir)
#endif
#endif

#ifndef XkbuiLibs
# define	XkbuiLibs $(XKBUILIB)
#endif
#ifndef XkbuiDepLibs
# define	XkbuiDepLibs $(DEPXKBFILELIB)
#endif

#ifndef XawClientDepLibs
#define XawClientDepLibs $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXPMLIB) $(DEPXLIB)
#endif
#ifndef XawClientLibs
#define XawClientLibs $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XPMLIB) $(XLIB)
#endif

#if BuildXTrapLibrary
#ifndef SharedLibXTrap
#define SharedLibXTrap		HasSharedLibraries
#endif
#ifndef ExtraLibXTrap
#define ExtraLibXTrap		SharedLibXTrap
#endif
#ifndef NormalLibXTrap
#define NormalLibXTrap		(!SharedLibXTrap | ForceNormalLib)
#endif
#ifndef DebugLibXTrap
#define DebugLibXTrap		BuildDebugLibraries
#endif
#ifndef ProfileLibXTrap
#define ProfileLibXTrap		BuildProfileLibraries
#endif
#else
#undef  SharedLibXTrap
#define SharedLibXTrap		NO
#undef  ExtraLibXTrap
#define ExtraLibXTrap		NO
#undef  NormalLibXTrap
#define NormalLibXTrap		NO
#undef  DebugLibXTrap
#define DebugLibXTrap		NO
#undef  ProfileLibXTrap
#define ProfileLibXTrap		NO
#endif

#if BuildXTrap
      XTRAPLIBSRC = $(LIBSRC)/XTrap
#if SharedLibXTrap
#ifndef SharedXTrapRev
#define SharedXTrapRev 6.4
#endif
SharedLibReferences(XTRAP,XTrap,$(XTRAPLIBSRC),SOXTRAPREV,SharedXTrapRev)
#else
ProjectUnsharedLibReferences(XTRAP,XTrap,$(XTRAPLIBSRC),XBuildLibDir)
#endif
#endif

#ifndef RefThreads
#define RefThreads		(BuildGLXLibrary || BuildOSMesaLib || \
				 BuildX11Lib || BuildXtLib)
#endif
#ifndef BuildThreadStubLibrary
#define BuildThreadStubLibrary	(NeedThreadStubLibrary && \
				 (BuildLibraries || RefThreads))
#endif

#if BuildThreadStubLibrary
#ifndef SharedLibXThrStub
#define SharedLibXThrStub	HasSharedLibraries
#endif
#ifndef ExtraLibXThrStub
#define ExtraLibXThrStub	SharedLibXThrStub
#endif
#ifndef NormalLibXThrStub
#define NormalLibXThrStub	(!SharedLibXThrStub || ForceNormalLib)
#endif
#ifndef DebugLibXThrStub
#define DebugLibXThrStub	BuildDebugLibraries
#endif
#ifndef ProfileLibXThrStub
#define ProfileLibXThrStub	BuildProfileLibraries
#endif

   XTHRSTUBLIBSRC = $(LIBSRC)/XThrStub
#if SharedLibXThrStub
#ifndef SharedXThrStubRev
#define SharedXThrStubRev 6.1
#endif
SharedLibReferences(XTHRSTUB,XThrStub,$(XTHRSTUBLIBSRC),SOXTHRSTUBREV,SharedXThrStubRev)
#else
ProjectUnsharedLibReferences(XTHRSTUB,XThrStub,$(XTHRSTUBSRC),XBuildLibDir)
#endif
#else
#undef  SharedLibXThrStub
#define SharedLibXThrStub	NO
#undef  ExtraLibXThrStub
#define ExtraLibXThrStub	NO
#undef  NormalLibXThrStub
#define NormalLibXThrStub	NO
#undef  DebugLibXThrStub
#define DebugLibXThrStub	NO
#undef  ProfileLibXThrStub
#define ProfileLibXThrStub	NO
#endif

#ifndef NeedDefaultDepLibs
#define NeedDefaultDepLibs YES
#endif

#if NeedDefaultDepLibs
/*
 * Individual libraries should override this
 */
#if HasSharedLibraries || defined(UseInstalled)
          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
#else
          DEPLIBS = $(LOCAL_LIBRARIES)
#endif

         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 */

/*
 * InstallAppDefaultsLong - general rule to install application default file
 * if the InstallAppDefFiles configuration parameter is set.
 */
#ifndef InstallAppDefaultsLong
#if UseConfDirForAppDefaults
#if InstallAppDefFiles
#define InstallAppDefaultsLong(file,class)				@@\
LinkConfDirectory(app-defaults,.,app-defaults,.)			@@\
InstallNamedTarget(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
#else
#define InstallAppDefaultsLong(file,class)				@@\
LinkConfDirectory(app-defaults,.,app-defaults,.)			@@\
InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
#endif /* InstallAppDefFiles */
#else /* UseConfDirForAppDefaults */
#if InstallAppDefFiles
#define InstallAppDefaultsLong(file,class)				@@\
InstallNamedTarget(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
#else
#define InstallAppDefaultsLong(file,class)				@@\
InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
#endif /* InstallAppDefFiles */
#endif /* UseConfDirForAppDefaults */
#endif /* InstallAppDefaultsLong */

/*
 * MakeFcCache - generate rules to build fontconfig cache database
 */

#if BuildFontconfigLibrary || HasFontconfig && !CrossCompiling

# ifndef MakeFcCache
#  define MakeFcCache(deplist)						@@\
all:: fonts.cache-1							@@\
									@@\
fonts.cache-1: deplist							@@\
	RunProgram(FCCACHE, $(FCCACHEOPTS) .)				@@\
									@@\
clean::									@@\
	RemoveFiles(fonts.cache*)
# endif /* MakeFcCache */

# ifndef InstallFcCache
#  define InstallFcCache(dest)						@@\
install::								@@\
	RunProgram(FCCACHE, $(FCCACHEOPTS) $(DESTDIR)dest)
# endif /* InstallFcCache */

#else

#ifndef MakeFcCache
#define MakeFcCache(deplist)
#endif

#ifndef InstallFcCache
#define InstallFcCache(dest)
#endif

#endif

/*
 * MakeFontsScale - generate rules to build fonts.scale database.
 */
#ifndef MakeFontsScale
# if !CrossCompiling ||  UseInstalledOnCrossCompile
#  define MakeFontsScale(deplist)					@@\
all:: fonts.scale							@@\
									@@\
fonts.scale:  deplist							@@\
	RemoveFile(fonts.scale)						@@\
	RunProgram(MKFONTSCALE, .)					@@\
									@@\
clean::									@@\
	RemoveFile(fonts.scale)
# else
#  define MakeFontsScale(deplist)					@@\
clean::									@@\
	RemoveFile(fonts.scale)
# endif
#endif /* MakeFontsScale */

/*
 * MakeFontsDir - generate rules to build fonts.dir database.
 */
#ifndef MakeFontsDir
# if !CrossCompiling ||  UseInstalledOnCrossCompile
#  define MakeFontsDir(deplist)						@@\
all:: fonts.dir								@@\
									@@\
fonts.dir:  deplist							@@\
	RemoveFile(fonts.dir)						@@\
	RunProgram(MKFONTDIR, $(MKFONTDIROPTS) .)			@@\
									@@\
clean::									@@\
	RemoveFile(fonts.dir)
# else
#  define MakeFontsDir(deplist)						@@\
clean::									@@\
	RemoveFile(fonts.dir)
# endif
#endif /* MakeFontsDir */


/*
 * MakeFonts - generate rules to build font database.
 */
#ifndef MakeFonts
# if !CrossCompiling || UseInstalledOnCrossCompile
#  define MakeFonts()							@@\
all::  $(OBJS)								@@\
									@@\
MakeFontsDir($(OBJS))							@@\
									@@\
clean::									@@\
	RemoveFiles(*.pcf)						@@\
	RemoveFiles(*.pcf.Z)						@@\
	RemoveFiles(*.pcf.gz)
# else
#  define MakeFonts()							@@\
MakeFontsDir($(OBJS))							@@\
									@@\
clean::									@@\
	RemoveFiles(*.pcf)						@@\
	RemoveFiles(*.pcf.Z)						@@\
	RemoveFiles(*.pcf.gz)
# endif
#endif /* MakeFonts */

#ifndef InstallFontsDir
# if !CrossCompiling ||  UseInstalledOnCrossCompile
#  define InstallFontsDir(dest)						@@\
install::								@@\
	MakeDir($(DESTDIR)dest)						@@\
	@if [ X$(STATIC_FONTS_SCALE) = X ]; then (set -x; \		@@\
	  RemoveFile($(DESTDIR)dest/fonts.scale); \			@@\
	  RunProgram(MKFONTSCALE, $(DESTDIR)dest)); \			@@\
	else (set -x; \							@@\
	  InstallInline(fonts.scale,$(INSTDATFLAGS),dest)); \		@@\
	fi								@@\
	RemoveFile($(DESTDIR)dest/fonts.dir)				@@\
	RunProgram(MKFONTDIR, $(MKFONTDIROPTS) $(DESTDIR)dest)
# else
#  define InstallFontsDir(dest)
# endif
#endif

/*
 * InstallFontObjs - generate rules to install font files
 */
#ifndef InstallFontObjs
# if !CrossCompiling || UseInstalledOnCrossCompile
#  define InstallFontObjs(objs,dest)					@@\
InstallMultipleFlags(objs,dest,$(INSTDATFLAGS))				@@\
									@@\
InstallFontsDir(dest)
# else
#  define InstallFontObjs(objs,dest)
# endif
#endif /* InstallFontObjs */


/*
 * InstallFonts - generate rules to install font files
 */
#ifndef InstallFonts
#define InstallFonts(dest)						@@\
InstallFontObjs($(OBJS),dest)
#endif /* InstallFonts */


/*
 * InstallFontAliases - generate rules to install font aliases databases.
 */
#ifndef InstallFontAliases
#define InstallFontAliases(dest)					@@\
InstallTarget(install,fonts.alias,$(INSTDATFLAGS),dest)
#endif /* InstallFontAliases */

#ifndef InstallNamedFontAliases
#define InstallNamedFontAliases(src,dest)				@@\
InstallNamedTarget(install,src,$(INSTDATFLAGS),dest,fonts.alias)
#endif /* InstallNamedFontAliases */

#ifndef FontSrc
#define FontSrc(basename) basename.bdf
#endif

#ifndef FontBaseObj
#define FontBaseObj(basename)basename.pcf
#endif

/*
 * InstallFontScale - generate rules to install font scale database.
 */
#ifndef InstallFontScale
#define InstallFontScale(dest)						@@\
InstallTarget(install,fonts.scale,$(INSTDATFLAGS),dest)
#endif /* InstallFontScale */

/*
 * UncompressedFontTargetLong
 */
#if ! CrossCompiling || UseInstalledOnCrossCompile
# ifndef UncompressedFontTargetLong
#  define UncompressedFontTargetLong(sname,tname)			@@\
FontBaseObj(tname):  FontSrc(sname)					@@\
	RunProgram(FONTC,$(FONTCFLAGS) $? -o $@)
# endif /* UncompressedFontTargetLong */
#else
# ifndef UncompressedFontTargetLong
#  define UncompressedFontTargetLong(sname,tname)
# endif
#endif

/*
 * CompressedFontTarget
 */
#ifndef GzipFontCompression
#define GzipFontCompression NO
#endif

#if ! CrossCompiling || UseInstalledOnCrossCompile
# ifndef CompressedFontTargetLong
#  if GzipFontCompression
#   define CompressedFontTargetLong(sname,tname)			@@\
FontBaseObj(tname).gz:  FontSrc(sname)					@@\
	RunProgram(FONTC,$(FONTCFLAGS) $?) | $(GZIPCMD) > $@		@@\
									@@\
clean::									@@\
	RemoveFile(FontBaseObj(tname).gz)
#  else
#   define CompressedFontTargetLong(sname,tname)			@@\
FontBaseObj(tname).Z:  FontSrc(sname)					@@\
	RunProgram(FONTC,$(FONTCFLAGS) $?) | $(COMPRESS) > $@		@@\
									@@\
clean::									@@\
	RemoveFile(FontBaseObj(tname).Z)
#  endif
# endif /* CompressedFontTargetLong */
#else
#   define CompressedFontTargetLong(sname,tname)
#endif

/*
 * UncompressedFontTarget
 */
#ifndef UncompressedFontTarget
#define UncompressedFontTarget(basename) UncompressedFontTargetLong(basename,basename)
#endif /* UncompressedFontTarget */

#ifndef CompressedFontTarget
#define CompressedFontTarget(basename) CompressedFontTargetLong(basename,basename)
#endif /* CompressedFontTarget */

#if !defined(FontTarget) && !defined(FontObj)
#if CompressAllFonts
#define FontTargetLong(sname,tname) CompressedFontTargetLong(sname,tname)
#define FontTarget(basename) CompressedFontTarget(basename)
#if GzipFontCompression
#define FontObj(basename) FontBaseObj(basename).gz
#else
#define FontObj(basename) FontBaseObj(basename).Z
#endif
#else
#define FontTargetLong(sname,tname) UncompressedFontTargetLong(sname,tname)
#define FontTarget(basename) UncompressedFontTarget(basename)
#define FontObj(basename) FontBaseObj(basename)
#endif /* CompressAllFonts */
#endif


#ifndef EncObj
#define EncObj(basename) basename.enc
#endif
#ifndef EncObjComp
#if GzipFontCompression
#define EncObjComp(basename) basename.enc.gz
#else
#define EncObjComp(basename) basename.enc.Z
#endif
#endif

#ifndef EncodingTarget
#define EncodingTarget(basename) /**/
#endif

#ifndef CompEncodingTarget
#if GzipFontCompression
#define CompEncodingTarget(basename)					@@\
EncObjComp(basename): EncObj(basename)					@@\
	cat $? | $(GZIPCMD) > $@
#else
#define CompEncodingTarget(basename)					@@\
EncObjComp(basename): EncObj(basename)					@@\
	cat $? | $(COMPRESS) > $@
#endif
#endif

#ifndef MakeEncDir
# if !CrossCompiling || UseInstalledOnCrossCompile
#  define MakeEncDir(deplist,inst,dirlist )				@@\
AllTarget(encodings.dir)						@@\
									@@\
encodings.dir: deplist							@@\
	RemoveFiles(encodings.dir fonts.dir)				@@\
	@(E=; for i in dirlist; do \					@@\
	   E="$$E -e $$i"; done; \					@@\
	 set -x; \							@@\
	 RunProgram(MKFONTDIR, -n -r -p inst/ $$E .))			@@\
									@@\
clean::									@@\
	RemoveFiles(fonts.dir encodings.dir)
# else
#  define MakeEncDir(deplist,inst,dirlist )				@@\
clean::									@@\
	RemoveFiles(fonts.dir encodings.dir)
# endif
#endif

#ifndef MakeEncodings
#define MakeEncodings(deplist,inst,dirlist)				@@\
									@@\
MakeEncDir(deplist $(OBJS),inst,dirlist)				@@\
									@@\
clean::									@@\
	RemoveFiles(*.enc.Z *.enc.gz)
#endif /* MakeEncodings */

#ifndef InstallEncObjs
# if !CrossCompiling || UseInstalledOnCrossCompile
#  define InstallEncObjs(objs,dest)					@@\
InstallMultipleFlags(objs,dest,$(INSTDATFLAGS))				@@\
									@@\
InstallTarget(install,encodings.dir,$(INSTDATFLAGS),dest)
# else
#  define InstallEncObjs(objs,dest)
# endif
#endif /* InstallEncObjs */

#ifndef InstallEncodings
#define InstallEncodings(dest)						@@\
InstallEncObjs($(OBJS),dest)
#endif /* InstallEncodings */

#ifndef InstallEncodingsDir
# if !CrossCompiling || UseInstalledOnCrossCompile
#  define InstallEncodingsDir(edir,fdir)				@@\
InstallNamedTarget(install,edir/encodings.dir,$(INSTDATFLAGS),fdir,encodings.dir)
# else
#  define InstallEncodingsDir(edir,fdir)
# endif
#endif


#ifndef MakeBdfFontFromUCSMaster
#define MakeBdfFontFromUCSMaster(font,enc)				@@\
font-enc.bdf: font.bdf $(UCS2ANY)					@@\
	RemoveFile($@)							@@\
	$(UCS2ANY) font.bdf $(UCSMAPPREFIX)enc enc			@@\
									@@\
clean::									@@\
	RemoveFile(font-enc.bdf)
#endif

#ifndef MakeTruncatedUCSBdfFont
#if HasPerl5
#define MakeTruncatedUCSBdfFont(font,trunc,name)			@@\
name.bdf: font.bdf $(BDFTRUNCATE)					@@\
	RemoveFile($@)							@@\
	RunPerlScript($(BDFTRUNCATE),trunc < font.bdf > name.bdf)	@@\
									@@\
clean::									@@\
	RemoveFile(name.bdf)
#endif
#endif


/*
 * MakeXkbDir
 */
#ifndef MakeXkbDir
# if !CrossCompiling || UseInstalledOnCrossCompile
#  define MakeXkbDir(basedir,subdir)					@@\
all::   Concat(subdir,.dir)						@@\
									@@\
Concat(subdir,.dir):							@@\
	RemoveFile(Concat(subdir,.dir))					@@\
	$(XKBCOMPCMD) -lfhlpR -o Concat(subdir,.dir) '*'		@@\
									@@\
InstallTarget(install,Concat(subdir,.dir),$(INSTDATFLAGS),basedir)	@@\
									@@\
clean::									@@\
	RemoveFile(Concat(subdir,.dir))
# else
#  define MakeXkbDir(basedir,subdir)					@@\
clean::									@@\
	RemoveFile(Concat(subdir,.dir))
# endif
#endif

/*
 * 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) Concat(-P-I,file) $(XDOCMACROS) 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								@@\
	@if [ X$(NOHTML) = X ]; then \					@@\
	  (set -x; \							@@\
	    $(TBL) $(XDOCMACROS) srcs | \				@@\
		$(EQN) | $(HTMLROFF) $(MSMACROS) Concat(-P-I,file) \	@@\
		2> index.raw > file.nhtml \				@@\
	      && PostProcessTroffHTML(file.nhtml,$@)); else \		@@\
		: > file.html; fi
#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 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								@@\
	@if [ -f name.PS ]; then set -x; \				@@\
	  RemoveFile(name.ps); \					@@\
	  $(LN) name.PS name.ps; \					@@\
	fi								@@\
									@@\
ConvertPsToPdf(name)							@@\
									@@\
clean::									@@\
	$(RM) name.ps PdfClean(name)					@@\
									@@\
InstallDoc(name,deps)
#endif

/*
 * Rule for maintainers to use to updated generated copies of fonts in the
 * source tree.  Use with care.
 */

#ifndef UpdateDerivedFont
#define UpdateDerivedFont(src,dst)					@@\
update.fonts:: src							@@\
	-@if [ -f dst ]; then \						@@\
	    if [ "$(FORCEUPDATE)" = yes ]; then \			@@\
		if [ "$(FOLLOWLINK)" = no ]; then \			@@\
			(set -x; $(RM) dst); \				@@\
		fi; \							@@\
		set -x; cp src dst; \					@@\
	    else \							@@\
		grep -v "XFree86:" src > __tmp1__; \			@@\
		grep -v "XFree86:" dst > __tmp2__; \			@@\
		if diff __tmp1__ __tmp2__ > /dev/null 2>&1; then :; \	@@\
		else \							@@\
			if [ "$(FOLLOWLINK)" = no ]; then \		@@\
				(set -x; $(RM) dst); \			@@\
			fi; \						@@\
			set -x; cp src dst; \					@@\
		fi; \							@@\
	    fi; \							@@\
	fi								@@\
	@$(RM) __tmp1__ __tmp2__
#endif

#if !HasFreetype2
      FT2PRELOADPATTERN = libfreetype.so.?
#endif
#if !HasFontconfig
       FCPRELOADPATTERN = libfontconfig.so.?
#endif
      XFTPRELOADPATTERN = libXft.so.?
  XRENDERPRELOADPATTERN = libXrender.so.?
    XFONTPRELOADPATTERN = libXfont*.so.?

