XCOMM $XdotOrg: xc/config/cf/xorg.cf,v 1.44 2005/01/27 03:50:46 ajax Exp $
/*
 * This configuration file contains all of the configuration
 * information for the Xorg based X Servers.
 *
 * Most of these settings can be overridden in a vendor.cf or the
 * BeforeVendor part of the site.def file.
 */
XCOMM $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $

/* Get and set version information. */

#include "date.def"
#include "xorgversion.def"

#if !defined(XorgVersionString) && \
    defined(XORG_VERSION_MAJOR) && defined(XORG_VERSION_MINOR) && \
    defined(XORG_VERSION_PATCH) && defined(XORG_VERSION_SNAP)
# if XORG_VERSION_SNAP == 0
#  if XORG_VERSION_PATCH == 0
#   define XorgVersionString `echo XORG_VERSION_MAJOR XORG_VERSION_MINOR | sed 's/ /./g'`
#  else
#   define XorgVersionString `echo XORG_VERSION_MAJOR XORG_VERSION_MINOR XORG_VERSION_PATCH | sed 's/ /./g'`
#  endif
# else
#  define XorgVersionString `echo XORG_VERSION_MAJOR XORG_VERSION_MINOR XORG_VERSION_PATCH XORG_VERSION_SNAP | sed 's/ /./g'`
# endif
#endif

#if !defined(XORG_DATE) && defined(XF86_DATE)
# define XORG_DATE XF86_DATE
#endif

/*
 * Xorg versions are M.m.P.s, and XorgVersion is:
 *
 *    M * 10000000 + m * 100000 + P * 1000 + s
 *
 */

#ifndef XorgVersion
#  define XorgVersion (((XORG_VERSION_MAJOR) * 10000000) + ((XORG_VERSION_MINOR) * 100000) + ((XORG_VERSION_PATCH) * 1000) + XORG_VERSION_SNAP)
#endif

#ifndef VersionDefines
# define VersionDefines -DXORG_VERSION_CURRENT="$(XORG_VERSION_CURRENT)"
#endif

/* Place the version of the relevant changelog file here */
#ifndef ReleaseVersion
# define ReleaseVersion  RELEASE-1
#endif

XORG_VERSION_CURRENT = XorgVersion
RELEASE_VERSION = ReleaseVersion

#if !defined(XorgManVersionString) && \
    defined(XORG_VERSION_MAJOR) && defined(XORG_VERSION_MINOR) && \
    defined(XORG_VERSION_PATCH) && defined(XORG_VERSION_SNAP)
# if XORG_VERSION_SNAP == 0
#define XorgManVersionString `echo XORG_VERSION_MAJOR XORG_VERSION_MINOR XORG_VERSION_PATCH | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
#else
#define XorgManVersionString `echo XORG_VERSION_MAJOR XORG_VERSION_MINOR XORG_VERSION_PATCH XORG_VERSION_SNAP | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
# endif
#endif

#if !defined(XorgDateString) && defined(XORG_DATE)
# define XorgDateString XORG_DATE
#endif

#if !defined(XFree86DateString) && defined(XorgDateString)
# define XFree86DateString XorgDateString
#endif

#ifndef BuildDateCmd
# define BuildDateCmd	date +%Y%m%d
#endif

#if !defined(BuildDate)
# define BuildDate 	`BuildDateCmd`
#endif

#ifndef ChangelogDateCmd
# define ChangelogDateCmd if tail $(CHANGELOGFILE) 2>/dev/null | \	@@\
	fgrep '$$XdotOrg:' >/dev/null 2>&1; then \			@@\
	  tail $(CHANGELOGFILE) | fgrep '$$XdotOrg:' | \		@@\
	  sed s,'.* \([0-9][0-9]*\)/\([0-9][0-9]*\)/\([0-9][0-9]*\).*,\1\2\3,'; \ @@\
	else echo 0; fi
#endif

#if !defined(ChangelogDate)
# define ChangelogDate	`ChangelogDateCmd`
#endif

#ifndef XVendorString
# define XVendorString	"The X.Org Foundation"
#endif

#ifndef XVendorRelease
# define XVendorRelease	XorgVersion
#endif

#ifndef XVendorManVersionString
#define XVendorManVersionString XorgManVersionString
#endif

#ifndef XVendorManNameString
#define XVendorManNameString X.Org
#endif

/*
 * This enables some settings for developers.
 */

#ifndef XFree86Devel
# if !defined(PatheticCpp) || !PatheticCpp
#  if (XorgVersion % 1000)
#   define XFree86Devel		YES
#  else
#   define XFree86Devel		NO
#  endif
# else
#  define XFree86Devel		NO	/* Assume the worst */
# endif
#endif

#ifndef BuildDebug
# define BuildDebug 		YES
#endif

/*
 * settings for the config file parser
 */

#ifndef XConfigFile
#define XConfigFile		xorg.conf
#endif
#ifndef XConfigDir
#define XConfigDir		$(LIBDIR)
#endif
#ifndef XLogFile
#define XLogFile		Xorg
#endif
#ifndef XServerName
# define XServerName		Xorg
#endif

/*
 * BuildXFree86ConfigTools:
 *
 * Turning this on allows the XFree86 config tools to build when
 * BuildServersOnly is YES.  This requires more than the servonly CVS
 * module.  This cannot be used to disable building the config tools with
 * a full build.
 */
#ifndef BuildXFree86ConfigTools
#ifdef BuildServersOnly
#define BuildXFree86ConfigTools		!BuildServersOnly
#else
#define BuildXFree86ConfigTools		YES
#endif
#endif

#ifndef BuildLibrariesForConfigTools
#define BuildLibrariesForConfigTools	BuildXFree86ConfigTools
#endif

#if BuildXFree86ConfigTools && BuildLibrariesForConfigTools
#define BuildLibraries		YES
#define BuildXF86MiscLibrary	YES
#define BuildXF86VidModeLibrary	YES
#define BuildXKBlib		YES
#define BuildXKBfilelib		YES
#define BuildXKBuilib		YES
#endif

