linux.cf revision 1c80d5b0
14c61c93dSmrgXCOMM $XdotOrg: xc/config/cf/linux.cf,v 1.24 2005/03/06 01:05:00 branden Exp $
211d341caSmrgXCOMM platform:  $Xorg: linux.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
311d341caSmrg
411d341caSmrg
511d341caSmrg
611d341caSmrg
711d341caSmrg
811d341caSmrgXCOMM platform:  $XFree86: xc/config/cf/linux.cf,v 3.220 2003/12/30 22:38:33 tsi Exp $
911d341caSmrg
1011d341caSmrg#ifndef LinuxElfDefault
1111d341caSmrg# define LinuxElfDefault	YES
1211d341caSmrg#endif
1311d341caSmrg
1411d341caSmrg#ifndef UseElfFormat
1511d341caSmrg# define UseElfFormat		LinuxElfDefault
1611d341caSmrg#endif
1711d341caSmrg
1811d341caSmrg#ifndef OSBinaryType
1911d341caSmrg# if UseElfFormat
2011d341caSmrg#  define OSBinaryType		[ELF]
2111d341caSmrg# else
2211d341caSmrg#  ifdef AlphaArchitecture
2311d341caSmrg#   define OSBinaryType		[ECOFF]
2411d341caSmrg#  else
2511d341caSmrg#   define OSBinaryType		[a.out]
2611d341caSmrg#  endif
2711d341caSmrg# endif
2811d341caSmrg#endif
2911d341caSmrg
3011d341caSmrg#ifndef OSName
3111d341caSmrg# define OSName			DefaultOSName OSBinaryType
3211d341caSmrg#endif
3311d341caSmrg
3411d341caSmrg#ifndef OSVendor
3511d341caSmrg# define OSVendor		/**/
3611d341caSmrg#endif
3711d341caSmrg#ifndef OSMajorVersion
3811d341caSmrg# define OSMajorVersion		DefaultOSMajorVersion
3911d341caSmrg#endif
4011d341caSmrg#ifndef OSMinorVersion
4111d341caSmrg# define OSMinorVersion		DefaultOSMinorVersion
4211d341caSmrg#endif
4311d341caSmrg#ifndef OSTeenyVersion
4411d341caSmrg# define OSTeenyVersion		DefaultOSTeenyVersion
4511d341caSmrg#endif
4611d341caSmrg
4711d341caSmrg#ifndef LinuxDistribution
4811d341caSmrg# define LinuxDistribution	DefaultLinuxDistribution
4911d341caSmrg/*
5011d341caSmrg  Add "#define LinuxDistribution Linux<mumble>" to your site.def or host.def.
5111d341caSmrg  Currently only LinuxSuSE, LinuxRedHat and LinuxDebian will be figured out
5211d341caSmrg  automatically.
5311d341caSmrg  Valid values are (from the list at www.linux.org in Oct. '97):
5411d341caSmrg    LinuxUnknown    (0)
5511d341caSmrg    LinuxSuSE       (1)
5611d341caSmrg    LinuxCaldera    (2)
5711d341caSmrg    LinuxCraftworks (3)
5811d341caSmrg    LinuxDebian     (4)
5911d341caSmrg    LinuxInfoMagic  (5)
6011d341caSmrg    LinuxKheops     (6)
6111d341caSmrg    LinuxPro        (7)
6211d341caSmrg    LinuxRedHat     (8)
6311d341caSmrg    LinuxSlackware  (9)
6411d341caSmrg    LinuxTurbo      (10)
6511d341caSmrg    LinuxWare       (11)
6611d341caSmrg    LinuxYggdrasil  (12)
6711d341caSmrg*/
6811d341caSmrg#endif
6911d341caSmrg#ifndef LinuxDistName
7011d341caSmrg# define LinuxDistName		DefaultLinuxDistName
7111d341caSmrg#endif
7211d341caSmrg#ifndef LinuxCLibMajorVersion
7311d341caSmrg# define LinuxCLibMajorVersion	DefaultLinuxCLibMajorVersion
7411d341caSmrg#endif
7511d341caSmrg#ifndef LinuxCLibMinorVersion
7611d341caSmrg# define LinuxCLibMinorVersion	DefaultLinuxCLibMinorVersion
7711d341caSmrg#endif
7811d341caSmrg#ifndef LinuxCLibTeenyVersion
7911d341caSmrg# define LinuxCLibTeenyVersion	DefaultLinuxCLibTeenyVersion
8011d341caSmrg#endif
8111d341caSmrg
8211d341caSmrg#ifndef HasGhostScript
8311d341caSmrg# define HasGhostScript YES
8411d341caSmrg#endif
8511d341caSmrg#ifndef BuildPDFdocs
8611d341caSmrg# define BuildPDFdocs NO
8711d341caSmrg#endif
8811d341caSmrg
8911d341caSmrg#ifndef LinuxBinUtilsMajorVersion
9011d341caSmrg# define LinuxBinUtilsMajorVersion	DefaultLinuxBinUtilsMajorVersion
9111d341caSmrg#endif
9211d341caSmrg
9311d341caSmrgXCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
9411d341caSmrgXCOMM libc:	(LinuxCLibMajorVersion./**/LinuxCLibMinorVersion./**/LinuxCLibTeenyVersion)
9511d341caSmrgXCOMM binutils:	(LinuxBinUtilsMajorVersion)
9611d341caSmrg
9711d341caSmrg#if LinuxDistribution == LinuxDebian
9811d341caSmrg# if !defined(NothingOutsideProjectRoot) || !NothingOutsideProjectRoot
9911d341caSmrg#  define SystemManDirectory	/usr/share/man
10011d341caSmrg# endif
10111d341caSmrg# define HasPam			YES
10211d341caSmrg/* un-comment this when it is un-broken */
10311d341caSmrg/* # define JoystickSupport YES */
10411d341caSmrg# if !defined(NothingOutsideProjectRoot) || !NothingOutsideProjectRoot
10511d341caSmrg#  define XAppLoadDir		EtcX11Directory/app-defaults
10611d341caSmrg# define XFileSearchPathDefault	Concat4(EtcX11Directory/%L/%T/%N%C,%S:EtcX11Directory/%l/%T/%N%C,%S:EtcX11Directory/%T/%N%C,%S:EtcX11Directory/%L/%T/%N%S:EtcX11Directory/%l/%T/%N%S:EtcX11Directory/%T/%N%S):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)
10711d341caSmrg/* the relative symlink created by this rule causes problems for us */
10811d341caSmrg# if defined(InstallAppDefFiles) && InstallAppDefFiles
10911d341caSmrg#  define InstallAppDefaultsLong(file,class)				@@\
11011d341caSmrgInstallNamedTarget(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
11111d341caSmrg# else
11211d341caSmrg#  define InstallAppDefaultsLong(file,class)				@@\
11311d341caSmrgInstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
11411d341caSmrg# endif /* InstallAppDefFiles */
11511d341caSmrg# endif /* !defined(NothingOutsideProjectRoot) || !NothingOutsideProjectRoot */
11611d341caSmrg# define SharedLibXdmGreet	NO
11711d341caSmrg# define LinkGLToUsrInclude	NO
11811d341caSmrg# define LinkGLToUsrLib		NO
11911d341caSmrg# define SharedLibFont		NO
12011d341caSmrg# define SharedLibGlu		YES
12111d341caSmrg# define NormalLibGlu		YES
12211d341caSmrg# define FSUseSyslog		YES
12311d341caSmrg
12411d341caSmrg# define BuildLibGlxWithoutPIC  NO
12511d341caSmrg
12611d341caSmrg# define DriverManSuffix       4x
12711d341caSmrg# define DriverManDir          $(MANSOURCEPATH)4
12811d341caSmrg
12911d341caSmrg# define MiscManSuffix         7x
13011d341caSmrg# define MiscManDir            $(MANSOURCEPATH)7
13111d341caSmrg
13211d341caSmrg/*
13311d341caSmrg *
13411d341caSmrg *
13511d341caSmrg# define DebianMaintainer	YES
13611d341caSmrg *
13711d341caSmrg *
13811d341caSmrg */
13911d341caSmrg
14011d341caSmrg# ifdef DebianMaintainer
14111d341caSmrg#  ifndef XorgCustomVersion
14211d341caSmrg#   define XorgCustomVersion		"Debian"
14311d341caSmrg#  endif
14411d341caSmrg#  ifndef BuilderEMailAddr
14511d341caSmrg#   define BuilderEMailAddr		"debian-x@lists.debian.org"
14611d341caSmrg#  endif
14711d341caSmrg#  define XFree86Devel			YES
14811d341caSmrg#  define BuildAllSpecsDocs		YES
14911d341caSmrg#  define InstallXinitConfig		YES
15011d341caSmrg#  define InstallXdmConfig		YES
15111d341caSmrg#  define InstallFSConfig		YES
15211d341caSmrg#  define DebuggableLibraries		YES
15311d341caSmrg#  define ForceNormalLib		YES
15411d341caSmrg#  define BuildSpecsDocs		YES
15511d341caSmrg#  define SpecsDocDirs			CTEXT GL ICCCM X11 Xext Xv i18n xterm
15611d341caSmrg#  define BuildRman			NO
15711d341caSmrg#  define BuildHtmlManPages		NO
15811d341caSmrg
15911d341caSmrg/* we build-depend on libfreetype6-dev (FreeType 2.x) */
16011d341caSmrg#   define BuildFreetype2Library	NO
16111d341caSmrg#   define HasFreetype2			YES
16211d341caSmrg/* m68k has no 2.4 kernel yet */
16311d341caSmrg#   ifndef Mc68020Architecture
16411d341caSmrg#    define HasLinuxInput		YES
16511d341caSmrg#   endif
16611d341caSmrg#   define HasXdmAuth			YES
16711d341caSmrg#   define HasLatex			YES
16811d341caSmrg/* at present, glide2 only works on i386 */
16911d341caSmrg#   if defined(__linux__) && defined(i386Architecture)
17011d341caSmrg#    define HasGlide2			YES
17111d341caSmrg#    define Glide2IncDir		/usr/include/glide
17211d341caSmrg#   endif /* __linux__ && i386Architecture */
17311d341caSmrg/* at present, glide3 only works on alpha, amd64, i386 and ia64 */
17411d341caSmrg#   if defined(__linux__) && (defined(i386Architecture) || \
17511d341caSmrg       defined(AlphaArchitecture) || defined(ia64Architecture) || \
17611d341caSmrg       defined(AMD64Architecture))
17711d341caSmrg#    define HasGlide3			YES
17811d341caSmrg#    define Glide3IncDir		/usr/include/glide3
17911d341caSmrg#   endif /* __linux__ && (i386Architecture || AlphaArchitecture || \
18011d341caSmrg             ia64Architecture || AMD64Architecture) */
18111d341caSmrg/* extended instruction set support */
18211d341caSmrg#   ifdef i386Architecture
18311d341caSmrg#   define HasX86Support		YES
18411d341caSmrg#    define HasMMXSupport		YES
18511d341caSmrg#    define Has3DNowSupport		YES
18611d341caSmrg/* 2.4 is not yet the official (or predominant) kernel in unstable */
18711d341caSmrg#    define HasSSESupport		NO
18811d341caSmrg#   endif /* i386Architecture */
18911d341caSmrg# endif /* DebianMaintainer */
19011d341caSmrg#endif /* LinuxDebian */
19111d341caSmrg
19211d341caSmrg#if LinuxDistribution == LinuxRedHat
19311d341caSmrg#define FSUseSyslog		YES
19411d341caSmrg#endif
19511d341caSmrg
19611d341caSmrg#ifndef HasDevRandom
19711d341caSmrg# define HasDevRandom YES
19811d341caSmrg# ifndef RandomDeviceName
19911d341caSmrg#  define RandomDeviceName /dev/urandom
20011d341caSmrg# endif
20111d341caSmrg#endif
20211d341caSmrg
20311d341caSmrg/*
20411d341caSmrg * The Linux BinUtils major version.  25 => 2.5.x, which is what is included
20511d341caSmrg * with Slackware 3.0
20611d341caSmrg *
20711d341caSmrg * This remains for compatibility only.
20811d341caSmrg *
20911d341caSmrg */
21011d341caSmrg#ifndef BinUtilsMajorVersion
21111d341caSmrg# define BinUtilsMajorVersion	LinuxBinUtilsMajorVersion
21211d341caSmrg#endif
21311d341caSmrg
21411d341caSmrg#if (LinuxCLibMajorVersion >= 6 || LinuxDistribution == LinuxSuSE)
21511d341caSmrg# define LinuxLocaleDefines	/**/
21611d341caSmrg#else
21711d341caSmrg# define LinuxLocaleDefines	-DX_LOCALE
21811d341caSmrg#endif
21911d341caSmrg
22011d341caSmrg#ifndef  LinuxAdditionalIncludes
22111d341caSmrg# define LinuxAdditionalIncludes	/**/
22211d341caSmrg#endif
22311d341caSmrg
22411d341caSmrg#ifndef LinuxGnuSourceDefines
22511d341caSmrg# ifdef UseInstalled
22611d341caSmrg#  define LinuxGnuSourceDefines	/**/
22711d341caSmrg# else
22811d341caSmrg#  define LinuxGnuSourceDefines	-D_GNU_SOURCE
22911d341caSmrg# endif
23011d341caSmrg#endif
23111d341caSmrg
23211d341caSmrg#if LinuxCLibMajorVersion >= 6
23311d341caSmrg# define LinuxSourceDefines	-D_POSIX_C_SOURCE=199309L \
23411d341caSmrg				-D_POSIX_SOURCE -D_XOPEN_SOURCE \
23511d341caSmrg				-D_BSD_SOURCE -D_SVID_SOURCE \
23611d341caSmrg                                -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
23711d341caSmrg				LinuxAdditionalIncludes LinuxGnuSourceDefines \
23811d341caSmrg				LinuxLocaleDefines
23911d341caSmrg# define XawI18nDefines		-DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H
24011d341caSmrg# define HasPosixThreads	YES
24111d341caSmrg# define ThreadedX		YES
24211d341caSmrg# define HasThreadSafeAPI	YES
24311d341caSmrg# define ThreadsLibraries	-lpthread
24411d341caSmrg# define SystemMTDefines	-D_REENTRANT
24511d341caSmrg# ifndef HasLibCrypt
24611d341caSmrg#  define HasLibCrypt		YES
24711d341caSmrg# endif
24811d341caSmrg/* netscape wraps select but not poll as of communicator 4.72 */
24911d341caSmrg# ifndef HasPoll
25011d341caSmrg#  define HasPoll		NO
25111d341caSmrg# endif
25211d341caSmrg#else
25311d341caSmrg# define LinuxSourceDefines	-D_POSIX_SOURCE -D_POSIX_C_SOURCE=2 \
25411d341caSmrg				-D_BSD_SOURCE -D_SVID_SOURCE \
25511d341caSmrg				LinuxGnuSourceDefines LinuxLocaleDefines
25611d341caSmrg# define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
25711d341caSmrg# ifndef HasLibCrypt
25811d341caSmrg#  define HasLibCrypt		NO
25911d341caSmrg# endif
26011d341caSmrg# ifndef HasBasename
26111d341caSmrg#  define HasBasename		NO
26211d341caSmrg# endif
26311d341caSmrg  /* Proliferation of C99isms makes -ansi unpalatable... */
26411d341caSmrg# if !defined(DefaultCCOptions) && !defined(UseInstalled) && HasGcc
26511d341caSmrg#  define DefaultCCOptions	GccWarningOptions
26611d341caSmrg# endif
26711d341caSmrg#endif
26811d341caSmrg
26911d341caSmrg#ifndef InstallXloadSetGID
27011d341caSmrg#define InstallXloadSetGID	NO
27111d341caSmrg#endif
27211d341caSmrg
27311d341caSmrg/*
27411d341caSmrg * XXX Check which versions of Linux really have IPv6.  glibc 2.0 on
27511d341caSmrg * Red Hat 5.2 doesn't.
27611d341caSmrg */
27711d341caSmrg#if LinuxCLibMajorVersion < 6 || \
27811d341caSmrg    (LinuxCLibMajorVersion == 6 && LinuxCLibMinorVersion == 0)
27911d341caSmrg#define BuildIPv6		NO
28011d341caSmrg#endif
28111d341caSmrg
28211d341caSmrg/* <linux/input.h> support mainly for USB support */
28311d341caSmrg#ifndef HasLinuxInput
28411d341caSmrg# if defined(__linux__) && (OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 4))
28511d341caSmrg#  define HasLinuxInput YES
28611d341caSmrg# else
28711d341caSmrg#  define HasLinuxInput NO
28811d341caSmrg# endif
28911d341caSmrg#endif
29011d341caSmrg
29111d341caSmrg#ifndef JoystickSupport
29211d341caSmrg# define JoystickSupport	NO	/* joystick driver is broken */
29311d341caSmrg#endif
29411d341caSmrg
29511d341caSmrg/* <linux/joystick.h> appeared in 2.1.45 (officially) */
29611d341caSmrg#ifndef HasLinuxSupport
29711d341caSmrg# if defined(__linux__) && (JoystickSupport || \
29811d341caSmrg     (OSMajorVersion > 2) || \
29911d341caSmrg     ((OSMajorVersion == 2) && (OSMinorVersion > 1)) || \
30011d341caSmrg     ((OSMajorVersion == 2) && (OSMinorVersion == 1) && (OSTeenyVersion >= 45)))
30111d341caSmrg#  define HasLinuxJoystick	YES
30211d341caSmrg# else
30311d341caSmrg#  define HasLinuxJoystick	NO
30411d341caSmrg# endif
30511d341caSmrg#endif
30611d341caSmrg
30711d341caSmrg/* Libtool on linux always uses minor numbers */
30811d341caSmrg#define LibtoolMinorVersions	YES
30911d341caSmrg
31011d341caSmrg/* On x86, determine whether to build with MTRR support */
31111d341caSmrg#ifndef HasMTRRSupport
31211d341caSmrg# if defined (i386Architecture) || defined (AMD64Architecture)
31311d341caSmrg#  if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || \
31411d341caSmrg      (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 99)
31511d341caSmrg#   define HasMTRRSupport	YES
31611d341caSmrg#  else
31711d341caSmrg#   define HasMTRRSupport	NO
31811d341caSmrg#  endif
31911d341caSmrg# else
32011d341caSmrg#  define HasMTRRSupport	NO	/* no for non-ix86 */
32111d341caSmrg# endif
32211d341caSmrg#endif
32311d341caSmrg
32411d341caSmrg#ifndef XF86INT10_BUILD
32511d341caSmrg# if defined(__linux__) && defined(i386Architecture)
32611d341caSmrg#  define XF86INT10_BUILD	X86VM
32711d341caSmrg# elif defined(__linux__) && defined(AMD64Architecture)
32811d341caSmrg#  define XF86INT10_BUILD	X86EMU_OS
32911d341caSmrg# else
33011d341caSmrg#  define XF86INT10_BUILD	X86EMU_GENERIC
33111d341caSmrg# endif
33211d341caSmrg#endif
33311d341caSmrg
3341c80d5b0Smrg/*
33511d341caSmrg * Let the OS restore console fonts instead of the generic VGA
33611d341caSmrg * layer. This exists for Linux only at the moment so put it
33711d341caSmrg * here.
33811d341caSmrg */
33911d341caSmrg#ifndef DoOSFontRestore
34011d341caSmrg# define DoOSFontRestore YES
34111d341caSmrg#endif
34211d341caSmrg
34311d341caSmrg/* Should we check the OS version to determine if the kernel supports it? */
34411d341caSmrg#if DoOSFontRestore
34511d341caSmrg# ifndef FontRestoreCheckOsVersion
34611d341caSmrg#  define FontRestoreCheckOsVersion YES
34711d341caSmrg# endif
34811d341caSmrg#endif
34911d341caSmrg
35011d341caSmrg/* The DRM module requires kernel services that appeared in late 2.1.x
35111d341caSmrg   kernels and are known to be present in 2.2.x kernels. */
35211d341caSmrg#ifndef BuildXF86DRI
35311d341caSmrg#  if defined(AlphaArchitecture)
35411d341caSmrg#    define BuildXF86DRI	YES
35511d341caSmrg#  elif defined(Arm32Architecture)
35611d341caSmrg#    define BuildXF86DRI	NO
35711d341caSmrg#  elif defined(HPArchitecture)
35811d341caSmrg#    define BuildXF86DRI	YES
35911d341caSmrg#  elif defined(i386Architecture)
36011d341caSmrg#    if (defined(__linux__) && (OSMajorVersion > 2 || (OSMajorVersion == 2 && \
36111d341caSmrg        OSMinorVersion >= 2))) || \
36211d341caSmrg        defined(__FreeBSD_kernel__)
36311d341caSmrg#      define BuildXF86DRI	YES
36411d341caSmrg#    else
36511d341caSmrg#      define BuildXF86DRI	NO
36611d341caSmrg#    endif
36711d341caSmrg#  elif defined(ia64Architecture)
36811d341caSmrg#    define BuildXF86DRI	YES
36911d341caSmrg#  elif defined(Mc68020Architecture)
37011d341caSmrg#    define BuildXF86DRI	NO
37111d341caSmrg#  elif defined(MipsArchitecture)
37211d341caSmrg#    define BuildXF86DRI	NO
37311d341caSmrg#  elif defined(PpcArchitecture)
37411d341caSmrg#    define BuildXF86DRI	YES
37511d341caSmrg#  elif defined(Ppc64Architecture)
37611d341caSmrg#    define BuildXF86DRI	NO
37711d341caSmrg#  elif defined(s390Architecture) || defined(s390xArchitecture)
37811d341caSmrg#    define BuildXF86DRI	NO
37911d341caSmrg#  elif defined(SparcArchitecture)
38011d341caSmrg#    define BuildXF86DRI	YES
38111d341caSmrg#  elif defined(SuperHArchitecture)
38211d341caSmrg#    define BuildXF86DRI	NO
38311d341caSmrg#  elif defined(AMD64Architecture)
38411d341caSmrg#    define BuildXF86DRI	YES
38511d341caSmrg#  else
38611d341caSmrg#    define BuildXF86DRI	NO
38711d341caSmrg#  endif
38811d341caSmrg#endif
38911d341caSmrg
39011d341caSmrg/*
39111d341caSmrg * Build shared libGL and the DRI modules without -fPIC on some architectures.
39211d341caSmrg * This improves performance.
39311d341caSmrg */
39411d341caSmrg#ifndef BuildLibGlxWithoutPIC
39511d341caSmrg# if BuildXF86DRI
39611d341caSmrg#  if defined(i386Architecture)
39711d341caSmrg#   define BuildLibGlxWithoutPIC	YES
39811d341caSmrg#  endif
39911d341caSmrg# endif
40011d341caSmrg#endif
40111d341caSmrg
40211d341caSmrg#ifndef HasAgpGart
40311d341caSmrg#  if defined(i386Architecture) || defined(ia64Architecture) || defined(AMD64Architecture)
40411d341caSmrg     /* The AGPGART header file is included in os-support/linux, which
40511d341caSmrg        allows all drivers that depend on AGP to build properly. */
40611d341caSmrg#    define HasAgpGart	YES
40711d341caSmrg#  else
40811d341caSmrg#    define HasAgpGart	NO
40911d341caSmrg#  endif
41011d341caSmrg#endif
41111d341caSmrg
41211d341caSmrg/*
41311d341caSmrg * Support for Intel's SSE Native Instructions, also known as the
41411d341caSmrg * Streaming SIMD Extensions, was introduced in the 2.4.x kernels.
41511d341caSmrg */
41611d341caSmrg#ifndef HasSSESupport
41711d341caSmrg#  if defined(i386Architecture)
41811d341caSmrg#    if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 4)
41911d341caSmrg#      define HasSSESupport		YES
42011d341caSmrg#    else
42111d341caSmrg#      define HasSSESupport		NO
42211d341caSmrg#    endif
42311d341caSmrg#  else
42411d341caSmrg#    define HasSSESupport		NO
42511d341caSmrg#  endif
42611d341caSmrg#endif
42711d341caSmrg
42811d341caSmrg/*
42911d341caSmrg * Support for MMX isn't present in the Assembler used in Red Hat 4.2, so
43011d341caSmrg * don't enable it for libc5 as a reasonable default.
43111d341caSmrg */
43211d341caSmrg#ifndef HasMMXSupport
43311d341caSmrg#  if defined(i386Architecture)
43411d341caSmrg#    if (LinuxCLibMajorVersion > 5)
43511d341caSmrg#      define HasMMXSupport		YES
43611d341caSmrg#    else
43711d341caSmrg#      define HasMMXSupport		NO
43811d341caSmrg#    endif
43911d341caSmrg#  else
44011d341caSmrg#    define HasMMXSupport		NO
44111d341caSmrg#  endif
44211d341caSmrg#endif
44311d341caSmrg
44411d341caSmrg/*
44511d341caSmrg * Support for 3DNow isn't present in the Assembler used in Red Hat 4.2, so
44611d341caSmrg * don't enable it for libc5 as a reasonable default.
44711d341caSmrg *
44811d341caSmrg * XXX This is preliminary.
44911d341caSmrg */
45011d341caSmrg#ifndef Has3DNowSupport
45111d341caSmrg#  if defined(i386Architecture)
45211d341caSmrg#    if (LinuxCLibMajorVersion > 5)
45311d341caSmrg#      define Has3DNowSupport		YES
45411d341caSmrg#    else
45511d341caSmrg#      define Has3DNowSupport		NO
45611d341caSmrg#    endif
45711d341caSmrg#  else
45811d341caSmrg#    define Has3DNowSupport		NO
45911d341caSmrg#  endif
46011d341caSmrg#endif
46111d341caSmrg
46211d341caSmrg/*
46311d341caSmrg * The Rush extension support.
46411d341caSmrg */
46511d341caSmrg#ifndef BuildXF86RushExt
46611d341caSmrg# define BuildXF86RushExt	YES
46711d341caSmrg#endif
46811d341caSmrg
46911d341caSmrg#if defined(__linux__) && !defined(LinuxFBDevSupport)
47011d341caSmrg# define LinuxFBDevSupport	YES
47111d341caSmrg#endif
47211d341caSmrg
47311d341caSmrg/* For compatibility */
47411d341caSmrg#define SourceDefines		LinuxSourceDefines
47511d341caSmrg
47611d341caSmrg#define BuildLibPathVar		LD_LIBRARY_PATH
47711d341caSmrg#define GccUsesGas		YES
47811d341caSmrg#define UseGas			YES
47911d341caSmrg#define GnuCpp			YES
48011d341caSmrg#if UseElfFormat
48111d341caSmrg# ifndef HasDlopen
48211d341caSmrg#  define HasDlopen		YES
48311d341caSmrg# endif
48411d341caSmrg#endif
48511d341caSmrg#define HasWeakSymbols		UseElfFormat
48611d341caSmrg#ifndef HasShadowPasswd
48711d341caSmrg# if UseElfFormat
48811d341caSmrg#  define HasShadowPasswd	YES
48911d341caSmrg# else
49011d341caSmrg#  define HasShadowPasswd	NO
49111d341caSmrg# endif
49211d341caSmrg#endif
49311d341caSmrg#define HasPutenv		YES
49411d341caSmrg#ifndef HasShm
49511d341caSmrg# define HasShm			YES
49611d341caSmrg#endif
49711d341caSmrg
49811d341caSmrg/* Use SecureRPC (used for SUN-DES-1 auth. and other goodies) when
49911d341caSmrg * glibc has support for it */
50011d341caSmrg#ifndef HasSecureRPC
50111d341caSmrg# if !(LinuxCLibMajorVersion < 6 || \
50211d341caSmrg       (LinuxCLibMajorVersion == 6 && LinuxCLibMinorVersion < 3))
50311d341caSmrg#  define HasSecureRPC          YES
50411d341caSmrg# endif
50511d341caSmrg#endif
50611d341caSmrg
50711d341caSmrg#define HasSockets		YES
50811d341caSmrg#if UseElfFormat || defined(AlphaArchitecture)
50911d341caSmrg#ifndef HasSnprintf
51011d341caSmrg#define HasSnprintf		YES
51111d341caSmrg#endif
51211d341caSmrg#define HasMkstemp		YES
51311d341caSmrg#endif
51411d341caSmrg/* getresuid() appeared in 2.1.4, and getresgid in 2.1.44 */
51511d341caSmrg#if !defined(HasGetresuid) && \
51611d341caSmrg (((OSMajorVersion*100000) + (OSMinorVersion*1000) + OSTeenyVersion) >= 201044)
51711d341caSmrg#define HasGetresuid		YES
51811d341caSmrg#endif
51911d341caSmrg#if OSMajorVersion >= 2
52011d341caSmrg#define HasUsableFileMmap	YES
52111d341caSmrg#endif
52211d341caSmrg#ifndef HasNCurses
52311d341caSmrg#define HasNCurses		YES
52411d341caSmrg#endif
52511d341caSmrg
52611d341caSmrg#ifndef HasGroff
52711d341caSmrg#define HasGroff		YES
52811d341caSmrg#endif
52911d341caSmrg
53011d341caSmrg#ifndef HasZlib
53111d341caSmrg#define HasZlib			YES
53211d341caSmrg#endif
53311d341caSmrg
53411d341caSmrg#ifndef HasLibpng
53511d341caSmrg#define HasLibpng		YES
53611d341caSmrg#endif
53711d341caSmrg
53811d341caSmrg#ifndef HasExpat
53911d341caSmrg# define HasExpat		YES
54011d341caSmrg#endif
54111d341caSmrg
54211d341caSmrg#ifndef HasFreetype2
54311d341caSmrg# define HasFreetype2		YES
54411d341caSmrg#endif
54511d341caSmrg
54611d341caSmrg#define AvoidNullMakeCommand	YES
54711d341caSmrg#ifndef DebuggableLibraries
54811d341caSmrg#define DebuggableLibraries	NO
54911d341caSmrg#endif
55011d341caSmrg#define CompressAllFonts	YES
55111d341caSmrg#define Malloc0ReturnsNull	YES
55211d341caSmrg#define NeedConstPrototypes	YES
55311d341caSmrg#define NeedFunctionPrototypes	YES
55411d341caSmrg#define NeedNestedPrototypes	YES
55511d341caSmrg#define NeedVarargsPrototypes	YES
55611d341caSmrg#ifndef NeedWidePrototypes
55711d341caSmrg#define NeedWidePrototypes	NO
55811d341caSmrg#endif
55911d341caSmrg#define SetTtyGroup		YES
56011d341caSmrg
56111d341caSmrg#ifndef UseStaticTermcapLib
56211d341caSmrg#define UseStaticTermcapLib	NO
56311d341caSmrg#endif
56411d341caSmrg
56511d341caSmrg#ifndef HasCookieMaker
56611d341caSmrg#define HasCookieMaker		YES
56711d341caSmrg#define MkCookieCmd		mcookie
56811d341caSmrg#endif
56911d341caSmrg
57011d341caSmrg#ifndef BourneShell
57111d341caSmrg/*
57211d341caSmrg * This will cause builds/installs to terminate on errors, as on other
57311d341caSmrg * platforms.
57411d341caSmrg */
57511d341caSmrg#define BourneShell		/bin/sh -e
57611d341caSmrg#endif
57711d341caSmrg
57811d341caSmrg#define MkdirHierCmd		mkdir -p
57911d341caSmrg
58011d341caSmrg#ifndef HaveLib64
5811c80d5b0Smrg# if defined (AMD64Architecture) || defined (s390xArchitecture) || defined (Ppc64Architecture) || defined (AArch64Architecture)
58211d341caSmrg#  define HaveLib64	YES
58311d341caSmrg# else
58411d341caSmrg#  define HaveLib64	NO
58511d341caSmrg# endif
58611d341caSmrg#endif
58711d341caSmrg
58811d341caSmrg#if UseElfFormat
58911d341caSmrg# ifndef DoLoadableServer
59011d341caSmrg#  if defined(MipsArchitecture) || defined(SuperHArchitecture)
59111d341caSmrg#   define DoLoadableServer	NO
59211d341caSmrg#  else
59311d341caSmrg#   define DoLoadableServer	YES
59411d341caSmrg#  endif
59511d341caSmrg# endif
59611d341caSmrg#endif
59711d341caSmrg
59811d341caSmrg
59911d341caSmrg#if LinuxElfDefault
60011d341caSmrg# if UseElfFormat
60111d341caSmrg#  ifdef MipsArchitecture
60211d341caSmrg#   ifndef AsCmd
60311d341caSmrg#     define AsCmd		gcc -c -x assembler-with-cpp
60411d341caSmrg#   endif
60511d341caSmrg#   ifndef MakeDllModules
60611d341caSmrg#     define MakeDllModules	YES
60711d341caSmrg#   endif
60811d341caSmrg#  endif /* MipsArchitecure */
60911d341caSmrg#  if defined (i386Architecture) && ((GccMajorVersion >3) \
61011d341caSmrg   || ((GccMajorVersion == 3) &&  (GccMinorVersion >= 1)))
61111d341caSmrg#   ifndef CcCmd
61211d341caSmrg#    define CcCmd		gcc -m32
61311d341caSmrg#   endif
61411d341caSmrg#   ifndef CplusplusCmd
61511d341caSmrg#    define CplusplusCmd	c++ -m32
61611d341caSmrg#   endif
61711d341caSmrg#  endif
61811d341caSmrg#  if defined (Ppc64Architecture)
61911d341caSmrg#   ifndef CcCmd
62011d341caSmrg#    define CcCmd		gcc -m64
62111d341caSmrg#   endif
62211d341caSmrg#   ifndef CplusplusCmd
62311d341caSmrg#    define CplusplusCmd	c++ -m64
62411d341caSmrg#   endif
62511d341caSmrg#  endif
62611d341caSmrg#  ifndef CcCmd
62711d341caSmrg#   define CcCmd		gcc
62811d341caSmrg#   define CplusplusCmd		c++
62911d341caSmrg#  endif
63011d341caSmrg#  ifndef AsCmd
63111d341caSmrg#   define AsCmd		CcCmd -c -x assembler
63211d341caSmrg#  endif
63311d341caSmrg#  define AsmDefines		-D__ELF__
63411d341caSmrg#  ifndef LdCmd
63511d341caSmrg#   define LdCmd		CcCmd -nostdlib
63611d341caSmrg#  endif
63711d341caSmrg#  ifndef LinuxUsesNcurses
63811d341caSmrg#   if LinuxCLibMajorVersion >= 6 || (LinuxDistribution == LinuxSuSE)
63911d341caSmrg#    define LinuxUsesNcurses	YES
64011d341caSmrg#   else
64111d341caSmrg#    define LinuxUsesNcurses	NO
64211d341caSmrg#   endif
64311d341caSmrg#  endif
64411d341caSmrg#  ifndef TermcapLibrary
64511d341caSmrg#   if UseStaticTermcapLib
64611d341caSmrg#    if LinuxUsesNcurses
64711d341caSmrg#     if !HaveLib64
64811d341caSmrg#      define TermcapLibrary	StaticLibrary(/usr/lib,ncurses)
64911d341caSmrg#     else
65011d341caSmrg#      define TermcapLibrary	StaticLibrary(/usr/lib64,ncurses)
65111d341caSmrg#     endif
65211d341caSmrg#    else
65311d341caSmrg#     if !HaveLib64
65411d341caSmrg#      define TermcapLibrary	StaticLibrary(/usr/lib/termcap,termcap)
65511d341caSmrg#     else
65611d341caSmrg#      define TermcapLibrary	StaticLibrary(/usr/lib64/termcap,termcap)
65711d341caSmrg#     endif
65811d341caSmrg#    endif
65911d341caSmrg#   else
66011d341caSmrg#    if LinuxUsesNcurses
66111d341caSmrg#     define TermcapLibrary	-lncurses
66211d341caSmrg#    else
66311d341caSmrg#     define TermcapLibrary	-ltermcap
66411d341caSmrg#    endif
66511d341caSmrg#   endif
66611d341caSmrg#  endif
66711d341caSmrg# else /* UseElfFormat */
66811d341caSmrg#  ifdef AlphaArchitecture
66911d341caSmrg#   define CcCmd		gcc -b alpha-linuxecoff
67011d341caSmrg#   define CplusplusCmd		g++ -b alpha-linuxecoff
67111d341caSmrg#   define AsCmd		CcCmd -c -x assembler
67211d341caSmrg#   define LdCmd		CcCmd -nostdlib -Wl,"-m alpha"
67311d341caSmrg#   define AsmDefines		-DUSE_GAS -U__ELF__
67411d341caSmrg#  endif /* AlphaArchitecture */
67511d341caSmrg#  ifdef HPArchitecture
67611d341caSmrg#   define CcCmd		gcc
67711d341caSmrg#   define CplusplusCmd		g++
67811d341caSmrg#   define AsCmd		CcCmd -c -x assembler
67911d341caSmrg#   define LdCmd		CcCmd -nostdlib
68011d341caSmrg#   define AsmDefines		-DUSE_GAS -U__ELF__
68111d341caSmrg#  endif /* HPArchitecture */
68211d341caSmrg#  ifdef i386Architecture
68311d341caSmrg#   define CcCmd		gcc -b i486-linuxaout
68411d341caSmrg#   define CplusplusCmd		g++ -b i486-linuxaout
68511d341caSmrg#   define AsCmd		CcCmd -c -x assembler
68611d341caSmrg#   define LdCmd		CcCmd -nostdlib -Wl,"-m i386linux"
68711d341caSmrg#   define AsmDefines		-DUSE_GAS -U__ELF__
68811d341caSmrg#  endif /* i386Architecture */
68911d341caSmrg#  ifdef ia64Architecture
69011d341caSmrg#   define CcCmd		gcc
69111d341caSmrg#   define CplusplusCmd		g++
69211d341caSmrg#   define AsCmd		CcCmd -c -x assembler
69311d341caSmrg#   define LdCmd		CcCmd -nostdlib
69411d341caSmrg#   define AsmDefines		-DUSE_GAS -U__ELF__
69511d341caSmrg#  endif /* ia64Architecture */
69611d341caSmrg#  ifdef Mc68020Architecture
69711d341caSmrg#   define CcCmd		gcc -b m68k-linuxaout
69811d341caSmrg#   define CplusplusCmd		g++ -b m68k-linuxaout
69911d341caSmrg#   define AsCmd		CcCmd -c -x assembler
70011d341caSmrg#   define LdCmd		CcCmd -nostdlib -Wl,"-m m68klinux"
70111d341caSmrg#   define AsmDefines		-DUSE_GAS -U__ELF__
70211d341caSmrg#  endif /* Mc68020Architecture */
70311d341caSmrg#  ifdef AMD64Architecture
70411d341caSmrg#   define CcCmd		gcc
70511d341caSmrg#   define CplusplusCmd		g++
70611d341caSmrg#   define AsCmd		CcCmd -c -x assembler
70711d341caSmrg#   define LdCmd		CcCmd -nostdlib
70811d341caSmrg#   define AsmDefines		-DUSE_GAS -U__ELF__
70911d341caSmrg#  endif /* AMD64Architecture */
71011d341caSmrg# endif /* UseElfFormat */
71111d341caSmrg#else
71211d341caSmrg# if UseElfFormat
71311d341caSmrg#  ifdef AlphaArchitecture
71411d341caSmrg#   define CcCmd		gcc -b alpha-linux
71511d341caSmrg#   define AsCmd		CcCmd -c -x assembler
71611d341caSmrg#   define LdCmd		CcCmd -nostdlib -Wl,"-m elf64alpha"
71711d341caSmrg#   define AsmDefines		-D__ELF__
71811d341caSmrg#   define CplusplusCmd		c++ -b alpha-linux
71911d341caSmrg#  endif /* AlphaArchitecture */
72011d341caSmrg#  ifdef HPArchitecture
72111d341caSmrg#   define CcCmd		gcc
72211d341caSmrg#   define CplusplusCmd		g++
72311d341caSmrg#   define AsCmd		CcCmd -c -x assembler
72411d341caSmrg#   define LdCmd		CcCmd -nostdlib
72511d341caSmrg#   define AsmDefines		-D__ELF__
72611d341caSmrg#   define SharedLibXau		YES
72711d341caSmrg#  endif /* HPArchitecture */
72811d341caSmrg#  ifdef i386Architecture
72911d341caSmrg#   define CcCmd		gcc -b i486-linux
73011d341caSmrg#   define AsCmd		CcCmd -c -x assembler
73111d341caSmrg#   define LdCmd		CcCmd -nosdlib -Wl,"-m elf_i386"
73211d341caSmrg#   define AsmDefines		-D__ELF__
73311d341caSmrg#   define CplusplusCmd		c++ -b i486-linux
73411d341caSmrg#  endif /* i386Architecture */
73511d341caSmrg#  ifdef ia64Architecture
73611d341caSmrg#   define CcCmd		gcc
73711d341caSmrg#   define CplusplusCmd		g++
73811d341caSmrg#   define AsCmd		CcCmd -c -x assembler
73911d341caSmrg#   define LdCmd		CcCmd -nostdlib
74011d341caSmrg#   define AsmDefines		-D__ELF__
74111d341caSmrg#  endif /* ia64Architecture */
74211d341caSmrg#  ifdef Mc68020Architecture
74311d341caSmrg#   define CcCmd		gcc -b m68k-linux
74411d341caSmrg#   define AsCmd		CcCmd -c -x assembler
74511d341caSmrg#   define LdCmd		CcCmd -nostdlib -W,l"-m m68kelf"
74611d341caSmrg#   define AsmDefines		-D__ELF__
74711d341caSmrg#   define CplusplusCmd		c++ -b m68k-linux
74811d341caSmrg#  endif /* Mc68020Architecture */
74911d341caSmrg#  ifdef AMD64Architecture
75011d341caSmrg#   define CcCmd                 gcc
75111d341caSmrg#   define CplusplusCmd          g++
75211d341caSmrg#   define AsCmd                 CcCmd -c -x assembler
75311d341caSmrg#   define LdCmd                 CcCmd -nostdlib
75411d341caSmrg#   define AsmDefines            -D__ELF__
75511d341caSmrg#  endif /* AMD64Architecture */
75611d341caSmrg# else
75711d341caSmrg#  define CcCmd			gcc
75811d341caSmrg#  define AsCmd			CcCmd -c -x assembler
75911d341caSmrg#  define LdCmd			CcCmd -nostdlib
76011d341caSmrg#  define AsmDefines		-DUSE_GAS
76111d341caSmrg# endif
76211d341caSmrg#endif
76311d341caSmrg
76411d341caSmrg/*
76511d341caSmrg * Some older distros still need /lib/cpp.  There's probably a better
76611d341caSmrg * test, but this handles the older Red Hat releases at least.
76711d341caSmrg */
76811d341caSmrg#ifndef CppCmd
76911d341caSmrg# if (LinuxDistribution == LinuxRedHat) && \
77011d341caSmrg     ((LinuxCLibMajorVersion < 6) || \
77111d341caSmrg      (LinuxCLibMajorVersion == 6 && LinuxCLibMinorVersion < 1))
77211d341caSmrg#  define CppCmd		/lib/cpp
77311d341caSmrg# else
77411d341caSmrg#  define CppCmd		cpp
77511d341caSmrg# endif
77611d341caSmrg#endif
77711d341caSmrg
77811d341caSmrg/* Some Linux distributions have yacc, some don't. All have bison. */
77911d341caSmrg#define YaccCmd			bison -y
78011d341caSmrg#define LexCmd			flex -l
78111d341caSmrg#define HasFlex			YES
78211d341caSmrg#define LexLib			-lfl
78311d341caSmrg#define PreProcessCmd		CcCmd -E
78411d341caSmrg#define PostIncDir		DefaultGccIncludeDir
78511d341caSmrg#define LdCombineFlags		-r
78611d341caSmrg#ifndef LdPostLib
78711d341caSmrg# define LdPostLib		/* Never needed */
78811d341caSmrg#endif
78911d341caSmrg#define HasWChar32		YES
79011d341caSmrg#define StandardCppOptions	-traditional
79111d341caSmrg#define StandardCppDefines	StandardDefines
79211d341caSmrg
79311d341caSmrg#define HasVarRun		YES
79411d341caSmrg#ifndef VarDbDirectory
79511d341caSmrg# define VarDbDirectory		$(VARDIR)/lib
79611d341caSmrg#endif
79711d341caSmrg
79811d341caSmrg#ifndef XF86OSCardDrivers
79911d341caSmrg# ifdef __linux__
80011d341caSmrg#  define XF86OSCardDrivers	fbdev v4l sisusb
80111d341caSmrg# else
80211d341caSmrg#  define XF86OSCardDrivers	/**/
80311d341caSmrg# endif
80411d341caSmrg#endif
80511d341caSmrg
80611d341caSmrg#ifndef OSXInputDrivers
80711d341caSmrg# if HasLinuxJoystick
80811d341caSmrg#  define OSXInputDrivers1	ur98
80911d341caSmrg# else
81011d341caSmrg#  define OSXInputDrivers1	/**/
81111d341caSmrg# endif
81211d341caSmrg# if HasLinuxInput
81311d341caSmrg#  define OSXInputDrivers2	aiptek evdev
81411d341caSmrg# else
81511d341caSmrg#  define OSXInputDrivers2	/**/
81611d341caSmrg# endif
81711d341caSmrg# define OSXInputDrivers	OSXInputDrivers1 OSXInputDrivers2
81811d341caSmrg#endif
81911d341caSmrg
82011d341caSmrg#if UseElfFormat
82111d341caSmrg# define HasPlugin			YES
82211d341caSmrg# define VendorHasX11R6_3libXext	YES	/* XC or XFree86 >= 3.3.1 */
82311d341caSmrg#endif
82411d341caSmrg
82511d341caSmrg#ifdef AlphaArchitecture
82611d341caSmrg# ifndef OptimizedCDebugFlags
82711d341caSmrg#  define OptimizedCDebugFlags	DefaultGcc2AxpOpt
82811d341caSmrg# endif
82911d341caSmrg# define LinuxMachineDefines	-D__alpha__
83011d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
83111d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines -D_XSERVER64 -DJENSEN_SUPPORT
83211d341caSmrg# ifdef UseCompaqMathLibrary
83311d341caSmrg#  define MathLibrary		-lcpml -lm
83411d341caSmrg# endif
83511d341caSmrg#endif /* AlphaArchitecture */
83611d341caSmrg
83711d341caSmrg#ifdef Arm32Architecture
83811d341caSmrg# define DefaultCCOptions
83911d341caSmrg# ifndef OptimizedCDebugFlags
84011d341caSmrg#  define OptimizedCDebugFlags	-O3
84111d341caSmrg# endif
84211d341caSmrg# define LinuxMachineDefines	-D__arm__ -D__arm32__ -U__arm -Uarm
84311d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
84411d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
84511d341caSmrg#endif /* Arm32Achitecture */
84611d341caSmrg
84711d341caSmrg#ifdef HPArchitecture
84811d341caSmrg# define OptimizedCDebugFlags	-O2  GccAliasingArgs
84911d341caSmrg# define LinuxMachineDefines	-D__hppa__
85011d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
85111d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
85211d341caSmrg#endif
85311d341caSmrg
85411d341caSmrg#ifdef i386Architecture
85511d341caSmrg# ifndef OptimizedCDebugFlags
85611d341caSmrg#  define OptimizedCDebugFlags	DefaultGcc2i386Opt
85711d341caSmrg# endif
85811d341caSmrg# define LinuxMachineDefines	-D__i386__
85911d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
86011d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
86111d341caSmrg#endif /* i386Architecture */
86211d341caSmrg
86311d341caSmrg#ifdef ia64Architecture
86411d341caSmrg# ifndef OptimizedCDebugFlags
86511d341caSmrg#  define OptimizedCDebugFlags	-O2  GccAliasingArgs
86611d341caSmrg# endif
86711d341caSmrg# define LinuxMachineDefines	-D__ia64__
86811d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
86911d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines -D_XSERVER64
87011d341caSmrg#endif /* ia64Architecture */
87111d341caSmrg
87211d341caSmrg#ifdef Mc68020Architecture
87311d341caSmrg# ifndef OptimizedCDebugFlags
87411d341caSmrg#  define OptimizedCDebugFlags	-O2  GccAliasingArgs
87511d341caSmrg# endif
87611d341caSmrg# define LinuxMachineDefines	-D__mc68000__
87711d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
87811d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
87911d341caSmrg#endif /* Mc68020Architecture */
88011d341caSmrg
88111d341caSmrg#ifdef MipsArchitecture
88211d341caSmrg# ifndef OptimizedCDebugFlags
88311d341caSmrg#  define OptimizedCDebugFlags	DefaultGcc2MipsOpt
88411d341caSmrg# endif
88511d341caSmrg# define LinuxMachineDefines	-D__mips__
88611d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
88711d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
88811d341caSmrg#endif
88911d341caSmrg
89011d341caSmrg#ifdef Ppc64Architecture
89111d341caSmrg# define DefaultCCOptions	-mminimal-toc
89211d341caSmrg# ifndef OptimizedCDebugFlags
89311d341caSmrg#  define OptimizedCDebugFlags	DefaultGcc2Ppc64Opt
89411d341caSmrg# endif
89511d341caSmrg# define LinuxMachineDefines	-D__powerpc64__ -D__powerpc__
89611d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME -DPART_NET
89711d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines -D_XSERVER64
89811d341caSmrg#endif /* Ppc64Architecture */
89911d341caSmrg
90011d341caSmrg#ifdef PpcArchitecture
9011c80d5b0Smrg# define DefaultCCOptions
90211d341caSmrg# ifndef OptimizedCDebugFlags
90311d341caSmrg#  define OptimizedCDebugFlags	DefaultGcc2PpcOpt
90411d341caSmrg# endif
90511d341caSmrg# define LinuxMachineDefines	-D__powerpc__
90611d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
90711d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
90811d341caSmrg#endif /* PpcArchitecture */
90911d341caSmrg
91011d341caSmrg#ifdef s390Architecture
91111d341caSmrg# ifndef OptimizedCDebugFlags
91211d341caSmrg#  define OptimizedCDebugFlags	-O2 -fomit-frame-pointer GccAliasingArgs
91311d341caSmrg# endif
91411d341caSmrg# define LinuxMachineDefines	-D__s390__
91511d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
91611d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
91711d341caSmrg#endif /* s390Architecture */
91811d341caSmrg
91911d341caSmrg#ifdef s390xArchitecture
92011d341caSmrg/*#define DefaultCCOptions	-fsigned-char */
92111d341caSmrg#define OptimizedCDebugFlags	-O3 -fomit-frame-pointer
92211d341caSmrg#define LinuxMachineDefines	-D__s390x__
92311d341caSmrg#define ServerOSDefines		XFree86ServerOSDefines -DDDXTIME
92411d341caSmrg#define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines -D_XSERVER64
92511d341caSmrg#endif /* s390xArchitecture */
92611d341caSmrg
92711d341caSmrg#ifdef SparcArchitecture
92811d341caSmrg# ifndef OptimizedCDebugFlags
92911d341caSmrg#  define OptimizedCDebugFlags	-O2  GccAliasingArgs
93011d341caSmrg# endif
93111d341caSmrg# define LinuxMachineDefines	-D__sparc__
93211d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
93311d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
93411d341caSmrg# define AsVISOption		-Av9a
93511d341caSmrg# ifdef Sparc64Architecture
93611d341caSmrg#  define AsOutputArchSize	64
93711d341caSmrg# else
93811d341caSmrg#  define AsOutputArchSize	32
93911d341caSmrg# endif
94011d341caSmrg#endif
94111d341caSmrg
94211d341caSmrg#ifdef SuperHArchitecture
94311d341caSmrg# ifndef SuperHArchOptFlags
94411d341caSmrg#  ifdef SuperH4Architecture
94511d341caSmrg#   define SuperHArchOptFlags	-m4
94611d341caSmrg#  elif defined(SuperH4NOFPUArchitecture)
94711d341caSmrg#   define SuperHArchOptFlags	-m4-nofpu
94811d341caSmrg#  else
94911d341caSmrg#   define SuperHArchOptFlags	-m3
95011d341caSmrg#  endif
9511c80d5b0Smrg# endif
95211d341caSmrg# ifndef SuperHebArchitecture
95311d341caSmrg#  ifdef SuperHebArchitecture
95411d341caSmrg#   define SuperHEndianFlags	-mb
95511d341caSmrg#  else
95611d341caSmrg#   define SuperHEndianFlags	-ml
95711d341caSmrg#  endif
95811d341caSmrg# endif
95911d341caSmrg# ifndef OptimizedCDebugFlags
96011d341caSmrg#  define OptimizedCDebugFlags	-O2 SuperHArchOptFlags SuperHEndianFlags  GccAliasingArgs
96111d341caSmrg# endif
96211d341caSmrg# define LinuxMachineDefines	-D__sh__
96311d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
96411d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines
96511d341caSmrg# ifndef DoLoadableServer
96611d341caSmrg#  define DoLoadableServer NO
96711d341caSmrg# endif
96811d341caSmrg#endif
96911d341caSmrg
97011d341caSmrg#ifdef AMD64Architecture
97111d341caSmrg# ifndef OptimizedCDebugFlags
97211d341caSmrg#  define OptimizedCDebugFlags	DefaultGcc2AMD64Opt
97311d341caSmrg# endif
97411d341caSmrg# define LinuxMachineDefines   -D__amd64__
97511d341caSmrg# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
97611d341caSmrg# define ServerExtraDefines	-DGCCUSESGAS XFree86ServerDefines -D_XSERVER64
97711d341caSmrg#endif /* AMD64Architecture */
97811d341caSmrg
9791c80d5b0Smrg#ifdef AArch64Architecture
9801c80d5b0Smrg# ifndef OptimizedCDebugFlags
9811c80d5b0Smrg#  define OptimizedCDebugFlags DefaultGcc2AArch64Opt
9821c80d5b0Smrg# endif
9831c80d5b0Smrg# define LinuxMachineDefines   -D__aarch64__
9841c80d5b0Smrg# define ServerOSDefines   XFree86ServerOSDefines -DDDXTIME
9851c80d5b0Smrg# define ServerExtraDefines    -DGCCUSESGAS XFree86ServerDefines -D_XSERVER64
9861c80d5b0Smrg#endif /* AArch64Architecture */
9871c80d5b0Smrg
98811d341caSmrg#ifndef StandardDefines
98911d341caSmrg# ifdef __linux__
99011d341caSmrg#  define StandardDefines	-Dlinux LinuxMachineDefines LinuxSourceDefines
99111d341caSmrg# else
99211d341caSmrg#  define StandardDefines	LinuxMachineDefines LinuxSourceDefines
99311d341caSmrg# endif
99411d341caSmrg#endif
99511d341caSmrg
99611d341caSmrg#if UseElfFormat
99711d341caSmrg# define DlLibrary		-rdynamic -ldl
99811d341caSmrg#else
99911d341caSmrg# define DlLibrary		/**/
100011d341caSmrg#endif
100111d341caSmrg
100211d341caSmrg#define ServerExtraSysLibs	/**/
100311d341caSmrg
100411d341caSmrg#ifndef PamLibraries
100511d341caSmrg#define PamLibraries		-lpam DlLibrary
100611d341caSmrg#endif
100711d341caSmrg
100811d341caSmrg#ifndef PamMiscLibraries
100911d341caSmrg#define PamMiscLibraries	-lpam_misc
101011d341caSmrg#endif
101111d341caSmrg
101211d341caSmrg#ifndef HasDECnet
101311d341caSmrg#define HasDECnet		NO
101411d341caSmrg#endif
101511d341caSmrg#if HasDECnet
101611d341caSmrg# define ConnectionFlags	-DUNIXCONN -DTCPCONN -DDNETCONN
101711d341caSmrg# define ExtraLibraries		-ldnet
101811d341caSmrg#else
101911d341caSmrg# define ConnectionFlags	-DUNIXCONN -DTCPCONN
102011d341caSmrg#endif
102111d341caSmrg
102211d341caSmrg/* Some of these man page defaults are overriden in the above OS sections */
102311d341caSmrg#ifndef ManSuffix
102411d341caSmrg# define ManSuffix	1x
102511d341caSmrg#endif
102611d341caSmrg#ifndef ManDir
102711d341caSmrg# define ManDir		$(MANSOURCEPATH)1
102811d341caSmrg#endif
102911d341caSmrg#ifndef LibManSuffix
103011d341caSmrg# define LibManSuffix	3x
103111d341caSmrg#endif
103211d341caSmrg#ifndef LibmanDir
103311d341caSmrg# define LibmanDir	$(MANSOURCEPATH)3
103411d341caSmrg#endif
103511d341caSmrg#ifndef FileManSuffix
103611d341caSmrg# define FileManSuffix	5x
103711d341caSmrg#endif
103811d341caSmrg#ifndef FileManDir
103911d341caSmrg# define FileManDir	$(MANSOURCEPATH)5
104011d341caSmrg#endif
104111d341caSmrg
104211d341caSmrg#ifndef StaticLibrary
104311d341caSmrg# define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
104411d341caSmrg#endif
104511d341caSmrg
104611d341caSmrg#ifndef LinkGLToUsrLib
104711d341caSmrg# define LinkGLToUsrLib		YES
104811d341caSmrg#endif
104911d341caSmrg# ifndef LinkGLToUsrInclude
105011d341caSmrg# define LinkGLToUsrInclude	YES
105111d341caSmrg#endif
105211d341caSmrg
105311d341caSmrg
105411d341caSmrg#define HasGnuMake		YES
105511d341caSmrg
105611d341caSmrg#define MakeNamedTargetSubdir(dir,flags,subname)\
105711d341caSmrg	$(MAKE) -C dir $(MFLAGS) $(PARALLELMFLAGS) flags subname
105811d341caSmrg
105911d341caSmrg#define ArchitectureDefines	-DLINUX_ARCHITECTURE
106011d341caSmrg
106111d341caSmrg#define TtClientLibs $(TTLIB) $(XTOOLLIB) $(XLIB)
106211d341caSmrg#define TtClientDepLibs $(DEPTTLIB) $(DEPXTOOLLIB) $(DEPXLIB)
106311d341caSmrg
106411d341caSmrg#if HaveLib64
106511d341caSmrg# ifndef LibDirName
106611d341caSmrg#  define LibDirName		lib64
106711d341caSmrg# endif
106811d341caSmrg# ifndef SystemUsrLibDir
106911d341caSmrg#  define SystemUsrLibDir	/usr/lib64
107011d341caSmrg# endif
107111d341caSmrg# ifndef TkLibDir
107211d341caSmrg#  define TkLibDir		/usr/lib64
107311d341caSmrg# endif
107411d341caSmrg#endif
107511d341caSmrg
107611d341caSmrg#ifndef BuildDmx
107711d341caSmrg#define BuildDmx	YES
107811d341caSmrg#endif
107911d341caSmrg
108011d341caSmrg#include <lnxLib.rules>
108111d341caSmrg# include <xorg.cf>
108211d341caSmrg
108311d341caSmrg#ifndef XFree86ServerOSDefines
108411d341caSmrg# define XFree86ServerOSDefines
108511d341caSmrg#endif
1086