XCOMM $NetBSD: NetBSD.cf,v 1.109 2003/12/23 16:30:20 tsutsui Exp $
XCOMM platform:  $XConsortium: NetBSD.cf /main/16 1996/10/31 14:47:14 kaleb $



XCOMM platform:  $XFree86: xc/config/cf/NetBSD.cf,v 3.49.2.14 2001/02/04 21:44:00 herrb Exp $


  
XCOMM
XCOMM This file currently contains support for:
XCOMM
XCOMM 		NetBSD/i386	client/server
XCOMM 		NetBSD/sparc	client/server
XCOMM 		NetBSD/sparc64	client/server
XCOMM 		NetBSD/sun3	client/server
XCOMM 		NetBSD/hp300	client
XCOMM 		NetBSD/mac68k	client/server
XCOMM 		NetBSD/pmax	client/server
XCOMM		NetBSD/amiga	client/server
XCOMM		NetBSD/alpha	client/server
XCOMM		NetBSD/acorn32	client/server
XCOMM		NetBSD/cats	client
XCOMM		NetBSD/shark	client/server
XCOMM		NetBSD/atari	client/server
XCOMM		NetBSD/vax	client/server
XCOMM		NetBSD/pc532	client
XCOMM		NetBSD/x68k	client/server
XCOMM		NetBSD/macppc	client/server
XCOMM		NetBSD/hpcmips	client/server
XCOMM		NetBSD/hpcarm	client/server
XCOMM		NetBSD/mvme68k	client
XCOMM		NetBSD/next68k	client
XCOMM		NetBSD/prep	client
XCOMM		NetBSD/news68k	client
XCOMM		NetBSD/cobalt	client
XCOMM		NetBSD/sgimips	client
XCOMM		NetBSD/luna68k	client
XCOMM		NetBSD/mipsco	client
XCOMM		NetBSD/algor	client
XCOMM		NetBSD/playstation2	client
XCOMM		NetBSD/dreamcast	client/server
XCOMM

#ifndef OSName
#define OSName			DefaultOSName OSBinaryType
#endif
#ifndef OSMajorVersion
#define OSMajorVersion		DefaultOSMajorVersion
#endif
#ifndef OSMinorVersion
#define OSMinorVersion		DefaultOSMinorVersion
#endif
/* XXX this does not deal with patches, but, patches should not affect it */
/* 1 = A, 2 = B, 3 = C, 4 = D, 5 = E, ... */
#ifndef OSTeenyVersion
#define OSTeenyVersion		DefaultOSTeenyVersion
#endif


#ifndef OSVendor
#define	OSVendor		The NetBSD Foundation, Inc.
#endif
XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)

/*
 * Enable support for "xdmauth" authentification.
 */
#ifndef HasXdmAuth
#define HasXdmAuth YES
#endif

/*
 * C library features
 */
#if ((OSMajorVersion > 1) || \
     (OSMajorVersion == 1 && OSMinorVersion > 2) || \
     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1))
# define HasPoll		YES
#endif

#define HasNdbm         	YES
#define HasPutenv       	YES
#define HasSnprintf		YES
#define HasBSD44Sockets 	YES
#define Malloc0ReturnsNull	NO
#define SetTtyGroup     	YES
#define DBMLibrary		/**/
#ifndef HasLibCrypt
# define HasLibCrypt		YES
#endif
#ifndef HasShm
# if OSMajorVersion == 0 && OSMinorVersion == 9 && OSTeenyVersion == 2
/*
 * Shm memory was removed in 0.9B because it was encumbered.
 * A free version was added in 0.9C
 */
#  define HasShm          	NO
# else
#  define HasShm          	YES
# endif
#endif
#define HasWChar32		YES
/*
 * There's a bug in NetBSD 1.0, 1.1 and 1.2 dlsym()
 */
#if ((OSMajorVersion == 1 && OSMinorVersion < 2) || \
     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion < 2))