/*
 * When this is set, modules are always built separately from the libraries
 * that statically link into an Xserver.  This is for platforms where the
 * module and native object formats are different (e.g., OS/2).
 */
#ifndef BuildModuleInSubdir
#define BuildModuleInSubdir	NO
#endif

#ifndef DoLoadableServer
#define DoLoadableServer	NO
#endif

#ifndef MakeDllModules
#if DoLoadableServer
#define MakeDllModules		YES
#else
#define MakeDllModules		NO
#endif
#endif

/*
 * Default settings for which X Servers to build.
 */

/* OS.cf files may set this for OS-specific input drivers */
#ifndef OSXInputDrivers
#define OSXInputDrivers /**/
#endif

/* This may be set in host.def for 3rd party input drivers */
#ifndef ExtraXInputDrivers
#define ExtraXInputDrivers /**/
#endif

/* XInput drivers */
#ifndef XInputDrivers
#define XInputDrivers		mouse keyboard acecad calcomp citron \
				digitaledge dmc dynapro elographics tek4957 \
				microtouch mutouch penmount spaceorb summa \
				wacom void magellan /* magictouch */ hyperpen \
				jamstudio fpit \
				palmax OSXInputDrivers ExtraXInputDrivers
#endif


/* Deprecated keyboard driver */
#ifndef UseDeprecatedKeyboardDriver
#define UseDeprecatedKeyboardDriver NO
#endif

/* <linux/input.h> support mainly for USB support */
#ifndef HasLinuxInput
# define HasLinuxInput NO
#endif

/* OS.cf files may set this for OS-specific drivers */
#ifndef XF86OSCardDrivers
#define XF86OSCardDrivers /**/
#endif

/* This may be set in host.def for 3rd party drivers */
#ifndef XF86ExtraCardDrivers
#define XF86ExtraCardDrivers /**/
#endif

/* OS.cf files may set this for OS-specific drivers */
#ifndef HasAgpGart
#define HasAgpGart NO
#endif

/* Some DRI drivers are disabled because they are either insecure or unusable on
 * this architecture.  This switch allows you to enable building these drivers.
 */
#ifndef BuildDevelDRIDrivers
#define BuildDevelDRIDrivers NO
#endif

/* The glide driver only works for the loadable server at the moment */
#ifndef HasGlide2
#define HasGlide2 NO
#endif
#if HasGlide2 && DoLoadableServer
#define GlideDriver glide
#else
#define GlideDriver /**/
#endif

/*
 * There are three parameters that determine where and how the Matrox HAL
 * library is used:
 *
 *   HaveMatroxHal  -- You have the HALlib.a binary library installed
 *                     in xfree86/drivers/mga/HALlib, and you want it to
 *                     be used.
 *                     Default: NO
 *
 *   BuildMatroxHal -- You have the source for the HALlib library (installed
 *                     in xfree86/drivers/mga/hallib), and want to build and
 *                     use it.
 *                     Default: NO
 *
 *   UseMatroxHal   -- You want to build support for loading/using the HAL
 *                     library into the mga driver.  For module server builds
 *                     you don't need to have the HALlib library to do this.
 *                     but you want to build support for loading it and using
 *                     it into the mga driver module.
 *                     Default: YES for loadable server build
 *                              (HaveMatroxHal || BuildMatroxHal) for static
 */

#ifndef HaveMatroxHal
#define HaveMatroxHal NO
#endif

#ifndef BuildMatroxHal
#define BuildMatroxHal NO
#endif

#ifndef UseMatroxHal
#if DoLoadableServer
#define UseMatroxHal YES
#else
#define UseMatroxHal (HaveMatroxHal || BuildMatroxHal)
#endif
#endif

/*
 * Many architectures share common X Server pieces.  List them here.
 */
#if defined(i386Architecture) || defined(ia64Architecture) || \
    defined(AMD64Architecture) || defined(SparcArchitecture) || \
    defined(Sparc64Architecture) || defined(MipsArchitecture) || \
    defined(AlphaArchitecture) || defined(PpcArchitecture) || \
    defined(Mc68020Architecture) || defined(Arm32Architecture) || \
    defined(HPArchitecture) || defined(SuperHArchitecture)
# ifndef XorgServer
#  define XorgServer		YES
# endif
/* 1bpp module */
# ifndef XF1Bpp
#  define XF1Bpp		YES
# endif
/* 4bpp module */
# ifndef XF4Bpp
#  define XF4Bpp		YES
# endif
/* 8/32bpp overlay module */
# ifndef XF8_32Bpp
#  define XF8_32Bpp		YES
# endif
/* 8/16bpp dual fb module */
# ifndef XF8_16Bpp
#  define XF8_16Bpp		YES
# endif
/* shadow fb module */
# ifndef XFShadowFB
#  define XFShadowFB		YES
# endif
/* fbdevhw module */
# ifndef XF86FBDevHw
#  define XF86FBDevHw		YES
# endif
/* XAA module */
# ifndef XF86XAA
#  define XF86XAA		YES
# endif
/* Exa module */
# ifndef XF86EXA
#  define XF86EXA		YES
# endif
/* ramdac module */
# ifndef XF86Ramdac
#  define XF86Ramdac		YES
# endif
/* I2C module */
# ifndef XF86I2C
#  define XF86I2C		YES
# endif
/* DDC module */
# ifndef XF86DDC
#  define XF86DDC		YES
# endif
/* RAC (Resource Access Control) module */
# ifndef XF86RAC
#  define XF86RAC		YES
# endif
/* int10 module */
# ifndef XF86Int10
#  define XF86Int10		YES
# endif
/* vbe module */
# ifndef XF86VBE
#  define XF86VBE		YES
# endif
#endif

/*
 * Intel x86 and ia64 drivers
 */
