XCOMM platform:  $XFree86: xc/config/cf/OpenBSD.cf,v 3.1.2.16 2001/02/26 18:28:18 dawes Exp $
XCOMM
XCOMM $OpenBSD: OpenBSD.cf,v 1.33 1998/09/27 04:52:48 rahnds Exp $
XCOMM

#ifndef OSName
#define OSName			DefaultOSName OSBinaryType
#endif
#ifndef OSMajorVersion
#define OSMajorVersion		DefaultOSMajorVersion
#endif
#ifndef OSMinorVersion
#define OSMinorVersion		DefaultOSMinorVersion
#endif
#ifndef OSTeenyVersion
#define OSTeenyVersion		DefaultOSTeenyVersion
#endif

#ifndef OSVendor
#define	OSVendor	/**/
#endif
XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)

/*
 * C library features
 */
#define HasPoll			YES
#define HasNdbm         	YES
#define HasPutenv       	YES
#define HasSnprintf		YES
#define HasBSD44Sockets 	YES
#define Malloc0ReturnsNull	NO
#define SetTtyGroup     	YES
#define DBMLibrary		/**/
#define HasLibCrypt		NO
#define HasShm          	YES
#define HasWChar32		YES
#define HasMkstemp		YES
#define HasZlib			YES

#ifndef HasMktemp
# if (OSMajorVersion > 2) || (OSMajorVersion == 2 && OSMinorVersion >= 1)
#  define HasMktemp		YES
# else
#  define HasMktemp		NO
# endif
#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 MkdirHierCmd		mkdir -p

#define CppCmd          	/usr/libexec/cpp
#define StandardCppDefines	-traditional
#define PreProcessCmd   	CppCmd
#define PreIncDir 		DefaultGccIncludeDir

#undef CcCmd
#define CcCmd 			gcc
#if defined(UseInstalled) && (!defined(XF86LinkKit) || !XF86LinkKit)
#define DefaultCCOptions 	/**/
#else
#define DefaultCCOptions 	-ansi -Dasm=__asm
#endif

#define GccGasOption 		-DGCCUSESGAS
#define AsmDefines 		-DUSE_GAS

#ifdef i386Architecture
# ifndef DefaultGcc2i386Opt
#  if (OSMajorVersion == 2 && OSMinorVersion >= 3) || OSMajorVersion > 2
    /* The GCC strength-reduce bug is fixed for OpenBSD 2.3 and later */
#   define DefaultGcc2i386Opt	-O2
#  endif
# endif
# define OptimizedCDebugFlags	DefaultGcc2i386Opt
# define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
# define ServerExtraSysLibs	-li386
# define LdPostLib		/**/
#else
# define OptimizedCDebugFlags 	-O2
# if defined(SparcArchitecture) || defined(AlphaArchitecture) || defined(AmigaArchitecture) || defined(Sun3Architecture)
#  define ServerOSDefines 	-DDDXOSINIT
# else
#  define ServerOSDefines 	/**/
# endif
#endif
#if defined(i386Architecture) || defined(ArcArchitecture)
# define ServerExtraDefines GccGasOption XFree86ServerDefines
# ifndef XFree86ConsoleDefines
#  if defined(ArcArchitecture)
#   define XFree86ConsoleDefines -DPCCONS_SUPPORT
#  else
#   if OSMajorVersion == 2 && OSMinorVersion <= 8
#    define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
#   else
#    define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT -DWSCONS_SUPPORT
#   endif
#  endif
# endif
#else
# if defined(AlphaArchitecture)
#  define ServerExtraDefines GccGasOption -D_XSERVER64
# else
#  if !defined(Sun3Architecture)
#   define ServerExtraDefines GccGasOption
#  endif
# endif
#endif

#define StandardDefines	-DCSRG_BASED
#define XawI18nDefines	-DUSE_XWCHAR_STRING -DUSE_XMBTOWC


#ifndef ExtraLibraries
#define ExtraLibraries		/**/
#endif
#define UseGnuMalloc		NO

#define	AdmDir			/var/log

/*
 * Make & install Features
 */

#define HasBsdMake		YES

#define StripInstalledPrograms	YES
#define BuildCyrillicFonts	YES
#define GzipFontCompression	YES
#define DefaultUserPath		/bin:/usr/bin:/usr/local/bin:$(BINDIR)
#define DefaultSystemPath	/sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR)

#define InstUidFlags		-m 4755

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

#ifndef ExtraFilesToClean
# define ExtraFilesToClean 	*.core
#endif

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

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