#  define HasDlsymBug		YES
#endif

/*
 * The USB HID library came after 1.4
 */
#if ((OSMajorVersion == 1 && OSMinorVersion > 4) || \
     (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion > 8))
#  define HasUsbLib		YES
#endif

/*
 * NetBSD 1.6M and newer supports POSIX Threads.
 */

#ifndef NetBSDThreads
# define NetBSDThreads		YES
#endif

#if NetBSDThreads && \
    ((OSMajorVersion > 1) || \
     (OSMajorVersion == 1 && OSMinorVersion > 6) || \
     (OSMajorVersion == 1 && OSMinorVersion == 6 && OSTeenyVersion >= 13))

# define HasPosixThreads	YES
# define ThreadedX		YES
# define HasThreadSafeAPI	YES
# define ThreadsLibraries	-lpthread
# define LibraryMTDefines	-DUSE_NBSD_THREADLIB
# define SystemMTDefines	-D_REENTRANT
# define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
# define SharedThreadReqs	/**/
#else
# define ThreadedX		NO
#endif

  
#if OSMajorVersion >= 1
# define LexCmd			lex -l
#endif

#if (!(OSMajorVersion == 0 || \
       (OSMajorVersion == 1 && OSMinorVersion < 2))) 
#define HasMkstemp		YES
#endif

#ifndef HasIssetugid
# if (OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion >= 5))
#  define HasIssetugid          YES
# endif
#endif

#if (OSMajorVersion >= 2 || \
      (OSMajorVersion == 1 && OSMinorVersion == 6 && OSTeenyVersion >= 2))
# define HasArc4random
#endif

/*
 * Compiler Features
 */
#undef HasGcc
#define HasGcc			YES
#define HasGcc2			YES
#ifndef HasGcc2ForCplusplus
#define HasGcc2ForCplusplus	YES
#endif
#define GccUsesGas		YES
#define UseGas			YES
#define GnuCpp			YES

#define NeedConstPrototypes	YES
#define NeedFunctionPrototypes	YES
#define NeedNestedPrototypes	YES
#define NeedVarargsPrototypes	YES
#define NeedWidePrototypes	NO

#define HasMktemp		NO
#define MkdirHierCmd		mkdir -p

#undef CcCmd
#define CcCmd 			gcc
#if defined(UseInstalled) && (!defined(XF86LinkKit) || !XF86LinkKit)
#define DefaultCCOptions 	/**/
#elif defined(armArchitecture)
#define DefaultCCOptions 	-ansi -Dasm=__asm -fsigned-char -fomit-frame-pointer
#elif defined(Sparc64Architecture)
#define DefaultCCOptions 	-ansi -Dasm=__asm -ffixed-g4 -mcmodel=medlow
#define LibraryCCOptions 	-ansi -Dasm=__asm -ffixed-g4 -mcmodel=medany
#else
#define DefaultCCOptions 	-ansi -Dasm=__asm
#endif

#ifndef UseGccMakeDepend
#define UseGccMakeDepend	YES
#endif

#define CppCmd          	cpp
#define StandardCppDefines	-traditional
#define PreProcessCmd   	CcCmd -E
#define PostIncDir		/usr/include

#define GccGasOption 		-DGCCUSESGAS
#define AsmDefines 		-DUSE_GAS
  
/* UseElfFormat defaults to YES if __ELF__ set */
#ifndef UseElfFormat
# ifdef __ELF__
#  undef __ELF__			/* other imake files shouldn't care */
#  define UseElfFormat YES
# else
#  define UseElfFormat NO
# endif
#endif

/*
 * Make sure the binaries know where to look for the shared libaries.
 * NOTE: This is done in bsdLib.rules for ELF libraries!
 */
#if (OSMajorVersion == 1 && OSMinorVersion >= 2) || OSMajorVersion > 1
# if !defined(UseElfFormat) || UseElfFormat == NO
#  define ExtraLoadFlags	-R$(USRLIBDIR)
# endif
#endif