#if defined(i386Architecture) || defined(ia64Architecture)
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif
/* Amiga framebuffer module.  Required by vesa module. */
# ifndef XF86AFB
#  define XF86AFB		YES
# endif

/*
 * Drivers under development, but not ready for binary releases, or
 * drivers included on this platform only for build testing.
 */
# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers		imstt newport
#  else
#   define DevelDrivers		/**/
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  /* Don't build the nsc driver on IA64 */
#  ifndef ia64Architecture
#   define i386Drivers		nsc i810
#  else
#   define i386Drivers		/**/
#  endif
#  define XF86CardDrivers	mga glint nv tga s3 s3virge sis rendition \
				neomagic i740 tdfx savage \
				cirrus vmware tseng trident chips apm \
				GlideDriver i128 i386Drivers \
				ati DevelDrivers ark \
				cyrix siliconmotion via \
				vesa vga \
				dummy XF86OSCardDrivers XF86ExtraCardDrivers
# endif

# ifndef DevelDRIDrivers
#  define DevelDRIDrivers	ffb mach64 unichrome
# endif

# ifndef DriDrivers
#  ifndef ia64Architecture
#   define i386DRIDrivers i810 i915 sis
#  else
   /* SiS is 64-bit unclean as of this writing. */
#   define i386DRIDrivers /**/
#  endif
#  define DriDrivers		i386DRIDrivers mga r128 radeon r200 tdfx
# endif
#endif /* i386Architecture || ia64Architecture */

#if defined(AMD64Architecture)
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif
/* Amiga framebuffer module.  Required by vesa module. */
# ifndef XF86AFB
#  define XF86AFB		YES
# endif

/*
 * Drivers under development, but not ready for binary releases, or
 * drivers included on this platform only for build testing.
 */
# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers         /**/
#  else
#   define DevelDrivers         /**/
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  define XF86CardDrivers	mga glint nv tga s3 s3virge sis rendition \
				neomagic tdfx savage cirrus tseng trident \
				chips apm i128 ati ark cyrix siliconmotion \
				vga dummy vesa i810 vmware \
				XF86OSCardDrivers XF86ExtraCardDrivers DevelDrivers
# endif

/* SiS is 64-bit unclean as of this writing. */
# ifndef DriDrivers
#  define DriDrivers		i915 mga r128 radeon r200 tdfx
# endif
#endif /*AMD64Arcitecture*/

/* SPARC and UltraSPARC drivers */

#if  (defined(SparcArchitecture) || defined(Sparc64Architecture)) && \
    !defined(LynxOSArchitecture) && \
    !defined(NetBSDArchitecture) && \
    !defined(OpenBSDArchitecture)
/* 8/32wid fb module */
# ifndef XF8_32Wid
#  define XF8_32Wid		YES
# endif
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif
/* Amiga framebuffer module.  Required by vesa module. */
# ifndef XF86AFB
#  define XF86AFB		YES
# endif

# ifndef DevelDrivers
#  if XFree86Devel
   /*
    * Some of these are compiled just for the fun of it.  Undoubtedly some
    * require changes (or even removal) for things like endianness, etc.  Move
    * those known to work into the main XF86CardDrivers #define.
    */
#   define DevelDrivers		apm ark chips cirrus i128 i740 i810 imstt \
				neomagic newport nv rendition s3virge savage \
				siliconmotion tga trident vmware dummy
#  else
#   define DevelDrivers		/* */
#  endif
# endif

/* Pure SBUS and PCI drivers should go first */
# ifndef XF86CardDrivers
#  ifdef SunArchitecture
#   define XF86CardDrivers	/* sunffb */ sunleo suncg6 suncg3 suncg14 \
				suntcx sunbw2 glint mga tdfx ati vesa vga \
				dummy XF86OSCardDrivers XF86ExtraCardDrivers \
				DevelDrivers
#  else
#   define XF86CardDrivers	sunffb sunleo suncg6 suncg3 suncg14 suntcx \
				sunbw2 glint mga tdfx ati vesa vga dummy \
				XF86OSCardDrivers XF86ExtraCardDrivers \
				DevelDrivers
#  endif
# endif
# ifndef DriDrivers
#  define DriDrivers		ffb
# endif

#endif

/* Sparc64 Drivers */
#if defined(OpenBSDArchitecture) && defined(Sparc64Architecture)
/* Amiga framebuffer module */
# ifndef XF86AFB
#  define XF86AFB		NO
# endif
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif
# ifndef UseX86Emu
#  define UseX86Emu		NO
# endif

# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers		/* */
#  else
#   define DevelDrivers		/* */
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  define XF86CardDrivers	ati dummy \
				DevelDrivers \
				XF86OSCardDrivers XF86ExtraCardDrivers
# endif
#endif /* OpenBSDArchitecture && Sparc64Architecture */

/* MIPS drivers */

#ifdef MipsArchitecture
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif

# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers		/* */
#  else
#   define DevelDrivers		/* */
#  endif
# endif

# ifndef XF86CardDrivers
#  define XF86CardDrivers	mga glint nv s3 s3virge sis savage \
				trident chips tdfx ati dummy \
				DevelDrivers newport \
				XF86OSCardDrivers XF86ExtraCardDrivers
# endif
#endif /* MipsArchitecture */

/*
 * DEC Alpha drivers
 */
#ifdef AlphaArchitecture
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif

# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers		/* */
#  else
#   define DevelDrivers		/* */
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  define XF86CardDrivers	mga tdfx glint s3 s3virge rendition tga ati \
				savage nv cirrus DevelDrivers siliconmotion  \
				vga dummy XF86OSCardDrivers \
				XF86ExtraCardDrivers
# endif
/*
 *  Glide is available for Alpha, therefore build tdfx DRM module.
 *  SiS is 64-bit unclean as of this writing.
 */
# ifndef DriDrivers
#  define DriDrivers		tdfx mga r128 radeon r200
# endif
#endif /* AlphaArchitecture */

