XCOMM platform:  $XConsortium: sun.cf,v 1.139.1.1 95/06/19 18:22:21 gildea Exp $
XCOMM platform:  $XFree86: xc/config/cf/sun.cf,v 3.21 1995/07/19 12:36:51 dawes Exp $

#ifdef SVR4Architecture
#ifdef i386Architecture
#ifndef OSName
#define OSName            SunOS 5.4 x86
#endif
XCOMM operating system:  OSName
#ifndef OSMajorVersion
#define OSMajorVersion    5
#endif
#ifndef OSMinorVersion
#define OSMinorVersion    4
#endif
#ifndef	OSTeenyVersion
#define OSTeenyVersion    0
#endif
#else
#ifndef OSName
#define OSName            SunOS 5.3
#endif
XCOMM operating system:  OSName
#ifndef OSMajorVersion
#define OSMajorVersion    5
#endif
#ifndef OSMinorVersion
#define OSMinorVersion    3
#endif
#ifndef	OSTeenyVersion
#define OSTeenyVersion    0
#endif
#endif
#else
#ifndef OSName
#define OSName            SunOS 4.1.3
#endif
XCOMM operating system:  OSName
#ifndef OSMajorVersion
#define OSMajorVersion    4
#endif
#ifndef OSMinorVersion
#define OSMinorVersion    1
#endif
#ifndef	OSTeenyVersion
#define OSTeenyVersion    3
#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 or gcc2, define HasGcc or HasGcc2 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 say you have the SunPro C compiler, we assume you have 
 * version 2.0.x of the compiler.  If you have version 3.0.x instead, 
 * define CCompilerMajorVersion as 3 in site.def
 *
 * 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 HasGcc2
#define HasGcc2 NO
#endif
#ifndef HasGcc
#define HasGcc HasGcc2
#endif

#ifndef HasSunC
#if (HasCenterLineC || HasGcc || HasGcc2 || OSMajorVersion < 5)
#define HasSunC NO
#else
#define HasSunC YES
#endif
#endif

#if HasSunC 
#ifndef CCompilerMajorVersion
#define CCompilerMajorVersion 2
#endif
#endif

#if HasSunCplusplus
#ifndef HasCplusplus
#define HasCplusplus YES
#endif
#ifndef CplusplusCompilerMajorVersion
#define CplusplusCompilerMajorVersion 3
#endif
#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

/*
 * Gnu g++ 2.6.0 cannot build working C++ shared libraries under Solaris 2
 */
#if HasGcc2ForCplusplus && OSMajorVersion > 4
#ifndef SharedLibFresco
#define SharedLibFresco NO
#endif
#ifndef SharedLibXtf
#define SharedLibXtf NO
#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

#ifdef i386Architecture
#define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines
#define ServerOSDefines   XFree86ServerOSDefines
#else
#define ServerExtraDefines AllocateLocalDefines
#define ServerOSDefines   -DDDXOSINIT
#endif

#if OSMajorVersion > 4
#ifndef XawI18nDefines
#define XawI18nDefines    -DHAS_WCTYPE_H -DHAS_ISW_FUNCS
#endif
#ifdef i386Architecture
#define StandardDefines	  -Dsun -Di386 -DSVR4 -D__i386
#define ToolkitStringsABIOptions	-intelabi -earlyR6bc
#define BootstrapCFlags   -DSVR4 -Di386 -Dsun
#else
#define StandardDefines	  -Dsun -Dsparc -DSVR4
#define ToolkitStringsABIOptions	-sparcabi
#endif
#ifndef BootstrapCFlags
#define BootstrapCFlags	  -DSVR4
#endif
#define ExtraLibraries    -lsocket -lnsl
#if OSMinorVersion > 1
#define ThreadedX	  YES
#if HasSunC && CCompilerMajorVersion > 2
#define ThreadsCompileFlags -mt
#else
#define SystemMTDefines -D_REENTRANT
#ifndef i386Architecture
#define ThreadsLibraries -lthread
#endif
#endif
#if HasSunCplusplus && CplusplusCompilerMajorVersion > 3
#define ThreadsCplusplusCompileFlags -mt
#else
#define CplusplusSystemMTDefines -D_REENTRANT
#ifndef i386Architecture
#define ThreadsCplusplusLibraries -lthread
#endif
#endif
#endif 		/* OSMinorVersion > 1 */
#define HasVFork          NO
#define InstKmemFlags	  -g sys -m 2755
#define ShLibIncludeFile <sunLib.tmpl>
/*
 * 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
#endif
#if HasSunCplusplus || HasCenterLineCplusplus
#define PositionIndependentCplusplusFlags -pic
#endif
#else
#define InstKmemFlags	  -g kmem -m 2755
#include <sunLib.rules>
#endif

#define HasNdbm		  YES
#define HasShm		  YES
#define HasSecureRPC	  YES
#define SetTtyGroup	  YES
#define HasPutenv	  YES
#ifndef i386Architecture
#ifndef Xsun24Server
#define Xsun24Server	  NO		/* color, mono, multiple depths */
#endif
#ifndef XsunServer
#define XsunServer	  YES		/* color and mono, 8 bit only */
#endif
#ifndef XsunMonoServer
#define XsunMonoServer	  NO		/* monochrome only */
#endif
#endif /* not i386Architecture */
#ifndef BuildPexExt
#define BuildPexExt	  (XsunServer || Xsun24Server)
#endif
#ifndef BuildXKB
#if !((OSMajorVersion > 4) && defined(i386Architecture))
#define	BuildXKB	  YES
#endif
#endif

#if (OSMajorVersion > 4) && defined(i386Architecture)
#ifndef HasSolx86ApertureDriver
#define HasSolx86ApertureDriver	NO
#endif
#endif

#if HasGcc
#if OSMajorVersion > 4 && defined(i386Architecture)
#ifndef DefaultCCOptions
#if UseInstalled
#define DefaultCCOptions -DNO_ASM
#else
#if OSMinorVersion > 3
#define DefaultCCOptions -ansi -pedantic -DNO_ASM
#else
#define DefaultCCOptions -DNO_ASM
#endif
#endif
#endif
#endif
#if HasGcc2
#ifdef UseInstalled
#define OptimizedCDebugFlags -O2
#else
#define OptimizedCDebugFlags -O
#endif
#else
#define SharedLibraryCcCmd cc
#define ExtraLoadFlags -B/usr/bin/
#define AllocateLocalDefines /**/

.c.o:
	$(CC) -c $(CFLAGS) $*.c

#endif /* HasGcc2 (else) */
#else /* not HasGcc */

#define AllocateLocalDefines -DINCLUDE_ALLOCA_H

/* Set up compiler-dependent options for Sun C */

#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 DefaultCCOptions
#define DefaultCCOptions -Xa
#endif
#ifdef i386Architecture
#ifndef ServerCCOptions
#define ServerCCOptions -Xt
#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


#define PexCCOptions DefaultCCOptions

#endif /* HasGcc (else) */

#if OSMajorVersion < 5
#define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H
#define LibraryCCOptions /* don't want special floating point */
#endif

#if OSMajorVersion > 4
#include <svr4.cf>
#endif