/*
 * Dynamic loading supported starting in 1.0 on a.out platforms,
 * and on all ELF platforms.
 */
#if ((OSMajorVersion > 0) && \
     !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \
    UseElfFormat
# ifndef BuildDynamicLoading
#  define BuildDynamicLoading	YES
# endif
# ifndef ForceNormalLib
#  define ForceNormalLib	YES
# endif
#endif

#if UseElfFormat
# define DlLibrary		-rdynamic /* no -ldl yet */
#else
# define DlLibrary		/**/
#endif

/* The GCC strength-reduce bug is fixed for NetBSD 1.3 and later */
#ifdef i386Architecture
# ifndef DefaultGcc2i386Opt
#  if OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion > 2)
    /* The GCC strength-reduce bug is fixed for NetBSD 1.3 and later */
#   define DefaultGcc2i386Opt -O2
#  endif
# endif
# define OptimizedCDebugFlags 	DefaultGcc2i386Opt
# if OSMajorVersion < 1
#  define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
# else
#  define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
# endif
# if BuildDynamicLoading
#  define ServerExtraSysLibs	-li386 DlLibrary
# else
#  define ServerExtraSysLibs	/**/
# endif
# define ServerExtraDefines GccGasOption XFree86ServerDefines
# ifndef XFree86ConsoleDefines
#  if OSMajorVersion < 1 || OSMajorVersion == 1 && (OSMinorVersion < 5)
#   define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
#  else
#   define XFree86ConsoleDefines -DPCCONS_SUPPORT -DWSCONS_SUPPORT
#  endif
# endif
# if ((OSMajorVersion > 1) || \
      (OSMajorVersion == 1 && OSMinorVersion > 6) || \
      (OSMajorVersion == 1 && OSMinorVersion == 6 && OSTeenyVersion > 25))
#   define XF86SvgaDrivers	nv et4000 et3000 pvga1 gvga r128 ati sis tvga8900 \
				cirrus ncr77c22 compaq mga oak al2101 \
				ali cl64xx video7 ark mx realtek s3v apm \
				s3_svga neo chips cyrix rendition p9x00 \
				spc8110 i740 tdfx smi generic
#else
#   define XF86SvgaDrivers	nv et4000 et3000 pvga1 gvga r128 ati sis tvga8900 \
				cirrus ncr77c22 compaq mga oak al2101 \
				ali cl64xx video7 ark mx realtek s3v apm \
				s3_savage s3_svga neo chips cyrix rendition p9x00 \
				spc8110 i740 tdfx smi generic
# endif
#endif

#if defined(m68kArchitecture) && OSMajorVersion == 1 && OSMinorVersion <= 3
# define OptimizedCDebugFlags 	-O
#endif

#if defined(shArchitecture)
# define OptimizedCDebugFlags	-O
# define HasSharedLibraries	NO
# undef BuildDynamicLoading
# define BuildDynamicLoading	NO
#endif

/*
 * On mips, all libs are compiled with ABIcalls, not just sharedlibs.
 * Disable MIPS specific code which was not used and tested.
 */
#if defined(MipsArchitecture)
# define SeparateSharedCompile NO
# undef MipsArchitecture
#endif

/*
 * XXX always build XKBuilib, override xfree86.cf
 */
#if defined(sharkArchitecture) || defined(i386Architecture) || defined(atariArchitecture)
# define BuildXKBuilib		YES
#endif