/*
 * Motorola 68k and PowerPC drivers
 */
#if defined(PpcArchitecture) || defined(Mc68020Architecture)
/* Amiga framebuffer module */
# ifndef XF86AFB
#  define XF86AFB		YES
# endif
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif

# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers		imstt
#  else
#   define DevelDrivers		/* */
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  define XF86CardDrivers	ati mga glint nv s3 s3virge sis savage\
				trident chips tdfx \
				DevelDrivers vga dummy \
				XF86OSCardDrivers XF86ExtraCardDrivers
# endif
/*  The tdfx driver needs Glide, which is not available for PPC. */
# ifndef DriDrivers
#  define DriDrivers		mga r128 radeon r200
# endif
#endif  /* PpcArchitecture || Mc68020Architecture */

/*
 * Intel StrongARM and Hewlett-Packard PA-RISC
 */
#if defined(Arm32Architecture) || defined(HPArchitecture)
/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif

# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers		/* */
#  else
#   define DevelDrivers		/* */
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  define XF86CardDrivers	ati mga glint nv s3 s3virge sis savage\
				trident chips tdfx \
				DevelDrivers vga dummy \
				XF86OSCardDrivers XF86ExtraCardDrivers
# endif
# ifndef DriDrivers
#  define DriDrivers		mga r128 radeon r200
# endif
#endif

/* SuperH drivers */
#if defined(SuperHArchitecture)
# ifndef XF86CardDrivers
#  define XF86CardDrivers		XF86OSCardDrivers XF86ExtraCardDrivers
# endif
#endif

/*
 * For PowerPC 64bit systems
 * only libraries are strictly needed
 */
#if defined(Ppc64Architecture)
# ifndef XorgServer
#  define XorgServer		YES
# endif
/* 1bpp module */
# ifndef XF1Bpp
#  define XF1Bpp		NO
# endif
/* 4bpp module */
# ifndef XF4Bpp
#  define XF4Bpp		NO
# endif
/* 8/32bpp overlay module */
# ifndef XF8_32Bpp
#  define XF8_32Bpp		YES
# endif
/* 8/16bpp dual fb module */
# ifndef XF8_16Bpp
#  define XF8_16Bpp		YES
# endif
/* shadow fb module */
# ifndef XFShadowFB
#  define XFShadowFB		YES
# endif
/* fbdevhw module */
# ifndef XF86FBDevHw
#  define XF86FBDevHw		YES
# endif
/* XAA module */
# ifndef XF86XAA
#  define XF86XAA		YES
# endif
/* Exa module */
# ifndef XF86EXA
#  define XF86EXA		YES
# endif
/* ramdac module */
# ifndef XF86Ramdac
#  define XF86Ramdac		YES
# endif
/* I2C module */
# ifndef XF86I2C
#  define XF86I2C		YES
# endif
/* DDC module */
# ifndef XF86DDC
#  define XF86DDC		YES
# endif
/* RAC (Resource Access Control) module */
# ifndef XF86RAC
#  define XF86RAC		YES
# endif
/* int10 module */
# ifndef XF86Int10
#  define XF86Int10		YES
# endif
/* vbe module */
# ifndef XF86VBE
#  define XF86VBE		YES
# endif

/* vgahw module */
# ifndef XF86VgaHw
#  define XF86VgaHw		YES
# endif
/* Amiga framebuffer module */
# ifndef XF86AFB
#  define XF86AFB		NO
# endif

# ifndef DevelDrivers
#  if XFree86Devel
#   define DevelDrivers
#  else
#   define DevelDrivers		/* */
#  endif
# endif

/* Pure PCI drivers should go first */
# ifndef XF86CardDrivers
#  define XF86CardDrivers	ati mga dummy \
				DevelDrivers \
				XF86OSCardDrivers XF86ExtraCardDrivers
# endif
# define TdfxDriDriver		/**/
# ifndef DriDrivers
#  define DriDrivers		r128
# endif
#endif /* Ppc64Architecture */

/*
 * For Mips/Arc platforms, the default is to build all modules which
 * are supported on this platform.
 */
#ifdef ArcArchitecture
# ifndef XorgServer
#  define XorgServer		YES
# endif
#endif

#if BuildDebug
# define DebugDefines -DBUILDDEBUG
#else
# define DebugDefines /**/
#endif

#ifndef XorgServer
# define XorgServer		NO
#endif
#if !XorgServer
# undef DoLoadableServer
# define DoLoadableServer	NO
#endif

/*
 * Fbdev module defines.  They are set to indicate the fb types supported
 * on different architectures.
 */
#ifndef XF86AFB
# define XF86AFB		NO
#endif
#ifndef XF86ILBM
# define XF86ILBM		NO
#endif
#ifndef XF86IPLAN2P2
# define XF86IPLAN2P2		NO
#endif
#ifndef XF86IPLAN2P4
# define XF86IPLAN2P4		NO
#endif
#ifndef XF86IPLAN2P8
# define XF86IPLAN2P8		NO
#endif
#if XF86AFB
AFB_DEFS = -DUSE_AFB
#endif
#if XF86ILBM
ILBM_DEFS = -DUSE_ILBM
#endif
#if XF86IPLAN2P2
IPLAN2P2_DEFS = -DUSE_IPLAN2P2
#endif
#if XF86IPLAN2P4
IPLAN2P4_DEFS = -DUSE_IPLAN2P4
#endif
#if XF86IPLAN2P8
IPLAN2P8_DEFS = -DUSE_IPLAN2P8
#endif
#ifndef FbdevDefines
# define FbdevDefines $(AFB_DEFS) $(ILBM_DEFS) $(IPLAN2P2_DEFS) \
		     $(IPLAN2P4_DEFS) $(IPLAN2P8_DEFS)
#endif

/*
 * The default is to install the X servers setuid-root on most OSs.
 * It the servers are only started by xdm, they should not be setuid-root.
 */
