111d341caSmrgXCOMM platform:  $Xorg: FreeBSD.cf,v 1.3 2000/08/17 19:41:45 cpqbld Exp $
24c61c93dSmrgXCOMM platform:  $XdotOrg: xc/config/cf/FreeBSD.cf,v 1.10 2004/08/15 00:03:36 anholt Exp $
311d341caSmrgXCOMM
411d341caSmrgXCOMM
511d341caSmrgXCOMM
611d341caSmrgXCOMM platform:  $XFree86: xc/config/cf/FreeBSD.cf,v 3.147 2004/01/28 01:46:21 dawes Exp $
711d341caSmrg
811d341caSmrg#ifndef UseElfFormat
911d341caSmrg#define UseElfFormat		DefaultToElfFormat
1011d341caSmrg#endif
1111d341caSmrg
1211d341caSmrg#if UseElfFormat
1311d341caSmrg#define OSBinaryFormat		[ELF]
1411d341caSmrg#else
1511d341caSmrg#define OSBinaryFormat		[a.out]
1611d341caSmrg#endif
1711d341caSmrg
1811d341caSmrg#ifndef OSName
1911d341caSmrg#define OSName			DefaultOSName OSBinaryFormat
2011d341caSmrg#endif
2111d341caSmrg#ifndef OSVendor
2211d341caSmrg#define OSVendor		/**/
2311d341caSmrg#endif
2411d341caSmrg#ifndef OSMajorVersion
2511d341caSmrg#define OSMajorVersion		DefaultOSMajorVersion
2611d341caSmrg#endif
2711d341caSmrg#ifndef OSMinorVersion
2811d341caSmrg#define OSMinorVersion		DefaultOSMinorVersion
2911d341caSmrg#endif
3011d341caSmrg#ifndef OSTeenyVersion
3111d341caSmrg#define OSTeenyVersion		DefaultOSTeenyVersion
3211d341caSmrg#endif
3311d341caSmrg
3411d341caSmrg#ifndef OSRelVersion
3511d341caSmrg/* Include this to get finer-grained information about the OS version */
3611d341caSmrg#include "/usr/include/osreldate.h"
3711d341caSmrg#define OSRelVersion __FreeBSD_version
3811d341caSmrg#endif
3911d341caSmrg
4011d341caSmrgXCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) (OSRelVersion)
4111d341caSmrg
4211d341caSmrg
4311d341caSmrg#define HasCplusplus		YES
4411d341caSmrg#define GccUsesGas		YES
4511d341caSmrg#define UseGas			YES
4611d341caSmrg#define GnuCpp			YES
4711d341caSmrg#define HasNdbm			YES
4811d341caSmrg#define HasPutenv		YES
4911d341caSmrg#define HasSnprintf		YES
5011d341caSmrg#if OSMajorVersion == 3 && OSMinorVersion >= 3 || OSMajorVersion > 3
5111d341caSmrg# define HasStrlcat		YES
5211d341caSmrg#endif
5311d341caSmrg#if OSMajorVersion == 4 && OSMinorVersion >= 2 || OSMajorVersion > 4
5411d341caSmrg# define HasBasename		YES
5511d341caSmrg#else
5611d341caSmrg# define HasBasename		NO
5711d341caSmrg#endif
5811d341caSmrg#define HasBSD44Sockets 	YES
5911d341caSmrg#define HasDlopen		YES
6011d341caSmrg#if ((OSRelVersion >= 410002) && OSRelVersion < 500000) || (OSRelVersion >= 500012)
6111d341caSmrg#define HasSetProcTitle		YES
6211d341caSmrg#endif
6311d341caSmrg#ifndef HasLibCrypt
6411d341caSmrg# define HasLibCrypt		YES
6511d341caSmrg#endif
6611d341caSmrg#ifndef HasShm
6711d341caSmrg# define HasShm			YES
6811d341caSmrg#endif
6911d341caSmrg#define HasWChar32		YES
7011d341caSmrg#define HasUsableFileMmap	YES
7111d341caSmrg#define HasNCurses		YES
7211d341caSmrg#define HasVarRun		YES
7311d341caSmrg#define HasVarDb		YES
7411d341caSmrg#ifndef BuildPDFdocs
7511d341caSmrg# define BuildPDFdocs NO
7611d341caSmrg#endif
7711d341caSmrg#if (OSMajorVersion >= 3)
7811d341caSmrg#define HasIssetugid		YES
7911d341caSmrg#define HasPoll			YES
8011d341caSmrg#endif
8111d341caSmrg
8211d341caSmrg#if OSMajorVersion >= 4
8311d341caSmrg#define HasGetIfAddrs		YES
8411d341caSmrg#endif
8511d341caSmrg
8611d341caSmrg/* All versions define AF_INET6. 3.x and earlier don't have IPv6 support. */
8711d341caSmrg#if OSMajorVersion < 4
8811d341caSmrg#ifndef BuildIPv6
8911d341caSmrg#define BuildIPv6		NO
9011d341caSmrg#endif
9111d341caSmrg#endif
9211d341caSmrg
9311d341caSmrg#define IPv6SocketsAlsoIPv4	NO
9411d341caSmrg
9511d341caSmrg#if (OSMajorVersion > 1)
9611d341caSmrg#define InstallXloadSetGID	NO
9711d341caSmrg#else
9811d341caSmrg#define InstallXloadSetGID	YES
9911d341caSmrg#endif
10011d341caSmrg
10111d341caSmrg#define HasWeakSymbols		UseElfFormat
10211d341caSmrg
10311d341caSmrg/*
1041c80d5b0Smrg * Multi-thread safe libs
1051c80d5b0Smrg */
10611d341caSmrg/* 2.2.7 and later has libc_r (POSIX threads) */
10711d341caSmrg#if OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 7 || \
10811d341caSmrg    OSMajorVersion >= 3
10911d341caSmrg# define HasPosixThreads	YES
11011d341caSmrg# define ThreadedX		YES
11111d341caSmrg# define HasThreadSafeAPI	YES
11211d341caSmrg# if OSRelVersion < 501000
11311d341caSmrg#  define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
11411d341caSmrg# else
11511d341caSmrg#  define MTSafeAPIDefines	-DXUSE_MTSAFE_API
11611d341caSmrg# endif
11711d341caSmrg# if (OSRelVersion < 500043)
11811d341caSmrg#  define NeedUIThrStubs	YES
11911d341caSmrg# endif
12011d341caSmrg# if (OSRelVersion >= 502102)
12111d341caSmrg#  define ThreadsLibraries	-lpthread
12211d341caSmrg# elif (OSRelVersion >= 500016)
12311d341caSmrg#  define ThreadsLibraries	-lc_r
12411d341caSmrg# else
12511d341caSmrg#  define ThreadsLibraries	-pthread
12611d341caSmrg# endif
12711d341caSmrg# define SystemMTDefines	-D_THREAD_SAFE
12811d341caSmrg#endif
12911d341caSmrg
13011d341caSmrg/* This fixes linking C programs against libGLU on FreeBSD 3.x */
13111d341caSmrg#if (OSMajorVersion == 3)
13211d341caSmrg#define SharedGLUReqs		$(LDPRELIB) $(XLIB) $(GLXLIB) -lstdc++ -lgcc
13311d341caSmrg#endif
13411d341caSmrg
13511d341caSmrg#define AvoidNullMakeCommand	YES
13611d341caSmrg#define StripInstalledPrograms	YES
13711d341caSmrg#define CompressAllFonts	YES
13811d341caSmrg#define Malloc0ReturnsNull	YES
13911d341caSmrg#define NeedConstPrototypes	YES
14011d341caSmrg#define NeedFunctionPrototypes	YES
14111d341caSmrg#define NeedNestedPrototypes	YES
14211d341caSmrg#define NeedVarargsPrototypes	YES
14311d341caSmrg#define NeedWidePrototypes	NO
14411d341caSmrg
14511d341caSmrg#define HasPlugin		YES
14611d341caSmrg#define VendorHasX11R6_3libXext	YES	/* XC or XFree86 >= 3.3.1 */
14711d341caSmrg
14811d341caSmrg#define MkdirHierCmd		mkdir -p
14911d341caSmrg
15011d341caSmrg#ifndef LexCmd
15111d341caSmrg#define LexCmd			flex -l
15211d341caSmrg#endif
15311d341caSmrg#ifndef HasFlex
15411d341caSmrg#define HasFlex			YES
15511d341caSmrg#endif
156624e3943Smrg#ifndef HasGnuAr
157624e3943Smrg#define HasGnuAr		YES
158624e3943Smrg#endif
15911d341caSmrg
16011d341caSmrg#ifndef HasMktemp
16111d341caSmrg#if (OSMajorVersion >= 4) || (OSMajorVersion == 3 && OSMinorVersion >= 1) || \
16211d341caSmrg	(OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 7)
16311d341caSmrg#define HasMktemp		YES
16411d341caSmrg#else
16511d341caSmrg#define HasMktemp		NO
16611d341caSmrg#endif
16711d341caSmrg#endif
16811d341caSmrg
16911d341caSmrg/*
17011d341caSmrg * 2.2.x has perl 4 by default, not perl 5.
17111d341caSmrg */
17211d341caSmrg#if (OSMajorVersion <= 2)
17311d341caSmrg#ifndef HasPerl5
17411d341caSmrg#define HasPerl5		NO
17511d341caSmrg#endif
17611d341caSmrg#endif
17711d341caSmrg
17811d341caSmrg#ifndef CcCmd
17911d341caSmrg#define CcCmd			cc
18011d341caSmrg#endif
18111d341caSmrg#ifndef CplusplusCmd
18211d341caSmrg#define CplusplusCmd		c++
18311d341caSmrg#endif
18411d341caSmrg#define CppCmd			/usr/bin/cpp
18511d341caSmrg#define PreProcessCmd		CppCmd
18611d341caSmrg#define StandardCppOptions	-traditional
18711d341caSmrg#define StandardCppDefines	/**/
18811d341caSmrg#ifndef DefaultCCOptions
18911d341caSmrg#if defined(UseInstalled)
19011d341caSmrg#define DefaultCCOptions	/**/
19111d341caSmrg#else
19211d341caSmrg#if defined(HasGcc3) && HasGcc3
19311d341caSmrg#define NoSystemWarn		-Wno-system-headers
19411d341caSmrg#else
19511d341caSmrg#define NoSystemWarn
19611d341caSmrg#endif
19711d341caSmrg#define DefaultCCOptions	-ansi -pedantic NoSystemWarn -Dasm=__asm \
19811d341caSmrg	GccWarningOptions
19911d341caSmrg#endif
20011d341caSmrg#endif
20111d341caSmrg#ifndef ExtraLibraries
20211d341caSmrg/* support for multi-byte locales is in libxpg4 rather than libc */
20311d341caSmrg#if (OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)) && \
20411d341caSmrg    !(OSMajorVersion == 4 && OSRelVersion >= 400020) && \
20511d341caSmrg    !(OSRelVersion >= 500005)
20611d341caSmrg#define ExtraLibraries		-lxpg4
20711d341caSmrg#else
20811d341caSmrg#define ExtraLibraries		/**/
20911d341caSmrg#endif
21011d341caSmrg#endif
21111d341caSmrg#ifndef UseGnuMalloc
21211d341caSmrg/* 2.2 doesn't really have GnuMalloc */
21311d341caSmrg#if OSMajorVersion < 2 || (OSMajorVersion == 2 && OSMinorVersion < 2)
21411d341caSmrg#define UseGnuMalloc		YES
21511d341caSmrg#else
21611d341caSmrg#define UseGnuMalloc		NO
21711d341caSmrg#endif
21811d341caSmrg#endif
21911d341caSmrg/* 2.2.2 and later has setusercontext() */
22011d341caSmrg#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 2) || \
22111d341caSmrg     (OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 2)
22211d341caSmrg#define HasSetUserContext	YES
22311d341caSmrg#endif
22411d341caSmrg
22511d341caSmrg#if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 6)
22611d341caSmrg#define HasGetpeereid		YES
22711d341caSmrg#endif
22811d341caSmrg
22911d341caSmrg/* 3.3(?) and later has support for setting MTRRs */
23011d341caSmrg#ifndef HasMTRRSupport
23111d341caSmrg#if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion >= 3)
23211d341caSmrg#define HasMTRRSupport		YES
23311d341caSmrg#else
23411d341caSmrg#define HasMTRRSupport		NO
23511d341caSmrg#endif
23611d341caSmrg#endif
23711d341caSmrg
23811d341caSmrg/*
23911d341caSmrg * Drivers that don't need AGP can work with 4.0, but we don't have a
24011d341caSmrg * mechanism for specifying a subset of drivers in the OS.cf files yet.
24111d341caSmrg */
24211d341caSmrg#ifndef BuildXF86DRI
24311d341caSmrg#if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1)
24411d341caSmrg#define BuildXF86DRI		YES
24511d341caSmrg#endif
24611d341caSmrg#endif
24711d341caSmrg
24811d341caSmrg/*
24911d341caSmrg * 4.1/i386 and 5.0/i386,alpha,ia64,amd64 have the AGP driver.
25011d341caSmrg */
25111d341caSmrg#ifndef HasAgpGart
25211d341caSmrg#if defined(i386Architecture) && \
25311d341caSmrg	(OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1))
25411d341caSmrg#define HasAgpGart		YES
25511d341caSmrg#endif
25611d341caSmrg#if (defined(AlphaArchitecture) || defined(ia64Architecture) || \
25711d341caSmrg	defined(AMD64Architecture)) && (OSMajorVersion >= 5)
25811d341caSmrg#define HasAgpGart		YES
25911d341caSmrg#endif
26011d341caSmrg#endif
26111d341caSmrg
26211d341caSmrg/*
2631c80d5b0Smrg * SSE and 3DNow will be autodetected, so binutils is the only
26411d341caSmrg * requirement for enabling this.  By 4.2 they were all supported.
26511d341caSmrg */
26611d341caSmrg#if defined(AMD64Architecture) || defined(i386Architecture) && \
26711d341caSmrg	(OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 2))
26811d341caSmrg# define HasX86Support          YES
26911d341caSmrg# define HasMMXSupport		YES
27011d341caSmrg# define Has3DNowSupport	YES
27111d341caSmrg# define HasSSESupport		YES
27211d341caSmrg#else
27311d341caSmrg# define HasX86Support	        NO
27411d341caSmrg# define HasMMXSupport		NO
27511d341caSmrg# define Has3DNowSupport	NO
27611d341caSmrg# define HasSSESupport		NO
27711d341caSmrg#endif
27811d341caSmrg
2791c80d5b0Smrg/*
28011d341caSmrg * This doesn't work the way it does on every other system. On FreeBSD it's
2811c80d5b0Smrg * only a "hint, not a demand", whatever that means. Note that this is not
28211d341caSmrg * what it says in the ld and ld.so man pages, which are rather vague on the
28311d341caSmrg * matter.
28411d341caSmrg *
2851c80d5b0Smrg * But we do know that if a) you do what the X Project team does and set your
2861c80d5b0Smrg * ProjectRoot to something like "/X11", and b) you have other X libraries,
2871c80d5b0Smrg * e.g. in /usr/X11R6/lib, and you have added /usr/X11R6/lib to your
28811d341caSmrg * ld.so.cache with ldconfig, then any programs linked with this "hint" will
2891c80d5b0Smrg * find that ld.so ignores the "hint" at runtime and loads the libraries in
29011d341caSmrg * the ld.so.cache, i.e.the wrong ones, instead! Empirically we find that
29111d341caSmrg * the run-path is only used as a last resort to find the libraries, after
29211d341caSmrg * the LD_LIBRARY_PATH and ld.so.cache.
29311d341caSmrg *
29411d341caSmrg * N. B. to FreeBSD users who are not familiar with the semantics of the run-
2951c80d5b0Smrg * path on other systems. The run-path is akin to a per-program ld.so.cache.
2961c80d5b0Smrg * If a program is linked with a run-path, that run-path should take
2971c80d5b0Smrg * precedence over _everything_ else! In my opinion ldconfig and the
29811d341caSmrg * ld.so.cache should be deprecated immediately now that FreeBSD has run-
2991c80d5b0Smrg * paths. Any program that needs libraries that are outside the "well known"
30011d341caSmrg * locations should be linked with a run-path.
30111d341caSmrg *
30211d341caSmrg * All of which begs the question: If this option doesn't work in any useful
30311d341caSmrg * way, why did they (FreeBSD) bother to add it? It would be nice if FreeBSD
30411d341caSmrg * would fix ld.so so that run-paths are truly useful.
30511d341caSmrg *
3061c80d5b0Smrg * Using run-paths is added with the intent that vendors who ship X for
3071c80d5b0Smrg * FreeBSD should use it too. Once everyone uses it then there will be no
3081c80d5b0Smrg * reason for FreeBSD to assume that it knows where X libraries are installed
3091c80d5b0Smrg * and they can remove it from the list of directories they add to ld.so.cache
31011d341caSmrg * in their /etc/rc file.
31111d341caSmrg */
31211d341caSmrg
31311d341caSmrg#ifndef UseRpath
31411d341caSmrg# define UseRpath		YES
31511d341caSmrg#endif
31611d341caSmrg
31711d341caSmrg#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
31811d341caSmrg
31911d341caSmrg# ifndef RpathLoadFlags
32011d341caSmrg#  if UseRpath
32111d341caSmrg#   if UseElfFormat
32211d341caSmrg#    define RpathLoadFlags	-Wl,-rpath,$(USRLIBDIRPATH)
32311d341caSmrg#   else
32411d341caSmrg#    define RpathLoadFlags	-Wl,-R,$(USRLIBDIRPATH)
32511d341caSmrg#   endif
32611d341caSmrg#  else
32711d341caSmrg#   define RpathLoadFlags	/**/
32811d341caSmrg#  endif
32911d341caSmrg# endif
33011d341caSmrg
33111d341caSmrg# ifndef ExtraLoadFlags
33211d341caSmrg#  if UseElfFormat && !defined(UseInstalled)
33311d341caSmrg#   define ExtraLoadFlags	RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
33411d341caSmrg#  else
33511d341caSmrg#   define ExtraLoadFlags	RpathLoadFlags
33611d341caSmrg#  endif
33711d341caSmrg# endif
33811d341caSmrg
33911d341caSmrg#endif
34011d341caSmrg
34111d341caSmrg#ifndef LibraryRpathLoadFlags
34211d341caSmrg# if UseRpath
34311d341caSmrg#  if UseElfFormat
34411d341caSmrg#   define LibraryRpathLoadFlags	-rpath $(USRLIBDIRPATH)
34511d341caSmrg#  else
34611d341caSmrg#   define LibraryRpathLoadFlags	-R $(USRLIBDIRPATH)
34711d341caSmrg#  endif
34811d341caSmrg# else
34911d341caSmrg#  define LibraryRpathLoadFlags		/**/
35011d341caSmrg# endif
35111d341caSmrg#endif
35211d341caSmrg
35311d341caSmrg#ifndef SharedLibraryLoadFlags
35411d341caSmrg# if UseElfFormat
35511d341caSmrg#  define SharedLibraryLoadFlags	-shared LibraryRpathLoadFlags
35611d341caSmrg# else
35711d341caSmrg#  define SharedLibraryLoadFlags	-Bshareable LibraryRpathLoadFlags
35811d341caSmrg# endif
35911d341caSmrg#endif
36011d341caSmrg
36111d341caSmrg#ifndef GnuMallocLibrary
36211d341caSmrg#define GnuMallocLibrary	-lgnumalloc
36311d341caSmrg#endif
36411d341caSmrg
36511d341caSmrg#if (OSMajorVersion > 2) || (OSMajorVersion == 2 && OSMinorVersion >= 2) \
36611d341caSmrg	|| (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 6)
36711d341caSmrg/* 2.1.6 and 2.2 have libz */
36811d341caSmrg#ifndef HasZlib
36911d341caSmrg#define HasZlib		YES
37011d341caSmrg#endif
37111d341caSmrg#endif
37211d341caSmrg
37311d341caSmrg/* PAM appeared in FreeBSD 3.1 */
37411d341caSmrg#if (OSMajorVersion > 3) || (OSMajorVersion == 3 && OSMinorVersion >=1 )
37511d341caSmrg#ifndef HasPam
37611d341caSmrg#define HasPam		YES
37711d341caSmrg#endif
37811d341caSmrg#endif
37911d341caSmrg
38011d341caSmrg/* There are two options for building.  One is to assume that the system has
38111d341caSmrg * many of the dependencies provided by the ports tree.  The other is to just
38211d341caSmrg * build everything from this tree.
38311d341caSmrg */
38411d341caSmrg
38511d341caSmrg#ifndef HasStandardPorts
38611d341caSmrg#define HasStandardPorts	YES
38711d341caSmrg#endif
38811d341caSmrg
38911d341caSmrg#ifndef LocalBase
39011d341caSmrg#define LocalBase		/usr/local
39111d341caSmrg#endif
39211d341caSmrg#ifndef X11Base
39311d341caSmrg#define X11Base			/usr/X11R6
39411d341caSmrg#endif
39511d341caSmrg
39611d341caSmrg#if HasStandardPorts
39711d341caSmrg
39811d341caSmrg#ifndef HasExpat
39911d341caSmrg# define HasExpat		YES
40011d341caSmrg# define ExpatDir		LocalBase
40111d341caSmrg#endif
40211d341caSmrg
40311d341caSmrg#ifndef HasFreetype2
40411d341caSmrg# define HasFreetype2		YES
40511d341caSmrg# define Freetype2Dir		LocalBase
40611d341caSmrg#endif
40711d341caSmrg
40811d341caSmrg#ifndef HasFontconfig
40911d341caSmrg# define HasFontconfig		YES
41011d341caSmrg# define FontconfigDir		X11Base
41111d341caSmrg#endif
41211d341caSmrg
41311d341caSmrg#ifndef HasLibpng
41411d341caSmrg# define HasLibpng		YES
41511d341caSmrg# define LibpngDir		LocalBase
41611d341caSmrg#endif
41711d341caSmrg
41811d341caSmrg#endif /* HasStandardPorts */
41911d341caSmrg
42011d341caSmrg#undef  InstallCmd
42111d341caSmrg#define InstallCmd		/usr/bin/install
42211d341caSmrg
42311d341caSmrg#if UseElfFormat
42411d341caSmrg# define AsmElfDefines		-D__ELF__
42511d341caSmrg#else
42611d341caSmrg# define AsmElfDefines /**/
42711d341caSmrg#endif
42811d341caSmrg
42911d341caSmrg#if GccUsesGas
43011d341caSmrg# define GccGasOption		-DGCCUSESGAS
43111d341caSmrg# define AsmDefines		-DUSE_GAS AsmElfDefines
43211d341caSmrg#else
43311d341caSmrg# define GccGasOption /**/
43411d341caSmrg# define AsmDefines		AsmElfDefines
43511d341caSmrg#endif
43611d341caSmrg
43711d341caSmrg#ifdef i386Architecture
43811d341caSmrg#define ServerExtraDefines GccGasOption XFree86ServerDefines
43911d341caSmrg#endif
44011d341caSmrg#if defined(AlphaArchitecture) || defined(Sparc64Architecture) || \
44111d341caSmrg	defined(ia64Architecture) || defined(AMD64Architecture)
44211d341caSmrg#define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
44311d341caSmrg#endif
44411d341caSmrg#ifdef Sparc64Architecture
44511d341caSmrg#define AsVISOption		-Av9a
44611d341caSmrg#define AsOutputArchSize	64
44711d341caSmrg#endif
44811d341caSmrg
44911d341caSmrg#ifdef PpcArchitecture
45011d341caSmrg#define XF86INT10_BUILD		X86INT10_STUB
45111d341caSmrg#endif
45211d341caSmrg
45311d341caSmrg#define StandardDefines	-DCSRG_BASED
45411d341caSmrg
45511d341caSmrg#if OSMajorVersion > 1
45611d341caSmrg#define ServerOSDefines		XFree86ServerOSDefines -DDDXTIME
45711d341caSmrg#define XawI18nDefines		-DUSE_XWCHAR_STRING
45811d341caSmrg#define HasMakefileSafeInclude	YES
45911d341caSmrg#define IncludeMakefile(file) @@# dependencies are in .depend
46011d341caSmrg#define DependFileName		.depend
46111d341caSmrg#ifndef DoLoadableServer
46211d341caSmrg#define DoLoadableServer	YES
46311d341caSmrg#endif
46411d341caSmrg#ifndef ForceNormalLib
46511d341caSmrg#define ForceNormalLib		YES
46611d341caSmrg#endif
46711d341caSmrg#define HasMkstemp		YES
46811d341caSmrg#else
46911d341caSmrg#define ServerOSDefines		XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
47011d341caSmrg#define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
47111d341caSmrg#endif
47211d341caSmrg
47311d341caSmrg/* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */
47411d341caSmrg#ifndef DefaultGcc2i386Opt
47511d341caSmrg#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5)
47611d341caSmrg#define DefaultGcc2i386Opt -O2 GccAliasingArgs
47711d341caSmrg#endif
47811d341caSmrg#endif
47911d341caSmrg
48011d341caSmrg#ifdef i386Architecture
48111d341caSmrg# define OptimizedCDebugFlags DefaultGcc2i386Opt
48211d341caSmrg#else
48311d341caSmrg# define OptimizedCDebugFlags -O
48411d341caSmrg#endif
48511d341caSmrg
48611d341caSmrg#ifndef PreIncDir
48711d341caSmrg# define PreIncDir	/usr/include
48811d341caSmrg#endif
48911d341caSmrg
49011d341caSmrg#define HasGroff	YES
49111d341caSmrg#define NroffCmd	env GROFF_NO_SGR=y groff -Tascii
49211d341caSmrg#define SetTtyGroup	YES
49311d341caSmrg
49411d341caSmrg#ifndef ExtraFilesToClean
49511d341caSmrg# define ExtraFilesToClean *.core
49611d341caSmrg#endif
49711d341caSmrg
49811d341caSmrg#define DefaultUserPath		/bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR):/usr/gnu/bin:/usr/local/bin
49911d341caSmrg#define DefaultSystemPath	/bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR)
50011d341caSmrg#ifndef SystemManDirectory
50111d341caSmrg#define SystemManDirectory	/usr/share/man
50211d341caSmrg#endif
50311d341caSmrg
50411d341caSmrg#define InstKmemFlags	-g kmem -m 2755
50511d341caSmrg
50611d341caSmrg/*
50711d341caSmrg * Compress manual pages
50811d341caSmrg */
50911d341caSmrg#ifndef CompressManPages
51011d341caSmrg# define CompressManPages	YES
51111d341caSmrg#endif
51211d341caSmrg
51311d341caSmrg#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 1)
51411d341caSmrg#define HasBsdMake	YES
51511d341caSmrg#endif
51611d341caSmrg
51711d341caSmrg#ifndef StaticLibrary
51811d341caSmrg#define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
51911d341caSmrg#endif
52011d341caSmrg
52111d341caSmrg#if UseElfFormat
52211d341caSmrg#define DlLibrary		-rdynamic
52311d341caSmrg#else
52411d341caSmrg#define DlLibrary		/**/
52511d341caSmrg#endif
52611d341caSmrg
52711d341caSmrg#ifdef AlphaArchitecture
52811d341caSmrg#define IoLibrary		-lio
52911d341caSmrg#else
53011d341caSmrg#define IoLibrary		/**/
53111d341caSmrg#endif
53211d341caSmrg
53311d341caSmrg#define ServerExtraSysLibs	IoLibrary
5341c80d5b0Smrg
53511d341caSmrg#ifndef PamLibraries
53611d341caSmrg#define PamLibraries		-lpam DlLibrary
53711d341caSmrg#endif
53811d341caSmrg
53911d341caSmrg#ifndef SharedLibXdmGreet
54011d341caSmrg# define SharedLibXdmGreet		NO
54111d341caSmrg#endif
54211d341caSmrg
54311d341caSmrg/*
54411d341caSmrg * On FreeBSD, the run-time loader will use the built-in "rpath" before
54511d341caSmrg * LD_LIBRARY_PATH.  This means that utilities like mkfontdir will load
54611d341caSmrg * installed libraries (if they exist) in preference to the ones in the
54711d341caSmrg * build tree, even though LD_LIBRARY_PATH points to the build tree.
54811d341caSmrg * This can result in the build failing.  One way to avoid this is to
54911d341caSmrg * pre-load the libraries from the build tree.
55011d341caSmrg *
55111d341caSmrg * There should be a better way than this hack...
55211d341caSmrg */
55311d341caSmrg#if UseElfFormat
55411d341caSmrg#ifndef PreloadFontSetup
55511d341caSmrg#define PreloadFontSetup	LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(XFONTPRELOADPATTERN))`"
55611d341caSmrg#endif
55711d341caSmrg#ifndef PreloadFreetypeSetup
55811d341caSmrg#define PreloadFreetypeSetup	LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(FT2PRELOADPATTERN))`"
55911d341caSmrg#endif
56011d341caSmrg#ifndef PreloadXFTSetup
56111d341caSmrg#define PreloadXFTSetup		LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(FT2PRELOADPATTERN) $(XFTPRELOADPATTERN) $(XRENDERPRELOADPATTERN) $(FCPRELOADPATTERN))`"
56211d341caSmrg#endif
56311d341caSmrg#endif
56411d341caSmrg
56511d341caSmrg#ifndef HasCookieMaker
56611d341caSmrg/* Which versions have /dev/urandom? */
56711d341caSmrg#if OSMajorVersion >= 4
56811d341caSmrg#define HasCookieMaker		YES
56911d341caSmrg#define MkCookieCmd \
57011d341caSmrg	'dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"'
57111d341caSmrg#else
57211d341caSmrg#define HasCookieMaker		NO
57311d341caSmrg#endif
57411d341caSmrg#endif
57511d341caSmrg
57611d341caSmrg/*
57711d341caSmrg * A hack to work around an optimization problem with gcc 2.95.2 - 2.95.4
57811d341caSmrg */
57911d341caSmrg#if (GccMajorVersion == 2 && GccMinorVersion == 95)
58011d341caSmrg#define GccOptBug295
58111d341caSmrg#endif
58211d341caSmrg
58311d341caSmrg#include <bsdLib.rules>
58411d341caSmrg
58511d341caSmrg#include <xorg.cf>
586