sun.cf revision 4c61c93d
14c61c93dSmrgXCOMM $XdotOrg: xc/config/cf/sun.cf,v 1.9 2004/08/19 16:28:42 kem Exp $
211d341caSmrgXCOMM platform:  $Xorg: sun.cf,v 1.4 2000/08/17 19:41:48 cpqbld Exp $
311d341caSmrg
411d341caSmrg
511d341caSmrg
611d341caSmrg
711d341caSmrgXCOMM platform:  $XFree86: xc/config/cf/sun.cf,v 3.70 2004/01/13 02:42:51 tsi Exp $
811d341caSmrg
911d341caSmrg#ifndef OSName
1011d341caSmrg# define OSName		DefaultOSName
1111d341caSmrg#endif
1211d341caSmrg#ifndef OSMajorVersion
1311d341caSmrg# define OSMajorVersion	DefaultOSMajorVersion
1411d341caSmrg#endif
1511d341caSmrg#ifndef OSMinorVersion
1611d341caSmrg# define OSMinorVersion	DefaultOSMinorVersion
1711d341caSmrg#endif
1811d341caSmrg#ifndef OSTeenyVersion
1911d341caSmrg# define OSTeenyVersion	DefaultOSTeenyVersion
2011d341caSmrg#endif
2111d341caSmrgXCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
2211d341caSmrg
2311d341caSmrg/* For various reasons, Sun uses different settings when compiling the 
2411d341caSmrg * X Window System packages included in Solaris than are normally used
2511d341caSmrg * by most people building the X.Org software releases.   Sun also has
2611d341caSmrg * two different X server hierarchies in Solaris - Xsun in /usr/openwin
2711d341caSmrg * and Xorg in /usr/X11.
2811d341caSmrg *
2911d341caSmrg * If you want to try to match Sun's settings as closely as possible
3011d341caSmrg * add this setting to your host.def:
3111d341caSmrg *  #define BuildLikeSun YES
3211d341caSmrg *
3311d341caSmrg * If you're trying to match the openwin directory layout as well, you'll 
3411d341caSmrg * need to also add:
3511d341caSmrg *  #define ProjectRoot /usr/openwin
3611d341caSmrg * otherwise it will use /usr/X11.  (Note that these settings match closer
3711d341caSmrg * to Sun's Xorg delivery in /usr/X11 than the older X11R6.6-based delivery
3811d341caSmrg * in /usr/openwin though.)
3911d341caSmrg */
4011d341caSmrg#ifndef BuildLikeSun
4111d341caSmrg# define BuildLikeSun NO
4211d341caSmrg#endif
4311d341caSmrg
4411d341caSmrg#if BuildLikeSun
4511d341caSmrg# ifndef ProjectRoot
4611d341caSmrg#  define ProjectRoot		/usr/X11
4711d341caSmrg# endif
4811d341caSmrg# ifndef DocDir
4911d341caSmrg#  define DocDir		Concat(ProjectRoot,/share/doc)
5011d341caSmrg# endif
5111d341caSmrg# ifndef ManDirectoryRoot
5211d341caSmrg#  define ManDirectoryRoot	Concat(ProjectRoot,/share/man)
5311d341caSmrg# endif
5411d341caSmrg# ifndef ManSuffix
5511d341caSmrg#  define ManSuffix		1
5611d341caSmrg# endif
5711d341caSmrg# ifndef LibraryCCOptions
5811d341caSmrg#  if DoSharedLib && defined(SharedLibraryCCOptions)
5911d341caSmrg#   define LibraryCCOptions SharedLibraryCCOptions ArchLibraryCCOptions
6011d341caSmrg#  else
6111d341caSmrg#   define LibraryCCOptions DefaultCCOptions ArchLibraryCCOptions
6211d341caSmrg#  endif
6311d341caSmrg# endif
6411d341caSmrg#endif
6511d341caSmrg
6611d341caSmrg/* Flag passed to makestrs in Xt build to control string array names in the
6711d341caSmrg * libXt headers.   -solarisabinames matches those used in the libXt in 
6811d341caSmrg * Solaris, but not in other OS'es.
6911d341caSmrg */
7011d341caSmrg#ifndef SolarisABIFlag
7111d341caSmrg# if BuildLikeSun
7211d341caSmrg#  define SolarisABIFlag -solarisabinames
7311d341caSmrg# else
7411d341caSmrg#  define SolarisABIFlag /**/
7511d341caSmrg# endif
7611d341caSmrg#endif
7711d341caSmrg
7811d341caSmrg/*
7911d341caSmrg * Compiler setup.  This sun.cf file knows what options to use with 
8011d341caSmrg * certain compilers, including Sun C, CenterLine C, and gcc.  It 
8111d341caSmrg * also understands how to set some of the options for various C++
8211d341caSmrg * compilers, including Sun C++ and CenterLine C++.
8311d341caSmrg *
8411d341caSmrg * === C Compiler Setup ==========================================
8511d341caSmrg *
8611d341caSmrg * For SunPro C, define HasSunC to YES in site.def.  
8711d341caSmrg * For CenterLine C, define HasCenterLineC to YES in site.def
8811d341caSmrg * For gcc, gcc2 or gcc3, define HasGcc, HasGcc2 or HasGcc3 to YES in site.def
8911d341caSmrg * For other compilers, define HasSunC to NO in site.def, then 
9011d341caSmrg *    provide appropriate values for the various compiler related
9111d341caSmrg *    configuration varibles used here.
9211d341caSmrg * 
9311d341caSmrg * If you don't tell us which C compiler you have, we assume you have 
9411d341caSmrg * the SunPro C compiler under Solaris 2.x, and the bundled /bin/cc 
9511d341caSmrg * under SunOS 4.1.x
9611d341caSmrg *
9711d341caSmrg * === C++ Compiler Setup ==========================================
9811d341caSmrg *
9911d341caSmrg * For SunPro C++, define HasSunCplusplus to YES in site.def
10011d341caSmrg * For CenterLine C++, define HasCenterLineCplusplus to YES in site.def
10111d341caSmrg * For Gnu g++ 2.6.x, define HasGcc2ForCplusplus to YES in site.def
10211d341caSmrg * For other compilers, define HasCplusplus to YES in site.def, and 
10311d341caSmrg *    check to see if you need to provide values for CplusplusOptions
10411d341caSmrg *    and/or DefaultCplusplusOptions.
10511d341caSmrg *
10611d341caSmrg * In any case, you may also need to set CplusplusDependIncludes.
10711d341caSmrg *
10811d341caSmrg * If you say you have the SunPro C++ compiler, we assume you have 
10911d341caSmrg * version 3.0.x of the compiler.  If you have version 4.0.x instead, 
11011d341caSmrg * define CplusplusCompilerMajorVersion as 4 in site.def.
11111d341caSmrg *
11211d341caSmrg */
11311d341caSmrg
11411d341caSmrg#ifndef HasGcc3
11511d341caSmrg#define HasGcc3 NO
11611d341caSmrg#endif
11711d341caSmrg#ifndef HasGcc2
11811d341caSmrg#define HasGcc2 HasGcc3
11911d341caSmrg#endif
12011d341caSmrg#ifndef HasGcc
12111d341caSmrg#define HasGcc HasGcc2
12211d341caSmrg#endif
12311d341caSmrg
12411d341caSmrg#ifndef HasSunC
12511d341caSmrg# if HasCenterLineC || HasGcc || HasGcc2 || HasGcc3 || (OSMajorVersion < 5)
12611d341caSmrg#  define HasSunC NO
12711d341caSmrg# else
12811d341caSmrg#  define HasSunC YES
12911d341caSmrg# endif
13011d341caSmrg#endif
13111d341caSmrg
13211d341caSmrg#if HasSunC 
13311d341caSmrg# ifndef CCompilerMajorVersion
13411d341caSmrg#  define CCompilerMajorVersion DefaultSunProCCompilerMajorVersion
13511d341caSmrg# endif
13611d341caSmrg# ifndef CCompilerMinorVersion
13711d341caSmrg#  define CCompilerMinorVersion DefaultSunProCCompilerMinorVersion
13811d341caSmrg# endif
13911d341caSmrgXCOMM SunPro C CCompilerMajorVersion./**/CCompilerMinorVersion
14011d341caSmrg
14111d341caSmrg/* Choose some reasonable default optimizer flags based on compiler & 
14211d341caSmrg   OS versions */
14311d341caSmrg# ifndef OptimizedCDebugFlags
14411d341caSmrg#  if (CCompilerMajorVersion > 5) || \
14511d341caSmrg	(CCompilerMajorVersion == 5 && CCompilerMinorVersion > 2)
14611d341caSmrg#   define OptimizedCDebugFlags -xO4 -xbuiltin=%all -xlibmil -xstrconst ArchOptimizedFlags
14711d341caSmrg#  else
14811d341caSmrg#   define OptimizedCDebugFlags -xO4 -xstrconst ArchOptimizedFlags
14911d341caSmrg#  endif
15011d341caSmrg# endif
15111d341caSmrg# ifndef ArchOptimizedFlags
15211d341caSmrg#  if OSMajorVersion == 5 
15311d341caSmrg#   if defined(SparcArchitecture) && !defined(Sparc64Architecture)
15411d341caSmrg#    if OSMinorVersion > 9 /* Solaris 10 and later only run on UltraSPARC's */
15511d341caSmrg#     define ArchOptimizedFlags -xarch=v8plus
15611d341caSmrg#    else
15711d341caSmrg#     define ArchOptimizedFlags -xarch=v8
15811d341caSmrg#    endif
15911d341caSmrg#   elif defined(i386Architecture) || defined(AMD64Architecture)
16011d341caSmrg#    if (CCompilerMajorVersion > 5) || \
16111d341caSmrg	(CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 7)
16211d341caSmrg/* -xregs=no%frameptr is required on x86 when compiling at -xO4 or higher to
16311d341caSmrg * avoid losing stack frame pointers so you can't get stack traces or debug.
16411d341caSmrg * This may lose a small bit of performance, so you can override by adding
16511d341caSmrg * #define FramePtrFlags -xregs=frameptr if you care about performance more 
16611d341caSmrg * than debuggability.
16711d341caSmrg */
16811d341caSmrg#     ifndef FramePtrFlags
16911d341caSmrg#      define FramePtrFlags -xregs=no%frameptr
17011d341caSmrg#     endif
17111d341caSmrg#    endif
17211d341caSmrg#    ifndef FramePtrFlags
17311d341caSmrg#     define FramePtrFlags /* */
17411d341caSmrg#    endif
17511d341caSmrg#    if defined(i386Architecture) && (OSMinorVersion > 8)
17611d341caSmrg       /* Solaris 9 and later require Pentium or better */
17711d341caSmrg#      define ArchOptimizedFlags -xpentium FramePtrFlags
17811d341caSmrg#    else
17911d341caSmrg#     define ArchOptimizedFlags FramePtrFlags
18011d341caSmrg#    endif
18111d341caSmrg#   endif
18211d341caSmrg#  endif
18311d341caSmrg#  ifndef ArchOptimizedFlags
18411d341caSmrg#   define ArchOptimizedFlags /**/
18511d341caSmrg#  endif
18611d341caSmrg# endif
18711d341caSmrg# ifndef DefaultCDebugFlags
18811d341caSmrg#  define DefaultCDebugFlags OptimizedCDebugFlags
18911d341caSmrg# endif
19011d341caSmrg# ifndef SharedLibraryLdCmd
19111d341caSmrg#  define SharedLibraryLdCmd $(CC)
19211d341caSmrg# endif
19311d341caSmrg/* Flags for lint version included with Sun C compilers */
19411d341caSmrg# if OSMajorVersion >= 5
19511d341caSmrg#  ifndef LintLibFlag
19611d341caSmrg#   define LintLibFlag -y -o
19711d341caSmrg#  endif
19811d341caSmrg#  ifndef LintOpts
19911d341caSmrg#   define LintOpts -b -h -u -erroff=E_INDISTING_FROM_TRUNC2 $(LINTSECFLAG) ExtraLibraries MathLibrary -lc
20011d341caSmrg#  endif
20111d341caSmrg#  ifndef LintSecFlag
20211d341caSmrg#   if (CCompilerMajorVersion > 5) || \
20311d341caSmrg       (CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 6)
20411d341caSmrg#    define LintSecFlag -errsecurity=standard
20511d341caSmrg#   else
20611d341caSmrg#    define LintSecFlag /**/
20711d341caSmrg#   endif
20811d341caSmrg#  endif
20911d341caSmrg      LINTSECFLAG = LintSecFlag
21011d341caSmrg#  ifndef LintLibReferences
21111d341caSmrg#   define LintLibReferences(varname,libname,libsource)                    @@\
21211d341caSmrg       Concat(LINT,varname) = _UseCat(-L $(LINTLIBDIR) -l, -L libsource -l,libname)
21311d341caSmrg#  endif
21411d341caSmrg
21511d341caSmrg# endif /* Lint Flags for Solaris */
21611d341caSmrg
21711d341caSmrg#endif /* HasSunC */
21811d341caSmrg
21911d341caSmrg#ifndef ArchLibraryCCOptions
22011d341caSmrg# if HasSunC && defined(SparcArchitecture) && CCompilerMajorVersion > 3
22111d341caSmrg#  define ArchLibraryCCOptions -xregs=no%appl
22211d341caSmrg# else
22311d341caSmrg#  define ArchLibraryCCOptions
22411d341caSmrg# endif
22511d341caSmrg#endif /* ArchLibraryCCOptions */
22611d341caSmrg
22711d341caSmrg/* we used to have this here :
22811d341caSmrg *
22911d341caSmrg * #if HasSunC 
23011d341caSmrg * # ifndef CCompilerMajorVersion
23111d341caSmrg * #  define CCompilerMajorVersion 3
23211d341caSmrg * #  define DefaultCDebugFlags	-xO3
23311d341caSmrg * #  define OptimizedCDebugFlags	-xO3
23411d341caSmrg * # endif
23511d341caSmrg * #endif
23611d341caSmrg */
23711d341caSmrg
23811d341caSmrg#ifndef HasSunCplusplus
23911d341caSmrg# define HasSunCplusplus HasSunC	/* ??? */
24011d341caSmrg#endif
24111d341caSmrg#if HasSunCplusplus
24211d341caSmrg# ifndef HasCplusplus
24311d341caSmrg#  define HasCplusplus YES
24411d341caSmrg#  define OptimizedCplusplusDebugFlags	-xO4 -xbuiltin=%all -xlibmil
24511d341caSmrg# endif
24611d341caSmrg# ifndef CplusplusCompilerMajorVersion
24711d341caSmrg#  ifdef DefaultSunProCplusplusCompilerMajorVersion
24811d341caSmrg#   define CplusplusCompilerMajorVersion DefaultSunProCplusplusCompilerMajorVersion
24911d341caSmrg#  else
25011d341caSmrg#   define CplusplusCompilerMajorVersion 3
25111d341caSmrg#  endif
25211d341caSmrg# endif
25311d341caSmrg# ifndef CplusplusCompilerMinorVersion
25411d341caSmrg#  ifdef DefaultSunProCplusplusCompilerMinorVersion
25511d341caSmrg#   define CplusplusCompilerMinorVersion DefaultSunProCplusplusCompilerMinorVersion
25611d341caSmrg#  else
25711d341caSmrg#   define CplusplusCompilerMinorVersion 0
25811d341caSmrg#  endif
25911d341caSmrg# endif
26011d341caSmrg# ifndef CplusplusLibC
26111d341caSmrg#  if CplusplusCompilerMajorVersion >= 5
26211d341caSmrg#   define CplusplusLibC -norunpath -lCrun
26311d341caSmrg#  endif
26411d341caSmrg# endif
26511d341caSmrgXCOMM SunPro C++ CplusplusCompilerMajorVersion./**/CplusplusCompilerMinorVersion
26611d341caSmrg#endif
26711d341caSmrg
26811d341caSmrg/* we used to have this here :
26911d341caSmrg *
27011d341caSmrg * # ifndef CplusplusCompilerMajorVersion
27111d341caSmrg * #  define CplusplusCompilerMajorVersion	4
27211d341caSmrg * # endif
27311d341caSmrg */
27411d341caSmrg
27511d341caSmrg#if HasCenterLineC
27611d341caSmrg# ifndef CcCmd
27711d341caSmrg#  define CcCmd clcc
27811d341caSmrg# endif
27911d341caSmrg#endif
28011d341caSmrg
28111d341caSmrg#if HasCenterLineCplusplus
28211d341caSmrg# ifndef HasCplusplus
28311d341caSmrg#  define HasCplusplus YES
28411d341caSmrg# endif
28511d341caSmrg# ifndef DefaultCplusplusOptions
28611d341caSmrg#  define DefaultCplusplusOptions -Xa
28711d341caSmrg# endif
28811d341caSmrg# ifndef CplusplusOptions
28911d341caSmrg#  define CplusplusOptions -Xa
29011d341caSmrg# endif
29111d341caSmrg#endif
29211d341caSmrg
29311d341caSmrg#if OSMajorVersion < 4 || (OSMajorVersion == 4 && OSMinorVersion < 1)
29411d341caSmrg/* We do not guarantee this will work */
29511d341caSmrg# define BootstrapCFlags	-DNOSTDHDRS
29611d341caSmrg# define StandardDefines	-DNOSTDHDRS
29711d341caSmrg# define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
29811d341caSmrg#endif
29911d341caSmrg
30011d341caSmrg#if OSMajorVersion == 4 
30111d341caSmrg# if OSMinorVersion == 1
30211d341caSmrg#  define HasPoll		YES
30311d341caSmrg# endif
30411d341caSmrg# if OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1)
30511d341caSmrg/* You ALSO need this if you have Sun ld patch 100170-06 or later to 4.1.1 */
30611d341caSmrg#  define SunPost411FCSLd	YES
30711d341caSmrg# endif
30811d341caSmrg#endif
30911d341caSmrg
31011d341caSmrg/* The Xsun server was not building for SunOS 5.7 due to 
31111d341caSmrg   includes of <sys/cg2reg.h>. 
31211d341caSmrg*/
31311d341caSmrg#if OSMajorVersion < 5 
31411d341caSmrg# define IncludeCG2HeaderDefine	-DINCLUDE_CG2_HEADER
31511d341caSmrg#else
31611d341caSmrg# define IncludeCG2HeaderDefine /**/
31711d341caSmrg#endif
31811d341caSmrg
31911d341caSmrg#if defined(i386Architecture) || defined(AMD64Architecture)
32011d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
32111d341caSmrg#  define OSServerExtraDefines	-D__SOL8__
32211d341caSmrg# endif
32311d341caSmrg#endif
32411d341caSmrg
32511d341caSmrg#if !HasGcc 
32611d341caSmrg# if HasSunC
32711d341caSmrg#  if defined(AMD64Architecture)
32811d341caSmrg#   define AsmArch amd64
32911d341caSmrg#   define AsmFlags -xarch=amd64
33011d341caSmrg#  elif defined(i386Architecture)
33111d341caSmrg#   define AsmArch ia32
33211d341caSmrg#   define AsmFlags /**/
33311d341caSmrg#  elif defined(Sparc64Architecture)
33411d341caSmrg#   define AsmArch sparcv8plus
33511d341caSmrg#   define AsmFlags -xarch=v9
33611d341caSmrg#  elif defined(SparcArchitecture)
33711d341caSmrg#   define AsmArch sparcv8plus
33811d341caSmrg#   define AsmFlags -xarch=v8plus
33911d341caSmrg#  endif
34011d341caSmrg#  ifndef CompilerServerExtraDefines
34111d341caSmrg#   define CompilerServerExtraDefines $(SERVERSRC)/hw/xfree86/os-support/sunos/AsmArch.il
34211d341caSmrg#  endif
34311d341caSmrg# endif
34411d341caSmrg#endif
34511d341caSmrg
34611d341caSmrg#ifndef CompilerServerExtraDefines
34711d341caSmrg# define CompilerServerExtraDefines /**/
34811d341caSmrg#endif
34911d341caSmrg
35011d341caSmrg#ifndef OSServerExtraDefines
35111d341caSmrg# define OSServerExtraDefines	/**/
35211d341caSmrg#endif
35311d341caSmrg
35411d341caSmrg#ifndef ArchServerExtraDefines
35511d341caSmrg# if defined(Sparc64Architecture) || defined(AMD64Architecture)
35611d341caSmrg#  define ArchServerExtraDefines -D_XSERVER64
35711d341caSmrg# else
35811d341caSmrg#  define ArchServerExtraDefines /**/
35911d341caSmrg# endif
36011d341caSmrg#endif
36111d341caSmrg
36211d341caSmrg#define ServerOSDefines		XFree86ServerOSDefines IncludeCG2HeaderDefine
36311d341caSmrg#define ServerExtraDefines	AllocateLocalDefines XFree86ServerDefines \
36411d341caSmrg				CompilerServerExtraDefines \
36511d341caSmrg				OSServerExtraDefines ArchServerExtraDefines
36611d341caSmrg
36711d341caSmrg#ifndef HasPerl
36811d341caSmrg/* Solaris 8 comes with perl.  Earlier versions don't. */
36911d341caSmrg# if (OSMajorVersion == 5) && (OSMinorVersion >= 8)
37011d341caSmrg#  define HasPerl		YES
37111d341caSmrg# else
37211d341caSmrg#  define HasPerl		NO
37311d341caSmrg# endif
37411d341caSmrg#endif
37511d341caSmrg
37611d341caSmrg#ifndef XkbServerDefines
37711d341caSmrg# if BuildLikeSun
37811d341caSmrg#  define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT \
37911d341caSmrg	-DXKM_OUTPUT_DIR='"/var/run/xkb/"' -DXKM_OUTPUT_DIR_MODE=0775 \
38011d341caSmrg	-DMAKE_XKM_OUTPUT_DIR
38111d341caSmrg# else
38211d341caSmrg#  define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT
38311d341caSmrg# endif
38411d341caSmrg#endif
38511d341caSmrg
38611d341caSmrg#if OSMajorVersion > 4
38711d341caSmrg# define ConnectionFlags		-DTCPCONN -DUNIXCONN -DLOCALCONN
38811d341caSmrg# if HasSunC
38911d341caSmrg#  ifdef DefaultSunProCCompilerDir
39011d341caSmrg#   ifndef  CcCmd
39111d341caSmrg#    define CcCmd		DefaultSunProCCompilerDir/cc
39211d341caSmrg#   endif
39311d341caSmrg#  endif
39411d341caSmrg#  ifdef DefaultSunProCplusplusCompilerDir
39511d341caSmrg#   ifndef  CplusplusCmd
39611d341caSmrg#    define CplusplusCmd	DefaultSunProCplusplusCompilerDir/CC
39711d341caSmrg#   endif
39811d341caSmrg#   ifndef  CplusplusFilt
39911d341caSmrg#    define CplusplusFilt	DefaultSunProCplusplusCompilerDir/c++filt
40011d341caSmrg#   endif
40111d341caSmrg#   ifndef  CplusplusWhatdir
40211d341caSmrg#    define CplusplusWhatdir	DefaultSunProCplusplusCompilerDir/whatdir
40311d341caSmrg#   endif
40411d341caSmrg#  else /* DefaultSunProCplusplusCompilerDir not defined */
40511d341caSmrg#   ifndef  CplusplusWhatdir
40611d341caSmrg#    define CplusplusWhatdir	whatdir
40711d341caSmrg#   endif
40811d341caSmrg#  endif /* DefaultSunProCplusplusCompilerDir */
40911d341caSmrg#  ifndef  CplusplusDependIncludes
41011d341caSmrg#   if CplusplusCompilerMajorVersion > 3
41111d341caSmrg#    define CplusplusDependIncludes	-I`CplusplusWhatdir CC`/../include/CC
41211d341caSmrg#   elif CplusplusCompilerMajorVersion > 2
41311d341caSmrg#    define CplusplusDependIncludes	-I/opt/SUNWspro/SC3.0/include/CC
41411d341caSmrg#   else
41511d341caSmrg#    define CplusplusDependIncludes	-I/opt/SUNWspro/SC2.0.1/include/CC
41611d341caSmrg#   endif
41711d341caSmrg#  endif 
41811d341caSmrg# endif /* HasSunC */
41911d341caSmrg
42011d341caSmrg# if HasSunC && (CCompilerMajorVersion < 3)
42111d341caSmrg#  define BootstrapCFlags	-DSVR4
42211d341caSmrg# else
42311d341caSmrg#  define BootstrapCFlags	/* none needed */
42411d341caSmrg# endif
42511d341caSmrg# ifndef XawI18nDefines
42611d341caSmrg#  if OSMinorVersion < 4
42711d341caSmrg#   define XawI18nDefines    -DHAS_WCTYPE_H -DHAS_ISW_FUNCS
42811d341caSmrg#  else
42911d341caSmrg#   define XawI18nDefines    -DHAS_WCHAR_H -DHAS_ISW_FUNCS
43011d341caSmrg#  endif
43111d341caSmrg# endif
43211d341caSmrg# if OSMinorVersion > 3
43311d341caSmrg#  define InstallCmd	    /usr/ucb/install
43411d341caSmrg# endif
43511d341caSmrg#ifndef LargefileDefines
43611d341caSmrg# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
43711d341caSmrg#  define LargefileDefines -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
43811d341caSmrg# else
43911d341caSmrg#  define LargefileDefines /* */
44011d341caSmrg# endif
44111d341caSmrg#endif
44211d341caSmrg# ifdef AMD64Architecture
44311d341caSmrg#  define StandardDefines	-Dsun -DSVR4 -D__EXTENSIONS__ -D__amd64
44411d341caSmrg#  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
44511d341caSmrg# elif defined(i386Architecture)
44611d341caSmrg#  if (OSMajorVersion < 4) || ((OSMajorVersion == 5) && (OSMinorVersion <= 5))
44711d341caSmrg#   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
44811d341caSmrg				-D__SOL64__ LargefileDefines
44911d341caSmrg#  else
45011d341caSmrg#   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
45111d341caSmrg                                LargefileDefines
45211d341caSmrg#  endif
45311d341caSmrg#  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
45411d341caSmrg# else
45511d341caSmrg#  define StandardDefines	  -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines
45611d341caSmrg#  define ToolkitStringsABIOptions	-sparcabi SolarisABIFlag
45711d341caSmrg# endif
45811d341caSmrg# define ExtraLibraries    -lsocket -lnsl
45911d341caSmrg# define HasWeakSymbols	  YES
46011d341caSmrg# if OSMinorVersion > 1
46111d341caSmrg#  ifndef ThreadedX
46211d341caSmrg#   define ThreadedX	  YES
46311d341caSmrg#  endif
46411d341caSmrg#  define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXUSE_NETDB_R_API
46511d341caSmrg#  if HasSunC && CCompilerMajorVersion > 2
46611d341caSmrg#   define ThreadsCompileFlags -mt
46711d341caSmrg#  else
46811d341caSmrg#   define SystemMTDefines -D_REENTRANT
46911d341caSmrg#   define ThreadsLibraries -lthread
47011d341caSmrg#  endif
47111d341caSmrg#  if HasSunCplusplus && CplusplusCompilerMajorVersion > 3
47211d341caSmrg#   define ThreadsCplusplusCompileFlags -mt
47311d341caSmrg#  else
47411d341caSmrg#   define CplusplusSystemMTDefines -D_REENTRANT
47511d341caSmrg#   define ThreadsCplusplusLibraries -lthread
47611d341caSmrg#  endif
47711d341caSmrg# endif 		/* OSMinorVersion > 1 */
47811d341caSmrg# ifndef UseExportLists
47911d341caSmrg#  if (OSMinorVersion > 4) && !HasGcc2
48011d341caSmrg#   define UseExportLists YES
48111d341caSmrg#  else
48211d341caSmrg#   define UseExportLists NO
48311d341caSmrg#  endif
48411d341caSmrg# endif
48511d341caSmrg# if OSMinorVersion > 5 /* Solaris 2.6 and later */
48611d341caSmrg#  define HasSnprintf YES
48711d341caSmrg# endif
48811d341caSmrg# if OSMinorVersion > 7 /* Solaris 8 and later */
48911d341caSmrg#  define HasStrlcat	YES
49011d341caSmrg#  define HasStrcasecmp	YES
49111d341caSmrg#  define HasVarRun	YES
49211d341caSmrg# endif
49311d341caSmrg# if OSMinorVersion > 9 /* Solaris 10 and later */
49411d341caSmrg#  define HasSetenv	YES
49511d341caSmrg#  define HasGetpeerucred YES
49611d341caSmrg#  define HasGetoptLong YES
49711d341caSmrg#  define DlLibrary	-lc  /* dlopen() is in libc in Solaris 10 */
49811d341caSmrg# endif
49911d341caSmrg# define HasVFork	NO
50011d341caSmrg# define HasDlopen	YES
50111d341caSmrg# define InstallXloadSetGID	NO /* libkstat doesn't require gid kmem */
50211d341caSmrg# define InstKmemFlags	-g sys -m 2711
50311d341caSmrg# define ShLibIncludeFile <sunLib.tmpl>
50411d341caSmrg# define LinkerRuntimeLibraryPathFlag(path) Concat(-R,path)
50511d341caSmrg# define RpathLoadFlags LinkerRuntimeLibraryPathFlag($(USRLIBDIRPATH))
50611d341caSmrg/*
50711d341caSmrg * Set flags for position independent code before including sv4Lib.rules
50811d341caSmrg * if the compiler in use doesn't use standard SVR4 flags
50911d341caSmrg */
51011d341caSmrg# if HasSunC || HasCenterLineC
51111d341caSmrg#  define PositionIndependentCFlags -Kpic
51211d341caSmrg#  define LargePositionIndependentCFlags -KPIC
51311d341caSmrg#  ifdef Sparc64Architecture
51411d341caSmrg#   define LargePICTable YES
51511d341caSmrg#  endif
51611d341caSmrg# endif
51711d341caSmrg# if HasSunCplusplus || HasCenterLineCplusplus
51811d341caSmrg#  define PositionIndependentCplusplusFlags -pic
51911d341caSmrg#  define LargePositionIndependentCplusplusFlags -PIC
52011d341caSmrg# endif
52111d341caSmrg/* As is done in sco5.cf, we lie and say Solaris has NCURSES, since
52211d341caSmrg * the system curses is close enough for xorgcfg's purposes.  xorgcfg
52311d341caSmrg * should not depend on the NCURSES package but rather on a "capable curses", 
52411d341caSmrg * of which NCURSES is just one.
52511d341caSmrg */
52611d341caSmrg#define	HasNCurses		YES
52711d341caSmrg#define NCursesLibName		-lcurses
52811d341caSmrg#else /* not OSMajorVersion > 4 */
52911d341caSmrg#define InstKmemFlags	  -g kmem -m 2711
53011d341caSmrg#include <sunLib.rules>
53111d341caSmrg#endif /* OSMajorVersion > 4 (else) */
53211d341caSmrg
53311d341caSmrg/* Solaris 10 includes FreeType already.  It's also available in GNOME 2.0 for
53411d341caSmrg * Solaris 8 & 9, and in Solaris 9 4/03 and later, but there's no easy way to
53511d341caSmrg * detect that in imake, so users of those releases who want to use the 
53611d341caSmrg * installed FreeType instead of the one in this tree should copy the following
53711d341caSmrg * two settings to their host.def.  Those who want to use the in-tree copy
53811d341caSmrg * regardless of OS version should add "#define HasFreetype2 NO" to host.def.
53911d341caSmrg */
54011d341caSmrg#ifndef HasFreetype2
54111d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
54211d341caSmrg#  define HasFreetype2 YES 
54311d341caSmrg#  ifndef Freetype2Dir
54411d341caSmrg#   define Freetype2Dir /usr/sfw
54511d341caSmrg#  endif
54611d341caSmrg# else
54711d341caSmrg#  define HasFreetype2 NO
54811d341caSmrg# endif
54911d341caSmrg#endif
55011d341caSmrg
55111d341caSmrg#ifndef HasExpat
55211d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
55311d341caSmrg#  define HasExpat YES 
55411d341caSmrg#  ifndef ExpatDir
55511d341caSmrg#   define ExpatDir /usr/sfw
55611d341caSmrg#  endif
55711d341caSmrg# else
55811d341caSmrg#  define HasExpat NO
55911d341caSmrg# endif
56011d341caSmrg#endif
56111d341caSmrg
56211d341caSmrg/* Solaris 10 includes fontconfig, but not the fcprivate.h header needed by
56311d341caSmrg * Xft1 library.
56411d341caSmrg */
56511d341caSmrg#ifndef HasFontconfig
56611d341caSmrg# define HasFontconfig NO
56711d341caSmrg#endif
56811d341caSmrg
56911d341caSmrg/* libpng was in /usr/sfw/lib on Solaris 9, moved to /usr/lib in Solaris 10 */
57011d341caSmrg#ifndef HasLibpng
57111d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
57211d341caSmrg#  define HasLibpng YES 
57311d341caSmrg#  if !defined(LibpngDir) && ((OSMajorVersion == 5) && (OSMinorVersion == 9))
57411d341caSmrg#   define LibpngDir /usr/sfw
57511d341caSmrg#  endif
57611d341caSmrg# else
57711d341caSmrg#  define HasLibpng NO
57811d341caSmrg# endif
57911d341caSmrg#endif
58011d341caSmrg
58111d341caSmrg#ifndef HasZlib
58211d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
58311d341caSmrg#  define HasZlib YES
58411d341caSmrg# else
58511d341caSmrg#  define HasZlib NO
58611d341caSmrg# endif
58711d341caSmrg#endif
58811d341caSmrg
58911d341caSmrg#ifndef TroffCmd
59011d341caSmrg# if !(HasGroff)
59111d341caSmrg#  define TroffCmd troff -Tpost
59211d341caSmrg# endif
59311d341caSmrg#endif
59411d341caSmrg
59511d341caSmrg#define BuildLibPathVar	  LD_LIBRARY_PATH
59611d341caSmrg#define HasNdbm		  YES
59711d341caSmrg#define HasShm		  YES
59811d341caSmrg#define HasSecureRPC	  YES
59911d341caSmrg#define SetTtyGroup	  YES
60011d341caSmrg#define HasPutenv	  YES
60111d341caSmrg#define HasMkstemp        YES
60211d341caSmrg#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
60311d341caSmrg#define HasDevRandom	  YES	/* /dev/random is in Solaris 8 patches 	*/
60411d341caSmrg#define PollDevRandom	  YES	/* /dev/random is poll()able on Solaris */
60511d341caSmrg#endif
60611d341caSmrg#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
60711d341caSmrg# define HasIssetugid	  YES
60811d341caSmrg#endif
60911d341caSmrg#if defined(Sun3Architecture) || defined(SparcArchitecture) || defined(Sparc64Architecture)
61011d341caSmrg# ifndef Xsun24Server
61111d341caSmrg#  define Xsun24Server	  NO		/* color, mono, multiple depths */
61211d341caSmrg# endif
61311d341caSmrg# ifndef XsunServer
61411d341caSmrg#  define XsunServer	  NO		/* color and mono, 8 bit only */
61511d341caSmrg# endif
61611d341caSmrg# ifndef XsunMonoServer
61711d341caSmrg#  define XsunMonoServer	  NO		/* monochrome only */
61811d341caSmrg# endif
61911d341caSmrg# ifndef XorgServer
62011d341caSmrg#  define XorgServer	(!(Xsun24Server || XsunServer || XsunMonoServer))
62111d341caSmrg# endif 
62211d341caSmrg# undef BuildXF86DRI
62311d341caSmrg# define BuildXF86DRI     NO
62411d341caSmrg# if (OSMajorVersion > 4)
62511d341caSmrg#  if !defined(AsOutputArchSize) || \
62611d341caSmrg      ((AsOutputArchSize != 32) && (AsOutputArchSize != 64))
62711d341caSmrg#   undef AsOutputArchSize
62811d341caSmrg#   define AsOutputArchSize	32
62911d341caSmrg#  endif
63011d341caSmrg#  ifndef AsVISOption
63111d341caSmrg#   if AsOutputArchSize == 32
63211d341caSmrg#    ifdef UseGas
63311d341caSmrg#     define AsVISOption		-Av8plusa
63411d341caSmrg#    else
63511d341caSmrg#     define AsVISOption		-xarch=v8plusa
63611d341caSmrg#    endif
63711d341caSmrg#   else
63811d341caSmrg#    ifdef UseGas
63911d341caSmrg#     define AsVISOption		-Av9a
64011d341caSmrg#    else
64111d341caSmrg#     define AsVISOption		-xarch=v9a
64211d341caSmrg#    endif
64311d341caSmrg#   endif
64411d341caSmrg#  endif
64511d341caSmrg# endif
64611d341caSmrg#endif /* SPARC or Sun3/M68k */
64711d341caSmrg
64811d341caSmrg#if OSMajorVersion >= 4
64911d341caSmrg#define HasUsableFileMap YES
65011d341caSmrg#endif
65111d341caSmrg
65211d341caSmrg#ifndef UseDeprecatedKeyboardDriver
65311d341caSmrg#define UseDeprecatedKeyboardDriver YES
65411d341caSmrg#endif
65511d341caSmrg
65611d341caSmrg#if HasGcc
65711d341caSmrg# if OSMajorVersion > 4
65811d341caSmrg#  ifndef DefaultCCOptions
65911d341caSmrg#   ifdef UseInstalled
66011d341caSmrg#    define DefaultCCOptions -DNO_ASM
66111d341caSmrg#   elif OSMinorVersion > 6
66211d341caSmrg#    define DefaultCCOptions -DNO_ASM GccWarningOptions
66311d341caSmrg#   elif OSMinorVersion > 3
66411d341caSmrg#    define DefaultCCOptions -DNO_ASM GccWarningOptions -ansi -pedantic
66511d341caSmrg#   else
66611d341caSmrg#    define DefaultCCOptions -DNO_ASM
66711d341caSmrg#   endif
66811d341caSmrg#  endif
66911d341caSmrg# endif
67011d341caSmrg# if HasGcc2
67111d341caSmrg#  ifndef CcCmd
67211d341caSmrg#   define CcCmd gcc
67311d341caSmrg#  endif
67411d341caSmrg#  ifndef AsCmd
67511d341caSmrg#   define AsCmd CcCmd -c -x assembler
67611d341caSmrg#  endif
67711d341caSmrg#  ifndef OptimizedCDebugFlags
67811d341caSmrg#   ifdef i386Architecture
67911d341caSmrg#    define OptimizedCDebugFlags DefaultGcc2i386Opt
68011d341caSmrg#   elif defined(AMD64Architecture)
68111d341caSmrg#    define OptimizedCDebugFlags DefaultGcc2AMD64Opt
68211d341caSmrg#   else
68311d341caSmrg#    define OptimizedCDebugFlags -O2
68411d341caSmrg#   endif
68511d341caSmrg#  endif
68611d341caSmrg#  if !defined(SharedLibraryLoadFlags) && !defined(SharedLibraryLdCmd)
68711d341caSmrg#   if OSMajorVersion == 5 && OSMinorVersion > 6 && defined(i386Architecture)
68811d341caSmrg    /* This is to work around what appears to be a PIC bug in some gcc/egcs
68911d341caSmrg       versions that shows up with the Solaris 7/x86 <ctype.h>. */
69011d341caSmrg#    define SharedLibraryLdCmd $(LD)
69111d341caSmrg#    define SharedLibraryLoadFlags -G -z textwarn
69211d341caSmrg#   else
69311d341caSmrg#    define SharedLibraryLdCmd $(CC)
69411d341caSmrg#    define SharedLibraryLoadFlags -shared -z text
69511d341caSmrg#   endif
69611d341caSmrg#  endif
69711d341caSmrg# else
69811d341caSmrg#  define SharedLibraryCcCmd cc
69911d341caSmrg#  define ExtraLoadFlags -B/usr/bin/
70011d341caSmrg#  define AllocateLocalDefines /**/
70111d341caSmrg
70211d341caSmrg.c.o:
70311d341caSmrg	ClearmakeOSName	$(CC) -c $(CFLAGS) $*.c
70411d341caSmrg
70511d341caSmrg# endif /* HasGcc2 (else) */
70611d341caSmrg
70711d341caSmrg#else /* not HasGcc */
70811d341caSmrg
70911d341caSmrg# define AllocateLocalDefines -DINCLUDE_ALLOCA_H
71011d341caSmrg
71111d341caSmrg/* Set up compiler-dependent options for Sun C */
71211d341caSmrg/*
71311d341caSmrg * To build 64-bit binaries define Sparc64Architecture or AMD64Architecture
71411d341caSmrg * in your site.def or host.def file.
71511d341caSmrg */
71611d341caSmrg# if HasSunC
71711d341caSmrg#  ifdef Sun3Architecture
71811d341caSmrg#   ifndef DefaultCCOptions
71911d341caSmrg#    define DefaultCCOptions -f68881 -pipe
72011d341caSmrg#   endif
72111d341caSmrg#  else	/* not defined(Sun3Architecture) */
72211d341caSmrg#   if OSMajorVersion < 5
72311d341caSmrg#    ifndef DefaultCCOptions
72411d341caSmrg#     define DefaultCCOptions -pipe
72511d341caSmrg#    endif
72611d341caSmrg#   else /* OSMajorVersion >= 5*/
72711d341caSmrg#     ifndef DefaultXArchOptions
72811d341caSmrg#      ifdef Sparc64Architecture
72911d341caSmrg#	define DefaultXArchOptions -xarch=v9
73011d341caSmrg#      elif defined(AMD64Architecture)
73111d341caSmrg#	define DefaultXArchOptions -xarch=generic64
73211d341caSmrg#      else
73311d341caSmrg#       define DefaultXArchOptions /* */
73411d341caSmrg#     endif
73511d341caSmrg#     ifndef DefaultCCOptions
73611d341caSmrg#      define DefaultCCOptions -Xa -v DefaultXArchOptions -z lazyload -z combreloc -xstrconst -xildoff
73711d341caSmrg#     endif
73811d341caSmrg#     ifndef DefaultCplusplusOptions
73911d341caSmrg#      define DefaultCplusplusOptions DefaultXArchOptions -z lazyload -z combreloc -xildoff
74011d341caSmrg#     endif
74111d341caSmrg#     ifndef SharedLibraryLoadFlags
74211d341caSmrg#      define SharedLibraryLoadFlags -G DefaultXArchOptions -z text $(EXTRA_LOAD_FLAGS)
74311d341caSmrg#     endif
74411d341caSmrg#    endif
74511d341caSmrg#   endif	
74611d341caSmrg#  endif	
74711d341caSmrg# endif
74811d341caSmrg
74911d341caSmrg/* Set compiler-dependent options for CenterLine C */
75011d341caSmrg
75111d341caSmrg# if HasCenterLineC
75211d341caSmrg#  ifndef DefaultCCOptions
75311d341caSmrg#   define DefaultCCOptions -Xt -w1 -DANSICPP -U__HIGHC__
75411d341caSmrg#  endif
75511d341caSmrg#  ifndef NeedConstPrototypes
75611d341caSmrg#   define NeedConstPrototypes YES
75711d341caSmrg#  endif
75811d341caSmrg#  ifndef NeedNestedPrototypes
75911d341caSmrg#   define NeedNestedPrototypes YES
76011d341caSmrg#  endif
76111d341caSmrg#  ifndef NeedVarargsPrototypes
76211d341caSmrg#   define NeedVarargsPrototypes YES
76311d341caSmrg#  endif
76411d341caSmrg# endif
76511d341caSmrg
76611d341caSmrg
76711d341caSmrg#endif /* HasGcc (else) */
76811d341caSmrg
76911d341caSmrg#if OSMajorVersion < 5
77011d341caSmrg# define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H
77111d341caSmrg# define LibraryCCOptions /* don't want special floating point */
77211d341caSmrg#else /* OSMajorVersion >= 5, i.e. Solaris 2.0 & later */
77311d341caSmrg/* Only load libraries when needed on Solaris 7 & later */
77411d341caSmrg# if OSMinorVersion >= 7 
77511d341caSmrg#  define LazyLoadFlag -z lazyload -z combreloc
77611d341caSmrg# else
77711d341caSmrg#  define LazyLoadFlag /* */
77811d341caSmrg# endif
77911d341caSmrg/* Link with extra mapfiles for some performance & security enhancements */
78011d341caSmrg#ifndef MapfileFlag
78111d341caSmrg# if HasSunC
78211d341caSmrg#  define MapfileFlag -M
78311d341caSmrg# else
78411d341caSmrg#  define MapfileFlag -Wl,-M,
78511d341caSmrg# endif
78611d341caSmrg#endif
78711d341caSmrg#ifndef Mapfile_BssAlign
78811d341caSmrg# if OSMinorVersion >= 9
78911d341caSmrg#  define Mapfile_BssAlign $(MAPFILEFLAG)/usr/lib/ld/map.bssalign
79011d341caSmrg# else
79111d341caSmrg#  define Mapfile_BssAlign /**/
79211d341caSmrg# endif
79311d341caSmrg#endif
79411d341caSmrg#ifndef Mapfile_PageAlign
79511d341caSmrg# if OSMinorVersion >= 10
79611d341caSmrg#  define Mapfile_PageAlign $(MAPFILEFLAG)/usr/lib/ld/map.pagealign
79711d341caSmrg# else
79811d341caSmrg#  define Mapfile_PageAlign /**/
79911d341caSmrg# endif
80011d341caSmrg#endif
80111d341caSmrg#ifndef Mapfile_NoExStack
80211d341caSmrg# if OSMinorVersion >= 9
80311d341caSmrg#  define Mapfile_NoExStack $(MAPFILEFLAG)/usr/lib/ld/map.noexstk
80411d341caSmrg# else
80511d341caSmrg#  define Mapfile_NoExStack /**/
80611d341caSmrg# endif
80711d341caSmrg#endif
80811d341caSmrg#ifndef Mapfile_NoExData
80911d341caSmrg# if defined(SparcArchitecture)
81011d341caSmrg/* SPARC archictecture requires PLT section in .data be executable, so
81111d341caSmrg   we can only make .bss, not all of .data no-exec on SPARC */
81211d341caSmrg#   define Mapfile_NoExData /**/
81311d341caSmrg# else
81411d341caSmrg#  if OSMinorVersion >= 10
81511d341caSmrg#   define Mapfile_NoExData $(MAPFILEFLAG)/usr/lib/ld/map.noexdata
81611d341caSmrg#  else
81711d341caSmrg#   define Mapfile_NoExData /**/
81811d341caSmrg#  endif
81911d341caSmrg# endif
82011d341caSmrg#endif
82111d341caSmrg       MAPFILEFLAG = MapfileFlag
82211d341caSmrg  MAPFILES_FOR_ALL = Mapfile_PageAlign Mapfile_NoExData
82311d341caSmrgMAPFILES_FOR_PROGS = Mapfile_BssAlign Mapfile_NoExStack
82411d341caSmrg/* ExtraLoadFlags apply to all binaries - programs & libraries */
82511d341caSmrg# ifndef ExtraLoadFlags
82611d341caSmrg#  define ExtraLoadFlags LazyLoadFlag $(MAPFILES_FOR_ALL)
82711d341caSmrg# endif
82811d341caSmrg/* ExtraLoadOptions only apply to programs */
82911d341caSmrg# ifndef ExtraLoadOptions
83011d341caSmrg#  define ExtraLoadOptions -B direct $(MAPFILES_FOR_PROGS)
83111d341caSmrg# endif
83211d341caSmrg#endif /* OSMajorVersion < 5 */
83311d341caSmrg
83411d341caSmrg/* 64-bit build support */
83511d341caSmrg#ifndef Solaris64bitSubdir
83611d341caSmrg# ifdef Sparc64Architecture
83711d341caSmrg#  define Solaris64bitSubdir	sparcv9
83811d341caSmrg# elif defined(AMD64Architecture)
83911d341caSmrg#  define Solaris64bitSubdir	amd64
84011d341caSmrg# endif
84111d341caSmrg#endif
84211d341caSmrg
84311d341caSmrg#ifdef Solaris64bitSubdir
84411d341caSmrg# define LibDirName Concat3(lib,/,Solaris64bitSubdir)
84511d341caSmrg#endif
84611d341caSmrg
84711d341caSmrg#if OSMajorVersion > 4
84811d341caSmrg# include <svr4.cf>
84911d341caSmrg#endif
85011d341caSmrg
85111d341caSmrg#ifndef ManKeywordsTarget
85211d341caSmrg# define ManKeywordsTarget(manpath)					@@\
85311d341caSmrgman_keywords::								@@\
85411d341caSmrg	catman -M $(DESTDIR)manpath -w
85511d341caSmrg#endif
85611d341caSmrg
85711d341caSmrg#if !defined(UsePamLibrary)
85811d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 4))
85911d341caSmrg#  define UsePamLibrary		YES
86011d341caSmrg# endif
86111d341caSmrg#endif
86211d341caSmrg
86311d341caSmrg/* PAM appeared in SunOS 5.6 */
86411d341caSmrg#if !defined(HasPam)
86511d341caSmrg# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
86611d341caSmrg#  define HasPam		YES
86711d341caSmrg# endif
86811d341caSmrg#endif
86911d341caSmrg
87011d341caSmrg#ifndef PamLibraries
87111d341caSmrg#define PamLibraries		-lpam
87211d341caSmrg#endif
87311d341caSmrg
87411d341caSmrg#ifndef HasMotif
87511d341caSmrg/* Solaris's Motif depends on Solaris libX11 and won't work with libX11 built
87611d341caSmrg * from this tree, so only use it when using libX11 from outside the tree.
87711d341caSmrg */
87811d341caSmrg# define HasMotif (defined(UseInstalled) || UseInstalledX11)
87911d341caSmrg# define MotifDir /usr/dt
88011d341caSmrg#endif /* !HasMotif */
88111d341caSmrg#ifndef HasMotif2
88211d341caSmrg/* Solaris's Motif2 version is broken and misses XmPrintShell
88311d341caSmrg * (see http://xprint.mozdev.org/bugs/show_bug.cgi?id=1366) */
88411d341caSmrg# define HasMotif2 NO
88511d341caSmrg#endif /* !HasMotif2 */
88611d341caSmrg
88711d341caSmrg#define MotifDefines			\
88811d341caSmrg	-DNO_ISDIR -DNO_REGCOMP -DNO_ALLOCA -DBOGUS_MB_MAX -DNO_CONST
88911d341caSmrg#define PamUnixDefines		-DPAM_NIS
89011d341caSmrg#define TtLargePICTable		YES
89111d341caSmrg#define DtSvcDefines		-DXK_MISCELLANY -DMULTIBYTE -DNO_REGCOMP
89211d341caSmrg#define DtSearchDefines		-DI18N_MSG DtSvcDefines
89311d341caSmrg#define DtWidgetDefines		DtSearchDefines
89411d341caSmrg#define DtPrintDefines		DtSearchDefines
89511d341caSmrg
89611d341caSmrg#define baseDtMailDefines	\
89711d341caSmrg	-DSunOS=OSMajorVersion\#\#OSMinorVersion -DMMAP_NORESERVE -DSPRO_V2
89811d341caSmrg#if !defined(i386Architecture) && !defined(AMD64Architecture)
89911d341caSmrg# define DtMailDefines		baseDtMailDefines
90011d341caSmrg#else
90111d341caSmrg# define DtMailDefines		-DBIG_ENDIAN baseDtMailDefines
90211d341caSmrg#endif
90311d341caSmrg
90411d341caSmrg#define ArchitectureDefines	-DSUN_ARCHITECTURE
90511d341caSmrg
90611d341caSmrg#define TtClientExtraLibs	ExtraLibraries -ldl -lintl
90711d341caSmrg
90811d341caSmrg#define ExportListGenSource	elistgen.sun
90911d341caSmrg#define ShlibExportListOpt(filename)	-M filename
91011d341caSmrg
91111d341caSmrg#define CdeProjectDefines \
91211d341caSmrg	-DMULTIBYTE -DNLS16 -DMESSAGE_CAT -D_XOPEN_VERSION=4 \
91311d341caSmrg	-D_XOPEN_SOURCE -D__EXTENSIONS__ \
91411d341caSmrg	-DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion
91511d341caSmrg
91611d341caSmrg
91711d341caSmrg/*
91811d341caSmrg * Turn off HTML manpages like we do under NetBSD.
91911d341caSmrg */
92011d341caSmrg#ifndef	BuildHtmlManPages
92111d341caSmrg#define	BuildHtmlManPages	NO
92211d341caSmrg#endif
92311d341caSmrg
92411d341caSmrg/*
92511d341caSmrg * Turn off seperate configuration directories.
92611d341caSmrg */
92711d341caSmrg#ifndef	UseSeparateConfDir
92811d341caSmrg#define	UseSeparateConfDir	NO
92911d341caSmrg#endif
93011d341caSmrg
93111d341caSmrg/* Hackery for building modules as Solaris shared objects with dependencies */
93211d341caSmrg#if MakeDllModules && DoLoadableServer
93311d341caSmrg
93411d341caSmrg/* If you change this, you will need to change find-deps.pl to match */
93511d341caSmrg#define DlModuleDependencyName(module) Concat(module,_deps)
93611d341caSmrg
93711d341caSmrg#define DlModuleTarget(module,deplist,modlist)                          @@\
93811d341caSmrgDepDynamicModuleTarget(module,deplist DlModuleDependencyName(module),modlist LazyLoadFlag `cat DlModuleDependencyName(module)`) @@\
93911d341caSmrg									@@\
94011d341caSmrgDlModuleDependencyName(module):						@@\
94111d341caSmrg	touch $@							@@\
94211d341caSmrg									@@\
94311d341caSmrgclean::                                                                 @@\
94411d341caSmrg        RemoveFile(DlModuleDependencyName(module))
94511d341caSmrg
94611d341caSmrg#define ObjectModuleTarget(module,objects)				@@\
94711d341caSmrgDlModuleTarget(Concat(module,_drv.so), objects, objects)
94811d341caSmrg
94911d341caSmrg#define LibraryModuleTarget(module,objects)				@@\
95011d341caSmrgNormalLibraryTarget(module, objects)					@@\
95111d341caSmrgDlModuleTarget(Concat3(lib,module,.so), objects, objects)
95211d341caSmrg
95311d341caSmrg#define DepLibraryModuleTarget(module,deplist,objects)			@@\
95411d341caSmrgNormalDepLibraryTarget(module, deplist, objects)			@@\
95511d341caSmrgDlModuleTarget(Concat3(lib,module,.so), deplist, objects)
95611d341caSmrg
95711d341caSmrg#endif
958