#if !defined(i386MachArchitecture) && !defined(OS2Architecture)
# ifndef InstallXserverSetUID
#  define InstallXserverSetUID	YES
# endif
#endif

/*
 * Build GLX server interface
 *   --- Doesn't work for 1-bit and 4-bit servers
 */
#ifndef BuildGlxExt
#  define BuildGlxExt	YES
#endif

#ifndef BuildXF86DRI
#define BuildXF86DRI	NO
#endif

#ifndef GlxUseSGISI
#define GlxUseSGISI	NO
#endif

#if BuildXF86DRI

#ifndef DriDrivers
#define DriDrivers /**/
#endif

#ifndef DevelDRIDrivers
#define DevelDRIDrivers /**/
#endif

#ifndef BuildGLXLibrary
#  if defined (BuildServersOnly) && BuildServersOnly
#    define BuildGLXLibrary	NO
#  else
#    define BuildGLXLibrary	YES
#  endif
#endif

/*
 * One and ONLY one of the GlxBuiltIn* drivers can be defined to be YES.
 * If more than one are defined, the compilation will fail with multiply
 * defined references of GLX and OpenGL functions.
 */

/*
 * The first is a built-in driver that does software rendering client-side
 * and renders to the X server via Xlib.
 */

#  ifndef GlxBuiltInXMesa
#    define GlxBuiltInXMesa         NO
#  endif

/*
 * The rest are hardware-specific DRI drivers.
 */
#  ifndef GlxBuiltInGamma
#    define GlxBuiltInGamma        NO
#  endif
#  ifndef GlxBuiltInTdfx
#    define GlxBuiltInTdfx         NO
#  endif
#  ifndef GlxBuiltInMga
#    define GlxBuiltInMga          NO
#  endif
#  ifndef GlxBuiltInI810
#    define GlxBuiltInI810         NO
#  endif
#  ifndef GlxBuiltInI915
#    define GlxBuiltInI915         NO
#  endif
#  ifndef GlxBuiltInR128
#    define GlxBuiltInR128         NO
#  endif
#  ifndef GlxBuiltInRadeon
#    define GlxBuiltInRadeon       NO
#  endif
#  ifndef GlxBuiltInR200
#    define GlxBuiltInR200         NO
#  endif
#  ifndef GlxBuiltInFfb
#    define GlxBuiltInFfb          NO
#  endif
#  ifndef GlxBuiltInSIS
#    define GlxBuiltInSIS          NO
#  endif

#  if GlxBuiltInTdfx || \
      GlxBuiltInMga || \
      GlxBuiltInI810 || \
      GlxBuiltInI915 || \
      GlxBuiltInR128 || \
      GlxBuiltInRadeon || \
      GlxBuiltInR200 || \
      GlxBuiltInFfb || \
      GlxBuiltInSIS
#    define GlxDriverUsesMesa      YES
#  else
#    define GlxDriverUsesMesa      NO
#  endif

#  if GlxBuiltInGamma || \
      GlxBuiltInTdfx || \
      GlxBuiltInMga || \
      GlxBuiltInI810 || \
      GlxBuiltInI915 || \
      GlxBuiltInR128 || \
      GlxBuiltInRadeon || \
      GlxBuiltInR200 || \
      GlxBuiltInFfb || \
      GlxBuiltInSIS
#    define GlxUseBuiltInDRIDriver YES
#    define DRIDynLoadDefines /**/
#  else
#    define GlxUseBuiltInDRIDriver NO
#    define DRIDynLoadDefines -DGLX_USE_DLOPEN
#  endif

#  if GlxUseBuiltInDRIDriver
#    undef DriDrivers
#    if GlxBuiltInGamma
#      define DriDrivers gamma
#    endif
#    if GlxBuiltInTdfx
#      define DriDrivers tdfx
#    endif
#    if GlxBuiltInMga
#      define DriDrivers mga
#    endif
#    if GlxBuiltInI810
#      define DriDrivers i810
#    endif
#    if GlxBuiltInI915
#      define DriDrivers i915
#    endif
#    if GlxBuiltInR128
#      define DriDrivers r128
#    endif
#    if GlxBuiltInRadeon
#      define DriDrivers radeon
#    endif
#    if GlxBuiltInR200
#      define DriDrivers r200
#    endif
#    if GlxBuiltInSIS
#      define DriDrivers sis
#    endif
#    if GlxBuiltInFfb
#      define DriDrivers ffb
#    endif
#  endif

#endif

/*
 * This enables building DRI support into video drivers, which can be done
 * even on platforms that don't have functional DRI support.
 *
 * Defining BuildXF86DRIDriverSupport to YES will not work until we have a
 * separate set of defines set up for building driver-only support for the
 * DRI.
 */
#ifndef BuildXF86DRIDriverSupport
# define BuildXF86DRIDriverSupport NO
#endif

#if BuildGlxExt

#  if BuildXF86DRI
#    define DRIDefines -DXF86DRI -DGLX_DIRECT_RENDERING DRIDynLoadDefines
#  else
#    define DRIDefines /**/
#  endif
#  if defined(GlxUseSGISI) && GlxUseSGISI
#    define GlxCoreLibDefines -DGLX_USE_SGI_SI
#  else
#    define GlxCoreLibDefines -DGLX_USE_MESA
#  endif

#  if defined(SparcArchitecture)  \
   || defined (Sparc64Architecture) \
   || defined(ia64Architecture) \
   || defined(s390xArchitecture) \
   || defined(AMD64Architecture)
#    define GlxArchDefines -D__GLX_ALIGN64
#  elif defined(AlphaArchitecture)
/* On the Alpha we need to ensure floating point accuracy for 3D */
#    define GlxArchDefines -D__GLX_ALIGN64 -mieee
#  elif defined(DarwinArchitecture)
/* GLX contains lots of uninitialized globals, which can upset Darwin */
#    define GlxArchDefines -fno-common
#  else
#    define GlxArchDefines /**/
#  endif