#if defined(SparcArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# if defined(Sparc64Architecture)
#  define ServerExtraDefines	GccGasOption -D_XSERVER64
# else
#  define ServerExtraDefines	GccGasOption
# endif
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(Sun3Architecture)
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption -D__sun3__
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(hp300Architecture)
# define BuildServer		NO		/* XXX */
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(mac68kArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption -D__mac68k__
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(AlphaArchitecture)
# define BuildServer		YES
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption -D_XSERVER64
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(amigaArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption -D__amiga__
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define XserverNeedsSetUID	YES
#endif

#if defined(acorn32Architecture)
# define BuildServer		YES
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(sharkArchitecture)
# define BuildServer		YES
# define ServerOSDefines	-DDDXOSINIT -DDDXTIME
# define ServerExtraDefines	GccGasOption XFree86ServerDefines
# ifndef XFree86ConsoleDefines
#  if OSMajorVersion < 1 || OSMajorVersion == 1 && (OSMinorVersion < 5)
#   define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
#  else
#   define XFree86ConsoleDefines -DPCCONS_SUPPORT -DWSCONS_SUPPORT 
#  endif
# endif
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(atariArchitecture)
# define BuildServer		YES
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption XFree86ServerDefines -D__atari__ -D__mc68000__ -Dmc68020
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define XF68FBDevServer	YES
# define XF68SVGAServer		YES
# define XF68W32Server		YES
#endif

#if defined(VaxArchitecture)
# define BuildServer		NO
# define ServerExtraDefines	GccGasOption
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(pc532Architecture)
# define BuildServer		NO
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(x68kArchitecture)
# define BuildServer		YES
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption -D__x68k__
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define XserverNeedsSetUID	YES
#endif

#if defined(macppcArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# define ServerExtraDefines	GccGasOption -D__macppc__
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define XkbServerDefines	-DXKB_ALWAYS_USES_SOFT_REPEAT
#endif

#if defined(pmaxArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(hpcmipsArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# define BuildServer		YES
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define ServerExtraDefines	-DSTATIC_COLOR
# define XserverNeedsSetUID	YES
#endif

#if defined(hpcarmArchitecture)
# define ServerOSDefines	-DDDXOSINIT
# define BuildServer		YES
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define ServerExtraDefines	-DSTATIC_COLOR
# define XserverNeedsSetUID	YES
#endif

#if defined(mvme68kArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(next68kArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(prepArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(news68kArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(cobaltArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(sgimipsArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(luna68kArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(mipscoArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(algorArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(catsArchitecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(playstation2Architecture)
# define BuildServer		NO
# define PexDynamicModule	NO
# define XieDynamicModule	NO
#endif

#if defined(dreamcastArchitecture)
# define ServerExtraDefines	GccGasOption
# define PexDynamicModule	NO
# define XieDynamicModule	NO
# define XserverNeedsSetUID	YES
#endif


#ifndef OptimizedCDebugFlags
# define OptimizedCDebugFlags 	-O2
#endif

#ifndef PositionIndependentCFlags
# define PositionIndependentCFlags	-fPIC
#endif

#define StandardDefines	-DCSRG_BASED

/* Citrus mb locale were added in 1.5P */
#if ((OSMajorVersion > 1) || \
     (OSMajorVersion == 1 && OSMinorVersion > 5) || \
     (OSMajorVersion == 1 && OSMinorVersion == 5 && OSTeenyVersion >= 15))
#define XawI18nDefines	-DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H
#else
#define XawI18nDefines	-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
#endif

#ifndef ExtraLibraries
#define ExtraLibraries		/**/
#endif
#ifndef UseGnuMalloc
/*
 * There is no way to map 1.4J correctly to OS*Version, so 'J' is mapped
 * to OSTeenyVersion == 10. This should be save since there will never a
 * release for 1.4.10.
 */
# if ((OSMajorVersion > 1) || \
     (OSMajorVersion == 1 && OSMinorVersion > 4) || \
     (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion >= 10))
#  define UseGnuMalloc		NO
# else
#  define UseGnuMalloc		YES
# endif
#endif
#ifndef GnuMallocLibrary
#define GnuMallocLibrary	-lgnumalloc
#endif

#if ((OSMajorVersion > 1) || \
     (OSMajorVersion == 1 && OSMinorVersion > 2) || \
     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1))
#ifndef HasZlib
#define HasZlib			  YES
#endif
#endif 