/*
 * Man pages need to be formatted when installed, so override the default
 * 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 \								@@\
	tmpdir=`mktemp -d /tmp/man.XXXXXXXX` || exit 2 ; \		@@\
	cat file.man | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) > $$tmpdir/file.man; \	@@\
	cp $$tmpdir/file.man file.0; \					@@\
	$(RM) -r $$tmpdir; \						@@\
	fi 								@@\
									@@\
install.man::                                                           @@\
	MakeDir($(DESTDIR)destdir)					@@\
	-@if [ -f file.0 ]; \						@@\
	then \								@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.0 $(DESTDIR)destdir/dest.0; \@@\
	fi								@@\
									@@\
clean::									@@\
	RemoveFile(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)                                   @@\
	InstallMultipleManSuffix(list,dest,man)

#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)

/*
 * InstallFontAliases - generate rules to install font aliases
 *                      databases without comments for X11R5 servers
 */
#ifndef InstallFontAliasesNoComment
#define InstallFontAliasesNoComment(dest)				@@\
install:: fonts.alias							@@\
	$(RM) _fonts.alias 						@@\
	sed -e '/^!/d' -e '/^$$/d' < fonts.alias > _fonts.alias		@@\
	MakeDir($(DESTDIR)dest)						@@\
	$(INSTALL) $(INSTALLFLAGS) $(INSTALLDATFLAGS) _fonts.alias \	@@\
	$(DESTDIR)dest/fonts.alias					@@\
	$(RM) _fonts.alias
#endif /* InstallFontAliasesNoComment */

/* We now only use the XFree86 tree - thus we can define this
 * independent of the architecture
 */
#ifndef XF86Contrib
#define XF86Contrib
#endif

/*
 * Architecture specific sections - put all architecture dependent
 * options and setting here into the correct section
 */

/*
 * Definitions for the alpha architecture
 */
#ifdef AlphaArchitecture

 /*
  * The code for an Alpha XF86_TGA server compiles, but it DOES NOT work
  */
# define BuildAlphaXF86		NO

# if BuildAlphaXF86
#  include <xf86.rules>
# endif

 /*
  * For the current ECOFF system
  */
# define HasSharedLibraries	NO
# define UseElfFormat		NO
# define BuildDynamicLoading	NO
 /*
  * For the upcoming ELF system
  */
# if 0 /* NOT YET */
#  define HasSharedLibraries	YES
#  define UseElfFormat		YES
#  define BuildDynamicLoading	YES
# endif

# define BuildServer		YES
# define XnestServer		YES
# define XVirtualFramebufferServer	YES

# define BuildDPMSLibrary	NO
# define BuildDPMSExt		NO

# define BuildXF86DGALibrary	NO
# define BuildXF86DGA		NO

# ifndef XF86S3Server
#  define XF86S3Server		NO
# endif
# ifndef XF86S3VServer
#  define XF86S3VServer		NO
# endif
# ifndef XF86Mach64Server
#  define XF86Mach64Server	NO
# endif
# ifndef XF86P9000Server
#  define XF86P9000Server	NO
# endif
# ifndef XF86I128Server
#  define XF86I128Server	NO
# endif
# if BuildAlphaXF86
#  ifndef XF86TGAServer
#   define XF86TGAServer	YES
#  endif
# else
#  define XF86TGAServer		NO
# endif
# ifndef XF86SVGAServer
#  define XF86SVGAServer	NO
# endif
# ifndef XF86MonoServer
#  define XF86MonoServer	NO
# endif
# ifndef XF86SvgaDrivers
#  define XF86SvgaDrivers	mga s3v
# endif
# ifndef XF86Vga2Drivers
#  define XF86Vga2Drivers	generic
# endif

# if BuildAlphaXF86
#  include <xfree86.cf>
# endif

#endif /* AlphaArchitecture */


/*
 * Definitions for the i386 architecture
 */
#ifdef i386Architecture

/* Support for USB Mices */
#if OSMajorVersion == 2 && OSMinorVersion >= 6 || OSMajorVersion > 2
#define UsbMouseSupport		YES
#define HasLibUsb		NO
#endif

/*
 * For safety reasons, don't install the X server setuid on OpenBSD
 * use xdm instead
 */
# define InstallXserverSetUID	NO

# define BuildDynamicLoading	YES
# include <xfree86.cf>

#endif /* i386Architecture */


/*
 * Definitions for the m68k architecture (currently amiga, hp300,
 * mac68k, mvme68k, sun3)
 */
#ifdef Mc68020Architecture

/*
 * Function CSE makes gas -k not recognize external function calls as lazily
 * resolvable symbols, thus sometimes making ld.so report undefined symbol
 * errors on symbols found in shared library members that would never be
 * called.  Ask niklas@openbsd.org for details.
 */
# define PositionIndependentCFlags -fpic -fno-function-cse