#  ifndef GlxExtraDefines
#    define GlxExtraDefines DRIDefines GlxCoreLibDefines GlxArchDefines
#  endif

#else

/* If we are not building GLX, then make sure the DRI is not built */
#  undef  BuildXF86DRI
#  define BuildXF86DRI   NO
#  undef  BuildXF86DRIDriverSupport
#  define BuildXF86DRIDriverSupport NO

#endif

#if !BuildXF86DRI
# define GlxUseBuiltInDRIDriver NO	/* For libOSmesa */
#endif

# ifndef UseX86Emu
#  define UseX86Emu		YES
# endif

#define X86INT10_STUB   0
#define X86EMU_GENERIC  1
#define X86VM           2
#define X86EMU_OS       3

#ifndef XF86INT10_BUILD
# if UseX86Emu
#  define XF86INT10_BUILD		X86EMU_GENERIC
# else
#  define XF86INT10_BUILD		X86INT10_STUB
# endif
#endif
/*
 * Build the Rush extension library (non standard extension for cooperation
 * between glide library and X server). Enabled by default only for Linux.
 */
#ifndef BuildXF86RushExt
# define BuildXF86RushExt	NO
#endif

#ifndef BuildDBElib
# define BuildDBElib	YES
#endif

#ifndef BuildRECORDlib
# define BuildRECORDlib	YES
#endif

#ifndef BuildXKBlib
# define BuildXKBlib	YES
#endif

#ifndef BuildScreenSaverExt
# define BuildScreenSaverExt	YES
#endif

/*
 * Build XInput support
 */
#ifndef BuildXInputExt
# define BuildXInputExt		YES
#endif

/* Build Xinerama (aka panoramiX) extension */
#ifndef BuildXinerama
# define BuildXinerama		YES
#endif

/* Build Render extension */
#ifndef BuildRender
# define BuildRender		YES
#endif

#if 0
#ifndef JoystickSupport
# define JoystickSupport	NO
#endif
#endif

#if 0
/*
 * Build the extra extension libs even when not including the extra extensions
 * in the servers
 */
#ifndef BuildScreenSaverLibrary
# define BuildScreenSaverLibrary   YES
#endif
#ifndef BuildXF86MiscLibrary
# define BuildXF86MiscLibrary	YES
#endif
#ifndef BuildXF86DGALibrary
# define BuildXF86DGALibrary	YES
#endif
#ifndef BuildXF86VidModeLibrary
# define BuildXF86VidModeLibrary YES
#endif
#ifndef BuildXvLibrary
# define BuildXvLibrary		YES
#endif
#ifndef BuildXvMCLibrary
# define BuildXvMCLibrary	YES
#endif
#ifndef BuildGLXLibrary
# define BuildGLXLibrary	YES
#endif
#ifndef BuildXResLibrary
# define BuildXResLibrary       YES
#endif
#endif

/*
 * Build the XFree86-VidMode extension
 */
#ifndef BuildXF86VidModeExt
# define BuildXF86VidModeExt		YES
#endif

/* Don't build this now because the interface hasn't been done yet */
/*
 * Build the XFree86-Misc extension
 */
#ifndef BuildXF86MiscExt
# define BuildXF86MiscExt		YES
#endif

/*
 * Build the XFree86-Bigfont extension
 */
#ifndef BuildXF86BigfontExt
# define BuildXF86BigfontExt		YES
#endif

/*
 * Build the XFree86 DGA support
 */
#ifndef BuildXF86DGA
# define BuildXF86DGA			YES
#endif

/*
 * Build the DPMS extension support
 */
#ifndef BuildDPMSExt
# define BuildDPMSExt			YES
#endif

/*
 * Build the X Video Extension
 */
#ifndef BuildXvExt
# define BuildXvExt			YES
#endif

/*
 * Build the X Video Motion Compensation Extension
 */
#ifndef BuildXvMCExt
# define BuildXvMCExt			YES
#endif

/*
 * Build the X-Resource Extension
 */
#ifndef BuildXResExt
# define BuildXResExt                   YES
#endif

#if Malloc0ReturnsNull
# ifndef XtMalloc0ReturnsNullDefines
#  define XtMalloc0ReturnsNullDefines	Malloc0ReturnsNullDefines -DXTMALLOC_BC
# endif
#endif

#ifndef UseInternalMalloc
# define UseInternalMalloc	NO
#endif

#ifndef HasDlsymBug
# define HasDlsymBug		NO
#endif

#ifndef HasMTRRSupport
# define HasMTRRSupport		NO
#endif

/*
 * Build the font server
 */
#ifndef BuildFontServer
# define BuildFontServer	YES
#endif

/*
 * Include fonts support
 */
#ifndef BuildSpeedo
# define BuildSpeedo		NO
#endif

#ifndef BuildType1
# define BuildType1		NO
#endif

#ifndef BuildCID
# define BuildCID		YES
#endif

#ifndef BuildFreeType
# define BuildFreeType		YES
#endif

/*
 * By default, build all of the fonts.
 */
#ifndef Build75DpiFonts
# define Build75DpiFonts	YES
#endif
#ifndef Build100DpiFonts
# define Build100DpiFonts	YES
#endif
#ifndef BuildSpeedoFonts
# define BuildSpeedoFonts	NO
#endif
#ifndef BuildType1Fonts
# define BuildType1Fonts	YES
#endif
#ifndef BuildCIDFonts
# define BuildCIDFonts		YES
#endif
#ifndef BuildTrueTypeFonts
# define BuildTrueTypeFonts	YES
#endif
#ifndef BuildCyrillicFonts
# define BuildCyrillicFonts	YES
#endif

/*
 * Build scanpci?
 */
#ifndef SystemV
#define SystemV			NO
#endif
#ifndef SystemV4
#define SystemV4		NO
#endif
#ifndef BuildScanpci
# if SystemV || SystemV4 || \
    (defined(LinuxArchitecture) && !defined(Mc68020Architecture)) || \
    defined(i386BsdArchitecture) || defined(LynxOSArchitecture) || \
    defined(OS2Architecture) || defined(GNUMachArchitecture) || \
    (defined(KFreeBSDArchitecture) && defined(i386Architecture))
