1XCOMM $XFree86: xc/config/cf/xfree86.cf,v 3.466 2004/01/11 18:48:11 dawes Exp $
2/*
3 * This configuration file contains all of the configuration
4 * information for the XFree86 based X Servers.
5 *
6 * Most of these settings can be overridden in a vendor.cf or the
7 * BeforeVendor part of the site.def file.
8 */
9XCOMM $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
10
11
12/* Get and set version information. */
13
14#include "version.def"
15#include "date.def"
16/*
17 * As of the development trunk after 4.0.2, XFree86 versions are
18 * M.m.P.s, and XFree86Version is:
19 *
20 *    M * 10000000 + m * 100000 + P * 1000 + s
21 *
22 * See xc/programs/Xserver/hw/xfree86/doc/Versions for further details.
23 *
24 * From 3.9.15 to 4.0.x, XFree86 release versions are X.Y.Z, and
25 * XFree86Version is:
26 *
27 *    X * 1000 + Y * 100 + Z
28 *
29 * For the 3.3.x branch, the versions are X.Y.Z.W, with XFree86Version
30 * calculated as:
31 *
32 *    X * 1000 + Y * 100 + Z * 10 + W
33 *
34 */
35#ifndef XFree86Version
36# ifdef XF86_VERSION_CURRENT
37#  define XFree86Version	XF86_VERSION_CURRENT
38# else	/* Must be defined for bootstrapping purposes */
39#  define XFree86Version	0
40# endif
41#endif
42
43#if !defined(XFree86VersionString) && \
44    defined(XF86_VERSION_MAJOR) && defined(XF86_VERSION_MINOR) && \
45    defined(XF86_VERSION_PATCH) && defined(XF86_VERSION_SNAP)
46# if XF86_VERSION_SNAP == 0
47#define XFree86VersionString `echo XF86_VERSION_MAJOR XF86_VERSION_MINOR XF86_VERSION_PATCH | sed 's/ /./g'`
48#else
49#define XFree86VersionString `echo XF86_VERSION_MAJOR XF86_VERSION_MINOR XF86_VERSION_PATCH XF86_VERSION_SNAP | sed 's/ /./g'`
50# endif
51#endif
52
53#if !defined(XFree86ManVersionString) && \
54    defined(XF86_VERSION_MAJOR) && defined(XF86_VERSION_MINOR) && \
55    defined(XF86_VERSION_PATCH) && defined(XF86_VERSION_SNAP)
56# if XF86_VERSION_SNAP == 0
57#define XFree86ManVersionString `echo XF86_VERSION_MAJOR XF86_VERSION_MINOR XF86_VERSION_PATCH | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
58#else
59#define XFree86ManVersionString `echo XF86_VERSION_MAJOR XF86_VERSION_MINOR XF86_VERSION_PATCH XF86_VERSION_SNAP | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
60# endif
61#endif
62
63#if !defined(XFree86DateString) && defined(XF86_DATE)
64# define XFree86DateString XF86_DATE
65#endif
66
67#ifndef BuildDateCmd
68# define BuildDateCmd	date +%Y%m%d
69#endif
70
71#if !defined(BuildDate)
72# define BuildDate 	`BuildDateCmd`
73#endif
74
75#ifndef ChangelogDateCmd
76# define ChangelogDateCmd if tail $(CHANGELOGFILE) | \			@@\
77	fgrep '$$XFree86:' >/dev/null 2>&1; then \			@@\
78	  tail $(CHANGELOGFILE) | fgrep '$$XFree86:' | \		@@\
79	  sed s,'.* \([0-9][0-9]*\)/\([0-9][0-9]*\)/\([0-9][0-9]*\).*,\1\2\3,'; \ @@\
80	else echo 0; fi
81#endif
82
83#if !defined(ChangelogDate)
84# define ChangelogDate	`ChangelogDateCmd`
85#endif
86
87#ifndef XVendorString
88# define XVendorString	"The X.Org Foundation, Inc"
89#endif
90
91#ifndef XVendorRelease
92# define XVendorRelease	XFree86Version
93#endif
94
95#ifndef XVendorManVersionString
96#define XVendorManVersionString XFree86ManVersionString
97#endif
98
99#ifndef XVendorManNameString
100#define XVendorManNameString XFree86
101#endif
102
103/*
104 * This enables some settings for developers.
105 */
106
107#ifndef XFree86Devel
108# if !defined(PatheticCpp) || !PatheticCpp
109#  if (XFree86Version % 1000)
110#   define XFree86Devel		YES
111#  else
112#   define XFree86Devel		NO
113#  endif
114# else
115#  define XFree86Devel		NO	/* Assume the worst */
116# endif
117#endif
118
119#ifndef BuildDebug
120# define BuildDebug 		YES
121#endif
122
123/*
124 * settings for the config file parser
125 */
126
127#ifndef XConfigFile
128#define XConfigFile		XF86Config
129#endif
130#ifndef XConfigDir
131#define XConfigDir		$(LIBDIR)
132#endif
133#ifndef XLogFile
134#define XLogFile		XFree86
135#endif
136
137/*
138 * BuildXFree86ConfigTools:
139 *
140 * Turning this on allows the XFree86 config tools to build when
141 * BuildServersOnly is YES.  This requires more than the servonly CVS
142 * module.  This cannot be used to disable building the config tools with
143 * a full build.
144 */
145#ifndef BuildXFree86ConfigTools
146#ifdef BuildServersOnly
147#define BuildXFree86ConfigTools		!BuildServersOnly
148#else
149#define BuildXFree86ConfigTools		YES
150#endif
151#endif
152
153#ifndef BuildLibrariesForConfigTools
154#define BuildLibrariesForConfigTools	BuildXFree86ConfigTools
155#endif
156
157#if BuildXFree86ConfigTools && BuildLibrariesForConfigTools
158#define BuildLibraries		YES
159#define BuildXF86MiscLibrary	YES
160#define BuildXF86VidModeLibrary	YES
161#define BuildXKBlib		YES
162#define BuildXKBfilelib		YES
163#define BuildXKBuilib		YES
164#endif
165
166/*
167 * When this is set, modules are always built separately from the libraries
168 * that statically link into an Xserver.  This is for platforms where the
169 * module and native object formats are different (e.g., OS/2).
170 */
171#ifndef BuildModuleInSubdir
172#define BuildModuleInSubdir	NO
173#endif
174
175#ifndef MakeDllModules
176#define MakeDllModules		NO
177#endif
178#ifndef DoLoadableServer
179#define DoLoadableServer	NO
180#endif
181
182/*
183 * Default settings for which X Servers to build.
184 */
185
186/* OS.cf files may set this for OS-specific input drivers */
187#ifndef OSXInputDrivers
188#define OSXInputDrivers /**/
189#endif
190
191/* This may be set in host.def for 3rd party input drivers */
192#ifndef ExtraXInputDrivers
193#define ExtraXInputDrivers /**/
194#endif
195
196/* XInput drivers */
197#ifndef XInputDrivers
198#define XInputDrivers		mouse keyboard acecad calcomp citron \
199				digitaledge dmc dynapro elographics tek4957 \
200				microtouch mutouch penmount spaceorb summa \
201				wacom void magellan /* magictouch */ hyperpen \
202				jamstudio fpit \
203				palmax OSXInputDrivers ExtraXInputDrivers
204#endif
205
206/* <linux/input.h> support mainly for USB support */
207#ifndef HasLinuxInput
208# define HasLinuxInput NO
209#endif
210
211/* OS.cf files may set this for OS-specific drivers */
212#ifndef XF86OSCardDrivers
213#define XF86OSCardDrivers /**/
214#endif
215
216/* This may be set in host.def for 3rd party drivers */
217#ifndef XF86ExtraCardDrivers
218#define XF86ExtraCardDrivers /**/
219#endif
220
221/* OS.cf files may set this for OS-specific drivers */
222#ifndef HasAgpGart
223#define HasAgpGart NO
224#endif
225
226/* The glide driver only works for the loadable server at the moment */
227#ifndef HasGlide2
228#define HasGlide2 NO
229#endif
230#if HasGlide2 && DoLoadableServer
231#define GlideDriver glide
232#else
233#define GlideDriver /**/
234#endif
235
236/*
237 * There are three parameters that determine where and how the Matrox HAL
238 * library is used:
239 *
240 *   HaveMatroxHal  -- You have the HALlib.a binary library installed
241 *                     in xfree86/drivers/mga/HALlib, and you want it to
242 *                     be used.
243 *                     Default: NO
244 *
245 *   BuildMatroxHal -- You have the source for the HALlib library (installed
246 *                     in xfree86/drivers/mga/hallib), and want to build and
247 *                     use it.
248 *                     Default: NO
249 *
250 *   UseMatroxHal   -- You want to build support for loading/using the HAL
251 *                     library into the mga driver.  For module server builds
252 *                     you don't need to have the HALlib library to do this.
253 *                     but you want to build support for loading it and using
254 *                     it into the mga driver module.
255 *                     Default: YES for loadable server build
256 *                              (HaveMatroxHal || BuildMatroxHal) for static
257 */
258
259#ifndef HaveMatroxHal
260#define HaveMatroxHal NO
261#endif
262
263#ifndef BuildMatroxHal
264#define BuildMatroxHal NO
265#endif
266
267#ifndef UseMatroxHal
268#if DoLoadableServer
269#define UseMatroxHal YES
270#else
271#define UseMatroxHal (HaveMatroxHal || BuildMatroxHal)
272#endif
273#endif
274
275/*
276 * For Intel platforms, the default is to build all modules which
277 * are supported on this platform.
278 */
279#if defined(i386Architecture) || defined(ia64Architecture)
280# ifndef XF86Server
281#  define XF86Server		YES
282# endif
283/* 1bpp module */
284# ifndef XF1Bpp
285#  define XF1Bpp		YES
286# endif
287/* 4bpp module */
288# ifndef XF4Bpp
289#  define XF4Bpp		YES
290# endif
291/* 8/32bpp overlay module */
292# ifndef XF8_32Bpp
293#  define XF8_32Bpp		YES
294# endif
295/* 8/16bpp dual fb module */
296# ifndef XF8_16Bpp
297#  define XF8_16Bpp		YES
298# endif
299/* 24/32bpp conversion module */
300# ifndef XF24_32Bpp
301#  define XF24_32Bpp		YES
302# endif
303/* shadow fb module */
304# ifndef XFShadowFB
305#  define XFShadowFB		YES
306# endif
307/* vgahw module */
308# ifndef XF86VgaHw
309#  define XF86VgaHw		YES
310# endif
311/* fbdevhw module */
312# ifndef XF86FBDevHw
313#  define XF86FBDevHw		YES
314# endif
315/* XAA module */
316# ifndef XF86XAA
317#  define XF86XAA		YES
318# endif
319/* EXA module */
320# ifndef XF86EXA
321#  define XF86EXA		YES
322# endif
323/* ramdac module */
324# ifndef XF86Ramdac
325#  define XF86Ramdac		YES
326# endif
327/* I2C module */
328# ifndef XF86I2C
329#  define XF86I2C		YES
330# endif
331/* DDC module */
332# ifndef XF86DDC
333#  define XF86DDC		YES
334# endif
335/* RAC (Resource Access Control) module */
336# ifndef XF86RAC
337#  define XF86RAC		YES
338# endif
339/* int10 module */
340# ifndef XF86Int10
341#  define XF86Int10		YES
342# endif
343/* vbe module */
344# ifndef XF86VBE
345#  define XF86VBE		YES
346# endif
347
348/*
349 * Amiga framebuffer module.
350 * This is mostly for build testing, but the vesa driver references it.
351 */
352# ifndef XF86AFB
353#  define XF86AFB		YES
354# endif
355
356# define AgpGartDrivers	/**/
357
358/*
359 * Drivers under development, but not ready for binary releases, or
360 * drivers included on this platform only for build testing.
361 */
362# ifndef DevelDrivers
363#  if XFree86Devel
364#   define DevelDrivers		imstt newport
365#  else
366#   define DevelDrivers		/**/
367#  endif
368# endif
369
370/* Pure PCI drivers should go first */
371# ifndef XF86CardDrivers
372#  /* Don't build the nsc driver on IA64 */
373#  ifndef ia64Architecture
374#   define NscDriver		nsc
375#  else
376#   define NscDriver		/**/
377#  endif
378#  define XF86CardDrivers	mga glint nv tga s3 s3virge sis rendition \
379				neomagic i740 tdfx savage \
380				cirrus vmware tseng trident chips apm \
381				GlideDriver i128 NscDriver \
382				ati i810 AgpGartDrivers DevelDrivers ark \
383				cyrix siliconmotion via \
384				fbdev vesa vga \
385				dummy XF86OSCardDrivers XF86ExtraCardDrivers
386# endif
387
388/*
389 * DRI drivers under development, or drivers included on this platform
390 * only for build testing.
391 */
392# ifndef DevelDRIDrivers
393#  if XFree86Devel
394#   define DevelDRIDrivers	ffb
395#  else
396#   define DevelDRIDrivers	/**/
397#  endif
398# endif
399
400# ifndef DriDrivers
401#  define DriDrivers		gamma i810 i830 mga r128 radeon r200 \
402				sis tdfx DevelDRIDrivers
403# endif
404#endif
405
406#if defined(AMD64Architecture)
407# ifndef XF86Server
408#  define XF86Server		YES
409# endif
410/* 1bpp module */
411# ifndef XF1Bpp
412#  define XF1Bpp		YES
413# endif
414/* 4bpp module */
415# ifndef XF4Bpp
416#  define XF4Bpp		YES
417# endif
418/* 8/32bpp overlay module */
419# ifndef XF8_32Bpp
420#  define XF8_32Bpp		YES
421# endif
422/* 8/16bpp dual fb module */
423# ifndef XF8_16Bpp
424#  define XF8_16Bpp		YES
425# endif
426/* 24/32bpp conversion module */
427# ifndef XF24_32Bpp
428#  define XF24_32Bpp		YES
429# endif
430/* shadow fb module */
431# ifndef XFShadowFB
432#  define XFShadowFB		YES
433# endif
434/* vgahw module */
435# ifndef XF86VgaHw
436#  define XF86VgaHw		YES
437# endif
438/* fbdevhw module */
439# ifndef XF86FBDevHw
440#  define XF86FBDevHw		YES
441# endif
442/* XAA module */
443# ifndef XF86XAA
444#  define XF86XAA		YES
445# endif
446/* EXA module */
447# ifndef XF86EXA
448#  define XF86EXA		YES
449# endif
450/* ramdac module */
451# ifndef XF86Ramdac
452#  define XF86Ramdac		YES
453# endif
454/* I2C module */
455# ifndef XF86I2C
456#  define XF86I2C		YES
457# endif
458/* DDC module */
459# ifndef XF86DDC
460#  define XF86DDC		YES
461# endif
462/* RAC (Resource Access Control) module */
463# ifndef XF86RAC
464#  define XF86RAC		YES
465# endif
466
467/* int10 module */
468# ifndef XF86Int10
469#  define XF86Int10		YES
470# endif
471/* vbe module */
472# ifndef XF86VBE
473#  define XF86VBE		YES
474# endif
475
476# define AgpGartDrivers	/**/
477
478# define DevelDrivers		/**/
479
480/* Pure PCI drivers should go first */
481# ifndef XF86CardDrivers
482#  define XF86CardDrivers	mga glint nv tga s3 s3virge sis rendition \
483				neomagic tdfx savage cirrus tseng trident \
484				chips apm i128 ati ark cyrix siliconmotion \
485				vga dummy fbdev vesa
486# endif
487
488/* DRI tdfx driver needs Glide, which is not available for AMD64 */
489# define TdfxDriDriver		/**/
490
491# define DevelDRIDrivers	/**/
492
493# define DriDrivers		gamma i810 mga r128 radeon r200 \
494				TdfxDriDriver DevelDRIDrivers
495#endif /*AMD64Arcitecture*/
496
497/* SPARC and UltraSPARC drivers */
498
499#if  (defined(SparcArchitecture) || defined(Sparc64Architecture)) && \
500    !defined(LynxOSArchitecture) && \
501    !defined(NetBSDArchitecture) && \
502    !defined(OpenBSDArchitecture)
503# ifndef XF86Server
504#  define XF86Server		YES
505# endif
506/* 1bpp module */
507# ifndef XF1Bpp
508#  define XF1Bpp		YES
509# endif
510/* 4bpp module */
511# ifndef XF4Bpp
512#  define XF4Bpp		YES
513# endif
514/* 8/32wid fb module */
515# ifndef XF8_32Wid
516#  define XF8_32Wid		YES
517# endif
518/* 8/32bpp overlay module */
519# ifndef XF8_32Bpp
520#  define XF8_32Bpp		YES
521# endif
522/* 8/16bpp dual fb module */
523# ifndef XF8_16Bpp
524#  define XF8_16Bpp		YES
525# endif
526/* 24/32bpp conversion module */
527# ifndef XF24_32Bpp
528#  define XF24_32Bpp		YES
529# endif
530/* shadow fb module */
531# ifndef XFShadowFB
532#  define XFShadowFB		YES
533# endif
534/* vgahw module */
535# ifndef XF86VgaHw
536#  define XF86VgaHw		YES
537# endif
538/* fbdevhw module */
539# ifndef XF86FBDevHw
540#  define XF86FBDevHw		YES
541# endif
542/* XAA module */
543# ifndef XF86XAA
544#  define XF86XAA		YES
545# endif
546/* EXA module */
547# ifndef XF86EXA
548#  define XF86EXA		YES
549# endif
550/* ramdac module */
551# ifndef XF86Ramdac
552#  define XF86Ramdac		YES
553# endif
554/* I2C module */
555# ifndef XF86I2C
556#  define XF86I2C		YES
557# endif
558/* DDC module */
559# ifndef XF86DDC
560#  define XF86DDC		YES
561# endif
562/* RAC (Resource Access Control) module */
563# ifndef XF86RAC
564#  define XF86RAC		YES
565# endif
566/* int10 module */
567# ifndef XF86Int10
568#  define XF86Int10		YES
569# endif
570/* vbe module */
571# ifndef XF86VBE
572#  define XF86VBE		YES
573# endif
574
575# ifndef DevelDrivers
576#  if XFree86Devel
577   /*
578    * Some of these are compiled just for the fun of it.  Undoubtedly some
579    * require changes (or even removal) for things like endianness, etc.  Move
580    * those known to work into the main XF86CardDrivers #define.
581    */
582#   define DevelDrivers		apm ark chips cirrus i128 i740 i810 imstt \
583				neomagic newport nv rendition s3virge savage \
584				siliconmotion tga trident vmware dummy
585#  else
586#   define DevelDrivers		/* */
587#  endif
588# endif
589
590/* Pure SBUS and PCI drivers should go first */
591# ifndef XF86CardDrivers
592#  define XF86CardDrivers	sunffb sunleo suncg6 suncg3 suncg14 suntcx \
593				sunbw2 glint mga tdfx ati vesa vga fbdev \
594				XF86OSCardDrivers XF86ExtraCardDrivers \
595				DevelDrivers
596# endif
597# ifndef DriDrivers
598#  define DriDrivers		ffb
599# endif
600
601#endif
602
603/* Sparc64 Drivers */
604#if defined(OpenBSDArchitecture) && defined(Sparc64Architecture)
605# ifndef XF86Server
606#  define XF86Server		YES
607# endif
608/* Amiga framebuffer module */
609# ifndef XF86AFB
610#  define XF86AFB		NO
611# endif
612/* 1bpp module */
613# ifndef XF1Bpp
614#  define XF1Bpp		YES
615# endif
616/* 4bpp module */
617# ifndef XF4Bpp
618#  define XF4Bpp		YES
619# endif
620/* 8/32bpp overlay module */
621# ifndef XF8_32Bpp
622#  define XF8_32Bpp		YES
623# endif
624/* 8/16bpp dual fb module */
625# ifndef XF8_16Bpp
626#  define XF8_16Bpp		YES
627# endif
628/* 24/32bpp conversion module */
629# ifndef XF24_32Bpp
630#  define XF24_32Bpp		YES
631# endif
632/* shadow fb module */
633# ifndef XFShadowFB
634#  define XFShadowFB		YES
635# endif
636/* vgahw module */
637# ifndef XF86VgaHw
638#  define XF86VgaHw		YES
639# endif
640/* fbdevhw module */
641# ifndef XF86FBDevHw
642#  define XF86FBDevHw		YES
643# endif
644/* XAA module */
645# ifndef XF86XAA
646#  define XF86XAA		YES
647# endif
648/* EXA module */
649# ifndef XF86EXA
650#  define XF86EXA		YES
651# endif
652/* ramdac module */
653# ifndef XF86Ramdac
654#  define XF86Ramdac		YES
655# endif
656/* I2C module */
657# ifndef XF86I2C
658#  define XF86I2C		YES
659# endif
660/* DDC module */
661# ifndef XF86DDC
662#  define XF86DDC		YES
663# endif
664/* RAC (Resource Access Control) module */
665# ifndef XF86RAC
666#  define XF86RAC		YES
667# endif
668
669/* int10 module */
670# ifndef XF86Int10
671#  define XF86Int10		YES
672# endif
673# ifndef UseX86Emu
674#  define UseX86Emu		NO
675# endif
676/* vbe module */
677# ifndef XF86VBE
678#  define XF86VBE		YES
679# endif
680
681# ifndef DevelDrivers
682#  if XFree86Devel
683#   define DevelDrivers		/* */
684#  else
685#   define DevelDrivers		/* */
686#  endif
687# endif
688
689/* Pure PCI drivers should go first */
690# ifndef XF86CardDrivers
691#  define XF86CardDrivers	ati \
692				DevelDrivers \
693				XF86OSCardDrivers XF86ExtraCardDrivers
694# endif
695# define TdfxDriDriver		/**/
696# ifndef DriDrivers
697#  define DriDrivers		/**/
698# endif
699#endif
700
701/* MIPS drivers */
702
703#ifdef MipsArchitecture
704# ifndef XF86Server
705#  define XF86Server		YES
706# endif
707/* 1bpp module */
708# ifndef XF1Bpp
709#  define XF1Bpp		YES
710# endif
711/* 4bpp module */
712# ifndef XF4Bpp
713#  define XF4Bpp		YES
714# endif
715/* 8/32bpp overlay module */
716# ifndef XF8_32Bpp
717#  define XF8_32Bpp		YES
718# endif
719/* 8/16bpp dual fb module */
720# ifndef XF8_16Bpp
721#  define XF8_16Bpp		YES
722# endif
723/* 24/32bpp conversion module */
724# ifndef XF24_32Bpp
725#  define XF24_32Bpp		YES
726# endif
727/* shadow fb module */
728# ifndef XFShadowFB
729#  define XFShadowFB		YES
730# endif
731/* vgahw module */
732# ifndef XF86VgaHw
733#  define XF86VgaHw		YES
734# endif
735/* fbdevhw module */
736# ifndef XF86FBDevHw
737#  define XF86FBDevHw		YES
738# endif
739/* XAA module */
740# ifndef XF86XAA
741#  define XF86XAA		YES
742# endif
743/* Exa module */
744# ifndef XF86EXA
745#  define XF86EXA		YES
746# endif
747/* ramdac module */
748# ifndef XF86Ramdac
749#  define XF86Ramdac		YES
750# endif
751/* I2C module */
752# ifndef XF86I2C
753#  define XF86I2C		YES
754# endif
755/* DDC module */
756# ifndef XF86DDC
757#  define XF86DDC		YES
758# endif
759/* RAC (Resource Access Control) module */
760# ifndef XF86RAC
761#  define XF86RAC		YES
762# endif
763
764/* int10 module */
765# ifndef XF86Int10
766#  define XF86Int10		YES
767# endif
768/* vbe module */
769# ifndef XF86VBE
770#  define XF86VBE		YES
771# endif
772
773# ifndef DevelDrivers
774#  if XFree86Devel
775#   define DevelDrivers		/* */
776#  else
777#   define DevelDrivers		/* */
778#  endif
779# endif
780
781# ifndef XF86CardDrivers
782#  define XF86CardDrivers	mga glint nv s3 s3virge sis savage \
783				trident chips tdfx fbdev ati \
784				DevelDrivers newport \
785				XF86OSCardDrivers XF86ExtraCardDrivers
786# endif
787#endif
788
789/*
790 * DEC Alpha drivers
791 */
792#ifdef AlphaArchitecture
793# ifndef XF86Server
794#  define XF86Server		YES
795# endif
796/* 1bpp module */
797# ifndef XF1Bpp
798#  define XF1Bpp		YES
799# endif
800/* 4bpp module */
801# ifndef XF4Bpp
802#  define XF4Bpp		YES
803# endif
804/* 8/32bpp overlay module */
805# ifndef XF8_32Bpp
806#  define XF8_32Bpp		YES
807# endif
808/* 8/16bpp dual fb module */
809# ifndef XF8_16Bpp
810#  define XF8_16Bpp		YES
811# endif
812/* 24/32bpp conversion module */
813# ifndef XF24_32Bpp
814#  define XF24_32Bpp		YES
815# endif
816/* shadow fb module */
817# ifndef XFShadowFB
818#  define XFShadowFB		YES
819# endif
820/* vgahw module */
821# ifndef XF86VgaHw
822#  define XF86VgaHw		YES
823# endif
824/* fbdevhw module */
825# ifndef XF86FBDevHw
826#  define XF86FBDevHw		YES
827# endif
828/* XAA module */
829# ifndef XF86XAA
830#  define XF86XAA		YES
831# endif
832/* Exa module */
833# ifndef XF86EXA
834#  define XF86EXA		YES
835# endif
836/* ramdac module */
837# ifndef XF86Ramdac
838#  define XF86Ramdac		YES
839# endif
840/* I2C module */
841# ifndef XF86I2C
842#  define XF86I2C		YES
843# endif
844/* DDC module */
845# ifndef XF86DDC
846#  define XF86DDC		YES
847# endif
848/* RAC (Resource Access Control) module */
849# ifndef XF86RAC
850#  define XF86RAC		YES
851# endif
852/* int10 module */
853# ifndef XF86Int10
854#  define XF86Int10		YES
855# endif
856/* vbe module */
857# ifndef XF86VBE
858#  define XF86VBE		YES
859# endif
860
861# ifndef DevelDrivers
862#  if XFree86Devel
863#   define DevelDrivers		/* */
864#  else
865#   define DevelDrivers		/* */
866#  endif
867# endif
868
869/* Pure PCI drivers should go first */
870# ifndef XF86CardDrivers
871#  define XF86CardDrivers	mga tdfx glint s3 s3virge rendition tga ati \
872				savage nv cirrus DevelDrivers siliconmotion  \
873				vga XF86OSCardDrivers XF86ExtraCardDrivers
874# endif
875# ifndef DriDrivers
876#  define DriDrivers		gamma tdfx mga r128 radeon r200 /*sis*/
877# endif
878#endif
879
880/*
881 * Motorola 68k and PowerPC drivers
882 */
883#if defined(PpcArchitecture) || defined(Mc68020Architecture)
884# ifndef XF86Server
885#  define XF86Server		YES
886# endif
887/* Amiga framebuffer module */
888# ifndef XF86AFB
889#  define XF86AFB		YES
890# endif
891/* 1bpp module */
892# ifndef XF1Bpp
893#  define XF1Bpp		YES
894# endif
895/* 4bpp module */
896# ifndef XF4Bpp
897#  define XF4Bpp		YES
898# endif
899/* 8/32bpp overlay module */
900# ifndef XF8_32Bpp
901#  define XF8_32Bpp		YES
902# endif
903/* 8/16bpp dual fb module */
904# ifndef XF8_16Bpp
905#  define XF8_16Bpp		YES
906# endif
907/* 24/32bpp conversion module */
908# ifndef XF24_32Bpp
909#  define XF24_32Bpp		YES
910# endif
911/* shadow fb module */
912# ifndef XFShadowFB
913#  define XFShadowFB		YES
914# endif
915/* vgahw module */
916# ifndef XF86VgaHw
917#  define XF86VgaHw		YES
918# endif
919/* fbdevhw module */
920# ifndef XF86FBDevHw
921#  define XF86FBDevHw		YES
922# endif
923/* XAA module */
924# ifndef XF86XAA
925#  define XF86XAA		YES
926# endif
927/* Exa module */
928# ifndef XF86EXA
929#  define XF86EXA		YES
930# endif
931/* ramdac module */
932# ifndef XF86Ramdac
933#  define XF86Ramdac		YES
934# endif
935/* I2C module */
936# ifndef XF86I2C
937#  define XF86I2C		YES
938# endif
939/* DDC module */
940# ifndef XF86DDC
941#  define XF86DDC		YES
942# endif
943/* RAC (Resource Access Control) module */
944# ifndef XF86RAC
945#  define XF86RAC		YES
946# endif
947/* int10 module */
948# ifndef XF86Int10
949#  define XF86Int10		YES
950# endif
951/* vbe module */
952# ifndef XF86VBE
953#  define XF86VBE		YES
954# endif
955
956# ifndef DevelDrivers
957#  if XFree86Devel
958#   define DevelDrivers		imstt
959#  else
960#   define DevelDrivers		/* */
961#  endif
962# endif
963
964/* Pure PCI drivers should go first */
965# ifndef XF86CardDrivers
966#  define XF86CardDrivers	ati mga glint nv s3 s3virge sis savage\
967				trident chips tdfx fbdev \
968				DevelDrivers vga \
969				XF86OSCardDrivers XF86ExtraCardDrivers
970# endif
971# ifndef DriDrivers
972#  define DriDrivers		gamma tdfx mga r128 radeon r200
973# endif
974#endif
975
976/*
977 * Intel StrongARM and Hewlett-Packard PA-RISC
978 */
979#if defined(Arm32Architecture) || defined(HPArchitecture)
980# ifndef XF86Server
981#  define XF86Server		YES
982# endif
983/* 1bpp module */
984# ifndef XF1Bpp
985#  define XF1Bpp		YES
986# endif
987/* 4bpp module */
988# ifndef XF4Bpp
989#  define XF4Bpp		YES
990# endif
991/* 8/32bpp overlay module */
992# ifndef XF8_32Bpp
993#  define XF8_32Bpp		YES
994# endif
995/* 8/16bpp dual fb module */
996# ifndef XF8_16Bpp
997#  define XF8_16Bpp		YES
998# endif
999/* 24/32bpp conversion module */
1000# ifndef XF24_32Bpp
1001#  define XF24_32Bpp		YES
1002# endif
1003/* shadow fb module */
1004# ifndef XFShadowFB
1005#  define XFShadowFB		YES
1006# endif
1007/* vgahw module */
1008# ifndef XF86VgaHw
1009#  define XF86VgaHw		YES
1010# endif
1011/* fbdevhw module */
1012# ifndef XF86FBDevHw
1013#  define XF86FBDevHw		YES
1014# endif
1015/* XAA module */
1016# ifndef XF86XAA
1017#  define XF86XAA		YES
1018# endif
1019/* Exa module */
1020# ifndef XF86EXA
1021#  define XF86EXA		YES
1022# endif
1023/* ramdac module */
1024# ifndef XF86Ramdac
1025#  define XF86Ramdac		YES
1026# endif
1027/* I2C module */
1028# ifndef XF86I2C
1029#  define XF86I2C		YES
1030# endif
1031/* DDC module */
1032# ifndef XF86DDC
1033#  define XF86DDC		YES
1034# endif
1035/* RAC (Resource Access Control) module */
1036# ifndef XF86RAC
1037#  define XF86RAC		YES
1038# endif
1039/* int10 module */
1040# ifndef XF86Int10
1041#  define XF86Int10		YES
1042# endif
1043/* vbe module */
1044# ifndef XF86VBE
1045#  define XF86VBE		YES
1046# endif
1047
1048# ifndef DevelDrivers
1049#  if XFree86Devel
1050#   define DevelDrivers		/* */
1051#  else
1052#   define DevelDrivers		/* */
1053#  endif
1054# endif
1055
1056/* Pure PCI drivers should go first */
1057# ifndef XF86CardDrivers
1058#  define XF86CardDrivers	ati mga glint nv s3 s3virge sis savage\
1059				trident chips tdfx fbdev \
1060				DevelDrivers vga \
1061				XF86OSCardDrivers XF86ExtraCardDrivers
1062# endif
1063# if HasGlide3
1064#  define TdfxDriDriver		tdfx
1065# else
1066#  define TdfxDriDriver		/**/
1067# endif
1068# ifndef DriDrivers
1069#  define DriDrivers		gamma tdfx mga r128 radeon r200
1070# endif
1071#endif
1072
1073/* SuperH drivers */
1074
1075#if defined(SuperHArchitecture)
1076# ifndef XF86Server
1077#  define XF86Server		YES
1078# endif
1079/* 1bpp module */
1080# ifndef XF1Bpp
1081#  define XF1Bpp		YES
1082# endif
1083/* 4bpp module */
1084# ifndef XF4Bpp
1085#  define XF4Bpp		YES
1086# endif
1087/* 8/32bpp overlay module */
1088# ifndef XF8_32Bpp
1089#  define XF8_32Bpp		YES
1090# endif
1091/* 8/16bpp dual fb module */
1092# ifndef XF8_16Bpp
1093#  define XF8_16Bpp		YES
1094# endif
1095/* 24/32bpp conversion module */
1096# ifndef XF24_32Bpp
1097#  define XF24_32Bpp		YES
1098# endif
1099/* shadow fb module */
1100# ifndef XFShadowFB
1101#  define XFShadowFB		YES
1102# endif
1103/* fbdevhw module */
1104# ifndef XF86FBDevHw
1105#  define XF86FBDevHw		YES
1106# endif
1107/* XAA module */
1108# ifndef XF86XAA
1109#  define XF86XAA		YES
1110# endif
1111/* Exa module */
1112# ifndef XF86EXA
1113#  define XF86EXA		YES
1114# endif
1115/* ramdac module */
1116# ifndef XF86Ramdac
1117#  define XF86Ramdac		YES
1118# endif
1119/* I2C module */
1120# ifndef XF86I2C
1121#  define XF86I2C		YES
1122# endif
1123/* DDC module */
1124# ifndef XF86DDC
1125#  define XF86DDC		YES
1126# endif
1127/* RAC (Resource Access Control) module */
1128# ifndef XF86RAC
1129#  define XF86RAC		YES
1130# endif
1131/* int10 module */
1132# ifndef XF86Int10
1133#  define XF86Int10		YES
1134# endif
1135/* vbe module */
1136# ifndef XF86VBE
1137#  define XF86VBE		YES
1138# endif
1139
1140# ifndef XF86CardDrivers
1141#  define XF86CardDrivers		fbdev XF86OSCardDrivers XF86ExtraCardDrivers
1142# endif
1143#endif
1144
1145/*
1146 * For PowerPC 64bit systems
1147 * only libraries are strictly needed
1148 */
1149#if defined(Ppc64Architecture)
1150# ifndef XF86Server
1151#  define XF86Server		YES
1152# endif
1153/* Amiga framebuffer module */
1154# ifndef XF86AFB
1155#  define XF86AFB		NO
1156# endif
1157/* 1bpp module */
1158# ifndef XF1Bpp
1159#  define XF1Bpp		NO
1160# endif
1161/* 4bpp module */
1162# ifndef XF4Bpp
1163#  define XF4Bpp		NO
1164# endif
1165/* 8/32bpp overlay module */
1166# ifndef XF8_32Bpp
1167#  define XF8_32Bpp		YES
1168# endif
1169/* 8/16bpp dual fb module */
1170# ifndef XF8_16Bpp
1171#  define XF8_16Bpp		YES
1172# endif
1173/* 24/32bpp conversion module */
1174# ifndef XF24_32Bpp
1175#  define XF24_32Bpp		YES
1176# endif
1177/* shadow fb module */
1178# ifndef XFShadowFB
1179#  define XFShadowFB		YES
1180# endif
1181/* vgahw module */
1182# ifndef XF86VgaHw
1183#  define XF86VgaHw		NO
1184# endif
1185/* fbdevhw module */
1186# ifndef XF86FBDevHw
1187#  define XF86FBDevHw		YES
1188# endif
1189/* XAA module */
1190# ifndef XF86XAA
1191#  define XF86XAA		YES
1192# endif
1193/* Exa module */
1194# ifndef XF86EXA
1195#  define XF86EXA		YES
1196# endif
1197/* ramdac module */
1198# ifndef XF86Ramdac
1199#  define XF86Ramdac		YES
1200# endif
1201/* I2C module */
1202# ifndef XF86I2C
1203#  define XF86I2C		YES
1204# endif
1205/* DDC module */
1206# ifndef XF86DDC
1207#  define XF86DDC		YES
1208# endif
1209/* RAC (Resource Access Control) module */
1210# ifndef XF86RAC
1211#  define XF86RAC		YES
1212# endif
1213
1214/* int10 module */
1215# ifndef XF86Int10
1216#  define XF86Int10		YES
1217# endif
1218
1219# ifndef DevelDrivers
1220#  if XFree86Devel
1221#   define DevelDrivers
1222#  else
1223#   define DevelDrivers		/* */
1224#  endif
1225# endif
1226
1227/* Pure PCI drivers should go first */
1228# ifndef XF86CardDrivers
1229#  define XF86CardDrivers	ati mga \
1230				DevelDrivers \
1231				XF86OSCardDrivers XF86ExtraCardDrivers
1232# endif
1233# if HasGlide3
1234#  define TdfxDriDriver
1235# else
1236#  define TdfxDriDriver		/**/
1237# endif
1238# ifndef DriDrivers
1239#  define DriDrivers		gamma r128
1240# endif
1241#endif
1242
1243/*
1244 * For Mips/Arc platforms, the default is to build all modules which
1245 * are supported on this platform.
1246 */
1247#ifdef ArcArchitecture
1248# ifndef XF86Server
1249#  define XF86Server		YES
1250# endif
1251#endif
1252
1253#if BuildDebug
1254# define DebugDefines -DBUILDDEBUG
1255#else
1256# define DebugDefines /**/
1257#endif
1258
1259#ifndef XF86Server
1260# define XF86Server		NO
1261#endif
1262#if !XF86Server
1263# undef DoLoadableServer
1264# define DoLoadableServer	NO
1265#endif
1266
1267/*
1268 * Fbdev module defines.  They are set to indicate the fb types supported
1269 * on different architectures.
1270 */
1271#ifndef XF86AFB
1272# define XF86AFB		NO
1273#endif
1274#ifndef XF86ILBM
1275# define XF86ILBM		NO
1276#endif
1277#ifndef XF86IPLAN2P2
1278# define XF86IPLAN2P2		NO
1279#endif
1280#ifndef XF86IPLAN2P4
1281# define XF86IPLAN2P4		NO
1282#endif
1283#ifndef XF86IPLAN2P8
1284# define XF86IPLAN2P8		NO
1285#endif
1286#if XF86AFB
1287AFB_DEFS = -DUSE_AFB
1288#endif
1289#if XF86ILBM
1290ILBM_DEFS = -DUSE_ILBM
1291#endif
1292#if XF86IPLAN2P2
1293IPLAN2P2_DEFS = -DUSE_IPLAN2P2
1294#endif
1295#if XF86IPLAN2P4
1296IPLAN2P4_DEFS = -DUSE_IPLAN2P4
1297#endif
1298#if XF86IPLAN2P8
1299IPLAN2P8_DEFS = -DUSE_IPLAN2P8
1300#endif
1301#ifndef FbdevDefines
1302# define FbdevDefines $(AFB_DEFS) $(ILBM_DEFS) $(IPLAN2P2_DEFS) \
1303		     $(IPLAN2P4_DEFS) $(IPLAN2P8_DEFS)
1304#endif
1305
1306/*
1307 * The default is to install the X servers setuid-root on most OSs.
1308 * It the servers are only started by xdm, they should not be setuid-root.
1309 */
1310#if !defined(i386MachArchitecture) && !defined(OS2Architecture)
1311# ifndef InstallXserverSetUID
1312#  define InstallXserverSetUID	YES
1313# endif
1314#endif
1315
1316/*
1317 * Build GLX server interface
1318 *   --- Doesn't work for 1-bit and 4-bit servers
1319 */
1320#ifndef BuildGlxExt
1321#  define BuildGlxExt	YES
1322#endif
1323
1324#ifndef BuildXF86DRI
1325#define BuildXF86DRI	NO
1326#endif
1327
1328#ifndef GlxUseSGISI
1329#define GlxUseSGISI	NO
1330#endif
1331
1332#if BuildXF86DRI
1333
1334#ifndef BuildGLXLibrary
1335#  if defined (BuildServersOnly) && BuildServersOnly
1336#    define BuildGLXLibrary	NO
1337#  else
1338#    define BuildGLXLibrary	YES
1339#  endif
1340#endif
1341
1342/*
1343 * One and ONLY one of the GlxBuiltIn* drivers can be defined to be YES.
1344 * If more than one are defined, the compilation will fail with multiply
1345 * defined references of GLX and OpenGL functions.
1346 */
1347
1348/*
1349 * The first is a built-in driver that does software rendering client-side
1350 * and renders to the X server via Xlib.
1351 */
1352
1353#  ifndef GlxBuiltInXMesa
1354#    define GlxBuiltInXMesa         NO
1355#  endif
1356
1357/*
1358 * The rest are hardware-specific DRI drivers.
1359 */
1360#  ifndef GlxBuiltInGamma
1361#    define GlxBuiltInGamma        NO
1362#  endif
1363#  ifndef GlxBuiltInTdfx
1364#    define GlxBuiltInTdfx         NO
1365#  endif
1366#  ifndef GlxBuiltInMga
1367#    define GlxBuiltInMga          NO
1368#  endif
1369#  ifndef GlxBuiltInI810
1370#    define GlxBuiltInI810         NO
1371#  endif
1372#  ifndef GlxBuiltInI830
1373#    define GlxBuiltInI830         NO
1374#  endif
1375#  ifndef GlxBuiltInR128
1376#    define GlxBuiltInR128         NO
1377#  endif
1378#  ifndef GlxBuiltInRadeon
1379#    define GlxBuiltInRadeon       NO
1380#  endif
1381#  ifndef GlxBuiltInR200
1382#    define GlxBuiltInR200         NO
1383#  endif
1384#  ifndef GlxBuiltInFfb
1385#    define GlxBuiltInFfb          NO
1386#  endif
1387#  ifndef GlxBuiltInSIS
1388#    define GlxBuiltInSIS          NO
1389#  endif
1390
1391#  if GlxBuiltInTdfx || \
1392      GlxBuiltInMga || \
1393      GlxBuiltInI810 || \
1394      GlxBuiltInI830 || \
1395      GlxBuiltInR128 || \
1396      GlxBuiltInRadeon || \
1397      GlxBuiltInR200 || \
1398      GlxBuiltInFfb || \
1399      GlxBuiltInSIS
1400#    define GlxDriverUsesMesa      YES
1401#  else
1402#    define GlxDriverUsesMesa      NO
1403#  endif
1404
1405#  if GlxBuiltInGamma || \
1406      GlxBuiltInTdfx || \
1407      GlxBuiltInMga || \
1408      GlxBuiltInI810 || \
1409      GlxBuiltInI830 || \
1410      GlxBuiltInR128 || \
1411      GlxBuiltInRadeon || \
1412      GlxBuiltInR200 || \
1413      GlxBuiltInFfb || \
1414      GlxBuiltInSIS
1415#    define GlxUseBuiltInDRIDriver YES
1416#    define DRIDynLoadDefines /**/
1417#  else
1418#    define GlxUseBuiltInDRIDriver NO
1419#    define DRIDynLoadDefines -DGLX_USE_DLOPEN
1420#  endif
1421
1422#  if GlxUseBuiltInDRIDriver
1423#    undef DriDrivers
1424#    if GlxBuiltInGamma
1425#      define DriDrivers gamma
1426#    endif
1427#    if GlxBuiltInTdfx
1428#      define DriDrivers tdfx
1429#    endif
1430#    if GlxBuiltInMga
1431#      define DriDrivers mga
1432#    endif
1433#    if GlxBuiltInI810
1434#      define DriDrivers i810
1435#    endif
1436#    if GlxBuiltInI830
1437#      define DriDrivers i830
1438#    endif
1439#    if GlxBuiltInR128
1440#      define DriDrivers r128
1441#    endif
1442#    if GlxBuiltInRadeon
1443#      define DriDrivers radeon
1444#    endif
1445#    if GlxBuiltInR200
1446#      define DriDrivers r200
1447#    endif
1448#    if GlxBuiltInSIS
1449#      define DriDrivers sis
1450#    endif
1451#    if GlxBuiltInFfb
1452#      define DriDrivers ffb
1453#    endif
1454#  endif
1455
1456#endif
1457
1458/*
1459 * This enables building DRI support into video drivers, which can be done
1460 * even on platforms that don't have functional DRI support.
1461 *
1462 * Defining BuildXF86DRIDriverSupport to YES will not work until we have a
1463 * separate set of defines set up for building driver-only support for the
1464 * DRI.
1465 */
1466#ifndef BuildXF86DRIDriverSupport
1467# define BuildXF86DRIDriverSupport NO
1468#endif
1469
1470#if BuildGlxExt
1471
1472#  if BuildXF86DRI
1473#    define DRIDefines -DXF86DRI -DGLX_DIRECT_RENDERING DRIDynLoadDefines
1474#  else
1475#    define DRIDefines /**/
1476#  endif
1477#  if defined(GlxUseSGISI) && GlxUseSGISI
1478#    define GlxCoreLibDefines -DGLX_USE_SGI_SI
1479#  else
1480#    define GlxCoreLibDefines -DGLX_USE_MESA
1481#  endif
1482
1483#  if defined(SparcArchitecture)  \
1484   || defined (Sparc64Architecture) \
1485   || defined(ia64Architecture) \
1486   || defined(s390xArchitecture) \
1487   || defined(AMD64Architecture)
1488#    define GlxArchDefines -D__GLX_ALIGN64
1489#  elif defined(AlphaArchitecture)
1490/* On the Alpha we need to ensure floating point accuracy for 3D */
1491#    define GlxArchDefines -D__GLX_ALIGN64 -mieee
1492#  elif defined(DarwinArchitecture)
1493/* GLX contains lots of uninitialized globals, which can upset Darwin */
1494#    define GlxArchDefines -fno-common
1495#  else
1496#    define GlxArchDefines /**/
1497#  endif
1498
1499#  ifndef GlxExtraDefines
1500#    define GlxExtraDefines DRIDefines GlxCoreLibDefines GlxArchDefines
1501#  endif
1502
1503#else
1504
1505/* If we are not building GLX, then make sure the DRI is not built */
1506#  undef  BuildXF86DRI
1507#  define BuildXF86DRI   NO
1508#  undef  BuildXF86DRIDriverSupport
1509#  define BuildXF86DRIDriverSupport NO
1510
1511#endif
1512
1513#if !BuildXF86DRI
1514# define GlxUseBuiltInDRIDriver NO	/* For libOSmesa */
1515#endif
1516
1517# ifndef UseX86Emu
1518#  define UseX86Emu		YES
1519# endif
1520
1521#define X86INT10_STUB   0
1522#define X86EMU_GENERIC  1
1523#define X86VM           2
1524#define X86EMU_OS       3
1525
1526#ifndef XF86INT10_BUILD
1527# if UseX86Emu
1528#  define XF86INT10_BUILD		X86EMU_GENERIC
1529# else
1530#  define XF86INT10_BUILD		X86INT10_STUB
1531# endif
1532#endif
1533/*
1534 * Build the Rush extension library (non standard extension for cooperation
1535 * between glide library and X server). Enabled by default only for Linux.
1536 */
1537#ifndef BuildXF86RushExt
1538# define BuildXF86RushExt	NO
1539#endif
1540
1541#ifndef BuildDBElib
1542# define BuildDBElib	YES
1543#endif
1544
1545#ifndef BuildRECORDlib
1546# define BuildRECORDlib	YES
1547#endif
1548
1549#ifndef BuildXKBlib
1550# define BuildXKBlib	YES
1551#endif
1552
1553#ifndef BuildScreenSaverExt
1554# define BuildScreenSaverExt	YES
1555#endif
1556
1557/*
1558 * Build XInput support
1559 */
1560#ifndef BuildXInputExt
1561# define BuildXInputExt		YES
1562#endif
1563
1564/* Build Xinerama (aka panoramiX) extension */
1565#ifndef BuildXinerama
1566# define BuildXinerama		YES
1567#endif
1568
1569/* Build Render extension */
1570#ifndef BuildRender
1571# define BuildRender		YES
1572#endif
1573
1574#if 0
1575#ifndef JoystickSupport
1576# define JoystickSupport	NO
1577#endif
1578#endif
1579
1580#if 0
1581/*
1582 * Build the extra extension libs even when not including the extra extensions
1583 * in the servers
1584 */
1585#ifndef BuildScreenSaverLibrary
1586# define BuildScreenSaverLibrary   YES
1587#endif
1588#ifndef BuildXF86MiscLibrary
1589# define BuildXF86MiscLibrary	YES
1590#endif
1591#ifndef BuildXF86DGALibrary
1592# define BuildXF86DGALibrary	YES
1593#endif
1594#ifndef BuildXF86VidModeLibrary
1595# define BuildXF86VidModeLibrary YES
1596#endif
1597#ifndef BuildXvLibrary
1598# define BuildXvLibrary		YES
1599#endif
1600#ifndef BuildXvMCLibrary
1601# define BuildXvMCLibrary	YES
1602#endif
1603#ifndef BuildGLXLibrary
1604# define BuildGLXLibrary	YES
1605#endif
1606#ifndef BuildXResLibrary
1607# define BuildXResLibrary       YES
1608#endif
1609#endif
1610
1611/*
1612 * Build the XFree86-VidMode extension
1613 */
1614#ifndef BuildXF86VidModeExt
1615# define BuildXF86VidModeExt		YES
1616#endif
1617
1618/* Don't build this now because the interface hasn't been done yet */
1619/*
1620 * Build the XFree86-Misc extension
1621 */
1622#ifndef BuildXF86MiscExt
1623# define BuildXF86MiscExt		YES
1624#endif
1625
1626/*
1627 * Build the XFree86-Bigfont extension
1628 */
1629#ifndef BuildXF86BigfontExt
1630# define BuildXF86BigfontExt		YES
1631#endif
1632
1633/*
1634 * Build the XFree86 DGA support
1635 */
1636#ifndef BuildXF86DGA
1637# define BuildXF86DGA			YES
1638#endif
1639
1640/*
1641 * Build the DPMS extension support
1642 */
1643#ifndef BuildDPMSExt
1644# define BuildDPMSExt			YES
1645#endif
1646
1647/*
1648 * Build the X Video Extension
1649 */
1650#ifndef BuildXvExt
1651# define BuildXvExt			YES
1652#endif
1653
1654/*
1655 * Build the X Video Motion Compensation Extension
1656 */
1657#ifndef BuildXvMCExt
1658# define BuildXvMCExt			YES
1659#endif
1660
1661/*
1662 * Build the X-Resource Extension
1663 */
1664#ifndef BuildXResExt
1665# define BuildXResExt                   YES
1666#endif
1667
1668#if Malloc0ReturnsNull
1669# ifndef XtMalloc0ReturnsNullDefines
1670#  define XtMalloc0ReturnsNullDefines	Malloc0ReturnsNullDefines -DXTMALLOC_BC
1671# endif
1672#endif
1673
1674#ifndef UseInternalMalloc
1675# define UseInternalMalloc	NO
1676#endif
1677
1678#ifndef HasDlsymBug
1679# define HasDlsymBug		NO
1680#endif
1681
1682#ifndef HasMTRRSupport
1683# define HasMTRRSupport		NO
1684#endif
1685
1686/*
1687 * Build the font server
1688 */
1689#ifndef BuildFontServer
1690# define BuildFontServer	YES
1691#endif
1692
1693/*
1694 * Include fonts support
1695 */
1696#ifndef BuildSpeedo
1697# define BuildSpeedo		NO
1698#endif
1699
1700#ifndef BuildType1
1701# define BuildType1		NO
1702#endif
1703
1704#ifndef BuildCID
1705# define BuildCID		YES
1706#endif
1707
1708#ifndef BuildFreeType
1709# define BuildFreeType		YES
1710#endif
1711
1712/*
1713 * By default, build all of the fonts.
1714 */
1715#ifndef Build75DpiFonts
1716# define Build75DpiFonts	YES
1717#endif
1718#ifndef Build100DpiFonts
1719# define Build100DpiFonts	YES
1720#endif
1721#ifndef BuildSpeedoFonts
1722# define BuildSpeedoFonts	NO
1723#endif
1724#ifndef BuildType1Fonts
1725# define BuildType1Fonts	YES
1726#endif
1727#ifndef BuildCIDFonts
1728# define BuildCIDFonts		YES
1729#endif
1730#ifndef BuildTrueTypeFonts
1731# define BuildTrueTypeFonts	YES
1732#endif
1733#ifndef BuildCyrillicFonts
1734# define BuildCyrillicFonts	YES
1735#endif
1736
1737/*
1738 * Build scanpci?
1739 */
1740#ifndef SystemV
1741#define SystemV			NO
1742#endif
1743#ifndef SystemV4
1744#define SystemV4		NO
1745#endif
1746#ifndef BuildScanpci
1747# if SystemV || SystemV4 || \
1748    (defined(LinuxArchitecture) && !defined(Mc68020Architecture)) || \
1749    defined(i386BsdArchitecture) || defined(LynxOSArchitecture) || \
1750    defined(OS2Architecture) || defined(GNUMachArchitecture) || \
1751    (defined(KFreeBSDArchitecture) && defined(i386Architecture))
1752#   define BuildScanpci		YES
1753# else
1754#   define BuildScanpci		NO
1755# endif
1756#endif
1757
1758#ifndef CompressAllFonts
1759# define CompressAllFonts	YES
1760#endif
1761
1762#ifndef GzipFontCompression
1763# define GzipFontCompression	YES
1764#endif
1765
1766/* Disable stripping installed programs for this release. */
1767#ifndef StripInstalledPrograms
1768# define StripInstalledPrograms	NO
1769#endif
1770
1771#ifndef InstallJapaneseDocs
1772#define InstallJapaneseDocs	NO
1773#endif
1774
1775#if BuildXF86DGA
1776# define XFree86DGADefines	-DXFreeXDGA
1777#else
1778# define XFree86DGADefines	/**/
1779#endif
1780
1781#if BuildXvExt
1782# define XFree86XvDefines	-DXvExtension
1783#else
1784# define XFree86XvDefines	/**/
1785#endif
1786
1787#if BuildXvMCExt
1788# define XFree86XvMCDefines	-DXvMCExtension
1789#else
1790# define XFree86XvMCDefines	/**/
1791#endif
1792
1793#if BuildXResExt
1794# define XFree86XResDefines     -DXResExtension
1795#else
1796# define XFree86XResDefines     /**/
1797#endif
1798
1799#ifndef DlopenHack
1800# define DlopenHack		-DDLOPEN_HACK
1801#endif
1802
1803#ifndef ExtraLoaderDefines
1804# if MakeDllModules
1805#  define ExtraLoaderDefines	DlopenHack
1806# else
1807#  define ExtraLoaderDefines	/**/
1808# endif
1809#endif
1810
1811#if DoLoadableServer
1812# define XFree86LoaderDefines	-DXFree86LOADER ExtraLoaderDefines
1813#else
1814# define XFree86LoaderDefines	/**/
1815#endif
1816
1817#ifndef HasBsdMake
1818#define HasBsdMake		NO
1819#endif
1820
1821#ifndef MakeHasPosixVariableSubstitutions
1822# if !HasBsdMake && !defined(SunArchitecture)
1823#  define MakeHasPosixVariableSubstitutions	NO
1824# else
1825#  define MakeHasPosixVariableSubstitutions	YES
1826# endif
1827#endif
1828
1829#ifndef UseSmartScheduler
1830#define UseSmartScheduler YES
1831#endif
1832
1833#if UseSmartScheduler
1834#define SmartScheduleDefines -DSMART_SCHEDULE
1835#else
1836#define SmartScheduleDefines /**/
1837#endif
1838
1839/* Server defines required for all OSs */
1840#ifndef XFree86ServerDefines
1841# define XFree86ServerDefines	-DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH \
1842				XFree86DGADefines XFree86XvDefines \
1843				XFree86LoaderDefines -DXFree86Server \
1844				VidModeExtensionDefines \
1845				XFree86XvMCDefines \
1846				SmartScheduleDefines \
1847				DebugDefines XFree86XResDefines \
1848				-DX_BYTE_ORDER=$(X_BYTE_ORDER)
1849#endif
1850
1851#ifndef XFree86ServerOSDefines
1852# define XFree86ServerOSDefines	-DDDXOSINIT -DSERVER_LOCK -DDDXOSFATALERROR \
1853				-DDDXOSVERRORF
1854#endif
1855
1856#ifndef XFree86ConsoleDefines
1857# if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) || (defined(KFreeBSDArchitecture) && defined(i386Architecture))
1858#  define XFree86ConsoleDefines	-DPCCONS_SUPPORT -DSYSCONS_SUPPORT -DPCVT_SUPPORT
1859# elif defined(KFreeBSDArchitecture)
1860#  define XFree86ConsoleDefines -DSYSCONS_SUPPORT
1861# else
1862#  define XFree86ConsoleDefines	/**/
1863# endif
1864#endif
1865
1866/* Support for USB mouse */
1867#ifndef UsbMouseSupport
1868# define UsbMouseSupport NO
1869#endif
1870/* Does this OS have libusb ? */
1871#ifndef HasLibUsb
1872# define HasLibUsb	NO
1873#endif
1874
1875#ifndef UseServerLock
1876# define UseServerLock	YES
1877#endif
1878
1879#ifndef XnestServer
1880# define XnestServer		YES
1881#endif
1882#ifndef XVirtualFramebufferServer
1883# define XVirtualFramebufferServer	YES
1884#endif
1885#ifndef XprtServer
1886# define XprtServer			YES
1887#endif
1888
1889#ifndef ServerExtraDefines
1890# define ServerExtraDefines	XFree86ServerDefines
1891#endif
1892
1893#ifndef ServerOSDefines
1894# define ServerOSDefines	XFree86ServerOSDefines
1895#endif
1896
1897#ifndef DriverSDKDir
1898# define DriverSDKDir     $(USRLIBDIR)/Server
1899#endif
1900
1901#ifndef DriverSDKModuleDir
1902# define DriverSDKModuleDir     $(USRLIBDIR)/Server/modules
1903#endif
1904
1905#ifndef DriverSDKIncludeDir
1906# define DriverSDKIncludeDir     $(USRLIBDIR)/Server/include
1907#endif
1908
1909DRIVERSDKDIR = DriverSDKDir
1910DRIVERSDKMODULEDIR = DriverSDKModuleDir
1911DRIVERSDKINCLUDEDIR = DriverSDKIncludeDir
1912
1913/*
1914 * Some commonly referred to directories are defined here.
1915 */
1916
1917       XF86SRC = $(SERVERSRC)/hw/xfree86
1918    XF86COMSRC = $(XF86SRC)/common
1919 XF86PARSERSRC = $(XF86SRC)/parser
1920     XF86OSSRC = $(XF86SRC)/os-support
1921 XF86DRIVERSRC = $(XF86SRC)/drivers
1922     DRIVERSRC = $(XF86DRIVERSRC)
1923
1924/*
1925 * Installed location of the XFree86 documentation
1926 */
1927
1928        XFREE86DOCDIR = $(DOCDIR)
1929      XFREE86PSDOCDIR = $(DOCPSDIR)
1930     XFREE86PDFDOCDIR = $(DOCPDFDIR)
1931    XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
1932XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
1933
1934/*
1935 * Other stuff used in the X Server source.
1936 */
1937
1938#ifndef OtherIConfigFiles
1939# define OtherIConfigFiles $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules
1940#endif
1941
1942#ifndef UseRgbTxt
1943# define UseRgbTxt	YES
1944#endif
1945
1946#ifndef ManSuffix
1947# define ManSuffix	1
1948#endif
1949
1950/*
1951 * GNU Compiler stuff
1952 */
1953#ifndef HasGcc3
1954# define HasGcc3 NO
1955#endif
1956#ifndef HasGcc2
1957# define HasGcc2 HasGcc3
1958#endif
1959#ifndef HasGcc
1960# define HasGcc HasGcc2
1961#endif
1962#ifndef HasGcc2ForCplusplus
1963# define HasGcc2ForCplusplus HasGcc2
1964#endif
1965
1966#if HasGcc
1967# ifndef Gcc28Warnings
1968#  if (GccMajorVersion > 2) || \
1969      ((GccMajorVersion == 2) && (GccMinorVersion >= 8))
1970#   define Gcc28Warnings -Wundef
1971#  else
1972#   define Gcc28Warnings /* */
1973#  endif
1974# endif
1975# ifndef GccWarningOptions
1976#  if XFree86Devel
1977#   define GccWarningOptions -Wall -Wpointer-arith -Wstrict-prototypes \
1978			  -Wmissing-prototypes -Wmissing-declarations \
1979			  -Wredundant-decls -Wnested-externs Gcc28Warnings
1980#  else
1981#   define GccWarningOptions -Wall -Wpointer-arith Gcc28Warnings
1982#  endif
1983# endif
1984# ifndef DefaultCCOptions
1985#  if defined(UseInstalled)
1986#   define DefaultCCOptions /* -ansi */
1987#  else
1988#   define DefaultCCOptions -ansi GccWarningOptions
1989#  endif
1990# endif
1991# if defined(UseInstalled)
1992#  ifndef UseGccMakeDepend
1993#   define UseGccMakeDepend YES
1994#  endif
1995# endif
1996#endif
1997
1998/* Make imake noisier.  Note that this is ineffective for 3.0 <= GCC <= 3.2 */
1999#ifndef ImakeWarningFlags
2000# ifdef Gcc28Warnings
2001#  define ImakeWarningFlags Gcc28Warnings
2002# else
2003#  define ImakeWarningFlags /* */
2004# endif
2005#endif
2006
2007#if  (GccMajorVersion == 3) &&  (GccMinorVersion >= 1)
2008# define GccAliasingArgs      -fno-strict-aliasing
2009#else
2010# define GccAliasingArgs      /* */
2011#endif
2012
2013#if HasGcc2 && defined(i386Architecture)
2014# ifndef DefaultGcc2i386Opt
2015#  define DefaultGcc2i386Opt -O2 -fno-strength-reduce GccAliasingArgs
2016# endif
2017#endif
2018
2019#if HasGcc2 && defined(AMD64Architecture)
2020# ifndef DefaultGcc2AMD64Opt
2021#  define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce GccAliasingArgs
2022# endif
2023#endif
2024
2025#if HasGcc2 && defined(AArch64Architecture)
2026# ifndef DefaultGcc2AArch64Opt
2027#  define DefaultGcc2AArch64Opt -O2 GccAliasingArgs
2028# endif
2029#endif
2030
2031#if HasGcc2 && defined(AlphaArchitecture)
2032# ifndef DefaultGcc2AxpOpt
2033#  define DefaultGcc2AxpOpt -O2 GccAliasingArgs
2034# endif
2035#endif
2036
2037#if HasGcc2 && defined(OpenRISC1000Architecture)
2038# ifndef DefaultGcc2OpenRISC1000Opt
2039#  define DefaultGcc2OpenRISC1000Opt -O2 GccAliasingArgs
2040# endif
2041#endif
2042
2043#if HasGcc2 && defined(Ppc64Architecture)
2044# ifndef DefaultGcc2Ppc64Opt
2045#  define DefaultGcc2Ppc64Opt -O2 GccAliasingArgs
2046# endif
2047#endif
2048
2049#if HasGcc2 && defined(PpcArchitecture)
2050# ifndef DefaultGcc2PpcOpt
2051#  define DefaultGcc2PpcOpt -O2 GccAliasingArgs
2052# endif
2053#endif
2054
2055#ifndef DefaultGcc2DebugOpt
2056# define DefaultGcc2DebugOpt -g
2057#endif
2058
2059#ifndef DebuggableLibraries
2060# define DebuggableLibraries NO
2061#endif
2062
2063#if HasGcc2 && DebuggableLibraries
2064# define LibraryDebugOpt DefaultGcc2DebugOpt
2065#endif
2066
2067/*
2068 * Some versions of gcc have optimisation bugs that cause problems building
2069 * some files.  The definitions here cover those.
2070 */
2071
2072#ifndef Egcs112Bug
2073  /* Not exactly precise, but it'll do for now... */
2074# if HasGcc2 && defined(i386Architecture) && \
2075     (GccMajorVersion == 2) && (GccMinorVersion > 8)
2076#  define Egcs112Bug YES
2077# else
2078#  define Egcs112Bug NO
2079# endif
2080#endif
2081
2082#ifdef i386Architecture
2083# ifndef HasX86Support
2084#  define HasX86Support YES
2085# endif
2086# ifndef HasMMXSupport
2087#  define HasMMXSupport YES
2088# endif
2089# ifndef HasSSESupport
2090#  define HasSSESupport NO
2091# endif
2092# ifndef Has3DNowSupport
2093#  define Has3DNowSupport NO
2094# endif
2095#elif defined (AMD64Architecture)
2096# ifndef HasX86Support
2097#  define HasX86Support NO
2098# endif
2099# ifndef HasMMXSupport
2100#  define HasMMXSupport NO
2101# endif
2102# ifndef HasSSESupport
2103#  define HasSSESupport NO
2104# endif
2105# ifndef Has3DNowSupport
2106#  define Has3DNowSupport NO
2107# endif
2108#else
2109# ifndef HasX86Support
2110#  define HasX86Support NO
2111# endif
2112# ifndef HasMMXSupport
2113#  define HasMMXSupport NO
2114# endif
2115# ifndef HasSSESupport
2116#  define HasSSESupport NO
2117# endif
2118# ifndef Has3DNowSupport
2119#  define Has3DNowSupport NO
2120# endif
2121#endif
2122
2123#ifndef StaticNeedsPicForShared
2124# if defined (AMD64Architecture)\
2125  || defined (AlphaArchitecture) \
2126  || defined (ia64Architecture) \
2127  || defined (PpcArchitecture) \
2128  || defined (SparcArchitecture) \
2129  || defined (s390xArchitecture)
2130#  define StaticNeedsPicForShared YES
2131# else
2132#  define StaticNeedsPicForShared NO
2133# endif
2134#endif
2135
2136#ifndef XF8_32Wid
2137# define XF8_32Wid		NO
2138#endif
2139
2140#if CrossCompiling
2141#include <cross.def>
2142#endif
2143#include <xf86.rules>
2144
2145