NetBSD.cf revision 11d341ca
111d341caSmrgXCOMM platform:  $Xorg: NetBSD.cf,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
211d341caSmrg
311d341caSmrg
411d341caSmrg
511d341caSmrgXCOMM platform:  $XFree86: xc/config/cf/NetBSD.cf,v 3.122 2003/11/18 18:09:45 dawes Exp $
611d341caSmrg
711d341caSmrg
811d341caSmrg#ifndef OSName
911d341caSmrg#define OSName			DefaultOSName OSBinaryType
1011d341caSmrg#endif
1111d341caSmrg#ifndef OSMajorVersion
1211d341caSmrg#define OSMajorVersion		DefaultOSMajorVersion
1311d341caSmrg#endif
1411d341caSmrg#ifndef OSMinorVersion
1511d341caSmrg#define OSMinorVersion		DefaultOSMinorVersion
1611d341caSmrg#endif
1711d341caSmrg#ifndef OSTeenyVersion
1811d341caSmrg#define OSTeenyVersion		DefaultOSTeenyVersion
1911d341caSmrg#endif
2011d341caSmrg
2111d341caSmrg
2211d341caSmrg#ifndef OSVendor
2311d341caSmrg#define	OSVendor		The NetBSD Foundation, Inc.
2411d341caSmrg#endif
2511d341caSmrgXCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
2611d341caSmrg
2711d341caSmrg/*
2811d341caSmrg * C library features
2911d341caSmrg */
3011d341caSmrg#if ((OSMajorVersion > 1) || \
3111d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion > 2) || \
3211d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1))
3311d341caSmrg# define HasPoll			YES
3411d341caSmrg#endif
3511d341caSmrg#define HasNdbm         	YES
3611d341caSmrg#define HasPutenv       	YES
3711d341caSmrg#if OSMajorVersion == 1 && OSMinorVersion > 4 || OSMajorVersion > 1
3811d341caSmrg# define HasStrlcat		YES
3911d341caSmrg#endif
4011d341caSmrg#define HasSnprintf		YES
4111d341caSmrg#define HasBSD44Sockets 	YES
4211d341caSmrg#define Malloc0ReturnsNull	NO
4311d341caSmrg#define SetTtyGroup     	YES
4411d341caSmrg#define DBMLibrary		/**/
4511d341caSmrg#define HasDlopen		YES
4611d341caSmrg#define HasSetProcTitle		YES
4711d341caSmrg#ifndef HasLibCrypt
4811d341caSmrg# define HasLibCrypt		YES
4911d341caSmrg#endif
5011d341caSmrg#ifndef BuildPDFdocs
5111d341caSmrg# define BuildPDFdocs NO
5211d341caSmrg#endif
5311d341caSmrg#ifndef HasShm
5411d341caSmrg# if OSMajorVersion == 0 && OSMinorVersion == 9 && OSTeenyVersion == 2
5511d341caSmrg/*
5611d341caSmrg * Shm memory was removed in 0.9B because it was encumbered.
5711d341caSmrg * A free version was added in 0.9C
5811d341caSmrg */
5911d341caSmrg#  define HasShm          	NO
6011d341caSmrg# else
6111d341caSmrg#  define HasShm          	YES
6211d341caSmrg# endif
6311d341caSmrg#endif
6411d341caSmrg#define HasWChar32		YES
6511d341caSmrg/*
6611d341caSmrg * There's a bug in NetBSD 1.0, 1.1 and 1.2 dlsym()
6711d341caSmrg */
6811d341caSmrg#if ((OSMajorVersion == 1 && OSMinorVersion < 2) || \
6911d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion < 2))
7011d341caSmrg#  define HasDlsymBug		YES
7111d341caSmrg#endif
7211d341caSmrg/* Mkstemp is there since 1.2 (at least) */
7311d341caSmrg#if (!(OSMajorVersion == 0 || \
7411d341caSmrg       (OSMajorVersion == 1 && OSMinorVersion < 2))) 
7511d341caSmrg#define HasMkstemp		YES
7611d341caSmrg#endif
7711d341caSmrg/* But the standalone mktemp doesn't exist before NetBSD 1.5*/
7811d341caSmrg#if (OSMajorVersion ==0 || (OSMajorVersion == 1 && OSMinorVersion <= 4))
7911d341caSmrg# define HasMktemp		NO
8011d341caSmrg#else
8111d341caSmrg# define HasMktemp		YES
8211d341caSmrg#endif
8311d341caSmrg
8411d341caSmrg#ifndef HasIssetugid
8511d341caSmrg# if (OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion >= 5))
8611d341caSmrg#  define HasIssetugid          YES
8711d341caSmrg# endif
8811d341caSmrg#endif
8911d341caSmrg
9011d341caSmrg#if (OSMajorVersion == 1 && OSMinorVersion >= 5 || OSMajorVersion > 1) 
9111d341caSmrg#define HasGetIfAddrs		YES
9211d341caSmrg#endif
9311d341caSmrg
9411d341caSmrg#define HasUsableFileMmap	YES
9511d341caSmrg
9611d341caSmrg#define HasVarRun		YES
9711d341caSmrg#define HasVarDb		YES
9811d341caSmrg
9911d341caSmrg#define HasShadowPasswd		NO
10011d341caSmrg
10111d341caSmrg#define InstallXloadSetGID	NO
10211d341caSmrg
10311d341caSmrg#if OSMajorVersion < 1 || (OSMajorVersion == 1 && OSMinorVersion < 5)
10411d341caSmrg#define BuildIPv6		NO
10511d341caSmrg#endif
10611d341caSmrg
10711d341caSmrg#define IPv6SocketsAlsoIPv4	NO
10811d341caSmrg
10911d341caSmrg/*
11011d341caSmrg * NetBSD 1.6M and newer supports POSIX Threads.
11111d341caSmrg */
11211d341caSmrg
11311d341caSmrg#ifndef NetBSDThreads
11411d341caSmrg# define NetBSDThreads		YES
11511d341caSmrg#endif
11611d341caSmrg
11711d341caSmrg#if NetBSDThreads && \
11811d341caSmrg    ((OSMajorVersion > 1) || \
11911d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion > 6) || \
12011d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 6 && OSTeenyVersion >= 13))
12111d341caSmrg
12211d341caSmrg# define HasPosixThreads	YES
12311d341caSmrg# define ThreadedX		YES
12411d341caSmrg# define HasThreadSafeAPI	YES
12511d341caSmrg# define ThreadsLibraries	-lpthread
12611d341caSmrg# if ((OSMajorVersion == 2 && OSMinorVersion == 99 && OSTeenyVersion < 11) || \
12711d341caSmrg      (OSMajorVersion == 2 && OSMinorVersion < 99) || \
12811d341caSmrg      (OSMajorVersion < 2))
12911d341caSmrg#  define LibraryMTDefines	-DUSE_NBSD_THREADLIB
13011d341caSmrg# endif
13111d341caSmrg# define SystemMTDefines	-D_REENTRANT
13211d341caSmrg# define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
13311d341caSmrg#else 
13411d341caSmrg# define ThreadedX		NO
13511d341caSmrg#endif
13611d341caSmrg
13711d341caSmrg/*
13811d341caSmrg * Compiler Features
13911d341caSmrg */
14011d341caSmrg#define GccUsesGas		YES
14111d341caSmrg#define UseGas			YES
14211d341caSmrg#define GnuCpp			YES
14311d341caSmrg
14411d341caSmrg#define NeedConstPrototypes	YES
14511d341caSmrg#define NeedFunctionPrototypes	YES
14611d341caSmrg#define NeedNestedPrototypes	YES
14711d341caSmrg#define NeedVarargsPrototypes	YES
14811d341caSmrg#define NeedWidePrototypes	NO
14911d341caSmrg
15011d341caSmrg#define MkdirHierCmd		mkdir -p
15111d341caSmrg
15211d341caSmrg#undef CcCmd
15311d341caSmrg#define CcCmd 			gcc
15411d341caSmrg#ifndef DefaultCCOptions
15511d341caSmrg#if defined(UseInstalled)
15611d341caSmrg#define DefaultCCOptions 	/**/
15711d341caSmrg#else
15811d341caSmrg#ifdef Arm32Architecture
15911d341caSmrg#define DefaultCCOptions 	-ansi -Dasm=__asm -fsigned-char \
16011d341caSmrg				-fomit-frame-pointer
16111d341caSmrg#elif defined(PpcArchitecture)
16211d341caSmrg# define DefaultCCOptions	-ansi -Dasm=__asm -fsigned-char
16311d341caSmrg#else
16411d341caSmrg#define DefaultCCOptions 	-ansi -Dasm=__asm GccWarningOptions
16511d341caSmrg#endif
16611d341caSmrg#endif
16711d341caSmrg#endif
16811d341caSmrg
16911d341caSmrg#define CppCmd			cpp
17011d341caSmrg#define StandardCppOptions	-traditional
17111d341caSmrg#define StandardCppDefines	/**/
17211d341caSmrg#define PreProcessCmd   	CcCmd -E
17311d341caSmrg#define PostIncDir		/usr/include
17411d341caSmrg
17511d341caSmrg#define GccGasOption 		-DGCCUSESGAS
17611d341caSmrg#define AsmDefines 		-DUSE_GAS
17711d341caSmrg
17811d341caSmrg/* UseElfFormat defaults to YES if __ELF__ set */
17911d341caSmrg#ifndef UseElfFormat
18011d341caSmrg# ifdef __ELF__
18111d341caSmrg#  undef __ELF__			/* other imake files shouldn't care */
18211d341caSmrg#  define UseElfFormat YES
18311d341caSmrg# else
18411d341caSmrg#  define UseElfFormat NO
18511d341caSmrg# endif
18611d341caSmrg#endif
18711d341caSmrg
18811d341caSmrg/*
18911d341caSmrg * Dynamic loading supported starting in 1.0 on a.out platforms,
19011d341caSmrg * and on all ELF platforms.
19111d341caSmrg *
19211d341caSmrg * XXX May not be correct on NetBSD/pmax (ELF, but might not have
19311d341caSmrg * working shared libs).
19411d341caSmrg *
19511d341caSmrg * Disabled for NetBSD/vax until I figure out the scheme. --CS 
19611d341caSmrg */
19711d341caSmrg#if ((OSMajorVersion > 0) && defined(i386Architecture)) || \
19811d341caSmrg    defined(PpcArchitecture)
19911d341caSmrg#  ifndef DoLoadableServer
20011d341caSmrg#  define DoLoadableServer	YES
20111d341caSmrg#  endif
20211d341caSmrg#else
20311d341caSmrg#  ifndef DoLoadableServer
20411d341caSmrg#  define DoLoadableServer	NO
20511d341caSmrg#  endif
20611d341caSmrg#endif
20711d341caSmrg
20811d341caSmrg#if UseElfFormat
20911d341caSmrg#define DlLibrary		-rdynamic /* no -ldl yet */
21011d341caSmrg#else
21111d341caSmrg#define DlLibrary		/**/
21211d341caSmrg#endif
21311d341caSmrg
21411d341caSmrg/* All ELF NetBSD systems support Weak symbols */
21511d341caSmrg#define HasWeakSymbols		UseElfFormat 
21611d341caSmrg
21711d341caSmrg#ifdef i386Architecture
21811d341caSmrg# ifndef DefaultGcc2i386Opt
21911d341caSmrg#  if OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion > 2)
22011d341caSmrg    /* The GCC strength-reduce bug is fixed for NetBSD 1.3 and later */
22111d341caSmrg#   define DefaultGcc2i386Opt -O2 GccAliasingArgs
22211d341caSmrg#  endif
22311d341caSmrg# endif
22411d341caSmrg# define OptimizedCDebugFlags 	DefaultGcc2i386Opt
22511d341caSmrg# if OSMajorVersion < 1
22611d341caSmrg#  define ServerOSDefines	XFree86ServerOSDefines -DXNO_SYSCONF
22711d341caSmrg# else
22811d341caSmrg#  define ServerOSDefines	XFree86ServerOSDefines
22911d341caSmrg# endif
23011d341caSmrg# if OSMajorVersion == 1 && OSMinorVersion >= 1 || OSMajorVersion >= 2
23111d341caSmrg#  define ServerExtraSysLibs	-li386
23211d341caSmrg# endif
23311d341caSmrg#else
23411d341caSmrg# define OptimizedCDebugFlags 	-O2
23511d341caSmrg# if defined(SparcArchitecture)
23611d341caSmrg#  define ServerOSDefines 	-DDDXOSINIT
23711d341caSmrg# elif defined(AlphaArchitecture)
23811d341caSmrg#  define ServerOSDefines 	XFree86ServerOSDefines
23911d341caSmrg# elif defined(Arm32Architecture)
24011d341caSmrg#   define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
24111d341caSmrg# elif defined(PpcArchitecture)
24211d341caSmrg#  define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME -DDDXOSINIT
24311d341caSmrg# else
24411d341caSmrg#  define ServerOSDefines 	/**/
24511d341caSmrg# endif
24611d341caSmrg# if defined(AlphaArchitecture)
24711d341caSmrg#  define ServerExtraSysLibs	-lalpha
24811d341caSmrg# else
24911d341caSmrg#  define ServerExtraSysLibs	/**/
25011d341caSmrg# endif
25111d341caSmrg#endif
25211d341caSmrg#ifdef i386Architecture
25311d341caSmrg# define ServerExtraDefines GccGasOption XFree86ServerDefines
25411d341caSmrg# ifndef XFree86ConsoleDefines
25511d341caSmrg#  if (OSMajorVersion == 1 && ((OSMinorVersion == 3 && OSTeenyVersion >= 6) \
25611d341caSmrg	                       || OSMinorVersion >= 4) \
25711d341caSmrg       || OSMajorVersion >= 2)  
25811d341caSmrg#   define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT -DWSCONS_SUPPORT
25911d341caSmrg#  else
26011d341caSmrg#   define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
26111d341caSmrg#  endif
26211d341caSmrg# endif
26311d341caSmrg#elif defined(SparcArchitecture)
26411d341caSmrg#  if defined(Sparc64Architecture)
26511d341caSmrg#   define ServerExtraDefines XFree86ServerDefines -D_XSERVER64
26611d341caSmrg#  else
26711d341caSmrg#   define ServerExtraDefines XFree86ServerDefines
26811d341caSmrg#  endif
26911d341caSmrg# elif defined(AlphaArchitecture)
27011d341caSmrg	/* XXX for the following */
27111d341caSmrg#  define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
27211d341caSmrg#  ifndef XFree86ConsoleDefines
27311d341caSmrg#   define XFree86ConsoleDefines -DWSCONS_SUPPORT -DPCCONS_SUPPORT -DPCVT_SUPPORT
27411d341caSmrg#  endif
27511d341caSmrg#elif defined(AlphaArchitecture)
27611d341caSmrg#   define ServerExtraDefines GccGasOption -D_XSERVER64
27711d341caSmrg#elif defined(Arm32Architecture)
27811d341caSmrg#  define ServerExtraDefines GccGasOption XFree86ServerDefines
27911d341caSmrg#  ifndef XFree86ConsoleDefines
28011d341caSmrg#    define XFree86ConsoleDefines -DPCCONS_SUPPORT
28111d341caSmrg#  endif
28211d341caSmrg#elif defined(PpcArchitecture)
28311d341caSmrg#  define ServerExtraDefines	GccGasOption XFree86ServerDefines
28411d341caSmrg#  ifndef XFree86ConsoleDefines
28511d341caSmrg#    define XFree86ConsoleDefines	-DWSCONS_SUPPORT
28611d341caSmrg#  endif
28711d341caSmrg#else
28811d341caSmrg#  define ServerExtraDefines GccGasOption
28911d341caSmrg#endif
29011d341caSmrg
29111d341caSmrg#define StandardDefines	-DCSRG_BASED
29211d341caSmrg/* Citrus mb locale were added in 1.5P */
29311d341caSmrg#if ((OSMajorVersion > 1) || \
29411d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion > 5) || \
29511d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 5 && OSTeenyVersion >= 15))
29611d341caSmrg#define XawI18nDefines	-DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H
29711d341caSmrg#else
29811d341caSmrg#define XawI18nDefines	-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
29911d341caSmrg#endif
30011d341caSmrg
30111d341caSmrg#ifndef ExtraLibraries
30211d341caSmrg#define ExtraLibraries		/**/
30311d341caSmrg#endif
30411d341caSmrg#ifndef UseGnuMalloc
30511d341caSmrg/*
30611d341caSmrg * There is no way to map 1.4J correctly to OS*Version, so 'J' is mapped
30711d341caSmrg * to OSTeenyVersion == 9. That should be safe, since there will never
30811d341caSmrg * be a release for 1.4.9.
30911d341caSmrg */
31011d341caSmrg# if ((OSMajorVersion > 1) || \
31111d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion > 4) || \
31211d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion > 9))
31311d341caSmrg#  define UseGnuMalloc		NO
31411d341caSmrg# else
31511d341caSmrg#  define UseGnuMalloc		YES
31611d341caSmrg#endif
31711d341caSmrg#endif
31811d341caSmrg#ifndef GnuMallocLibrary
31911d341caSmrg#define GnuMallocLibrary	-lgnumalloc
32011d341caSmrg#endif
32111d341caSmrg
32211d341caSmrg#if ((OSMajorVersion > 1) || \
32311d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion > 2) || \
32411d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1))
32511d341caSmrg#ifndef HasZlib
32611d341caSmrg#define HasZlib			  YES
32711d341caSmrg#endif
32811d341caSmrg#endif 
32911d341caSmrg
33011d341caSmrg#define	AdmDir			/var/log
33111d341caSmrg
33211d341caSmrg#define HasFlex			YES
33311d341caSmrg
33411d341caSmrg/* NetBSD doesn't have gperf in the base install */
33511d341caSmrg#define DontRebuildGperfOutput	YES
33611d341caSmrg
33711d341caSmrg/* 
33811d341caSmrg * NetBSD doesn't have perl in default system
33911d341caSmrg * you may override this in host.def if you installed perl from the packages
34011d341caSmrg */
34111d341caSmrg#ifndef HasPerl
34211d341caSmrg#define HasPerl			NO
34311d341caSmrg#endif
34411d341caSmrg
34511d341caSmrg/*
34611d341caSmrg * NetBSD doesn't have gperf in default system
34711d341caSmrg * you may override this in host.def if you installed perl from the packages
34811d341caSmrg */
34911d341caSmrg#ifndef HasGperf
35011d341caSmrg#define HasGperf		NO
35111d341caSmrg#endif
35211d341caSmrg
35311d341caSmrg/*
35411d341caSmrg * Make & install Features
35511d341caSmrg */
35611d341caSmrg#define HasBsdMake		YES
35711d341caSmrg#define CompressAllFonts	YES
35811d341caSmrg#define GzipFontCompression	YES
35911d341caSmrg#define DefaultUserPath		/bin:/usr/bin:/usr/pkg/bin:/usr/local/bin:$(BINDIR)
36011d341caSmrg#define DefaultSystemPath	/sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR)
36111d341caSmrg
36211d341caSmrg#ifdef  InstallCmd
36311d341caSmrg# undef  InstallCmd
36411d341caSmrg# define InstallCmd 		/usr/bin/install
36511d341caSmrg#endif
36611d341caSmrg
36711d341caSmrg#ifndef ExtraFilesToClean
36811d341caSmrg# define ExtraFilesToClean 	*.core
36911d341caSmrg#endif
37011d341caSmrg
37111d341caSmrg/*
37211d341caSmrg * Documentation formatting
37311d341caSmrg */
37411d341caSmrg#define NeqnCmd			neqn -Tlatin1
37511d341caSmrg#define NroffCmd		nroff -Tlatin1
37611d341caSmrg#define	EqnCmd 			eqn -Tps
37711d341caSmrg#define HasGroff		YES
37811d341caSmrg
37911d341caSmrg/*
38011d341caSmrg * To use the NetBSD Aperture driver
38111d341caSmrg */
38211d341caSmrg#if defined(i386Architecture)
38311d341caSmrg# ifndef HasNetBSDApertureDriver
38411d341caSmrg#  define HasNetBSDApertureDriver	YES
38511d341caSmrg# endif
38611d341caSmrg
38711d341caSmrg/*
38811d341caSmrg * Builtin MTRR support (NetBSD 1.5Y and up)
38911d341caSmrg */
39011d341caSmrg# if ((OSMajorVersion > 1) || \
39111d341caSmrg      (OSMajorVersion == 1 && OSMinorVersion >= 6) || \
39211d341caSmrg      (OSMajorVersion == 1 && OSMinorVersion == 5 && \
39311d341caSmrg       OSTeenyVersion >= 25))
39411d341caSmrg#  define HasMTRRBuiltin        YES
39511d341caSmrg# else
39611d341caSmrg /*
39711d341caSmrg  * MTRR support  provided by the Aperture driver
39811d341caSmrg  */
39911d341caSmrg#  if HasNetBSDApertureDriver
40011d341caSmrg#   ifndef HasMTRRSupport
40111d341caSmrg#    define HasMTRRSupport	YES
40211d341caSmrg#   endif
40311d341caSmrg#  endif
40411d341caSmrg# endif /* MTRRBuiltin */
40511d341caSmrg#endif /* i386Architecture */
40611d341caSmrg
40711d341caSmrg/*
40811d341caSmrg * agpgart support (NetBSD 1.5Y and up)
40911d341caSmrg */
41011d341caSmrg#if ((OSMajorVersion > 1) || \
41111d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion >= 6) || \
41211d341caSmrg     (OSMajorVersion == 1 && OSMinorVersion == 5 && \
41311d341caSmrg      OSTeenyVersion >= 25))
41411d341caSmrg# ifndef HasAgpGart
41511d341caSmrg#  define HasAgpGart   YES
41611d341caSmrg# endif
41711d341caSmrg#endif
41811d341caSmrg
41911d341caSmrg/*
42011d341caSmrg * MMX, SSE and 3DNow will be autodetected. NetBSD 1.6 and up have the
42111d341caSmrg * necessary kernel and toolchain support.
42211d341caSmrg */
42311d341caSmrg#if defined(i386Architecture) &&  \
42411d341caSmrg	((OSMajorVersion > 1) || (OSMajorVersion == 1 && OSMinorVersion > 5))
42511d341caSmrg# define HasX86Support          YES
42611d341caSmrg# define HasMMXSupport          YES
42711d341caSmrg# define Has3DNowSupport        YES
42811d341caSmrg# define HasSSESupport          YES
42911d341caSmrg#else
43011d341caSmrg# define HasX86Support          NO
43111d341caSmrg# define HasMMXSupport          NO
43211d341caSmrg# define Has3DNowSupport        NO
43311d341caSmrg# define HasSSESupport          NO
43411d341caSmrg#endif
43511d341caSmrg
43611d341caSmrg#ifndef HasCookieMaker
43711d341caSmrg# if OSMajorVersion == 1 && OSMinorVersion >= 5 || OSMajorVersion >= 2
43811d341caSmrg   /* NetBSD 1.5 and later have /dev/urandom */
43911d341caSmrg#  define HasCookieMaker	YES
44011d341caSmrg#  define MkCookieCmd \
44111d341caSmrg	'dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"'
44211d341caSmrg# else
44311d341caSmrg#  define HasCookieMaker	NO
44411d341caSmrg# endif
44511d341caSmrg#endif
44611d341caSmrg
44711d341caSmrg
44811d341caSmrg/*
44911d341caSmrg * ForceSubdirs - force make to build subdirectories
45011d341caSmrg * 
45111d341caSmrg * For BSD 4.4 make 
45211d341caSmrg */
45311d341caSmrg#define ForceSubdirs(dirs)						@@\
45411d341caSmrgdirs:	.EXEC								@@\
45511d341caSmrg	@cd $@ ; echo "making all in $(CURRENT_DIR)/$@..."; \		@@\
45611d341caSmrg	$(MAKE) $(MFLAGS) PassCDebugFlags all				@@\
45711d341caSmrg									@@\
45811d341caSmrg.EXEC:
45911d341caSmrg
46011d341caSmrg/*
46111d341caSmrg * Man pages need to be formatted when installed, so override the default
46211d341caSmrg * imake rules.
46311d341caSmrg */
46411d341caSmrg#define ManSuffix	1
46511d341caSmrg#define FileManSuffix	5
46611d341caSmrg#define ManSourcePath	$(MANPATH)/cat
46711d341caSmrg
46811d341caSmrg#define InstallManPageLongBase(file,destdir,dest)			@@\
46911d341caSmrg									@@\
47011d341caSmrgall:: file.0								@@\
47111d341caSmrg									@@\
47211d341caSmrgfile.0:: file.$(MANNEWSUFFIX)						@@\
47311d341caSmrg	@if [ -f file.$(MANNEWSUFFIX) ]; \				@@\
47411d341caSmrg	then \								@@\
47511d341caSmrg	cat file.$(MANNEWSUFFIX) | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) > file.0; \	@@\
47611d341caSmrg	fi 								@@\
47711d341caSmrg									@@\
47811d341caSmrginstall.man::                                                           @@\
47911d341caSmrg	MakeDir($(DESTDIR)destdir)					@@\
48011d341caSmrg	-@if [ -f file.0 ]; \						@@\
48111d341caSmrg	then \								@@\
48211d341caSmrg	$(INSTALL) -c $(INSTMANFLAGS) file.0 $(DESTDIR)destdir/dest.0; \@@\
48311d341caSmrg	fi								@@\
48411d341caSmrg									@@\
48511d341caSmrgclean::									@@\
48611d341caSmrg	RemoveFile(file.0)
48711d341caSmrg
48811d341caSmrg#define InstallManPageLong(file,destdir,dest)				@@\
48911d341caSmrgBuildInstallHtmlManPage(file,dest,$(MANSUFFIX))				@@\
49011d341caSmrg									@@\
49111d341caSmrgCppManTarget(file, $(EXTRAMANDEFS))					@@\
49211d341caSmrg									@@\
49311d341caSmrgInstallManPageLongBase(file,destdir,dest)
49411d341caSmrg
49511d341caSmrg#define InstallGenManPageLong(file,destdir,dest,suffix)			@@\
49611d341caSmrgBuildInstallHtmlManPage(file,dest,suffix)				@@\
49711d341caSmrg									@@\
49811d341caSmrgCppManTarget(file, $(EXTRAMANDEFS))					@@\
49911d341caSmrg									@@\
50011d341caSmrgInstallManPageLongBase(file,destdir,dest)
50111d341caSmrg
50211d341caSmrg#define InstallMultipleMan(list,dest)                                   @@\
50311d341caSmrginstall.man:: 								@@\
50411d341caSmrg	MakeDir($(DESTDIR)dest)						@@\
50511d341caSmrg	case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
50611d341caSmrg	for i in list; do \                                             @@\
50711d341caSmrg	  (MNAME=`echo $$i | cut -f1 -d.`; \				@@\
50811d341caSmrg	  set -x; \							@@\
50911d341caSmrg	  cat $$i | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) \		@@\
51011d341caSmrg		| $(COL) > $${MNAME}.0; \				@@\
51111d341caSmrg	  $(INSTALL) -c $(INSTMANFLAGS) $${MNAME}.0 \			@@\
51211d341caSmrg			$(DESTDIR)dest/$${MNAME}.0; \			@@\
51311d341caSmrg	  $(RM) $${MNAME}.0); \						@@\
51411d341caSmrg	done
51511d341caSmrg
51611d341caSmrg#define InstallMultipleManSuffix(list,dest,suff)                        @@\
51711d341caSmrginstall.man:: 								@@\
51811d341caSmrg	MakeDir($(DESTDIR)dest)						@@\
51911d341caSmrg	case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
52011d341caSmrg	for i in list; do \                                             @@\
52111d341caSmrg	  (set -x; \							@@\
52211d341caSmrg	  cat $$i.suff | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) \	@@\
52311d341caSmrg		| $(COL) > $$i.0; \					@@\
52411d341caSmrg	  $(INSTALL) -c $(INSTMANFLAGS) $$i.0	 \			@@\
52511d341caSmrg		$(DESTDIR)dest/$$i.0; \					@@\
52611d341caSmrg	  $(RM) $$i.0 ); \						@@\
52711d341caSmrg	done
52811d341caSmrg
52911d341caSmrg#define InstallManPageAliasesBase(file,destdir,aliases)			@@\
53011d341caSmrginstall.man:: 								@@\
53111d341caSmrg	@case '${MFLAGS}' in *[i]*) set +e;; esac; \                    @@\
53211d341caSmrg	for i in aliases; do \                                          @@\
53311d341caSmrg		(set -x; \						@@\
53411d341caSmrg		$(RM) $(DESTDIR)destdir/$$i.0;\  			@@\
53511d341caSmrg		(cd $(DESTDIR)/destdir; $(LN) file.0 $$i.0);\ 		@@\
53611d341caSmrg		); \							@@\
53711d341caSmrg	done
53811d341caSmrg
53911d341caSmrg#define InstallManPageAliases(file,destdir,aliases)			@@\
54011d341caSmrgInstallHtmlManPageAliases(file,aliases,$(MANSUFFIX))			@@\
54111d341caSmrg									@@\
54211d341caSmrgInstallManPageAliasesBase(file,destdir,aliases)
54311d341caSmrg
54411d341caSmrg#define InstallGenManPageAliases(file,destdir,suffix,aliases)		@@\
54511d341caSmrgInstallHtmlManPageAliases(file,aliases,suffix)				@@\
54611d341caSmrg									@@\
54711d341caSmrgInstallManPageAliasesBase(file,destdir,aliases)
54811d341caSmrg
54911d341caSmrg/*
55011d341caSmrg * Shared libraries supported starting in 1.0 on a.out platforms,
55111d341caSmrg * and on all ELF platforms.
55211d341caSmrg *
55311d341caSmrg * XXX May not be correct on NetBSD/pmax (ELF, but might not have
55411d341caSmrg * working shared libs).
55511d341caSmrg */
55611d341caSmrg#if ((OSMajorVersion > 0) && \
55711d341caSmrg     !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \
55811d341caSmrg    UseElfFormat
55911d341caSmrg# ifndef HasSharedLibraries
56011d341caSmrg# define HasSharedLibraries	YES
56111d341caSmrg# endif
56211d341caSmrg#endif
56311d341caSmrg
56411d341caSmrg#ifndef OSBinaryType
56511d341caSmrg#if UseElfFormat
56611d341caSmrg#define OSBinaryType	[ELF]
56711d341caSmrg#else
56811d341caSmrg#define OSBinaryType	/**/
56911d341caSmrg#endif
57011d341caSmrg#endif
57111d341caSmrg
57211d341caSmrg#ifndef HasSharedLibraries
57311d341caSmrg#define HasSharedLibraries	NO
57411d341caSmrg#endif 
57511d341caSmrg
57611d341caSmrg/*
57711d341caSmrg * Unresolved references are fatal on NetBSD 1.5 for libGL, which is
57811d341caSmrg * built with -Bsymbolic.
57911d341caSmrg */
58011d341caSmrg#if UseElfFormat && OSMajorVersion == 1 && OSMinorVersion == 5
58111d341caSmrg#define SharedGLReqs		$(LDPRELIBS) $(XLIB) -lc
58211d341caSmrg#endif
58311d341caSmrg
58411d341caSmrg#if HasSharedLibraries
58511d341caSmrg#include <bsdLib.rules>
58611d341caSmrg#endif /* HasSharedLibraries */
58711d341caSmrg
58811d341caSmrg/* Always build the XInput library, regardless of server support on this plattform */
58911d341caSmrg#if !defined(BuildXInputLib) && !defined(BuildServersOnly)
59011d341caSmrg# define BuildXInputLib          YES
59111d341caSmrg#endif
59211d341caSmrg
59311d341caSmrg#if defined(i386Architecture) || defined(Arm32Architecture) || defined(AlphaArchitecture) || defined(PpcArchitecture)
59411d341caSmrg# include <xorg.cf>
59511d341caSmrg#endif
59611d341caSmrg
59711d341caSmrg/*
59811d341caSmrg * Definitions for the SUN server on NetBSD/sparc
59911d341caSmrg */
60011d341caSmrg#ifdef SparcArchitecture
60111d341caSmrg#ifndef Xsun24Server
60211d341caSmrg#define Xsun24Server	YES
60311d341caSmrg#endif
60411d341caSmrg#ifndef XsunServer
60511d341caSmrg#define XsunServer	YES
60611d341caSmrg#endif
60711d341caSmrg#ifndef XsunMonoServer
60811d341caSmrg#define XsunMonoServer	NO	/* XXX: does not link */
60911d341caSmrg#endif
61011d341caSmrg#ifndef BuildScreenSaverLibrary
61111d341caSmrg#define BuildScreenSaverLibrary	YES
61211d341caSmrg#endif
61311d341caSmrg
61411d341caSmrg/*
61511d341caSmrg * XFree86 uses its own (more portable) database routines to speed up 
61611d341caSmrg * the RGB database lookups
61711d341caSmrg * However, if you want to use ndbm anyway, you can set that to NO in 
61811d341caSmrg * site.def
61911d341caSmrg */
62011d341caSmrg#ifndef UseRgbTxt
62111d341caSmrg#define UseRgbTxt	YES
62211d341caSmrg#endif
62311d341caSmrg#define BuildXF86VidModeExt	NO
62411d341caSmrg#define BuildXF86DGA		NO
62511d341caSmrg#define BuildXInputExt		NO
62611d341caSmrg#include <xorg.cf>
62711d341caSmrg#endif
62811d341caSmrg
62911d341caSmrg/*
63011d341caSmrg * Definition for compiling on MIPS machines
63111d341caSmrg */
63211d341caSmrg#ifdef MipsArchitecture
63311d341caSmrg#define PositionIndependentCFlags
63411d341caSmrg#define SharedLibraryLoadFlags -x -shared --whole-archive -soname `echo $@ |
63511d341caSmrgsed 's/\.[0-9]*$$//'`
63611d341caSmrg#define SharedXtReqs $(XONLYLIB) $(SMLIB) $(ICELIB)
63711d341caSmrg#define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XLIB)
63811d341caSmrg#endif
63911d341caSmrg
64011d341caSmrg/*
64111d341caSmrg * Definition for compiling on Alpha machines
64211d341caSmrg */
64311d341caSmrg#ifdef AlphaArchitecture
64411d341caSmrg
64511d341caSmrg/* Build the shared XDM greeter on Alpha if it supports shared libs */
64611d341caSmrg#define SharedLibXdmGreet HasSharedLibraries
64711d341caSmrg#endif
64811d341caSmrg
64911d341caSmrg/*
65011d341caSmrg * Definition for compile on macppc machines
65111d341caSmrg */
65211d341caSmrg#ifdef PpcArchitecture
65311d341caSmrg
65411d341caSmrg# define OptimizedCDebugFlags 	-O2
65511d341caSmrg# define XkbServerDefines	-DXKB_ALWAYS_USES_SOFT_REPEAT
65611d341caSmrg
65711d341caSmrg# ifndef DoLoadableServer
65811d341caSmrg#   define DoLoadableServer	YES
65911d341caSmrg# endif
66011d341caSmrg
66111d341caSmrg# define UseElfFormat		YES
66211d341caSmrg
66311d341caSmrg#endif
66411d341caSmrg
66511d341caSmrg/*
66611d341caSmrg * Definition for compiling on VAX machines
66711d341caSmrg */
66811d341caSmrg#ifdef VaxArchitecture
66911d341caSmrg#define BuildServer	NO
67011d341caSmrg#endif
67111d341caSmrg
67211d341caSmrg/* 
67311d341caSmrg * General settings for all platforms 
67411d341caSmrg */ 
67511d341caSmrg#ifndef SharedLibXdmGreet
67611d341caSmrg#define SharedLibXdmGreet NO
67711d341caSmrg#endif
67811d341caSmrg
67911d341caSmrg#ifndef BuildHtmlManPages
68011d341caSmrg#define BuildHtmlManPages NO	/* We don't want HTML manpages */
68111d341caSmrg#endif
68211d341caSmrg
68311d341caSmrg#ifndef UseSeparateConfDir
68411d341caSmrg#define UseSeparateConfDir NO	/* We don't want appdefs in "/etc/X11". */
68511d341caSmrg#endif
68611d341caSmrg
68711d341caSmrg#if defined(NetBSDArchitecture) && \
68811d341caSmrg     ((OSMajorVersion > 1) || \
68911d341caSmrg      (OSMajorVersion == 1 && OSMinorVersion > 3))
69011d341caSmrg#define HasDevRandom		YES
69111d341caSmrg#define RandomDeviceFile	/dev/urandom
69211d341caSmrg#endif
693