#   define BuildScanpci		YES
# else
#   define BuildScanpci		NO
# endif
#endif

#ifndef CompressAllFonts
# define CompressAllFonts	YES
#endif

#ifndef GzipFontCompression
# define GzipFontCompression	YES
#endif

/* Disable stripping installed programs for this release. */
#ifndef StripInstalledPrograms
# define StripInstalledPrograms	NO
#endif

#ifndef InstallJapaneseDocs
#define InstallJapaneseDocs	NO
#endif

#if BuildXF86DGA
# define XFree86DGADefines	-DXFreeXDGA
#else
# define XFree86DGADefines	/**/
#endif

#if BuildXvExt
# define XFree86XvDefines	-DXvExtension
#else
# define XFree86XvDefines	/**/
#endif

#if BuildXvMCExt
# define XFree86XvMCDefines	-DXvMCExtension
#else
# define XFree86XvMCDefines	/**/
#endif

#if BuildXResExt
# define XFree86XResDefines     -DXResExtension
#else
# define XFree86XResDefines     /**/
#endif

#ifndef DlopenHack
# define DlopenHack		-DDLOPEN_HACK
#endif

#ifndef ExtraLoaderDefines
# if MakeDllModules
#  define ExtraLoaderDefines	DlopenHack
# else
#  define ExtraLoaderDefines	/**/
# endif
#endif

#if DoLoadableServer
# define XFree86LoaderDefines	-DXFree86LOADER ExtraLoaderDefines
#else
# define XFree86LoaderDefines	/**/
#endif

#ifndef HasBsdMake
#define HasBsdMake		NO
#endif

#ifndef MakeHasPosixVariableSubstitutions
# if !HasBsdMake && !defined(SunArchitecture)
#  define MakeHasPosixVariableSubstitutions	NO
# else
#  define MakeHasPosixVariableSubstitutions	YES
# endif
#endif

#ifndef UseSmartScheduler
#define UseSmartScheduler YES
#endif

#if UseSmartScheduler
#define SmartScheduleDefines -DSMART_SCHEDULE
#else
#define SmartScheduleDefines /**/
#endif

/* Server defines required for all OSs */
#ifndef XFree86ServerDefines
# define XFree86ServerDefines	-DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH \
				XFree86DGADefines XFree86XvDefines \
				XFree86LoaderDefines -DXFree86Server \
				VidModeExtensionDefines \
				XFree86XvMCDefines \
				SmartScheduleDefines \
				DebugDefines XFree86XResDefines \
				-DX_BYTE_ORDER=$(X_BYTE_ORDER) \
				VersionDefines
#endif

#ifndef XFree86ServerOSDefines
# define XFree86ServerOSDefines	-DDDXOSINIT -DSERVER_LOCK -DDDXOSFATALERROR \
				-DDDXOSVERRORF
#endif

#ifndef XFree86ConsoleDefines
# if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) || (defined(KFreeBSDArchitecture) && defined(i386Architecture))
#  define XFree86ConsoleDefines	-DPCCONS_SUPPORT -DSYSCONS_SUPPORT -DPCVT_SUPPORT
# elif defined(KFreeBSDArchitecture)
#  define XFree86ConsoleDefines -DSYSCONS_SUPPORT
# else
#  define XFree86ConsoleDefines	/**/
# endif
#endif

/* Support for USB mouse */
#ifndef UsbMouseSupport
# define UsbMouseSupport NO
#endif
/* Does this OS have libusb ? */
#ifndef HasLibUsb
# define HasLibUsb	NO
#endif

#ifndef UseServerLock
# define UseServerLock	YES
#endif

#ifndef XnestServer
# define XnestServer		YES
#endif
#ifndef XVirtualFramebufferServer
# define XVirtualFramebufferServer	YES
#endif

#ifndef ServerExtraDefines
# define ServerExtraDefines	XFree86ServerDefines
#endif

#ifndef ServerOSDefines
# define ServerOSDefines	XFree86ServerOSDefines
#endif

#ifndef DriverSDKDir
# define DriverSDKDir     $(USRLIBDIR)/Server
#endif

#ifndef DriverSDKModuleDir
# define DriverSDKModuleDir     $(USRLIBDIR)/Server/modules
#endif

#ifndef DriverSDKIncludeDir
# define DriverSDKIncludeDir     $(USRLIBDIR)/Server/include
#endif

DRIVERSDKDIR = DriverSDKDir
DRIVERSDKMODULEDIR = DriverSDKModuleDir
DRIVERSDKINCLUDEDIR = DriverSDKIncludeDir

/*
 * Some commonly refered to directories are defined here.
 */

       XF86SRC = $(SERVERSRC)/hw/xfree86
    XF86COMSRC = $(XF86SRC)/common
 XF86PARSERSRC = $(XF86SRC)/parser
     XF86OSSRC = $(XF86SRC)/os-support
 XF86DRIVERSRC = $(XF86SRC)/drivers
     DRIVERSRC = $(XF86DRIVERSRC)

/*
 * Installed location of the XFree86 documentation
 */

        XFREE86DOCDIR = $(DOCDIR)
      XFREE86PSDOCDIR = $(DOCPSDIR)
     XFREE86PDFDOCDIR = $(DOCPDFDIR)
    XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese

/*
 * Other stuff used in the X Server source.
 */

#ifndef OtherIConfigFiles
# define OtherIConfigFiles $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules
#endif

#ifndef UseRgbTxt
# define UseRgbTxt	YES
#endif

#ifndef ManSuffix
# define ManSuffix	1
#endif

/*
 * GNU Compiler stuff
 */