/* 1.4R and later has setusercontext() */
# if ((OSMajorVersion > 1) || \
     (OSMajorVersion == 1 && OSMinorVersion > 4) || \
     (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion >= 18))
#define HasSetUserContext  YES
#endif

#define	AdmDir			/var/log

/*
 * Make & install Features
 */
#define HasBsdMake		YES
#define StripInstalledPrograms	YES
#define CompressAllFonts	YES
#define GzipFontCompression	YES
#define DefaultUserPath		/usr/bin:/bin:/usr/pkg/bin:$(BINDIR):/usr/local/bin
#define DefaultSystemPath	/usr/bin:/bin:/usr/sbin:/sbin:/usr/pkg/bin:/usr/pkg/sbin:$(BINDIR):/usr/local/bin:/usr/local/sbin

#define InstPgmFlags		-s -m 0555 -o root -g wheel
#define InstBinFlags		-m 0555 -o root -g wheel
#define InstUidFlags		-m 4511 -o root -g wheel
#define InstLibFlags		-m 0444 -o root -g wheel
#define InstIncFlags		-m 0444 -o root -g wheel
#define InstManFlags		-m 0444 -o root -g wheel
#define InstDatFlags		-m 0444 -o root -g wheel
#define InstKmemFlags		-m 2555 -o root -g kmem

#ifdef  InstallCmd
# undef  InstallCmd
# define InstallCmd 		/usr/bin/install
#endif

#ifndef ExtraFilesToClean
# define ExtraFilesToClean 	*.core
#endif

#ifdef armArchitecture
/*
 * NetBSD's default .SUFFIXES target places .s at a higher priority
 * than .c.  This breaks architectures which use the .c versions of
 * various files in the XFree86 server tree for which there are also
 * .s versions.  Default to the basic .SUFFIXES list specified in
 * SUSv2 (without the SCCS-related suffixes) plus .cxx for Motif.rules.
 */
.SUFFIXES:
.SUFFIXES: .o .c .y .l .a .sh .f .cxx
#endif

/*
 * Documentation formatting
 */
#define NeqnCmd			neqn -Tascii
#define NroffCmd		nroff -Tascii
#define	EqnCmd 			eqn -Tps
#define TroffCmd        	groff -Tps

/*
 * To use the NetBSD Aperture driver
 */
#if defined(i386Architecture)
#ifndef HasNetBSDApertureDriver
#define HasNetBSDApertureDriver	YES
#endif
#endif

/*
 * ForceSubdirs - force make to build subdirectories
 * 
 * For BSD 4.4 make 
 */
#define ForceSubdirs(dirs)						@@\
dirs:	.EXEC								@@\
	@cd $@ ; echo "making all in $(CURRENT_DIR)/$@..."; \		@@\
	$(MAKE) $(MFLAGS) PassCDebugFlags all				@@\
									@@\
.EXEC:

XCOMM Man pages need to be formatted when installed, so override the default
XCOMM imake rules.

#define ManSuffix	1
#define FileManSuffix	5
#define ManSourcePath	$(MANPATH)/cat

#define InstallManPageLong(file,destdir,dest)                           @@\
all:: file.0								@@\
									@@\
file.0:: file.man							@@\
	@if [ -f file.man ]; \						@@\
	then \								@@\
	cat file.man | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.man; \	@@\
	cp /tmp/$$$$.man file.0; \					@@\
	$(RM) /tmp/$$$$.man; \						@@\
	fi 								@@\
									@@\
install.man::                                                           @@\
	MakeDir($(DESTDIR)destdir)					@@\
	-@if [ -f file.0 ]; \						@@\
	then \								@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.0 $(DESTDIR)destdir/dest.0; \@@\
	fi								@@\
									@@\
clean::									@@\
	$(RM) file.0

#define InstallGenManPageLong(file,destdir,dest,suffix)			@@\
	InstallManPageLong(file,destdir,dest)

