Edit

IABSD.fr/xenocara/util/cf/sun.cf

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2006-11-25 16:15:45
    Hash : 782466d3
    Message : import from X.Org 7.2RC2

  • util/cf/sun.cf
  • XCOMM $XdotOrg: util/cf/sun.cf,v 1.34 2005/12/03 17:20:48 alanc Exp $
    XCOMM platform:  $Xorg: sun.cf,v 1.4 2000/08/17 19:41:48 cpqbld Exp $
    
    
    
    
    XCOMM platform:  $XFree86: xc/config/cf/sun.cf,v 3.70 2004/01/13 02:42:51 tsi Exp $
    
    #ifndef OSName
    # define OSName		DefaultOSName
    #endif
    #ifndef OSMajorVersion
    # define OSMajorVersion	DefaultOSMajorVersion
    #endif
    #ifndef OSMinorVersion
    # define OSMinorVersion	DefaultOSMinorVersion
    #endif
    #ifndef OSTeenyVersion
    # define OSTeenyVersion	DefaultOSTeenyVersion
    #endif
    XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
    
    /* For various reasons, Sun uses different settings when compiling the 
     * X Window System packages included in Solaris than are normally used
     * by most people building the X.Org software releases.   Sun also has
     * two different X server hierarchies in Solaris - Xsun in /usr/openwin
     * and Xorg in /usr/X11.
     *
     * If you want to try to match Sun's settings as closely as possible
     * add this setting to your host.def:
     *  #define BuildLikeSun YES
     *
     * If you're trying to match the openwin directory layout as well, you'll 
     * need to also add:
     *  #define ProjectRoot /usr/openwin
     * otherwise it will use /usr/X11.  (Note that these settings match closer
     * to Sun's Xorg delivery in /usr/X11 than the older X11R6.6-based delivery
     * in /usr/openwin though.)
     */
    #ifndef BuildLikeSun
    # define BuildLikeSun NO
    #endif
    
    #if BuildLikeSun
    # ifndef ProjectRoot
    #  define ProjectRoot		/usr/X11
    # endif
    # ifndef DocDir
    #  define DocDir		Concat(ProjectRoot,/share/doc)
    # endif
    # ifndef ManDirectoryRoot
    #  define ManDirectoryRoot	Concat(ProjectRoot,/share/man)
    # endif
    # ifndef ManSuffix
    #  define ManSuffix		1
    # endif
    # ifndef LibraryCCOptions
    #  if DoSharedLib && defined(SharedLibraryCCOptions)
    #   define LibraryCCOptions SharedLibraryCCOptions ArchLibraryCCOptions
    #  else
    #   define LibraryCCOptions DefaultCCOptions ArchLibraryCCOptions
    #  endif
    # endif
    #endif
    
    /* Flag passed to makestrs in Xt build to control string array names in the
     * libXt headers.   -solarisabinames matches those used in the libXt in 
     * Solaris, but not in other OS'es.
     */
    #ifndef SolarisABIFlag
    # if BuildLikeSun
    #  define SolarisABIFlag -solarisabinames
    # else
    #  define SolarisABIFlag /**/
    # endif
    #endif
    
    /*
     * Compiler setup.  This sun.cf file knows what options to use with 
     * certain compilers, including Sun C, CenterLine C, and gcc.  It 
     * also understands how to set some of the options for various C++
     * compilers, including Sun C++ and CenterLine C++.
     *
     * === C Compiler Setup ==========================================
     *
     * For SunPro C, define HasSunC to YES in site.def.  
     * For CenterLine C, define HasCenterLineC to YES in site.def
     * For gcc, gcc2 or gcc3, define HasGcc, HasGcc2 or HasGcc3 to YES in site.def
     * For other compilers, define HasSunC to NO in site.def, then 
     *    provide appropriate values for the various compiler related
     *    configuration varibles used here.
     * 
     * If you don't tell us which C compiler you have, we assume you have 
     * the SunPro C compiler under Solaris 2.x, and the bundled /bin/cc 
     * under SunOS 4.1.x
     *
     * === C++ Compiler Setup ==========================================
     *
     * For SunPro C++, define HasSunCplusplus to YES in site.def
     * For CenterLine C++, define HasCenterLineCplusplus to YES in site.def
     * For Gnu g++ 2.6.x, define HasGcc2ForCplusplus to YES in site.def
     * For other compilers, define HasCplusplus to YES in site.def, and 
     *    check to see if you need to provide values for CplusplusOptions
     *    and/or DefaultCplusplusOptions.
     *
     * In any case, you may also need to set CplusplusDependIncludes.
     *
     * If you say you have the SunPro C++ compiler, we assume you have 
     * version 3.0.x of the compiler.  If you have version 4.0.x instead, 
     * define CplusplusCompilerMajorVersion as 4 in site.def.
     *
     */
    
    #ifndef HasGcc3
    #define HasGcc3 NO
    #endif
    #ifndef HasGcc2
    #define HasGcc2 HasGcc3
    #endif
    #ifndef HasGcc
    #define HasGcc HasGcc2
    #endif
    
    #ifndef HasSunC
    # if HasCenterLineC || HasGcc || HasGcc2 || HasGcc3 || (OSMajorVersion < 5)
    #  define HasSunC NO
    # else
    #  define HasSunC YES
    # endif
    #endif
    
    #if HasSunC 
    # ifndef CCompilerMajorVersion
    #  define CCompilerMajorVersion DefaultSunProCCompilerMajorVersion
    # endif
    # ifndef CCompilerMinorVersion
    #  define CCompilerMinorVersion DefaultSunProCCompilerMinorVersion
    # endif
    XCOMM SunPro C CCompilerMajorVersion./**/CCompilerMinorVersion
    
    /* Choose some reasonable default optimizer flags based on compiler & 
       OS versions */
    # ifndef OptimizedCDebugFlags
    #  if (CCompilerMajorVersion > 5) || \
    	(CCompilerMajorVersion == 5 && CCompilerMinorVersion > 2)
    #   define OptimizedCDebugFlags -xO4 -xbuiltin=%all -xlibmil -xstrconst ArchOptimizedFlags
    #  else
    #   define OptimizedCDebugFlags -xO4 -xstrconst ArchOptimizedFlags
    #  endif
    # endif
    # ifndef ArchOptimizedFlags
    #  if OSMajorVersion == 5 
    #   if defined(SparcArchitecture) && !defined(Sparc64Architecture)
    #    if OSMinorVersion > 9 /* Solaris 10 and later only run on UltraSPARC's */
    #     define ArchOptimizedFlags -xarch=v8plus
    #    else
    #     define ArchOptimizedFlags -xarch=v8
    #    endif
    #   elif defined(i386Architecture) || defined(AMD64Architecture)
    #    if (CCompilerMajorVersion > 5) || \
    	(CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 7)
    /* -xregs=no%frameptr is required on x86 when compiling at -xO4 or higher to
     * avoid losing stack frame pointers so you can't get stack traces or debug.
     * This may lose a small bit of performance, so you can override by adding
     * #define FramePtrFlags -xregs=frameptr if you care about performance more 
     * than debuggability.
     */
    #     ifndef FramePtrFlags
    #      define FramePtrFlags -xregs=no%frameptr
    #     endif
    #    endif
    #    ifndef FramePtrFlags
    #     define FramePtrFlags /* */
    #    endif
    #    if defined(i386Architecture) && (OSMinorVersion > 8)
           /* Solaris 9 and later require Pentium or better */
    #      define ArchOptimizedFlags -xpentium FramePtrFlags
    #    else
    #     define ArchOptimizedFlags FramePtrFlags
    #    endif
    #   endif
    #  endif
    #  ifndef ArchOptimizedFlags
    #   define ArchOptimizedFlags /**/
    #  endif
    # endif
    # ifndef DefaultCDebugFlags
    #  define DefaultCDebugFlags OptimizedCDebugFlags
    # endif
    # ifndef SharedLibraryLdCmd
    #  define SharedLibraryLdCmd $(CC)
    # endif
    /* Flags for lint version included with Sun C compilers */
    # if OSMajorVersion >= 5
    #  ifndef LintLibFlag
    #   define LintLibFlag -y -o
    #  endif
    #  ifndef LintOpts
    #   define LintOpts -b -h -u -erroff=E_INDISTING_FROM_TRUNC2 $(LINTSECFLAG) ExtraLibraries MathLibrary -lc
    #  endif
    #  ifndef LintSecFlag
    #   if (CCompilerMajorVersion > 5) || \
           (CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 6)
    #    define LintSecFlag -errsecurity=standard
    #   else
    #    define LintSecFlag /**/
    #   endif
    #  endif
          LINTSECFLAG = LintSecFlag
    #  ifndef LintLibReferences
    #   define LintLibReferences(varname,libname,libsource)                    @@\
           Concat(LINT,varname) = _UseCat(-L $(LINTLIBDIR) -l, -L libsource -l,libname)
    #  endif
    
    # endif /* Lint Flags for Solaris */
    
    #endif /* HasSunC */
    
    #ifndef ArchLibraryCCOptions
    # if HasSunC && defined(SparcArchitecture) && CCompilerMajorVersion > 3
    #  define ArchLibraryCCOptions -xregs=no%appl
    # else
    #  define ArchLibraryCCOptions
    # endif
    #endif /* ArchLibraryCCOptions */
    
    /* we used to have this here :
     *
     * #if HasSunC 
     * # ifndef CCompilerMajorVersion
     * #  define CCompilerMajorVersion 3
     * #  define DefaultCDebugFlags	-xO3
     * #  define OptimizedCDebugFlags	-xO3
     * # endif
     * #endif
     */
    
    #ifndef HasSunCplusplus
    # define HasSunCplusplus HasSunC	/* ??? */
    #endif
    #if HasSunCplusplus
    # ifndef HasCplusplus
    #  define HasCplusplus YES
    #  define OptimizedCplusplusDebugFlags	-xO4 -xbuiltin=%all -xlibmil
    # endif
    # ifndef CplusplusCompilerMajorVersion
    #  ifdef DefaultSunProCplusplusCompilerMajorVersion
    #   define CplusplusCompilerMajorVersion DefaultSunProCplusplusCompilerMajorVersion
    #  else
    #   define CplusplusCompilerMajorVersion 3
    #  endif
    # endif
    # ifndef CplusplusCompilerMinorVersion
    #  ifdef DefaultSunProCplusplusCompilerMinorVersion
    #   define CplusplusCompilerMinorVersion DefaultSunProCplusplusCompilerMinorVersion
    #  else
    #   define CplusplusCompilerMinorVersion 0
    #  endif
    # endif
    # ifndef CplusplusLibC
    #  if CplusplusCompilerMajorVersion >= 5
    #   define CplusplusLibC -norunpath -lCrun
    #  endif
    # endif
    XCOMM SunPro C++ CplusplusCompilerMajorVersion./**/CplusplusCompilerMinorVersion
    #endif
    
    /* we used to have this here :
     *
     * # ifndef CplusplusCompilerMajorVersion
     * #  define CplusplusCompilerMajorVersion	4
     * # endif
     */
    
    #if HasCenterLineC
    # ifndef CcCmd
    #  define CcCmd clcc
    # endif
    #endif
    
    #if HasCenterLineCplusplus
    # ifndef HasCplusplus
    #  define HasCplusplus YES
    # endif
    # ifndef DefaultCplusplusOptions
    #  define DefaultCplusplusOptions -Xa
    # endif
    # ifndef CplusplusOptions
    #  define CplusplusOptions -Xa
    # endif
    #endif
    
    #if OSMajorVersion < 4 || (OSMajorVersion == 4 && OSMinorVersion < 1)
    /* We do not guarantee this will work */
    # define BootstrapCFlags	-DNOSTDHDRS
    # define StandardDefines	-DNOSTDHDRS
    # define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
    #endif
    
    #if OSMajorVersion == 4 
    # if OSMinorVersion == 1
    #  define HasPoll		YES
    # endif
    # if OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1)
    /* You ALSO need this if you have Sun ld patch 100170-06 or later to 4.1.1 */
    #  define SunPost411FCSLd	YES
    # endif
    #endif
    
    /* The Xsun server was not building for SunOS 5.7 due to 
       includes of <sys/cg2reg.h>. 
    */
    #if OSMajorVersion < 5 
    # define IncludeCG2HeaderDefine	-DINCLUDE_CG2_HEADER
    #else
    # define IncludeCG2HeaderDefine /**/
    #endif
    
    #if defined(i386Architecture) || defined(AMD64Architecture)
    # if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
    #  define OSServerExtraDefines	-D__SOL8__
    # endif
    #endif
    
    #if !HasGcc 
    # if HasSunC
    #  if defined(AMD64Architecture)
    #   define AsmArch amd64
    #   define AsmFlags -xarch=amd64
    #  elif defined(i386Architecture)
    #   define AsmArch ia32
    #   define AsmFlags /**/
    #  elif defined(Sparc64Architecture)
    #   define AsmArch sparcv8plus
    #   define AsmFlags -xarch=v9
    #  elif defined(SparcArchitecture)
    #   define AsmArch sparcv8plus
    #   define AsmFlags -xarch=v8plus
    #  endif
    #  ifndef CompilerServerExtraDefines
    #   define CompilerServerExtraDefines $(SERVERSRC)/hw/xfree86/os-support/sunos/AsmArch.il
    #  endif
    # endif
    #endif
    
    #ifndef CompilerServerExtraDefines
    # define CompilerServerExtraDefines /**/
    #endif
    
    #ifndef OSServerExtraDefines
    # define OSServerExtraDefines	/**/
    #endif
    
    #ifndef ArchServerExtraDefines
    # if defined(Sparc64Architecture) || defined(AMD64Architecture)
    #  define ArchServerExtraDefines -D_XSERVER64
    # else
    #  define ArchServerExtraDefines /**/
    # endif
    #endif
    
    #define ServerOSDefines		XFree86ServerOSDefines IncludeCG2HeaderDefine
    #define ServerExtraDefines	AllocateLocalDefines XFree86ServerDefines \
    				CompilerServerExtraDefines \
    				OSServerExtraDefines ArchServerExtraDefines
    
    #ifndef HasPerl
    /* Solaris 8 comes with perl.  Earlier versions don't. */
    # if (OSMajorVersion == 5) && (OSMinorVersion >= 8)
    #  define HasPerl		YES
    # else
    #  define HasPerl		NO
    # endif
    #endif
    
    #ifndef XkbServerDefines
    # if BuildLikeSun
    #  define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT \
    	-DXKM_OUTPUT_DIR='"/var/run/xkb/"' -DXKM_OUTPUT_DIR_MODE=0775 \
    	-DMAKE_XKM_OUTPUT_DIR
    # else
    #  define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT
    # endif
    #endif
    
    #if OSMajorVersion > 4
    # define ConnectionFlags		-DTCPCONN -DUNIXCONN -DLOCALCONN
    # if HasSunC
    #  ifdef DefaultSunProCCompilerDir
    #   ifndef  CcCmd
    #    define CcCmd		DefaultSunProCCompilerDir/cc
    #   endif
    #  endif
    #  ifdef DefaultSunProCplusplusCompilerDir
    #   ifndef  CplusplusCmd
    #    define CplusplusCmd	DefaultSunProCplusplusCompilerDir/CC
    #   endif
    #   ifndef  CplusplusFilt
    #    define CplusplusFilt	DefaultSunProCplusplusCompilerDir/c++filt
    #   endif
    #   ifndef  CplusplusWhatdir
    #    define CplusplusWhatdir	DefaultSunProCplusplusCompilerDir/whatdir
    #   endif
    #  else /* DefaultSunProCplusplusCompilerDir not defined */
    #   ifndef  CplusplusWhatdir
    #    define CplusplusWhatdir	whatdir
    #   endif
    #  endif /* DefaultSunProCplusplusCompilerDir */
    #  ifndef  CplusplusDependIncludes
    #   if CplusplusCompilerMajorVersion > 3
    #    define CplusplusDependIncludes	-I`CplusplusWhatdir CC`/../include/CC
    #   elif CplusplusCompilerMajorVersion > 2
    #    define CplusplusDependIncludes	-I/opt/SUNWspro/SC3.0/include/CC
    #   else
    #    define CplusplusDependIncludes	-I/opt/SUNWspro/SC2.0.1/include/CC
    #   endif
    #  endif 
    # endif /* HasSunC */
    
    # if HasSunC && (CCompilerMajorVersion < 3)
    #  define BootstrapCFlags	-DSVR4
    # else
    #  define BootstrapCFlags	/* none needed */
    # endif
    # ifndef XawI18nDefines
    #  if OSMinorVersion < 4
    #   define XawI18nDefines    -DHAS_WCTYPE_H -DHAS_ISW_FUNCS
    #  else
    #   define XawI18nDefines    -DHAS_WCHAR_H -DHAS_ISW_FUNCS
    #  endif
    # endif
    # if OSMinorVersion > 3
    #  define InstallCmd	    /usr/ucb/install
    # endif
    #ifndef LargefileDefines
    # if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
    #  define LargefileDefines -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
    # else
    #  define LargefileDefines /* */
    # endif
    #endif
    # ifdef AMD64Architecture
    #  define StandardDefines	-Dsun -DSVR4 -D__EXTENSIONS__ -D__amd64
    #  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
    # elif defined(i386Architecture)
    #  if (OSMajorVersion < 4) || ((OSMajorVersion == 5) && (OSMinorVersion <= 5))
    #   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
    				-D__SOL64__ LargefileDefines
    #  else
    #   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
                                    LargefileDefines
    #  endif
    #  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
    # else
    #  define StandardDefines	  -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines
    #  define ToolkitStringsABIOptions	-sparcabi SolarisABIFlag
    # endif
    # define ExtraLibraries    -lsocket -lnsl
    # define HasWeakSymbols	  YES
    # if OSMinorVersion > 1
    #  ifndef ThreadedX
    #   define ThreadedX	  YES
    #  endif
    #  define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXUSE_NETDB_R_API
    #  if HasSunC && CCompilerMajorVersion > 2
    #   define ThreadsCompileFlags -mt
    #  else
    #   define SystemMTDefines -D_REENTRANT
    #   define ThreadsLibraries -lthread
    #  endif
    #  if HasSunCplusplus && CplusplusCompilerMajorVersion > 3
    #   define ThreadsCplusplusCompileFlags -mt
    #  else
    #   define CplusplusSystemMTDefines -D_REENTRANT
    #   define ThreadsCplusplusLibraries -lthread
    #  endif
    # endif 		/* OSMinorVersion > 1 */
    # ifndef UseExportLists
    #  if (OSMinorVersion > 4) && !HasGcc2
    #   define UseExportLists YES
    #  else
    #   define UseExportLists NO
    #  endif
    # endif
    # if OSMinorVersion > 5 /* Solaris 2.6 and later */
    #  define HasSnprintf YES
    # endif
    # if OSMinorVersion > 7 /* Solaris 8 and later */
    #  define HasStrlcat	YES
    #  define HasStrcasecmp	YES
    #  define HasVarRun	YES
    # endif
    # if OSMinorVersion > 9 /* Solaris 10 and later */
    #  define HasSetenv	YES
    #  define HasGetpeerucred YES
    #  define HasGetoptLong YES
    #  define DlLibrary	-lc  /* dlopen() is in libc in Solaris 10 */
    # endif
    # define HasVFork	NO
    # define HasDlopen	YES
    # define InstallXloadSetGID	NO /* libkstat doesn't require gid kmem */
    # define InstKmemFlags	-g sys -m 2711
    # define ShLibIncludeFile <sunLib.tmpl>
    # define LinkerRuntimeLibraryPathFlag(path) Concat(-R,path)
    # define RpathLoadFlags LinkerRuntimeLibraryPathFlag($(USRLIBDIRPATH))
    /*
     * Set flags for position independent code before including sv4Lib.rules
     * if the compiler in use doesn't use standard SVR4 flags
     */
    # if HasSunC || HasCenterLineC
    #  define PositionIndependentCFlags -Kpic
    #  define LargePositionIndependentCFlags -KPIC
    #  ifdef Sparc64Architecture
    #   define LargePICTable YES
    #  endif
    # endif
    # if HasSunCplusplus || HasCenterLineCplusplus
    #  define PositionIndependentCplusplusFlags -pic
    #  define LargePositionIndependentCplusplusFlags -PIC
    # endif
    /* As is done in sco5.cf, we lie and say Solaris has NCURSES, since
     * the system curses is close enough for xorgcfg's purposes.  xorgcfg
     * should not depend on the NCURSES package but rather on a "capable curses", 
     * of which NCURSES is just one.
     */
    #define	HasNCurses		YES
    #define NCursesLibName		-lcurses
    #else /* not OSMajorVersion > 4 */
    #define InstKmemFlags	  -g kmem -m 2711
    #include <sunLib.rules>
    #endif /* OSMajorVersion > 4 (else) */
    
    /* Solaris 10 includes FreeType already.  It's also available in GNOME 2.0 for
     * Solaris 8 & 9, and in Solaris 9 4/03 and later, but there's no easy way to
     * detect that in imake, so users of those releases who want to use the 
     * installed FreeType instead of the one in this tree should copy the following
     * two settings to their host.def.  Those who want to use the in-tree copy
     * regardless of OS version should add "#define HasFreetype2 NO" to host.def.
     */
    #ifndef HasFreetype2
    # if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
    #  define HasFreetype2 YES 
    #  ifndef Freetype2Dir
    #   define Freetype2Dir /usr/sfw
    #  endif
    # else
    #  define HasFreetype2 NO
    # endif
    #endif
    
    #ifndef HasExpat
    # if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
    #  define HasExpat YES 
    #  ifndef ExpatDir
    #   define ExpatDir /usr/sfw
    #  endif
    # else
    #  define HasExpat NO
    # endif
    #endif
    
    /* Solaris 10 includes fontconfig, but not the fcprivate.h header needed by
     * Xft1 library.
     */
    #ifndef HasFontconfig
    # define HasFontconfig NO
    #endif
    
    /* libpng was in /usr/sfw/lib on Solaris 9, moved to /usr/lib in Solaris 10 */
    #ifndef HasLibpng
    # if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
    #  define HasLibpng YES 
    #  if !defined(LibpngDir) && ((OSMajorVersion == 5) && (OSMinorVersion == 9))
    #   define LibpngDir /usr/sfw
    #  endif
    # else
    #  define HasLibpng NO
    # endif
    #endif
    
    #ifndef HasZlib
    # if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
    #  define HasZlib YES
    # else
    #  define HasZlib NO
    # endif
    #endif
    
    #ifndef TroffCmd
    # if !(HasGroff)
    #  define TroffCmd troff -Tpost
    # endif
    #endif
    
    #define BuildLibPathVar	  LD_LIBRARY_PATH
    #define HasNdbm		  YES
    #define HasShm		  YES
    #define HasSecureRPC	  YES
    #define SetTtyGroup	  YES
    #define HasPutenv	  YES
    #define HasMkstemp        YES
    #if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
    #define HasDevRandom	  YES	/* /dev/random is in Solaris 8 patches 	*/
    #define PollDevRandom	  YES	/* /dev/random is poll()able on Solaris */
    #endif
    #if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
    # define HasIssetugid	  YES
    #endif
    #if defined(Sun3Architecture) || defined(SparcArchitecture) || defined(Sparc64Architecture)
    # ifndef Xsun24Server
    #  define Xsun24Server	  NO		/* color, mono, multiple depths */
    # endif
    # ifndef XsunServer
    #  define XsunServer	  NO		/* color and mono, 8 bit only */
    # endif
    # ifndef XsunMonoServer
    #  define XsunMonoServer	  NO		/* monochrome only */
    # endif
    # ifndef XorgServer
    #  define XorgServer	(!(Xsun24Server || XsunServer || XsunMonoServer))
    # endif 
    # undef BuildXF86DRI
    # define BuildXF86DRI     NO
    # if (OSMajorVersion > 4)
    #  if !defined(AsOutputArchSize) || \
          ((AsOutputArchSize != 32) && (AsOutputArchSize != 64))
    #   undef AsOutputArchSize
    #   define AsOutputArchSize	32
    #  endif
    #  ifndef AsVISOption
    #   if AsOutputArchSize == 32
    #    ifdef UseGas
    #     define AsVISOption		-Av8plusa
    #    else
    #     define AsVISOption		-xarch=v8plusa
    #    endif
    #   else
    #    ifdef UseGas
    #     define AsVISOption		-Av9a
    #    else
    #     define AsVISOption		-xarch=v9a
    #    endif
    #   endif
    #  endif
    # endif
    #endif /* SPARC or Sun3/M68k */
    
    #if OSMajorVersion >= 4
    #define HasUsableFileMap YES
    #endif
    
    #ifndef UseDeprecatedKeyboardDriver
    #define UseDeprecatedKeyboardDriver YES
    #endif
    
    #if HasGcc
    # if OSMajorVersion > 4
    #  ifndef DefaultCCOptions
    #   ifdef UseInstalled
    #    define DefaultCCOptions -DNO_ASM
    #   elif OSMinorVersion > 6
    #    define DefaultCCOptions -DNO_ASM GccWarningOptions
    #   elif OSMinorVersion > 3
    #    define DefaultCCOptions -DNO_ASM GccWarningOptions -ansi -pedantic
    #   else
    #    define DefaultCCOptions -DNO_ASM
    #   endif
    #  endif
    # endif
    # if HasGcc2
    #  ifndef CcCmd
    #   define CcCmd gcc
    #  endif
    #  ifndef AsCmd
    #   define AsCmd CcCmd -c -x assembler
    #  endif
    #  ifndef OptimizedCDebugFlags
    #   ifdef i386Architecture
    #    define OptimizedCDebugFlags DefaultGcc2i386Opt
    #   elif defined(AMD64Architecture)
    #    define OptimizedCDebugFlags DefaultGcc2AMD64Opt
    #   else
    #    define OptimizedCDebugFlags -O2
    #   endif
    #  endif
    #  if !defined(SharedLibraryLoadFlags) && !defined(SharedLibraryLdCmd)
    #   if OSMajorVersion == 5 && OSMinorVersion > 6 && defined(i386Architecture)
        /* This is to work around what appears to be a PIC bug in some gcc/egcs
           versions that shows up with the Solaris 7/x86 <ctype.h>. */
    #    define SharedLibraryLdCmd $(LD)
    #    define SharedLibraryLoadFlags -G -z textwarn
    #   else
    #    define SharedLibraryLdCmd $(CC)
    #    define SharedLibraryLoadFlags -shared -z text
    #   endif
    #  endif
    # else
    #  define SharedLibraryCcCmd cc
    #  define ExtraLoadFlags -B/usr/bin/
    #  define AllocateLocalDefines /**/
    
    .c.o:
    	ClearmakeOSName	$(CC) -c $(CFLAGS) $*.c
    
    # endif /* HasGcc2 (else) */
    
    #else /* not HasGcc */
    
    # define AllocateLocalDefines -DINCLUDE_ALLOCA_H
    
    /* Set up compiler-dependent options for Sun C */
    /*
     * To build 64-bit binaries define Sparc64Architecture or AMD64Architecture
     * in your site.def or host.def file.
     */
    # if HasSunC
    #  ifdef Sun3Architecture
    #   ifndef DefaultCCOptions
    #    define DefaultCCOptions -f68881 -pipe
    #   endif
    #  else	/* not defined(Sun3Architecture) */
    #   if OSMajorVersion < 5
    #    ifndef DefaultCCOptions
    #     define DefaultCCOptions -pipe
    #    endif
    #   else /* OSMajorVersion >= 5*/
    #     ifndef DefaultXArchOptions
    #      ifdef Sparc64Architecture
    #	define DefaultXArchOptions -xarch=v9
    #      elif defined(AMD64Architecture)
    #	define DefaultXArchOptions -xarch=generic64
    #      else
    #       define DefaultXArchOptions /* */
    #     endif
    #     ifndef DefaultCCOptions
    #      define DefaultCCOptions -Xa -v DefaultXArchOptions -z lazyload -z combreloc -xstrconst -xildoff
    #     endif
    #     ifndef DefaultCplusplusOptions
    #      define DefaultCplusplusOptions DefaultXArchOptions -z lazyload -z combreloc -xildoff
    #     endif
    #     ifndef SharedLibraryLoadFlags
    #      define SharedLibraryLoadFlags -G DefaultXArchOptions -z text $(EXTRA_LOAD_FLAGS)
    #     endif
    #    endif
    #   endif	
    #  endif	
    # endif
    
    /* Set compiler-dependent options for CenterLine C */
    
    # if HasCenterLineC
    #  ifndef DefaultCCOptions
    #   define DefaultCCOptions -Xt -w1 -DANSICPP -U__HIGHC__
    #  endif
    #  ifndef NeedConstPrototypes
    #   define NeedConstPrototypes YES
    #  endif
    #  ifndef NeedNestedPrototypes
    #   define NeedNestedPrototypes YES
    #  endif
    #  ifndef NeedVarargsPrototypes
    #   define NeedVarargsPrototypes YES
    #  endif
    # endif
    
    
    #endif /* HasGcc (else) */
    
    #if OSMajorVersion < 5
    # define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H
    # define LibraryCCOptions /* don't want special floating point */
    #else /* OSMajorVersion >= 5, i.e. Solaris 2.0 & later */
    /* Only load libraries when needed on Solaris 7 & later */
    # if OSMinorVersion >= 7 
    #  define LazyLoadFlag -z lazyload -z combreloc
    # else
    #  define LazyLoadFlag /* */
    # endif
    /* Link with extra mapfiles for some performance & security enhancements */
    #ifndef MapfileFlag
    # if HasSunC
    #  define MapfileFlag -M
    # else
    #  define MapfileFlag -Wl,-M,
    # endif
    #endif
    #ifndef Mapfile_BssAlign
    # if OSMinorVersion >= 9
    #  define Mapfile_BssAlign $(MAPFILEFLAG)/usr/lib/ld/map.bssalign
    # else
    #  define Mapfile_BssAlign /**/
    # endif
    #endif
    #ifndef Mapfile_PageAlign
    # if OSMinorVersion >= 10
    #  define Mapfile_PageAlign $(MAPFILEFLAG)/usr/lib/ld/map.pagealign
    # else
    #  define Mapfile_PageAlign /**/
    # endif
    #endif
    #ifndef Mapfile_NoExStack
    # if OSMinorVersion >= 9
    #  define Mapfile_NoExStack $(MAPFILEFLAG)/usr/lib/ld/map.noexstk
    # else
    #  define Mapfile_NoExStack /**/
    # endif
    #endif
    #ifndef Mapfile_NoExData
    # if defined(SparcArchitecture)
    /* SPARC archictecture requires PLT section in .data be executable, so
       we can only make .bss, not all of .data no-exec on SPARC */
    #   define Mapfile_NoExData /**/
    # else
    #  if OSMinorVersion >= 10
    #   define Mapfile_NoExData $(MAPFILEFLAG)/usr/lib/ld/map.noexdata
    #  else
    #   define Mapfile_NoExData /**/
    #  endif
    # endif
    #endif
           MAPFILEFLAG = MapfileFlag
      MAPFILES_FOR_ALL = Mapfile_PageAlign Mapfile_NoExData
    MAPFILES_FOR_PROGS = Mapfile_BssAlign Mapfile_NoExStack
    /* ExtraLoadFlags apply to all binaries - programs & libraries */
    # ifndef ExtraLoadFlags
    #  define ExtraLoadFlags LazyLoadFlag $(MAPFILES_FOR_ALL)
    # endif
    /* ExtraLoadOptions only apply to programs */
    # ifndef ExtraLoadOptions
    #  define ExtraLoadOptions -B direct $(MAPFILES_FOR_PROGS)
    # endif
    #endif /* OSMajorVersion < 5 */
    
    /* 64-bit build support */
    #ifndef Solaris64bitSubdir
    # ifdef Sparc64Architecture
    #  define Solaris64bitSubdir	sparcv9
    # elif defined(AMD64Architecture)
    #  define Solaris64bitSubdir	amd64
    # endif
    #endif
    
    #ifdef Solaris64bitSubdir
    # define LibDirName Concat3(lib,/,Solaris64bitSubdir)
    #endif
    
    #if OSMajorVersion > 4
    # include <svr4.cf>
    #endif
    
    #ifndef ManKeywordsTarget
    # define ManKeywordsTarget(manpath)					@@\
    man_keywords::								@@\
    	catman -M $(DESTDIR)manpath -w
    #endif
    
    #if !defined(UsePamLibrary)
    # if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 4))
    #  define UsePamLibrary		YES
    # endif
    #endif
    
    /* PAM appeared in SunOS 5.6 */
    #if !defined(HasPam)
    # if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
    #  define HasPam		YES
    # endif
    #endif
    
    #ifndef PamLibraries
    #define PamLibraries		-lpam
    #endif
    
    #ifndef HasMotif
    /* Solaris's Motif depends on Solaris libX11 and won't work with libX11 built
     * from this tree, so only use it when using libX11 from outside the tree.
     */
    # define HasMotif (defined(UseInstalled) || UseInstalledX11)
    # define MotifDir /usr/dt
    #endif /* !HasMotif */
    #ifndef HasMotif2
    /* Solaris's Motif2 version is broken and misses XmPrintShell
     * (see http://xprint.mozdev.org/bugs/show_bug.cgi?id=1366) */
    # define HasMotif2 NO
    #endif /* !HasMotif2 */
    
    #define MotifDefines			\
    	-DNO_ISDIR -DNO_REGCOMP -DNO_ALLOCA -DBOGUS_MB_MAX -DNO_CONST
    #define PamUnixDefines		-DPAM_NIS
    #define TtLargePICTable		YES
    #define DtSvcDefines		-DXK_MISCELLANY -DMULTIBYTE -DNO_REGCOMP
    #define DtSearchDefines		-DI18N_MSG DtSvcDefines
    #define DtWidgetDefines		DtSearchDefines
    #define DtPrintDefines		DtSearchDefines
    
    #define baseDtMailDefines	\
    	-DSunOS=OSMajorVersion\#\#OSMinorVersion -DMMAP_NORESERVE -DSPRO_V2
    #if !defined(i386Architecture) && !defined(AMD64Architecture)
    # define DtMailDefines		baseDtMailDefines
    #else
    # define DtMailDefines		-DBIG_ENDIAN baseDtMailDefines
    #endif
    
    #define ArchitectureDefines	-DSUN_ARCHITECTURE
    
    #define TtClientExtraLibs	ExtraLibraries -ldl -lintl
    
    #define ExportListGenSource	elistgen.sun
    #define ShlibExportListOpt(filename)	-M filename
    
    #define CdeProjectDefines \
    	-DMULTIBYTE -DNLS16 -DMESSAGE_CAT -D_XOPEN_VERSION=4 \
    	-D_XOPEN_SOURCE -D__EXTENSIONS__ \
    	-DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion
    
    
    /*
     * Turn off HTML manpages like we do under NetBSD.
     */
    #ifndef	BuildHtmlManPages
    #define	BuildHtmlManPages	NO
    #endif
    
    /*
     * Turn off seperate configuration directories.
     */
    #ifndef	UseSeparateConfDir
    #define	UseSeparateConfDir	NO
    #endif
    
    /* Hackery for building modules as Solaris shared objects with dependencies */
    #if MakeDllModules && DoLoadableServer
    
    /* If you change this, you will need to change find-deps.pl to match */
    #define DlModuleDependencyName(module) Concat(module,_deps)
    
    #define DlModuleTarget(module,deplist,modlist)                          @@\
    DepDynamicModuleTarget(module,deplist DlModuleDependencyName(module),modlist LazyLoadFlag `cat DlModuleDependencyName(module)`) @@\
    									@@\
    DlModuleDependencyName(module):						@@\
    	touch $@							@@\
    									@@\
    clean::                                                                 @@\
            RemoveFile(DlModuleDependencyName(module))
    
    #define ObjectModuleTarget(module,objects)				@@\
    DlModuleTarget(Concat(module,_drv.so), objects, objects)
    
    #define LibraryModuleTarget(module,objects)				@@\
    NormalLibraryTarget(module, objects)					@@\
    DlModuleTarget(Concat3(lib,module,.so), objects, objects)
    
    #define DepLibraryModuleTarget(module,deplist,objects)			@@\
    NormalDepLibraryTarget(module, deplist, objects)			@@\
    DlModuleTarget(Concat3(lib,module,.so), deplist, objects)
    
    #endif