#ifndef HasGcc3
# define HasGcc3 NO
#endif
#ifndef HasGcc2
# define HasGcc2 HasGcc3
#endif
#ifndef HasGcc
# define HasGcc HasGcc2
#endif
#ifndef HasGcc2ForCplusplus
# define HasGcc2ForCplusplus HasGcc2
#endif

#if HasGcc
# ifndef Gcc28Warnings
#  if (GccMajorVersion > 2) || \
      ((GccMajorVersion == 2) && (GccMinorVersion >= 8))
#   define Gcc28Warnings -Wundef
#  else
#   define Gcc28Warnings /* */
#  endif
# ifndef HasGcc34
#  if (((GccMajorVersion == 3) && (GccMinorVersion >= 4)) ||	\
 	(GccMajorVersion > 3))
#   define HasGcc34 YES
#  else
#   define HasGcc34 NO
#  endif
# endif
# endif
# ifndef GccWarningOptions
#  if XFree86Devel
#   define GccWarningOptions -Wall -Wpointer-arith -Wstrict-prototypes \
			  -Wmissing-prototypes -Wmissing-declarations \
			  -Wredundant-decls -Wnested-externs Gcc28Warnings
#  else
#   define GccWarningOptions -Wall -Wpointer-arith Gcc28Warnings
#  endif
# endif
# ifndef DefaultCCOptions
#  if defined(UseInstalled)
#   define DefaultCCOptions /* -ansi */
#  else
#   define DefaultCCOptions -ansi GccWarningOptions
#  endif
# endif
# if defined(UseInstalled)
#  ifndef UseGccMakeDepend
#   define UseGccMakeDepend YES
#  endif
# endif
#endif

/* Make imake noisier.  Note that this is ineffective for 3.0 <= GCC <= 3.2 */
#ifndef ImakeWarningFlags
# ifdef Gcc28Warnings
#  define ImakeWarningFlags Gcc28Warnings
# else
#  define ImakeWarningFlags /* */
# endif
#endif

#if  ((GccMajorVersion == 3) &&  (GccMinorVersion >= 1)) || (GccMajorVersion > 3)
# define GccAliasingArgs      -fno-strict-aliasing
#else
# define GccAliasingArgs      /* */
#endif

#if HasGcc2 && defined(i386Architecture)
# ifndef DefaultGcc2i386Opt
#  define DefaultGcc2i386Opt -O2 -fno-strength-reduce GccAliasingArgs
# endif
#endif

#if HasGcc2 && defined(AMD64Architecture)
# ifndef DefaultGcc2AMD64Opt
#  define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce GccAliasingArgs
# endif
#endif

#if HasGcc2 && defined(AlphaArchitecture)
# ifndef DefaultGcc2AxpOpt
#  define DefaultGcc2AxpOpt -O2 GccAliasingArgs
# endif
#endif

#if HasGcc2 && defined(Ppc64Architecture)
# ifndef DefaultGcc2Ppc64Opt
#  define DefaultGcc2Ppc64Opt -O2 GccAliasingArgs
# endif
#endif

#if HasGcc2 && defined(MipsArchitecture)
# ifndef DefaultGcc2MipsOpt
#  define DefaultGcc2MipsOpt -O2 GccAliasingArgs
# endif
#endif

#if HasGcc2 && defined(PpcArchitecture)
# ifndef DefaultGcc2PpcOpt
#  define DefaultGcc2PpcOpt -O2 GccAliasingArgs
# endif
#endif

#ifndef DefaultGcc2DebugOpt
# define DefaultGcc2DebugOpt -g
#endif

#ifndef DebuggableLibraries
# define DebuggableLibraries NO
#endif

#if HasGcc2 && DebuggableLibraries
# define LibraryDebugOpt DefaultGcc2DebugOpt
#endif

/*
 * Some versions of gcc have optimisation bugs that cause problems building
 * some files.  The definitions here cover those.
 */

#ifndef Egcs112Bug
  /* Not exactly precise, but it'll do for now... */
# if HasGcc2 && defined(i386Architecture) && \
     (GccMajorVersion == 2) && (GccMinorVersion > 8)
#  define Egcs112Bug YES
# else
#  define Egcs112Bug NO
# endif
#endif

#ifdef i386Architecture
# ifndef HasX86Support
#  define HasX86Support YES
# endif
# ifndef HasMMXSupport
#  define HasMMXSupport YES
# endif
# ifndef HasSSESupport
#  define HasSSESupport NO
# endif
# ifndef Has3DNowSupport
#  define Has3DNowSupport NO
# endif
#elif defined (AMD64Architecture)
# ifndef HasX86Support
#  define HasX86Support NO
# endif
# ifndef HasMMXSupport
#  define HasMMXSupport NO
# endif
# ifndef HasSSESupport
#  define HasSSESupport NO
# endif
# ifndef Has3DNowSupport
#  define Has3DNowSupport NO
# endif
#else
# ifndef HasX86Support
#  define HasX86Support NO
# endif
# ifndef HasMMXSupport
#  define HasMMXSupport NO
# endif
# ifndef HasSSESupport
#  define HasSSESupport NO
# endif
# ifndef Has3DNowSupport
#  define Has3DNowSupport NO
# endif
#endif

#ifndef StaticNeedsPicForShared
# if defined (AMD64Architecture)\
  || defined (AlphaArchitecture) \
  || defined (ia64Architecture) \
  || defined (PpcArchitecture) \
  || defined (SparcArchitecture) \
  || defined (s390xArchitecture)
#  define StaticNeedsPicForShared YES
# else
#  define StaticNeedsPicForShared NO
# endif
#endif

#if (defined(SparcArchitecture) || defined(Sparc64Architecture)) \
    && !defined(LargePositionIndependentCFlags) \
    && defined(HasGcc)
# define LargePositionIndependentCFlags -fPIC
#endif

#ifndef XF8_32Wid
# define XF8_32Wid		NO
#endif

#if CrossCompiling
#include <cross.def>
#endif
#include <xf86.rules>