#define InstallMultipleManSuffix(list,dest,suff)                        @@\
install.man:: 								@@\
	MakeDir($(DESTDIR)dest)						@@\
	case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
	for i in list; do \                                             @@\
	  (set -x; \							@@\
	  cat $$i.suff | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.suff; \	@@\
	  $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$$$.suff $(DESTDIR)dest/$$i.0; \	@@\
	  $(RM) /tmp/$$$$.suff); \						@@\
	done

#define InstallMultipleMan(list,dest)                                   @@\
	MakeDir($(DESTDIR)dest)						@@\
	case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
	for i in list; do \                                             @@\
	  (set -x; \							@@\
	  MNAME=`echo $$i | cut -f1 -d.`; \				@@\
	  cat $$i | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.man; \	@@\
	  $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$$$.man $(DESTDIR)dest/$${MNAME}.0; \	@@\
	  $(RM) /tmp/$$$$.man); \						@@\
	done


#define InstallManPageAliases(file,destdir,aliases)                     @@\
install.man:: 								@@\
	@case '${MFLAGS}' in *[i]*) set +e;; esac; \                    @@\
	for i in aliases; do \                                          @@\
		(set -x; \						@@\
		$(RM) $(DESTDIR)destdir/$$i.0;\  			@@\
		(cd $(DESTDIR)/destdir; $(LN) file.0 $$i.0);\ 		@@\
		); \							@@\
	done

#define InstallGenManPageAliases(file,destdir,suffix,aliases)		@@\
	InstallManPageAliases(file,destdir,aliases)

/*
 * Shared libraries supported starting in 1.0 on a.out platforms,
 * and on all ELF platforms.
 */
#if ((OSMajorVersion > 0) && \
     !defined(AlphaArchitecture) && !defined(MipsArchitecture)) \
     || UseElfFormat
# ifndef HasSharedLibraries
# define HasSharedLibraries	YES
# endif
#endif

#ifndef OSBinaryType
#if UseElfFormat
#define OSBinaryType	[ELF]
#else
#define OSBinaryType	/**/
#endif
#endif

#ifndef HasSharedLibraries
#define HasSharedLibraries	NO
#endif 

#if HasSharedLibraries
#include <bsdLib.rules>
#endif /* HasSharedLibraries */

#if defined(i386Architecture) || defined(sharkArchitecture) || \
    defined(atariArchitecture)
# include <xfree86.cf>

/*
 * XXX The DynamicModuleTarget macro in xf86.rules does NOT work properly
 * XXX on ELF systems.  This macro should be moved into bsdLib.rules, since
 * XXX it depends on how shlibs are built on that platform.
 * XXX
 * XXX The following overrides DynamicModuleTarget so it should work on
 * XXX ELF and a.out.
 */
/*
 * DynamicModuleTarget - build a module to be dynamically loaded
 */
# undef DynamicModuleTarget
# define DynamicModuleTarget(module,modlist)				@@\
AllTarget(module)							@@\
									@@\
module: modlist								@@\
	RemoveFile($@)							@@\
	$(CC) -nostdlib -o $@ -Wl,-Bshareable -R$(USRLIBDIR) modlist	@@\
									@@\
clean::									@@\
	RemoveFile(module)

#endif /* i386Architecture || sharkArchitecture || atariArchitecture */

/*
 * NetBSD always uses the XFree86 contrib distribution.
 */
#undef	XF86Contrib
#define	XF86Contrib	YES

/*
 * Definitions for the SUN server on NetBSD/sparc or NetBSD/sun3
 */
#if defined(SparcArchitecture) || defined(Sun3Architecture)
#ifndef Xsun24Server
#if defined(SparcArchitecture)
#define Xsun24Server	YES
#else
#define Xsun24Server	NO
#endif
#endif
#ifndef XsunServer
#define XsunServer	YES
#endif
#ifndef XsunMonoServer
#define XsunMonoServer	YES
#endif
#endif
  