#endif /* Mc68020Architecture */


/*
 * Definitions for the amiga architecture
 */
#ifdef AmigaArchitecture

# include <xf86.rules>
# define BuildServer		NO

#endif /* AmigaArchitecture */


/*
 * Definitions for the hp300 architecture
 */
#ifdef Hp300Architecture

# include <xf86.rules>
# define BuildServer		NO
/* For the X11R5 server */
# define CompressAllFonts	NO
# define InstallFontAliases	InstallFontAliasesNoComment
# define UseRgbTxt		NO

#endif /* Hp300Architecture */


/*
 * Definitions for the mac68k architecture
 */
#ifdef mac68kArchitecture

# include <xf86.rules>
# define BuildServer		NO

#endif /* mac68kArchitecture */


/*
 * Definitions for the mvme68k architecture
 */
#ifdef Mvme68kArchitecture

# include <xf86.rules>
# define BuildServer		NO

#endif /* Mvme68kArchitecture */


/*
 * Definitions for the sun3 architecture
 */
#ifdef Sun3Architecture

# include <xf86.rules>

# define OptimizedCDebugFlags  -O2
# define ServerOSDefines       -DDDXOSINIT
# define BootstrapCFlags       -Dsun3
# define UnalignedReferencesAllowed	YES /* changes _XtCopyArgs() */
/* Note: -ansi turns off -Dmc68000 */
# define ServerExtraDefines    GccGasOption -Dmc68000 -Dmc68020

# ifndef Xsun24Server
#  define Xsun24Server		YES
# endif
# ifndef XsunServer
#  define XsunServer		YES
# endif
# ifndef XsunMonoServer
#  define XsunMonoServer	YES
# endif

#define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT

#if 0
# ifndef BuildXKB
#  define BuildXKB        	NO
# endif

# ifndef BuildXKBlib
#  define BuildXKBlib     	NO
# endif

# ifndef BuildPexExt
#  define BuildPexExt 		(XsunServer || Xsun24Server)
# endif
#endif

#endif /* Sun3Architecture */


/*
 * Definitions for the mips architecture (currently arc, pmax)
 */
#ifdef MipsArchitecture

 /*
  * Mips ELF shared libs need some special handling.
  */
# define PositionIndependentCFlags
# define SharedLibraryLoadFlags -x -shared --whole-archive -soname `echo $@ | sed 's/\.[0-9]*$$//'`
# define SharedXtReqs -L$(BUILDLIBDIR) $(XLIBONLY) $(SMLIB) $(ICELIB)
# define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XONLYLIB) $(EXTENSIONLIB)

#endif /* MipsArchitecture */


/*
 * Definitions for the arc architecture
 */
#ifdef ArcArchitecture

# include <xfree86.cf>

#endif /* ArcArchitecture */


/*
 * Definitions for the pmax architecture
 */
#ifdef PmaxArchitecture

# include <xf86.rules>
# define BuildServer		NO
/* For the X11R5 server */
# define CompressAllFonts	NO
# define InstallFontAliases	InstallFontAliasesNoComment
# define UseRgbTxt		NO

#endif /* PmaxArchitecture */

#ifdef ppcArchitecture
# define HasSharedLibraries	NO
# define UseElfFormat		YES
# define BuildDynamicLoading	NO
#endif

/*
 * Definitions for the sparc architecture
 */
#ifdef SparcArchitecture

# include <xf86.rules>

# ifndef Xsun24Server
# define Xsun24Server		YES
# endif
# ifndef XsunServer
# define XsunServer		YES
# endif
# ifndef XsunMonoServer
# define XsunMonoServer		YES
# endif

#define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT

# ifndef BuildPexExt
#  define BuildPexExt 	(XsunServer || Xsun24Server)
# endif
#endif /* SparcArchitecture */


/* End or architecture specific section */

/*
 * Generic settings for all architectures
 */

#ifndef XVirtualFramebufferServer
# undef BuildServer
# define BuildServer			YES
# define XVirtualFramebufferServer	YES
#endif

#ifndef XnestServer
# undef BuildServer
# define BuildServer			YES
# define XnestServer			YES
#endif

#ifndef BuildScreenSaverLibrary
# define BuildScreenSaverLibrary	YES
#endif

#ifndef ForceNormalLib
# define ForceNormalLib			YES
#endif

#ifndef BuildDynamicLoading
# define BuildDynamicLoading		NO
#endif

#ifndef CompressAllFonts
# define CompressAllFonts		YES
#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
 * host.def
 */
#ifndef UseRgbTxt
# define UseRgbTxt			YES
#endif

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

/* This must come last */
#include <bsdLib.rules>

