sun.cf revision 1c80d5b0
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
231c80d5b0Smrg/* 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 *
331c80d5b0Smrg * 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
671c80d5b0Smrg * 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/*
791c80d5b0Smrg * Compiler setup.  This sun.cf file knows what options to use with
801c80d5b0Smrg * 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 *
861c80d5b0Smrg * 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
891c80d5b0Smrg * 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.
921c80d5b0Smrg *
931c80d5b0Smrg * If you don't tell us which C compiler you have, we assume you have
941c80d5b0Smrg * 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
1021c80d5b0Smrg * 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 *
1081c80d5b0Smrg * If you say you have the SunPro C++ compiler, we assume you have
1091c80d5b0Smrg * 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
1321c80d5b0Smrg#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
1411c80d5b0Smrg/* 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
1521c80d5b0Smrg#  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
1651c80d5b0Smrg * #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 *
2291c80d5b0Smrg * #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
3001c80d5b0Smrg#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
3101c80d5b0Smrg/* The Xsun server was not building for SunOS 5.7 due to
3111c80d5b0Smrg   includes of <sys/cg2reg.h>.
31211d341caSmrg*/
3131c80d5b0Smrg#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
3251c80d5b0Smrg#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
4171c80d5b0Smrg#  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
4321c80d5b0Smrg# if OSMinorVersion > 10
4331c80d5b0Smrg#  define InstallCmd	    /usr/gnu/bin/install
4341c80d5b0Smrg# elif OSMinorVersion > 3
43511d341caSmrg#  define InstallCmd	    /usr/ucb/install
43611d341caSmrg# endif
43711d341caSmrg#ifndef LargefileDefines
43811d341caSmrg# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
43911d341caSmrg#  define LargefileDefines -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
44011d341caSmrg# else
44111d341caSmrg#  define LargefileDefines /* */
44211d341caSmrg# endif
44311d341caSmrg#endif
44411d341caSmrg# ifdef AMD64Architecture
44511d341caSmrg#  define StandardDefines	-Dsun -DSVR4 -D__EXTENSIONS__ -D__amd64
44611d341caSmrg#  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
44711d341caSmrg# elif defined(i386Architecture)
44811d341caSmrg#  if (OSMajorVersion < 4) || ((OSMajorVersion == 5) && (OSMinorVersion <= 5))
44911d341caSmrg#   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
45011d341caSmrg				-D__SOL64__ LargefileDefines
45111d341caSmrg#  else
45211d341caSmrg#   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
45311d341caSmrg                                LargefileDefines
45411d341caSmrg#  endif
45511d341caSmrg#  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
45611d341caSmrg# else
45711d341caSmrg#  define StandardDefines	  -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines
45811d341caSmrg#  define ToolkitStringsABIOptions	-sparcabi SolarisABIFlag
45911d341caSmrg# endif
4601c80d5b0Smrg/* Socket support was in separate libraries before 5.12, then merged to libc */
4611c80d5b0Smrg# if (OSMajorVersion == 5) && (OSMinorVersion < 12)
4621c80d5b0Smrg#  define ExtraLibraries -lsocket -lnsl
4631c80d5b0Smrg# else
4641c80d5b0Smrg#  define ExtraLibraries /**/
4651c80d5b0Smrg# endif
46611d341caSmrg# define HasWeakSymbols	  YES
46711d341caSmrg# if OSMinorVersion > 1
46811d341caSmrg#  ifndef ThreadedX
46911d341caSmrg#   define ThreadedX	  YES
47011d341caSmrg#  endif
47111d341caSmrg#  define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXUSE_NETDB_R_API
4721c80d5b0Smrg/* Thread support was in separate library before 5.10, then merged to libc */
4731c80d5b0Smrg#  if (OSMajorVersion == 5) && (OSMinorVersion < 10)
4741c80d5b0Smrg#   if HasSunC && CCompilerMajorVersion > 2
4751c80d5b0Smrg#    define ThreadsCompileFlags -mt
4761c80d5b0Smrg#   else
4771c80d5b0Smrg#    define ThreadsLibraries -lthread
4781c80d5b0Smrg#   endif
4791c80d5b0Smrg#   if HasSunCplusplus && CplusplusCompilerMajorVersion > 3
4801c80d5b0Smrg#    define ThreadsCplusplusCompileFlags -mt
4811c80d5b0Smrg#   else
4821c80d5b0Smrg#    define ThreadsCplusplusLibraries -lthread
4831c80d5b0Smrg#   endif
48411d341caSmrg#   define SystemMTDefines -D_REENTRANT
48511d341caSmrg#  else
4861c80d5b0Smrg   /* Solaris 10 & later */
4871c80d5b0Smrg#   define SystemMTDefines -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
48811d341caSmrg#  endif
4891c80d5b0Smrg#  define CplusplusSystemMTDefines SystemMTDefines
49011d341caSmrg# endif 		/* OSMinorVersion > 1 */
49111d341caSmrg# ifndef UseExportLists
49211d341caSmrg#  if (OSMinorVersion > 4) && !HasGcc2
49311d341caSmrg#   define UseExportLists YES
49411d341caSmrg#  else
49511d341caSmrg#   define UseExportLists NO
49611d341caSmrg#  endif
49711d341caSmrg# endif
49811d341caSmrg# if OSMinorVersion > 5 /* Solaris 2.6 and later */
49911d341caSmrg#  define HasSnprintf YES
50011d341caSmrg# endif
50111d341caSmrg# if OSMinorVersion > 7 /* Solaris 8 and later */
50211d341caSmrg#  define HasStrlcat	YES
50311d341caSmrg#  define HasStrcasecmp	YES
50411d341caSmrg#  define HasVarRun	YES
50511d341caSmrg# endif
50611d341caSmrg# if OSMinorVersion > 9 /* Solaris 10 and later */
50711d341caSmrg#  define HasSetenv	YES
50811d341caSmrg#  define HasGetpeerucred YES
50911d341caSmrg#  define HasGetoptLong YES
51011d341caSmrg#  define DlLibrary	-lc  /* dlopen() is in libc in Solaris 10 */
51111d341caSmrg# endif
51211d341caSmrg# define HasVFork	NO
51311d341caSmrg# define HasDlopen	YES
51411d341caSmrg# define InstallXloadSetGID	NO /* libkstat doesn't require gid kmem */
51511d341caSmrg# define InstKmemFlags	-g sys -m 2711
51611d341caSmrg# define ShLibIncludeFile <sunLib.tmpl>
51711d341caSmrg# define LinkerRuntimeLibraryPathFlag(path) Concat(-R,path)
51811d341caSmrg# define RpathLoadFlags LinkerRuntimeLibraryPathFlag($(USRLIBDIRPATH))
51911d341caSmrg/*
52011d341caSmrg * Set flags for position independent code before including sv4Lib.rules
52111d341caSmrg * if the compiler in use doesn't use standard SVR4 flags
52211d341caSmrg */
52311d341caSmrg# if HasSunC || HasCenterLineC
52411d341caSmrg#  define PositionIndependentCFlags -Kpic
52511d341caSmrg#  define LargePositionIndependentCFlags -KPIC
52611d341caSmrg#  ifdef Sparc64Architecture
52711d341caSmrg#   define LargePICTable YES
52811d341caSmrg#  endif
52911d341caSmrg# endif
53011d341caSmrg# if HasSunCplusplus || HasCenterLineCplusplus
53111d341caSmrg#  define PositionIndependentCplusplusFlags -pic
53211d341caSmrg#  define LargePositionIndependentCplusplusFlags -PIC
53311d341caSmrg# endif
53411d341caSmrg/* As is done in sco5.cf, we lie and say Solaris has NCURSES, since
53511d341caSmrg * the system curses is close enough for xorgcfg's purposes.  xorgcfg
5361c80d5b0Smrg * should not depend on the NCURSES package but rather on a "capable curses",
53711d341caSmrg * of which NCURSES is just one.
53811d341caSmrg */
53911d341caSmrg#define	HasNCurses		YES
54011d341caSmrg#define NCursesLibName		-lcurses
54111d341caSmrg#else /* not OSMajorVersion > 4 */
54211d341caSmrg#define InstKmemFlags	  -g kmem -m 2711
54311d341caSmrg#include <sunLib.rules>
54411d341caSmrg#endif /* OSMajorVersion > 4 (else) */
54511d341caSmrg
54611d341caSmrg/* Solaris 10 includes FreeType already.  It's also available in GNOME 2.0 for
54711d341caSmrg * Solaris 8 & 9, and in Solaris 9 4/03 and later, but there's no easy way to
5481c80d5b0Smrg * detect that in imake, so users of those releases who want to use the
54911d341caSmrg * installed FreeType instead of the one in this tree should copy the following
55011d341caSmrg * two settings to their host.def.  Those who want to use the in-tree copy
55111d341caSmrg * regardless of OS version should add "#define HasFreetype2 NO" to host.def.
55211d341caSmrg */
55311d341caSmrg#ifndef HasFreetype2
55411d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
5551c80d5b0Smrg#  define HasFreetype2 YES
55611d341caSmrg#  ifndef Freetype2Dir
55711d341caSmrg#   define Freetype2Dir /usr/sfw
55811d341caSmrg#  endif
55911d341caSmrg# else
56011d341caSmrg#  define HasFreetype2 NO
56111d341caSmrg# endif
56211d341caSmrg#endif
56311d341caSmrg
56411d341caSmrg#ifndef HasExpat
56511d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
5661c80d5b0Smrg#  define HasExpat YES
56711d341caSmrg#  ifndef ExpatDir
56811d341caSmrg#   define ExpatDir /usr/sfw
56911d341caSmrg#  endif
57011d341caSmrg# else
57111d341caSmrg#  define HasExpat NO
57211d341caSmrg# endif
57311d341caSmrg#endif
57411d341caSmrg
57511d341caSmrg/* Solaris 10 includes fontconfig, but not the fcprivate.h header needed by
57611d341caSmrg * Xft1 library.
57711d341caSmrg */
57811d341caSmrg#ifndef HasFontconfig
57911d341caSmrg# define HasFontconfig NO
58011d341caSmrg#endif
58111d341caSmrg
58211d341caSmrg/* libpng was in /usr/sfw/lib on Solaris 9, moved to /usr/lib in Solaris 10 */
58311d341caSmrg#ifndef HasLibpng
58411d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
5851c80d5b0Smrg#  define HasLibpng YES
58611d341caSmrg#  if !defined(LibpngDir) && ((OSMajorVersion == 5) && (OSMinorVersion == 9))
58711d341caSmrg#   define LibpngDir /usr/sfw
58811d341caSmrg#  endif
58911d341caSmrg# else
59011d341caSmrg#  define HasLibpng NO
59111d341caSmrg# endif
59211d341caSmrg#endif
59311d341caSmrg
59411d341caSmrg#ifndef HasZlib
59511d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
59611d341caSmrg#  define HasZlib YES
59711d341caSmrg# else
59811d341caSmrg#  define HasZlib NO
59911d341caSmrg# endif
60011d341caSmrg#endif
60111d341caSmrg
60211d341caSmrg#ifndef TroffCmd
60311d341caSmrg# if !(HasGroff)
60411d341caSmrg#  define TroffCmd troff -Tpost
60511d341caSmrg# endif
60611d341caSmrg#endif
60711d341caSmrg
60811d341caSmrg#define BuildLibPathVar	  LD_LIBRARY_PATH
60911d341caSmrg#define HasNdbm		  YES
61011d341caSmrg#define HasShm		  YES
61111d341caSmrg#define HasSecureRPC	  YES
61211d341caSmrg#define SetTtyGroup	  YES
61311d341caSmrg#define HasPutenv	  YES
61411d341caSmrg#define HasMkstemp        YES
61511d341caSmrg#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
61611d341caSmrg#define HasDevRandom	  YES	/* /dev/random is in Solaris 8 patches 	*/
61711d341caSmrg#define PollDevRandom	  YES	/* /dev/random is poll()able on Solaris */
61811d341caSmrg#endif
61911d341caSmrg#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
62011d341caSmrg# define HasIssetugid	  YES
62111d341caSmrg#endif
62211d341caSmrg#if defined(Sun3Architecture) || defined(SparcArchitecture) || defined(Sparc64Architecture)
62311d341caSmrg# ifndef Xsun24Server
62411d341caSmrg#  define Xsun24Server	  NO		/* color, mono, multiple depths */
62511d341caSmrg# endif
62611d341caSmrg# ifndef XsunServer
62711d341caSmrg#  define XsunServer	  NO		/* color and mono, 8 bit only */
62811d341caSmrg# endif
62911d341caSmrg# ifndef XsunMonoServer
63011d341caSmrg#  define XsunMonoServer	  NO		/* monochrome only */
63111d341caSmrg# endif
63211d341caSmrg# ifndef XorgServer
63311d341caSmrg#  define XorgServer	(!(Xsun24Server || XsunServer || XsunMonoServer))
6341c80d5b0Smrg# endif
63511d341caSmrg# undef BuildXF86DRI
63611d341caSmrg# define BuildXF86DRI     NO
63711d341caSmrg# if (OSMajorVersion > 4)
63811d341caSmrg#  if !defined(AsOutputArchSize) || \
63911d341caSmrg      ((AsOutputArchSize != 32) && (AsOutputArchSize != 64))
64011d341caSmrg#   undef AsOutputArchSize
64111d341caSmrg#   define AsOutputArchSize	32
64211d341caSmrg#  endif
64311d341caSmrg#  ifndef AsVISOption
64411d341caSmrg#   if AsOutputArchSize == 32
64511d341caSmrg#    ifdef UseGas
64611d341caSmrg#     define AsVISOption		-Av8plusa
64711d341caSmrg#    else
64811d341caSmrg#     define AsVISOption		-xarch=v8plusa
64911d341caSmrg#    endif
65011d341caSmrg#   else
65111d341caSmrg#    ifdef UseGas
65211d341caSmrg#     define AsVISOption		-Av9a
65311d341caSmrg#    else
65411d341caSmrg#     define AsVISOption		-xarch=v9a
65511d341caSmrg#    endif
65611d341caSmrg#   endif
65711d341caSmrg#  endif
65811d341caSmrg# endif
65911d341caSmrg#endif /* SPARC or Sun3/M68k */
66011d341caSmrg
66111d341caSmrg#if OSMajorVersion >= 4
66211d341caSmrg#define HasUsableFileMap YES
66311d341caSmrg#endif
66411d341caSmrg
66511d341caSmrg#ifndef UseDeprecatedKeyboardDriver
66611d341caSmrg#define UseDeprecatedKeyboardDriver YES
66711d341caSmrg#endif
66811d341caSmrg
66911d341caSmrg#if HasGcc
67011d341caSmrg# if OSMajorVersion > 4
67111d341caSmrg#  ifndef DefaultCCOptions
67211d341caSmrg#   ifdef UseInstalled
67311d341caSmrg#    define DefaultCCOptions -DNO_ASM
67411d341caSmrg#   elif OSMinorVersion > 6
67511d341caSmrg#    define DefaultCCOptions -DNO_ASM GccWarningOptions
67611d341caSmrg#   elif OSMinorVersion > 3
67711d341caSmrg#    define DefaultCCOptions -DNO_ASM GccWarningOptions -ansi -pedantic
67811d341caSmrg#   else
67911d341caSmrg#    define DefaultCCOptions -DNO_ASM
68011d341caSmrg#   endif
68111d341caSmrg#  endif
68211d341caSmrg# endif
68311d341caSmrg# if HasGcc2
68411d341caSmrg#  ifndef CcCmd
68511d341caSmrg#   define CcCmd gcc
68611d341caSmrg#  endif
68711d341caSmrg#  ifndef AsCmd
68811d341caSmrg#   define AsCmd CcCmd -c -x assembler
68911d341caSmrg#  endif
69011d341caSmrg#  ifndef OptimizedCDebugFlags
69111d341caSmrg#   ifdef i386Architecture
69211d341caSmrg#    define OptimizedCDebugFlags DefaultGcc2i386Opt
69311d341caSmrg#   elif defined(AMD64Architecture)
69411d341caSmrg#    define OptimizedCDebugFlags DefaultGcc2AMD64Opt
69511d341caSmrg#   else
69611d341caSmrg#    define OptimizedCDebugFlags -O2
69711d341caSmrg#   endif
69811d341caSmrg#  endif
69911d341caSmrg#  if !defined(SharedLibraryLoadFlags) && !defined(SharedLibraryLdCmd)
70011d341caSmrg#   if OSMajorVersion == 5 && OSMinorVersion > 6 && defined(i386Architecture)
70111d341caSmrg    /* This is to work around what appears to be a PIC bug in some gcc/egcs
70211d341caSmrg       versions that shows up with the Solaris 7/x86 <ctype.h>. */
70311d341caSmrg#    define SharedLibraryLdCmd $(LD)
70411d341caSmrg#    define SharedLibraryLoadFlags -G -z textwarn
70511d341caSmrg#   else
70611d341caSmrg#    define SharedLibraryLdCmd $(CC)
70711d341caSmrg#    define SharedLibraryLoadFlags -shared -z text
70811d341caSmrg#   endif
70911d341caSmrg#  endif
71011d341caSmrg# else
71111d341caSmrg#  define SharedLibraryCcCmd cc
71211d341caSmrg#  define ExtraLoadFlags -B/usr/bin/
71311d341caSmrg#  define AllocateLocalDefines /**/
71411d341caSmrg
71511d341caSmrg.c.o:
71611d341caSmrg	ClearmakeOSName	$(CC) -c $(CFLAGS) $*.c
71711d341caSmrg
71811d341caSmrg# endif /* HasGcc2 (else) */
71911d341caSmrg
72011d341caSmrg#else /* not HasGcc */
72111d341caSmrg
72211d341caSmrg# define AllocateLocalDefines -DINCLUDE_ALLOCA_H
72311d341caSmrg
72411d341caSmrg/* Set up compiler-dependent options for Sun C */
72511d341caSmrg/*
72611d341caSmrg * To build 64-bit binaries define Sparc64Architecture or AMD64Architecture
72711d341caSmrg * in your site.def or host.def file.
72811d341caSmrg */
72911d341caSmrg# if HasSunC
73011d341caSmrg#  ifdef Sun3Architecture
73111d341caSmrg#   ifndef DefaultCCOptions
73211d341caSmrg#    define DefaultCCOptions -f68881 -pipe
73311d341caSmrg#   endif
73411d341caSmrg#  else	/* not defined(Sun3Architecture) */
73511d341caSmrg#   if OSMajorVersion < 5
73611d341caSmrg#    ifndef DefaultCCOptions
73711d341caSmrg#     define DefaultCCOptions -pipe
73811d341caSmrg#    endif
73911d341caSmrg#   else /* OSMajorVersion >= 5*/
74011d341caSmrg#     ifndef DefaultXArchOptions
74111d341caSmrg#      ifdef Sparc64Architecture
74211d341caSmrg#	define DefaultXArchOptions -xarch=v9
74311d341caSmrg#      elif defined(AMD64Architecture)
74411d341caSmrg#	define DefaultXArchOptions -xarch=generic64
74511d341caSmrg#      else
74611d341caSmrg#       define DefaultXArchOptions /* */
74711d341caSmrg#     endif
74811d341caSmrg#     ifndef DefaultCCOptions
74911d341caSmrg#      define DefaultCCOptions -Xa -v DefaultXArchOptions -z lazyload -z combreloc -xstrconst -xildoff
75011d341caSmrg#     endif
75111d341caSmrg#     ifndef DefaultCplusplusOptions
75211d341caSmrg#      define DefaultCplusplusOptions DefaultXArchOptions -z lazyload -z combreloc -xildoff
75311d341caSmrg#     endif
75411d341caSmrg#     ifndef SharedLibraryLoadFlags
75511d341caSmrg#      define SharedLibraryLoadFlags -G DefaultXArchOptions -z text $(EXTRA_LOAD_FLAGS)
75611d341caSmrg#     endif
75711d341caSmrg#    endif
7581c80d5b0Smrg#   endif
7591c80d5b0Smrg#  endif
76011d341caSmrg# endif
76111d341caSmrg
76211d341caSmrg/* Set compiler-dependent options for CenterLine C */
76311d341caSmrg
76411d341caSmrg# if HasCenterLineC
76511d341caSmrg#  ifndef DefaultCCOptions
76611d341caSmrg#   define DefaultCCOptions -Xt -w1 -DANSICPP -U__HIGHC__
76711d341caSmrg#  endif
76811d341caSmrg#  ifndef NeedConstPrototypes
76911d341caSmrg#   define NeedConstPrototypes YES
77011d341caSmrg#  endif
77111d341caSmrg#  ifndef NeedNestedPrototypes
77211d341caSmrg#   define NeedNestedPrototypes YES
77311d341caSmrg#  endif
77411d341caSmrg#  ifndef NeedVarargsPrototypes
77511d341caSmrg#   define NeedVarargsPrototypes YES
77611d341caSmrg#  endif
77711d341caSmrg# endif
77811d341caSmrg
77911d341caSmrg
78011d341caSmrg#endif /* HasGcc (else) */
78111d341caSmrg
78211d341caSmrg#if OSMajorVersion < 5
78311d341caSmrg# define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H
78411d341caSmrg# define LibraryCCOptions /* don't want special floating point */
78511d341caSmrg#else /* OSMajorVersion >= 5, i.e. Solaris 2.0 & later */
78611d341caSmrg/* Only load libraries when needed on Solaris 7 & later */
7871c80d5b0Smrg# if OSMinorVersion >= 7
78811d341caSmrg#  define LazyLoadFlag -z lazyload -z combreloc
78911d341caSmrg# else
79011d341caSmrg#  define LazyLoadFlag /* */
79111d341caSmrg# endif
79211d341caSmrg/* Link with extra mapfiles for some performance & security enhancements */
79311d341caSmrg#ifndef MapfileFlag
79411d341caSmrg# if HasSunC
79511d341caSmrg#  define MapfileFlag -M
79611d341caSmrg# else
79711d341caSmrg#  define MapfileFlag -Wl,-M,
79811d341caSmrg# endif
79911d341caSmrg#endif
80011d341caSmrg#ifndef Mapfile_BssAlign
80111d341caSmrg# if OSMinorVersion >= 9
80211d341caSmrg#  define Mapfile_BssAlign $(MAPFILEFLAG)/usr/lib/ld/map.bssalign
80311d341caSmrg# else
80411d341caSmrg#  define Mapfile_BssAlign /**/
80511d341caSmrg# endif
80611d341caSmrg#endif
80711d341caSmrg#ifndef Mapfile_PageAlign
80811d341caSmrg# if OSMinorVersion >= 10
80911d341caSmrg#  define Mapfile_PageAlign $(MAPFILEFLAG)/usr/lib/ld/map.pagealign
81011d341caSmrg# else
81111d341caSmrg#  define Mapfile_PageAlign /**/
81211d341caSmrg# endif
81311d341caSmrg#endif
81411d341caSmrg#ifndef Mapfile_NoExStack
81511d341caSmrg# if OSMinorVersion >= 9
81611d341caSmrg#  define Mapfile_NoExStack $(MAPFILEFLAG)/usr/lib/ld/map.noexstk
81711d341caSmrg# else
81811d341caSmrg#  define Mapfile_NoExStack /**/
81911d341caSmrg# endif
82011d341caSmrg#endif
82111d341caSmrg#ifndef Mapfile_NoExData
82211d341caSmrg# if defined(SparcArchitecture)
82311d341caSmrg/* SPARC archictecture requires PLT section in .data be executable, so
82411d341caSmrg   we can only make .bss, not all of .data no-exec on SPARC */
82511d341caSmrg#   define Mapfile_NoExData /**/
82611d341caSmrg# else
82711d341caSmrg#  if OSMinorVersion >= 10
82811d341caSmrg#   define Mapfile_NoExData $(MAPFILEFLAG)/usr/lib/ld/map.noexdata
82911d341caSmrg#  else
83011d341caSmrg#   define Mapfile_NoExData /**/
83111d341caSmrg#  endif
83211d341caSmrg# endif
83311d341caSmrg#endif
83411d341caSmrg       MAPFILEFLAG = MapfileFlag
83511d341caSmrg  MAPFILES_FOR_ALL = Mapfile_PageAlign Mapfile_NoExData
83611d341caSmrgMAPFILES_FOR_PROGS = Mapfile_BssAlign Mapfile_NoExStack
83711d341caSmrg/* ExtraLoadFlags apply to all binaries - programs & libraries */
83811d341caSmrg# ifndef ExtraLoadFlags
83911d341caSmrg#  define ExtraLoadFlags LazyLoadFlag $(MAPFILES_FOR_ALL)
84011d341caSmrg# endif
84111d341caSmrg/* ExtraLoadOptions only apply to programs */
84211d341caSmrg# ifndef ExtraLoadOptions
84311d341caSmrg#  define ExtraLoadOptions -B direct $(MAPFILES_FOR_PROGS)
84411d341caSmrg# endif
84511d341caSmrg#endif /* OSMajorVersion < 5 */
84611d341caSmrg
84711d341caSmrg/* 64-bit build support */
84811d341caSmrg#ifndef Solaris64bitSubdir
84911d341caSmrg# ifdef Sparc64Architecture
85011d341caSmrg#  define Solaris64bitSubdir	sparcv9
85111d341caSmrg# elif defined(AMD64Architecture)
85211d341caSmrg#  define Solaris64bitSubdir	amd64
85311d341caSmrg# endif
85411d341caSmrg#endif
85511d341caSmrg
85611d341caSmrg#ifdef Solaris64bitSubdir
85711d341caSmrg# define LibDirName Concat3(lib,/,Solaris64bitSubdir)
85811d341caSmrg#endif
85911d341caSmrg
86011d341caSmrg#if OSMajorVersion > 4
86111d341caSmrg# include <svr4.cf>
86211d341caSmrg#endif
86311d341caSmrg
86411d341caSmrg#ifndef ManKeywordsTarget
86511d341caSmrg# define ManKeywordsTarget(manpath)					@@\
86611d341caSmrgman_keywords::								@@\
86711d341caSmrg	catman -M $(DESTDIR)manpath -w
86811d341caSmrg#endif
86911d341caSmrg
87011d341caSmrg#if !defined(UsePamLibrary)
87111d341caSmrg# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 4))
87211d341caSmrg#  define UsePamLibrary		YES
87311d341caSmrg# endif
87411d341caSmrg#endif
87511d341caSmrg
87611d341caSmrg/* PAM appeared in SunOS 5.6 */
87711d341caSmrg#if !defined(HasPam)
87811d341caSmrg# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
87911d341caSmrg#  define HasPam		YES
88011d341caSmrg# endif
88111d341caSmrg#endif
88211d341caSmrg
88311d341caSmrg#ifndef PamLibraries
88411d341caSmrg#define PamLibraries		-lpam
88511d341caSmrg#endif
88611d341caSmrg
88711d341caSmrg#ifndef HasMotif
88811d341caSmrg/* Solaris's Motif depends on Solaris libX11 and won't work with libX11 built
88911d341caSmrg * from this tree, so only use it when using libX11 from outside the tree.
89011d341caSmrg */
89111d341caSmrg# define HasMotif (defined(UseInstalled) || UseInstalledX11)
89211d341caSmrg# define MotifDir /usr/dt
89311d341caSmrg#endif /* !HasMotif */
89411d341caSmrg#ifndef HasMotif2
89511d341caSmrg/* Solaris's Motif2 version is broken and misses XmPrintShell
89611d341caSmrg * (see http://xprint.mozdev.org/bugs/show_bug.cgi?id=1366) */
89711d341caSmrg# define HasMotif2 NO
89811d341caSmrg#endif /* !HasMotif2 */
89911d341caSmrg
90011d341caSmrg#define MotifDefines			\
90111d341caSmrg	-DNO_ISDIR -DNO_REGCOMP -DNO_ALLOCA -DBOGUS_MB_MAX -DNO_CONST
90211d341caSmrg#define PamUnixDefines		-DPAM_NIS
90311d341caSmrg#define TtLargePICTable		YES
90411d341caSmrg#define DtSvcDefines		-DXK_MISCELLANY -DMULTIBYTE -DNO_REGCOMP
90511d341caSmrg#define DtSearchDefines		-DI18N_MSG DtSvcDefines
90611d341caSmrg#define DtWidgetDefines		DtSearchDefines
90711d341caSmrg#define DtPrintDefines		DtSearchDefines
90811d341caSmrg
90911d341caSmrg#define baseDtMailDefines	\
91011d341caSmrg	-DSunOS=OSMajorVersion\#\#OSMinorVersion -DMMAP_NORESERVE -DSPRO_V2
91111d341caSmrg#if !defined(i386Architecture) && !defined(AMD64Architecture)
91211d341caSmrg# define DtMailDefines		baseDtMailDefines
91311d341caSmrg#else
91411d341caSmrg# define DtMailDefines		-DBIG_ENDIAN baseDtMailDefines
91511d341caSmrg#endif
91611d341caSmrg
91711d341caSmrg#define ArchitectureDefines	-DSUN_ARCHITECTURE
91811d341caSmrg
91911d341caSmrg#define TtClientExtraLibs	ExtraLibraries -ldl -lintl
92011d341caSmrg
92111d341caSmrg#define ExportListGenSource	elistgen.sun
92211d341caSmrg#define ShlibExportListOpt(filename)	-M filename
92311d341caSmrg
92411d341caSmrg#define CdeProjectDefines \
92511d341caSmrg	-DMULTIBYTE -DNLS16 -DMESSAGE_CAT -D_XOPEN_VERSION=4 \
92611d341caSmrg	-D_XOPEN_SOURCE -D__EXTENSIONS__ \
92711d341caSmrg	-DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion
92811d341caSmrg
92911d341caSmrg
93011d341caSmrg/*
93111d341caSmrg * Turn off HTML manpages like we do under NetBSD.
93211d341caSmrg */
93311d341caSmrg#ifndef	BuildHtmlManPages
93411d341caSmrg#define	BuildHtmlManPages	NO
93511d341caSmrg#endif
93611d341caSmrg
93711d341caSmrg/*
93811d341caSmrg * Turn off seperate configuration directories.
93911d341caSmrg */
94011d341caSmrg#ifndef	UseSeparateConfDir
94111d341caSmrg#define	UseSeparateConfDir	NO
94211d341caSmrg#endif
94311d341caSmrg
94411d341caSmrg/* Hackery for building modules as Solaris shared objects with dependencies */
94511d341caSmrg#if MakeDllModules && DoLoadableServer
94611d341caSmrg
94711d341caSmrg/* If you change this, you will need to change find-deps.pl to match */
94811d341caSmrg#define DlModuleDependencyName(module) Concat(module,_deps)
94911d341caSmrg
95011d341caSmrg#define DlModuleTarget(module,deplist,modlist)                          @@\
95111d341caSmrgDepDynamicModuleTarget(module,deplist DlModuleDependencyName(module),modlist LazyLoadFlag `cat DlModuleDependencyName(module)`) @@\
95211d341caSmrg									@@\
95311d341caSmrgDlModuleDependencyName(module):						@@\
95411d341caSmrg	touch $@							@@\
95511d341caSmrg									@@\
95611d341caSmrgclean::                                                                 @@\
95711d341caSmrg        RemoveFile(DlModuleDependencyName(module))
95811d341caSmrg
95911d341caSmrg#define ObjectModuleTarget(module,objects)				@@\
96011d341caSmrgDlModuleTarget(Concat(module,_drv.so), objects, objects)
96111d341caSmrg
96211d341caSmrg#define LibraryModuleTarget(module,objects)				@@\
96311d341caSmrgNormalLibraryTarget(module, objects)					@@\
96411d341caSmrgDlModuleTarget(Concat3(lib,module,.so), objects, objects)
96511d341caSmrg
96611d341caSmrg#define DepLibraryModuleTarget(module,deplist,objects)			@@\
96711d341caSmrgNormalDepLibraryTarget(module, deplist, objects)			@@\
96811d341caSmrgDlModuleTarget(Concat3(lib,module,.so), deplist, objects)
96911d341caSmrg
97011d341caSmrg#endif
971