/*
 * Definitions for the NetBSD/mac68k server.
 */
#ifdef mac68kArchitecture
# ifndef Xmac68kServer
#  define Xmac68kServer		YES
# endif
#endif

/*
 * Definitions for the NetBSD/vax server.
 */
#ifdef VaxArchitecture
# define XvaxMonoServer YES
# if HasGcc
#  define BuildPexExt XvaxMonoServer
# else
#  define BuildPex        NO      /* compiler runs out of table space */
#  define BuildXInputLib  NO      /* compiler runs out of table space */
# endif
# define HasSaberC NO
# define UnalignedReferencesAllowed YES         /* if arbitrary deref is okay */
#endif

/*
 * Definitions for the NetBSD/amiga server.
 */
#ifdef amigaArchitecture
# ifndef XamigaCCmono
#  define XamigaCCmono		NO
# endif
# ifndef XamigaCCcolor
#  define XamigaCCcolor		YES
# endif
# ifndef XamigaGfxCardSupport
#  define XamigaGfxCardSupport	YES
# endif
# ifndef XamigaRetinaZ3Support
#  define XamigaRetinaZ3Support	YES
# endif
# ifndef XamigaCl5426Server
#  define XamigaCl5426Server	YES
# endif
# ifndef XamigaCV64Support
#  define XamigaCV64Support	YES
# endif
/*
 * You need XamigaGfxCardSupport if you enable XamigaCl5426Server,
 * XamigaRetinaZ3Support or XamigaCV64Support and you can't use XamigaCCmono
 * if you enable XamigaCCcolor.
 * Don't change the next 10 lines !!!!!!!!!
 */
# if (XamigaCl5426Server || XamigaCV64Support || XamigaRetinaZ3Support) \
	&& !XamigaGfxCardSupport
#  undef XamigaGfxCardSupport
#  define XamigaGfxCardSupport	YES
# endif
# if XamigaCCcolor
#  undef XamigaCCmono
#  define XamigaCCmono		NO
# endif
#endif

/*
 * Definitions for the NetBSD/alpha X server.
 */
#if defined(AlphaArchitecture)
# define XdecNetBSDServer	YES
#ifndef XkbServerDefines
#define XkbServerDefines	-DXKB_ALWAYS_USES_SOFT_REPEAT
#endif
#endif

/*
 * Definitions for the NetBSD/acorn32 VIDC20 X server.
 */
#if defined(acorn32Architecture)
# define Xarm32VIDCServer	YES
#endif

/*
 * Definitions for the NetBSD/x68k X server.
 */
#if defined(x68kArchitecture)
# define X68kServer		YES
#endif

/*
 * Definitions for the NetBSD/macppc X server.
 */
#if defined(macppcArchitecture)
# define XmacppcServer		YES
#endif

/*
 * Definitions for the NetBSD/pmax X server.
 */
#if defined(pmaxArchitecture)
# define XpmaxServer YES
#endif

/*
 * Definitions for the NetBSD/hpcmips X server.
 */
#if defined(hpcmipsArchitecture)
# define XhpcServer		YES
#endif

/*
 * Definitions for the NetBSD/hpcarm X server.
 */
#if defined(hpcarmArchitecture)
# define XhpcServer		YES
#endif

/*
 * Definitions for the NetBSD/dreamcast X server.
 */
#if defined(dreamcastArchitecture)
# define XdreamcastServer	YES
#endif


#ifndef BuildScreenSaverLibrary
#define BuildScreenSaverLibrary	YES
#endif

#ifndef XkbServerDefines
#define XkbServerDefines	-DXKB_ALWAYS_USES_SOFT_REPEAT
#endif

/*
 * XFree86 uses its own (more portable) database routines to speed up 
 * the RGB database lookups
 * However, if you want to use ndbm anyway, you can set that to NO in 
 * site.def
 */
#ifndef UseRgbTxt
#define UseRgbTxt	NO
#endif
