sun.cf revision 944bff83
11.380SchristosXCOMM $XdotOrg: xc/config/cf/sun.cf,v 1.9 2004/08/19 16:28:42 kem Exp $
21.1SlukemXCOMM platform:  $Xorg: sun.cf,v 1.4 2000/08/17 19:41:48 cpqbld Exp $
31.1Slukem
41.1Slukem
51.1Slukem
61.1Slukem
71.1SlukemXCOMM platform:  $XFree86: xc/config/cf/sun.cf,v 3.70 2004/01/13 02:42:51 tsi Exp $
81.1Slukem
91.1Slukem#ifndef OSName
101.1Slukem# define OSName		DefaultOSName
111.1Slukem#endif
121.1Slukem#ifndef OSMajorVersion
131.1Slukem# define OSMajorVersion	DefaultOSMajorVersion
141.1Slukem#endif
151.1Slukem#ifndef OSMinorVersion
161.1Slukem# define OSMinorVersion	DefaultOSMinorVersion
171.1Slukem#endif
181.1Slukem#ifndef OSTeenyVersion
191.1Slukem# define OSTeenyVersion	DefaultOSTeenyVersion
201.1Slukem#endif
211.1SlukemXCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
221.1Slukem
231.1Slukem/* For various reasons, Sun uses different settings when compiling the
241.1Slukem * X Window System packages included in Solaris than are normally used
251.1Slukem * by most people building the X.Org software releases.   Sun also has
261.31Skanaoka * two different X server hierarchies in Solaris - Xsun in /usr/openwin
271.31Skanaoka * and Xorg in /usr/X11.
281.329Skochi *
291.366Srpaulo * If you want to try to match Sun's settings as closely as possible
301.31Skanaoka * add this setting to your host.def:
311.31Skanaoka *  #define BuildLikeSun YES
321.335Slukem *
331.31Skanaoka * If you're trying to match the openwin directory layout as well, you'll
341.206Skanaoka * need to also add:
351.31Skanaoka *  #define ProjectRoot /usr/openwin
361.31Skanaoka * otherwise it will use /usr/X11.  (Note that these settings match closer
371.169Skochi * to Sun's Xorg delivery in /usr/X11 than the older X11R6.6-based delivery
381.1Slukem * in /usr/openwin though.)
391.1Slukem */
401.363Srpaulo#ifndef BuildLikeSun
411.368Srpaulo# define BuildLikeSun NO
421.1Slukem#endif
431.255Swiz
441.335Slukem#if BuildLikeSun
451.262Schristos# ifndef ProjectRoot
461.363Srpaulo#  define ProjectRoot		/usr/X11
471.1Slukem# endif
481.1Slukem# ifndef DocDir
491.262Schristos#  define DocDir		Concat(ProjectRoot,/share/doc)
501.177Swiz# endif
511.1Slukem# ifndef ManDirectoryRoot
521.1Slukem#  define ManDirectoryRoot	Concat(ProjectRoot,/share/man)
531.1Slukem# endif
541.1Slukem# ifndef ManSuffix
551.1Slukem#  define ManSuffix		1
561.1Slukem# endif
571.335Slukem# ifndef LibraryCCOptions
581.1Slukem#  if DoSharedLib && defined(SharedLibraryCCOptions)
591.1Slukem#   define LibraryCCOptions SharedLibraryCCOptions ArchLibraryCCOptions
601.1Slukem#  else
611.1Slukem#   define LibraryCCOptions DefaultCCOptions ArchLibraryCCOptions
621.1Slukem#  endif
631.1Slukem# endif
641.252Schristos#endif
651.335Slukem
661.1Slukem/* Flag passed to makestrs in Xt build to control string array names in the
671.246Swiz * libXt headers.   -solarisabinames matches those used in the libXt in
681.335Slukem * Solaris, but not in other OS'es.
691.1Slukem */
701.217Schristos#ifndef SolarisABIFlag
711.1Slukem# if BuildLikeSun
721.252Schristos#  define SolarisABIFlag -solarisabinames
731.38Swiz# else
741.252Schristos#  define SolarisABIFlag /**/
751.252Schristos# endif
761.252Schristos#endif
771.252Schristos
781.252Schristos/*
791.252Schristos * Compiler setup.  This sun.cf file knows what options to use with
801.252Schristos * certain compilers, including Sun C, CenterLine C, and gcc.  It
811.252Schristos * also understands how to set some of the options for various C++
821.252Schristos * compilers, including Sun C++ and CenterLine C++.
831.252Schristos *
841.252Schristos * === C Compiler Setup ==========================================
851.252Schristos *
861.1Slukem * For SunPro C, define HasSunC to YES in site.def.
871.161Smrg * For CenterLine C, define HasCenterLineC to YES in site.def
881.264Smrg * For gcc, gcc2 or gcc3, define HasGcc, HasGcc2 or HasGcc3 to YES in site.def
891.359Srpaulo * For other compilers, define HasSunC to NO in site.def, then
901.1Slukem *    provide appropriate values for the various compiler related
911.1Slukem *    configuration variables used here.
921.335Slukem *
931.1Slukem * If you don't tell us which C compiler you have, we assume you have
941.61Smrg * the SunPro C compiler under Solaris 2.x, and the bundled /bin/cc
951.1Slukem * under SunOS 4.1.x
961.1Slukem *
971.1Slukem * === C++ Compiler Setup ==========================================
981.302Speter *
991.359Srpaulo * For SunPro C++, define HasSunCplusplus to YES in site.def
1001.144Sdent * For CenterLine C++, define HasCenterLineCplusplus to YES in site.def
1011.335Slukem * For Gnu g++ 2.6.x, define HasGcc2ForCplusplus to YES in site.def
1021.335Slukem * For other compilers, define HasCplusplus to YES in site.def, and
1031.1Slukem *    check to see if you need to provide values for CplusplusOptions
1041.1Slukem *    and/or DefaultCplusplusOptions.
1051.1Slukem *
1061.1Slukem * In any case, you may also need to set CplusplusDependIncludes.
1071.1Slukem *
1081.1Slukem * If you say you have the SunPro C++ compiler, we assume you have
1091.334Ssalo * version 3.0.x of the compiler.  If you have version 4.0.x instead,
1101.1Slukem * define CplusplusCompilerMajorVersion as 4 in site.def.
1111.1Slukem *
1121.335Slukem */
1131.1Slukem
1141.1Slukem#ifndef HasGcc3
1151.1Slukem#define HasGcc3 NO
1161.1Slukem#endif
1171.1Slukem#ifndef HasGcc2
1181.1Slukem#define HasGcc2 HasGcc3
1191.1Slukem#endif
1201.1Slukem#ifndef HasGcc
1211.1Slukem#define HasGcc HasGcc2
1221.1Slukem#endif
1231.335Slukem
1241.1Slukem#ifndef HasSunC
1251.131Sitojun# if HasCenterLineC || HasGcc || HasGcc2 || HasGcc3 || (OSMajorVersion < 5)
1261.1Slukem#  define HasSunC NO
1271.1Slukem# else
1281.173Sitojun#  define HasSunC YES
1291.173Sitojun# endif
1301.1Slukem#endif
1311.173Sitojun
1321.173Sitojun#if HasSunC
1331.173Sitojun# ifndef CCompilerMajorVersion
1341.173Sitojun#  define CCompilerMajorVersion DefaultSunProCCompilerMajorVersion
1351.1Slukem# endif
1361.1Slukem# ifndef CCompilerMinorVersion
1371.1Slukem#  define CCompilerMinorVersion DefaultSunProCCompilerMinorVersion
1381.376Smrg# endif
1391.1SlukemXCOMM SunPro C CCompilerMajorVersion./**/CCompilerMinorVersion
1401.376Smrg
1411.349Sjunyoung/* Choose some reasonable default optimizer flags based on compiler &
1421.1Slukem   OS versions */
1431.1Slukem# ifndef OptimizedCDebugFlags
1441.1Slukem#  if (CCompilerMajorVersion > 5) || \
1451.1Slukem	(CCompilerMajorVersion == 5 && CCompilerMinorVersion > 2)
1461.1Slukem#   define OptimizedCDebugFlags -xO4 -xbuiltin=%all -xlibmil -xstrconst ArchOptimizedFlags
1471.319Schristos#  else
1481.335Slukem#   define OptimizedCDebugFlags -xO4 -xstrconst ArchOptimizedFlags
1491.1Slukem#  endif
1501.375Swiz# endif
1511.375Swiz# ifndef ArchOptimizedFlags
1521.1Slukem#  if OSMajorVersion == 5
1531.127Ssalo#   if defined(SparcArchitecture) && !defined(Sparc64Architecture)
1541.1Slukem#    if OSMinorVersion > 9 /* Solaris 10 and later only run on UltraSPARC's */
1551.38Swiz#     define ArchOptimizedFlags -xarch=v8plus
1561.1Slukem#    else
1571.209Swiz#     define ArchOptimizedFlags -xarch=v8
1581.209Swiz#    endif
1591.319Schristos#   elif defined(i386Architecture) || defined(AMD64Architecture)
1601.319Schristos#    if (CCompilerMajorVersion > 5) || \
1611.1Slukem	(CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 7)
1621.1Slukem/* -xregs=no%frameptr is required on x86 when compiling at -xO4 or higher to
1631.1Slukem * avoid losing stack frame pointers so you can't get stack traces or debug.
1641.335Slukem * This may lose a small bit of performance, so you can override by adding
1651.1Slukem * #define FramePtrFlags -xregs=frameptr if you care about performance more
1661.335Slukem * than debuggability.
1671.335Slukem */
1681.1Slukem#     ifndef FramePtrFlags
1691.1Slukem#      define FramePtrFlags -xregs=no%frameptr
1701.1Slukem#     endif
1711.1Slukem#    endif
1721.1Slukem#    ifndef FramePtrFlags
1731.1Slukem#     define FramePtrFlags /* */
1741.1Slukem#    endif
1751.1Slukem#    if defined(i386Architecture) && (OSMinorVersion > 8)
1761.1Slukem       /* Solaris 9 and later require Pentium or better */
1771.1Slukem#      define ArchOptimizedFlags -xpentium FramePtrFlags
1781.1Slukem#    else
1791.352Sdrochner#     define ArchOptimizedFlags FramePtrFlags
1801.347Staca#    endif
1811.127Ssalo#   endif
1821.1Slukem#  endif
1831.335Slukem#  ifndef ArchOptimizedFlags
1841.1Slukem#   define ArchOptimizedFlags /**/
1851.1Slukem#  endif
1861.1Slukem# endif
1871.1Slukem# ifndef DefaultCDebugFlags
1881.1Slukem#  define DefaultCDebugFlags OptimizedCDebugFlags
1891.1Slukem# endif
1901.1Slukem# ifndef SharedLibraryLdCmd
1911.1Slukem#  define SharedLibraryLdCmd $(CC)
1921.1Slukem# endif
1931.1Slukem/* Flags for lint version included with Sun C compilers */
1941.42Swiz# if OSMajorVersion >= 5
1951.1Slukem#  ifndef LintLibFlag
1961.1Slukem#   define LintLibFlag -y -o
1971.1Slukem#  endif
1981.335Slukem#  ifndef LintOpts
1991.1Slukem#   define LintOpts -b -h -u -erroff=E_INDISTING_FROM_TRUNC2 $(LINTSECFLAG) ExtraLibraries MathLibrary -lc
2001.42Swiz#  endif
2011.1Slukem#  ifndef LintSecFlag
2021.43Swiz#   if (CCompilerMajorVersion > 5) || \
2031.43Swiz       (CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 6)
2041.1Slukem#    define LintSecFlag -errsecurity=standard
2051.1Slukem#   else
2061.1Slukem#    define LintSecFlag /**/
2071.335Slukem#   endif
2081.335Slukem#  endif
2091.1Slukem      LINTSECFLAG = LintSecFlag
2101.335Slukem#  ifndef LintLibReferences
2111.1Slukem#   define LintLibReferences(varname,libname,libsource)                    @@\
2121.373Skleink       Concat(LINT,varname) = _UseCat(-L $(LINTLIBDIR) -l, -L libsource -l,libname)
2131.1Slukem#  endif
2141.1Slukem
2151.1Slukem# endif /* Lint Flags for Solaris */
2161.1Slukem
2171.1Slukem#endif /* HasSunC */
2181.1Slukem
2191.374Spooka#ifndef ArchLibraryCCOptions
2201.374Spooka# if HasSunC && defined(SparcArchitecture) && CCompilerMajorVersion > 3
2211.1Slukem#  define ArchLibraryCCOptions -xregs=no%appl
2221.1Slukem# else
2231.349Sjunyoung#  define ArchLibraryCCOptions
2241.1Slukem# endif
2251.1Slukem#endif /* ArchLibraryCCOptions */
2261.1Slukem
2271.1Slukem/* we used to have this here :
2281.1Slukem *
2291.1Slukem * #if HasSunC
2301.145Sdent * # ifndef CCompilerMajorVersion
2311.1Slukem * #  define CCompilerMajorVersion 3
2321.1Slukem * #  define DefaultCDebugFlags	-xO3
2331.335Slukem * #  define OptimizedCDebugFlags	-xO3
2341.1Slukem * # endif
2351.1Slukem * #endif
2361.1Slukem */
2371.1Slukem
2381.1Slukem#ifndef HasSunCplusplus
2391.78Senami# define HasSunCplusplus HasSunC	/* ??? */
2401.78Senami#endif
2411.1Slukem#if HasSunCplusplus
2421.1Slukem# ifndef HasCplusplus
2431.197Smrg#  define HasCplusplus YES
2441.372Swiz#  define OptimizedCplusplusDebugFlags	-xO4 -xbuiltin=%all -xlibmil
2451.1Slukem# endif
2461.1Slukem# ifndef CplusplusCompilerMajorVersion
2471.335Slukem#  ifdef DefaultSunProCplusplusCompilerMajorVersion
2481.1Slukem#   define CplusplusCompilerMajorVersion DefaultSunProCplusplusCompilerMajorVersion
2491.61Smrg#  else
2501.1Slukem#   define CplusplusCompilerMajorVersion 3
2511.185Smrg#  endif
2521.185Smrg# endif
2531.185Smrg# ifndef CplusplusCompilerMinorVersion
2541.1Slukem#  ifdef DefaultSunProCplusplusCompilerMinorVersion
2551.1Slukem#   define CplusplusCompilerMinorVersion DefaultSunProCplusplusCompilerMinorVersion
2561.159Smrg#  else
2571.257Swiz#   define CplusplusCompilerMinorVersion 0
2581.1Slukem#  endif
2591.1Slukem# endif
2601.335Slukem# ifndef CplusplusLibC
2611.1Slukem#  if CplusplusCompilerMajorVersion >= 5
2621.61Smrg#   define CplusplusLibC -norunpath -lCrun
2631.1Slukem#  endif
2641.1Slukem# endif
2651.1SlukemXCOMM SunPro C++ CplusplusCompilerMajorVersion./**/CplusplusCompilerMinorVersion
2661.328Schristos#endif
2671.335Slukem
2681.1Slukem/* we used to have this here :
2691.1Slukem *
2701.335Slukem * # ifndef CplusplusCompilerMajorVersion
2711.1Slukem * #  define CplusplusCompilerMajorVersion	4
2721.1Slukem * # endif
2731.1Slukem */
2741.1Slukem
2751.1Slukem#if HasCenterLineC
2761.1Slukem# ifndef CcCmd
2771.1Slukem#  define CcCmd clcc
2781.1Slukem# endif
2791.52Swiz#endif
2801.335Slukem
2811.1Slukem#if HasCenterLineCplusplus
2821.1Slukem# ifndef HasCplusplus
2831.335Slukem#  define HasCplusplus YES
2841.1Slukem# endif
2851.44Swiz# ifndef DefaultCplusplusOptions
2861.1Slukem#  define DefaultCplusplusOptions -Xa
2871.44Swiz# endif
2881.44Swiz# ifndef CplusplusOptions
2891.230Sjunyoung#  define CplusplusOptions -Xa
2901.174Scjep# endif
2911.174Scjep#endif
2921.1Slukem
2931.1Slukem#if OSMajorVersion < 4 || (OSMajorVersion == 4 && OSMinorVersion < 1)
2941.237Swiz/* We do not guarantee this will work */
2951.360Swiz# define BootstrapCFlags	-DNOSTDHDRS
2961.216Swiz# define StandardDefines	-DNOSTDHDRS
2971.1Slukem# define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
2981.335Slukem#endif
2991.1Slukem
3001.1Slukem#if OSMajorVersion == 4
3011.1Slukem# if OSMinorVersion == 1
3021.38Swiz#  define HasPoll		YES
3031.1Slukem# endif
3041.1Slukem# if OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1)
3051.1Slukem/* You ALSO need this if you have Sun ld patch 100170-06 or later to 4.1.1 */
3061.215Slha#  define SunPost411FCSLd	YES
3071.369Swiz# endif
3081.1Slukem#endif
3091.1Slukem
3101.335Slukem/* The Xsun server was not building for SunOS 5.7 due to
3111.1Slukem   includes of <sys/cg2reg.h>.
3121.99Slha*/
3131.1Slukem#if OSMajorVersion < 5
3141.1Slukem# define IncludeCG2HeaderDefine	-DINCLUDE_CG2_HEADER
3151.1Slukem#else
3161.117Swiz# define IncludeCG2HeaderDefine /**/
3171.107Swiz#endif
3181.335Slukem
3191.107Swiz#if defined(i386Architecture) || defined(AMD64Architecture)
3201.335Slukem# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
3211.1Slukem#  define OSServerExtraDefines	-D__SOL8__
3221.1Slukem# endif
3231.1Slukem#endif
3241.202Smartti
3251.313Smartti#if !HasGcc
3261.359Srpaulo# if HasSunC
3271.1Slukem#  if defined(AMD64Architecture)
3281.267Staca#   define AsmArch amd64
3291.335Slukem#   define AsmFlags -xarch=amd64
3301.1Slukem#  elif defined(i386Architecture)
3311.5Smrg#   define AsmArch ia32
3321.1Slukem#   define AsmFlags /**/
3331.1Slukem#  elif defined(Sparc64Architecture)
3341.1Slukem#   define AsmArch sparcv8plus
3351.284Sthorpej#   define AsmFlags -xarch=v9
3361.379Smanu#  elif defined(SparcArchitecture)
3371.379Smanu#   define AsmArch sparcv8plus
3381.284Sthorpej#   define AsmFlags -xarch=v8plus
3391.335Slukem#  endif
3401.335Slukem#  ifndef CompilerServerExtraDefines
3411.284Sthorpej#   define CompilerServerExtraDefines $(SERVERSRC)/hw/xfree86/os-support/sunos/AsmArch.il
3421.284Sthorpej#  endif
3431.284Sthorpej# endif
3441.355Smanu#endif
3451.284Sthorpej
3461.1Slukem#ifndef CompilerServerExtraDefines
3471.1Slukem# define CompilerServerExtraDefines /**/
3481.1Slukem#endif
3491.1Slukem
3501.1Slukem#ifndef OSServerExtraDefines
3511.335Slukem# define OSServerExtraDefines	/**/
3521.1Slukem#endif
3531.1Slukem
3541.1Slukem#ifndef ArchServerExtraDefines
3551.1Slukem# if defined(Sparc64Architecture) || defined(AMD64Architecture)
3561.1Slukem#  define ArchServerExtraDefines -D_XSERVER64
3571.1Slukem# else
3581.1Slukem#  define ArchServerExtraDefines /**/
3591.1Slukem# endif
3601.1Slukem#endif
3611.1Slukem
3621.1Slukem#define ServerOSDefines		XFree86ServerOSDefines IncludeCG2HeaderDefine
3631.1Slukem#define ServerExtraDefines	AllocateLocalDefines XFree86ServerDefines \
3641.1Slukem				CompilerServerExtraDefines \
3651.1Slukem				OSServerExtraDefines ArchServerExtraDefines
3661.1Slukem
3671.1Slukem#ifndef HasPerl
3681.78Senami/* Solaris 8 comes with perl.  Earlier versions don't. */
3691.1Slukem# if (OSMajorVersion == 5) && (OSMinorVersion >= 8)
3701.1Slukem#  define HasPerl		YES
3711.335Slukem# else
3721.1Slukem#  define HasPerl		NO
3731.1Slukem# endif
3741.1Slukem#endif
3751.1Slukem
3761.1Slukem#ifndef XkbServerDefines
3771.88Smrg# if BuildLikeSun
3781.241Swiz#  define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT \
3791.242Swiz	-DXKM_OUTPUT_DIR='"/var/run/xkb/"' -DXKM_OUTPUT_DIR_MODE=0775 \
3801.1Slukem	-DMAKE_XKM_OUTPUT_DIR
3811.335Slukem# else
3821.1Slukem#  define XkbServerDefines  -DXKB_ALWAYS_USES_SOFT_REPEAT
3831.1Slukem# endif
3841.1Slukem#endif
3851.1Slukem
3861.1Slukem#if OSMajorVersion > 4
3871.1Slukem# define ConnectionFlags		-DTCPCONN -DUNIXCONN -DLOCALCONN
3881.110Swiz# if HasSunC
3891.88Smrg#  ifdef DefaultSunProCCompilerDir
3901.88Smrg#   ifndef  CcCmd
3911.1Slukem#    define CcCmd		DefaultSunProCCompilerDir/cc
3921.1Slukem#   endif
3931.1Slukem#  endif
3941.1Slukem#  ifdef DefaultSunProCplusplusCompilerDir
3951.1Slukem#   ifndef  CplusplusCmd
3961.144Sdent#    define CplusplusCmd	DefaultSunProCplusplusCompilerDir/CC
3971.335Slukem#   endif
3981.1Slukem#   ifndef  CplusplusFilt
3991.1Slukem#    define CplusplusFilt	DefaultSunProCplusplusCompilerDir/c++filt
4001.1Slukem#   endif
4011.1Slukem#   ifndef  CplusplusWhatdir
4021.1Slukem#    define CplusplusWhatdir	DefaultSunProCplusplusCompilerDir/whatdir
4031.1Slukem#   endif
4041.1Slukem#  else /* DefaultSunProCplusplusCompilerDir not defined */
4051.1Slukem#   ifndef  CplusplusWhatdir
4061.263Swiz#    define CplusplusWhatdir	whatdir
4071.327Swiz#   endif
4081.338Swiz#  endif /* DefaultSunProCplusplusCompilerDir */
4091.263Swiz#  ifndef  CplusplusDependIncludes
4101.263Swiz#   if CplusplusCompilerMajorVersion > 3
4111.335Slukem#    define CplusplusDependIncludes	-I`CplusplusWhatdir CC`/../include/CC
4121.263Swiz#   elif CplusplusCompilerMajorVersion > 2
4131.263Swiz#    define CplusplusDependIncludes	-I/opt/SUNWspro/SC3.0/include/CC
4141.263Swiz#   else
4151.1Slukem#    define CplusplusDependIncludes	-I/opt/SUNWspro/SC2.0.1/include/CC
4161.245Sdyoung#   endif
4171.348Sdrochner#  endif
4181.1Slukem# endif /* HasSunC */
4191.1Slukem
4201.335Slukem# if HasSunC && (CCompilerMajorVersion < 3)
4211.1Slukem#  define BootstrapCFlags	-DSVR4
4221.245Sdyoung# else
4231.1Slukem#  define BootstrapCFlags	/* none needed */
4241.1Slukem# endif
4251.1Slukem# ifndef XawI18nDefines
4261.1Slukem#  if OSMinorVersion < 4
4271.1Slukem#   define XawI18nDefines    -DHAS_WCTYPE_H -DHAS_ISW_FUNCS
4281.1Slukem#  else
4291.1Slukem#   define XawI18nDefines    -DHAS_WCHAR_H -DHAS_ISW_FUNCS
4301.335Slukem#  endif
4311.230Sjunyoung# endif
4321.1Slukem# if OSMinorVersion > 10
4331.1Slukem#  define InstallCmd	    /usr/gnu/bin/install
4341.1Slukem# elif OSMinorVersion > 3
4351.1Slukem#  define InstallCmd	    /usr/ucb/install
4361.1Slukem# endif
4371.1Slukem#ifndef LargefileDefines
4381.1Slukem# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
4391.1Slukem#  define LargefileDefines -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
4401.1Slukem# else
4411.1Slukem#  define LargefileDefines /* */
4421.335Slukem# endif
4431.335Slukem#endif
4441.230Sjunyoung# ifdef AMD64Architecture
4451.1Slukem#  define StandardDefines	-Dsun -DSVR4 -D__EXTENSIONS__ -D__amd64
4461.1Slukem#  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
4471.1Slukem# elif defined(i386Architecture)
4481.1Slukem#  if (OSMajorVersion < 4) || ((OSMajorVersion == 5) && (OSMinorVersion <= 5))
4491.1Slukem#   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
4501.341Sjdolecek				-D__SOL64__ LargefileDefines
4511.333Sjlam#  else
4521.1Slukem#   define StandardDefines	-Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \
4531.1Slukem                                LargefileDefines
4541.335Slukem#  endif
4551.1Slukem#  define ToolkitStringsABIOptions	-intelabi SolarisABIFlag
4561.1Slukem# else
4571.1Slukem#  define StandardDefines	  -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines
4581.1Slukem#  define ToolkitStringsABIOptions	-sparcabi SolarisABIFlag
4591.1Slukem# endif
4601.38Swiz/* Socket support was in separate libraries before 5.12, then merged to libc */
4611.1Slukem# if (OSMajorVersion == 5) && (OSMinorVersion < 12)
4621.1Slukem#  define ExtraLibraries -lsocket -lnsl
4631.1Slukem# else
4641.1Slukem#  define ExtraLibraries /**/
4651.1Slukem# endif
4661.335Slukem# define HasWeakSymbols	  YES
4671.335Slukem# if OSMinorVersion > 1
4681.1Slukem#  ifndef ThreadedX
4691.1Slukem#   define ThreadedX	  YES
4701.1Slukem#  endif
4711.1Slukem#  define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXUSE_NETDB_R_API
4721.1Slukem/* Thread support was in separate library before 5.10, then merged to libc */
4731.1Slukem#  if (OSMajorVersion == 5) && (OSMinorVersion < 10)
4741.1Slukem#   if HasSunC && CCompilerMajorVersion > 2
4751.312Saymeric#    define ThreadsCompileFlags -mt
4761.1Slukem#   else
4771.1Slukem#    define ThreadsLibraries -lthread
4781.1Slukem#   endif
4791.335Slukem#   if HasSunCplusplus && CplusplusCompilerMajorVersion > 3
4801.230Sjunyoung#    define ThreadsCplusplusCompileFlags -mt
4811.5Smrg#   else
4821.1Slukem#    define ThreadsCplusplusLibraries -lthread
4831.312Saymeric#   endif
4841.312Saymeric#   define SystemMTDefines -D_REENTRANT
4851.312Saymeric#  else
4861.1Slukem   /* Solaris 10 & later */
4871.1Slukem#   define SystemMTDefines -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
4881.163Sdrochner#  endif
4891.149Sfredb#  define CplusplusSystemMTDefines SystemMTDefines
4901.1Slukem# endif 		/* OSMinorVersion > 1 */
4911.1Slukem# ifndef UseExportLists
4921.335Slukem#  if (OSMinorVersion > 4) && !HasGcc2
4931.230Sjunyoung#   define UseExportLists YES
4941.1Slukem#  else
4951.1Slukem#   define UseExportLists NO
4961.1Slukem#  endif
4971.1Slukem# endif
4981.1Slukem# if OSMinorVersion > 5 /* Solaris 2.6 and later */
4991.1Slukem#  define HasSnprintf YES
5001.293Schristos# endif
5011.293Schristos# if OSMinorVersion > 7 /* Solaris 8 and later */
5021.370Swiz#  define HasStrlcat	YES
5031.351Sjunyoung#  define HasStrcasecmp	YES
5041.276Swiz#  define HasVarRun	YES
5051.335Slukem# endif
5061.276Swiz# if OSMinorVersion > 9 /* Solaris 10 and later */
5071.276Swiz#  define HasSetenv	YES
5081.276Swiz#  define HasGetpeerucred YES
5091.292Sthorpej#  define HasGetoptLong YES
5101.292Sthorpej#  define DlLibrary	-lc  /* dlopen() is in libc in Solaris 10 */
5111.276Swiz# endif
5121.1Slukem# define HasVFork	NO
5131.322Schristos# define HasDlopen	YES
5141.358Sgrant# define InstallXloadSetGID	NO /* libkstat doesn't require gid kmem */
5151.1Slukem# define InstKmemFlags	-g sys -m 2711
5161.1Slukem# define ShLibIncludeFile <sunLib.tmpl>
5171.335Slukem# define LinkerRuntimeLibraryPathFlag(path) Concat(-R,path)
5181.1Slukem# define RpathLoadFlags LinkerRuntimeLibraryPathFlag($(USRLIBDIRPATH))
5191.298Sitojun/*
5201.1Slukem * Set flags for position independent code before including sv4Lib.rules
5211.1Slukem * if the compiler in use doesn't use standard SVR4 flags
5221.1Slukem */
5231.1Slukem# if HasSunC || HasCenterLineC
5241.1Slukem#  define PositionIndependentCFlags -Kpic
5251.1Slukem#  define LargePositionIndependentCFlags -KPIC
5261.1Slukem#  ifdef Sparc64Architecture
5271.1Slukem#   define LargePICTable YES
5281.279Schristos#  endif
5291.279Schristos# endif
5301.279Schristos# if HasSunCplusplus || HasCenterLineCplusplus
5311.279Schristos#  define PositionIndependentCplusplusFlags -pic
5321.280Schristos#  define LargePositionIndependentCplusplusFlags -PIC
5331.280Schristos# endif
5341.1Slukem/* As is done in sco5.cf, we lie and say Solaris has NCURSES, since
5351.1Slukem * the system curses is close enough for xorgcfg's purposes.  xorgcfg
5361.380Schristos * should not depend on the NCURSES package but rather on a "capable curses",
5371.380Schristos * of which NCURSES is just one.
5381.1Slukem */
5391.1Slukem#define	HasNCurses		YES
5401.335Slukem#define NCursesLibName		-lcurses
5411.1Slukem#else /* not OSMajorVersion > 4 */
5421.310Schristos#define InstKmemFlags	  -g kmem -m 2711
5431.1Slukem#include <sunLib.rules>
5441.380Schristos#endif /* OSMajorVersion > 4 (else) */
5451.380Schristos
5461.1Slukem/* Solaris 10 includes FreeType already.  It's also available in GNOME 2.0 for
5471.19Swiz * Solaris 8 & 9, and in Solaris 9 4/03 and later, but there's no easy way to
5481.19Swiz * detect that in imake, so users of those releases who want to use the
5491.19Swiz * installed FreeType instead of the one in this tree should copy the following
5501.19Swiz * two settings to their host.def.  Those who want to use the in-tree copy
5511.19Swiz * regardless of OS version should add "#define HasFreetype2 NO" to host.def.
5521.335Slukem */
5531.19Swiz#ifndef HasFreetype2
5541.19Swiz# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
5551.19Swiz#  define HasFreetype2 YES
5561.19Swiz#  ifndef Freetype2Dir
5571.19Swiz#   define Freetype2Dir /usr/sfw
5581.19Swiz#  endif
5591.19Swiz# else
5601.1Slukem#  define HasFreetype2 NO
5611.1Slukem# endif
5621.1Slukem#endif
5631.1Slukem
5641.1Slukem#ifndef HasExpat
5651.335Slukem# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10))
5661.1Slukem#  define HasExpat YES
5671.1Slukem#  ifndef ExpatDir
5681.1Slukem#   define ExpatDir /usr/sfw
5691.1Slukem#  endif
5701.1Slukem# else
5711.1Slukem#  define HasExpat NO
5721.1Slukem# endif
5731.1Slukem#endif
5741.1Slukem
5751.335Slukem/* Solaris 10 includes fontconfig, but not the fcprivate.h header needed by
5761.1Slukem * Xft1 library.
5771.127Ssalo */
5781.1Slukem#ifndef HasFontconfig
5791.1Slukem# define HasFontconfig NO
5801.1Slukem#endif
5811.1Slukem
5821.1Slukem/* libpng was in /usr/sfw/lib on Solaris 9, moved to /usr/lib in Solaris 10 */
5831.228Sitojun#ifndef HasLibpng
5841.340Speter# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
5851.335Slukem#  define HasLibpng YES
5861.228Sitojun#  if !defined(LibpngDir) && ((OSMajorVersion == 5) && (OSMinorVersion == 9))
5871.228Sitojun#   define LibpngDir /usr/sfw
5881.335Slukem#  endif
5891.317Syamt# else
5901.228Sitojun#  define HasLibpng NO
5911.228Sitojun# endif
5921.228Sitojun#endif
5931.228Sitojun
5941.256Syamt#ifndef HasZlib
5951.228Sitojun# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
5961.1Slukem#  define HasZlib YES
5971.354Srpaulo# else
5981.359Srpaulo#  define HasZlib NO
5991.1Slukem# endif
6001.1Slukem#endif
6011.335Slukem
6021.1Slukem#ifndef TroffCmd
6031.127Ssalo# if !(HasGroff)
6041.1Slukem#  define TroffCmd troff -Tpost
6051.1Slukem# endif
6061.1Slukem#endif
6071.289Scube
6081.359Srpaulo#define BuildLibPathVar	  LD_LIBRARY_PATH
6091.1Slukem#define HasNdbm		  YES
6101.1Slukem#define HasShm		  YES
6111.349Sjunyoung#define HasSecureRPC	  YES
6121.1Slukem#define SetTtyGroup	  YES
6131.1Slukem#define HasPutenv	  YES
6141.127Ssalo#define HasMkstemp        YES
6151.1Slukem#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8))
6161.1Slukem#define HasDevRandom	  YES	/* /dev/random is in Solaris 8 patches 	*/
6171.1Slukem#define PollDevRandom	  YES	/* /dev/random is poll()able on Solaris */
6181.1Slukem#endif
6191.1Slukem#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9))
6201.1Slukem# define HasIssetugid	  YES
6211.1Slukem#endif
6221.1Slukem#if defined(Sun3Architecture) || defined(SparcArchitecture) || defined(Sparc64Architecture)
6231.289Scube# ifndef Xsun24Server
6241.289Scube#  define Xsun24Server	  NO		/* color, mono, multiple depths */
6251.1Slukem# endif
6261.1Slukem# ifndef XsunServer
6271.1Slukem#  define XsunServer	  NO		/* color and mono, 8 bit only */
6281.1Slukem# endif
6291.1Slukem# ifndef XsunMonoServer
6301.1Slukem#  define XsunMonoServer	  NO		/* monochrome only */
6311.1Slukem# endif
6321.335Slukem# ifndef XorgServer
6331.1Slukem#  define XorgServer	(!(Xsun24Server || XsunServer || XsunMonoServer))
6341.1Slukem# endif
6351.1Slukem# undef BuildXF86DRI
6361.1Slukem# define BuildXF86DRI     NO
6371.1Slukem# if (OSMajorVersion > 4)
6381.182Staca#  if !defined(AsOutputArchSize) || \
6391.182Staca      ((AsOutputArchSize != 32) && (AsOutputArchSize != 64))
6401.14Sperry#   undef AsOutputArchSize
6411.14Sperry#   define AsOutputArchSize	32
6421.335Slukem#  endif
6431.1Slukem#  ifndef AsVISOption
6441.14Sperry#   if AsOutputArchSize == 32
6451.1Slukem#    ifdef UseGas
6461.1Slukem#     define AsVISOption		-Av8plusa
6471.1Slukem#    else
6481.1Slukem#     define AsVISOption		-xarch=v8plusa
6491.1Slukem#    endif
6501.201Schristos#   else
6511.255Swiz#    ifdef UseGas
6521.1Slukem#     define AsVISOption		-Av9a
6531.1Slukem#    else
6541.335Slukem#     define AsVISOption		-xarch=v9a
6551.1Slukem#    endif
6561.127Ssalo#   endif
6571.1Slukem#  endif
6581.1Slukem# endif
6591.1Slukem#endif /* SPARC or Sun3/M68k */
6601.201Schristos
6611.201Schristos#if OSMajorVersion >= 4
6621.1Slukem#define HasUsableFileMmap YES
6631.1Slukem#endif
6641.1Slukem
6651.359Srpaulo#ifndef UseDeprecatedKeyboardDriver
6661.1Slukem#define UseDeprecatedKeyboardDriver YES
6671.1Slukem#endif
6681.335Slukem
6691.1Slukem#if HasGcc
6701.1Slukem# if OSMajorVersion > 4
6711.1Slukem#  ifndef DefaultCCOptions
6721.1Slukem#   ifdef UseInstalled
6731.1Slukem#    define DefaultCCOptions -DNO_ASM
6741.301Satatat#   elif OSMinorVersion > 6
6751.311Swiz#    define DefaultCCOptions -DNO_ASM GccWarningOptions
6761.1Slukem#   elif OSMinorVersion > 3
6771.1Slukem#    define DefaultCCOptions -DNO_ASM GccWarningOptions -ansi -pedantic
6781.335Slukem#   else
6791.1Slukem#    define DefaultCCOptions -DNO_ASM
6801.127Ssalo#   endif
6811.1Slukem#  endif
6821.1Slukem# endif
6831.1Slukem# if HasGcc2
6841.1Slukem#  ifndef CcCmd
6851.1Slukem#   define CcCmd gcc
6861.1Slukem#  endif
6871.1Slukem#  ifndef AsCmd
6881.1Slukem#   define AsCmd CcCmd -c -x assembler
6891.1Slukem#  endif
6901.144Sdent#  ifndef OptimizedCDebugFlags
6911.144Sdent#   ifdef i386Architecture
6921.335Slukem#    define OptimizedCDebugFlags DefaultGcc2i386Opt
6931.1Slukem#   elif defined(AMD64Architecture)
6941.1Slukem#    define OptimizedCDebugFlags DefaultGcc2AMD64Opt
6951.1Slukem#   else
6961.1Slukem#    define OptimizedCDebugFlags -O2
6971.1Slukem#   endif
6981.1Slukem#  endif
6991.1Slukem#  if !defined(SharedLibraryLoadFlags) && !defined(SharedLibraryLdCmd)
7001.1Slukem#   if OSMajorVersion == 5 && OSMinorVersion > 6 && defined(i386Architecture)
7011.245Sdyoung    /* This is to work around what appears to be a PIC bug in some gcc/egcs
7021.348Sdrochner       versions that shows up with the Solaris 7/x86 <ctype.h>. */
7031.1Slukem#    define SharedLibraryLdCmd $(LD)
7041.1Slukem#    define SharedLibraryLoadFlags -G -z textwarn
7051.335Slukem#   else
7061.1Slukem#    define SharedLibraryLdCmd $(CC)
7071.1Slukem#    define SharedLibraryLoadFlags -shared -z text
7081.1Slukem#   endif
7091.2Swiz#  endif
7101.1Slukem# else
7111.1Slukem#  define SharedLibraryCcCmd cc
7121.1Slukem#  define ExtraLoadFlags -B/usr/bin/
7131.1Slukem#  define AllocateLocalDefines /**/
7141.1Slukem
7151.1Slukem.c.o:
7161.50Senami	ClearmakeOSName	$(CC) -c $(CFLAGS) $*.c
7171.335Slukem
7181.1Slukem# endif /* HasGcc2 (else) */
7191.1Slukem
7201.1Slukem#else /* not HasGcc */
7211.1Slukem
7221.1Slukem# define AllocateLocalDefines -DINCLUDE_ALLOCA_H
7231.1Slukem
7241.1Slukem/* Set up compiler-dependent options for Sun C */
7251.144Sdent/*
7261.144Sdent * To build 64-bit binaries define Sparc64Architecture or AMD64Architecture
7271.335Slukem * in your site.def or host.def file.
7281.1Slukem */
7291.1Slukem# if HasSunC
7301.1Slukem#  ifdef Sun3Architecture
7311.1Slukem#   ifndef DefaultCCOptions
7321.1Slukem#    define DefaultCCOptions -f68881 -pipe
7331.232Swiz#   endif
7341.271Swiz#  else	/* not defined(Sun3Architecture) */
7351.1Slukem#   if OSMajorVersion < 5
7361.1Slukem#    ifndef DefaultCCOptions
7371.335Slukem#     define DefaultCCOptions -pipe
7381.1Slukem#    endif
7391.1Slukem#   else /* OSMajorVersion >= 5*/
7401.1Slukem#    ifndef DefaultXArchOptions
7411.38Swiz#     if ((CCompilerMajorVersion > 5) || \
7421.38Swiz          (CCompilerMajorVersion == 5) && (CCompilerMinorVersion >= 9))
7431.1Slukem      /* Sun Studio 12.0 (cc 5.9) or later */
7441.1Slukem#      if (defined(Sparc64Architecture) || defined(AMD64Architecture))
7451.250Ssoren#	define DefaultXArchOptions -m64
7461.377Srpaulo#      else
7471.1Slukem#	define DefaultXArchOptions -m32
7481.1Slukem#      endif
7491.335Slukem#     else
7501.1Slukem#      ifdef Sparc64Architecture
7511.1Slukem#	define DefaultXArchOptions -xarch=v9
7521.1Slukem#      elif defined(AMD64Architecture)
7531.1Slukem#	define DefaultXArchOptions -xarch=generic64
7541.1Slukem#      else
7551.1Slukem#       define DefaultXArchOptions /* */
7561.1Slukem#      endif
7571.1Slukem#     endif
7581.1Slukem#     ifndef DefaultCCOptions
7591.1Slukem#      define DefaultCCOptions -Xa -v DefaultXArchOptions -z lazyload -z combreloc -xstrconst -xildoff
7601.1Slukem#     endif
7611.1Slukem#     ifndef DefaultCplusplusOptions
7621.1Slukem#      define DefaultCplusplusOptions DefaultXArchOptions -z lazyload -z combreloc -xildoff
7631.1Slukem#     endif
7641.1Slukem#     ifndef SharedLibraryLoadFlags
7651.335Slukem#      define SharedLibraryLoadFlags -G DefaultXArchOptions -z text $(EXTRA_LOAD_FLAGS)
7661.1Slukem#     endif
7671.1Slukem#    endif
7681.1Slukem#   endif
7691.1Slukem#  endif
7701.1Slukem# endif
7711.367Skleink
7721.367Skleink/* Set compiler-dependent options for CenterLine C */
7731.1Slukem
7741.1Slukem# if HasCenterLineC
7751.349Sjunyoung#  ifndef DefaultCCOptions
7761.1Slukem#   define DefaultCCOptions -Xt -w1 -DANSICPP -U__HIGHC__
7771.1Slukem#  endif
7781.1Slukem#  ifndef NeedConstPrototypes
7791.1Slukem#   define NeedConstPrototypes YES
7801.1Slukem#  endif
7811.1Slukem#  ifndef NeedNestedPrototypes
7821.1Slukem#   define NeedNestedPrototypes YES
7831.1Slukem#  endif
7841.104Swiz#  ifndef NeedVarargsPrototypes
7851.1Slukem#   define NeedVarargsPrototypes YES
7861.1Slukem#  endif
7871.335Slukem# endif
7881.1Slukem
7891.1Slukem
7901.1Slukem#endif /* HasGcc (else) */
7911.1Slukem
7921.335Slukem#if OSMajorVersion < 5
7931.335Slukem# define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H
7941.335Slukem# define LibraryCCOptions /* don't want special floating point */
7951.335Slukem#else /* OSMajorVersion >= 5, i.e. Solaris 2.0 & later */
7961.349Sjunyoung/* Only load libraries when needed on Solaris 7 & later */
7971.335Slukem# if OSMinorVersion >= 7
7981.335Slukem#  define LazyLoadFlag -z lazyload -z combreloc
7991.335Slukem# else
8001.228Sitojun#  define LazyLoadFlag /* */
8011.228Sitojun# endif
8021.228Sitojun/* Link with extra mapfiles for some performance & security enhancements */
8031.228Sitojun#ifndef MapfileFlag
8041.228Sitojun# if HasSunC
8051.365Swiz#  define MapfileFlag -M
8061.365Swiz# else
8071.365Swiz#  define MapfileFlag -Wl,-M,
8081.365Swiz# endif
8091.365Swiz#endif
8101.365Swiz#ifndef Mapfile_BssAlign
8111.365Swiz# if OSMinorVersion >= 9
8121.365Swiz#  define Mapfile_BssAlign $(MAPFILEFLAG)/usr/lib/ld/map.bssalign
8131.365Swiz# else
8141.365Swiz#  define Mapfile_BssAlign /**/
8151.365Swiz# endif
8161.1Slukem#endif
8171.307Stron#ifndef Mapfile_PageAlign
8181.305Stron# if OSMinorVersion >= 10
8191.349Sjunyoung#  define Mapfile_PageAlign $(MAPFILEFLAG)/usr/lib/ld/map.pagealign
8201.1Slukem# else
8211.335Slukem#  define Mapfile_PageAlign /**/
8221.349Sjunyoung# endif
8231.1Slukem#endif
8241.1Slukem#ifndef Mapfile_NoExStack
8251.1Slukem# if OSMinorVersion >= 9
8261.60Stron#  define Mapfile_NoExStack $(MAPFILEFLAG)/usr/lib/ld/map.noexstk
8271.1Slukem# else
8281.1Slukem#  define Mapfile_NoExStack /**/
8291.305Stron# endif
8301.1Slukem#endif
8311.1Slukem#ifndef Mapfile_NoExData
8321.1Slukem# if defined(SparcArchitecture)
8331.349Sjunyoung/* SPARC architecture requires PLT section in .data be executable, so
8341.1Slukem   we can only make .bss, not all of .data no-exec on SPARC */
8351.1Slukem#   define Mapfile_NoExData /**/
8361.335Slukem# else
8371.1Slukem#  if OSMinorVersion >= 10
8381.1Slukem#   define Mapfile_NoExData $(MAPFILEFLAG)/usr/lib/ld/map.noexdata
8391.1Slukem#  else
8401.1Slukem#   define Mapfile_NoExData /**/
8411.378Syamt#  endif
8421.378Syamt# endif
8431.1Slukem#endif
8441.1Slukem       MAPFILEFLAG = MapfileFlag
8451.1Slukem  MAPFILES_FOR_ALL = Mapfile_PageAlign Mapfile_NoExData
8461.1SlukemMAPFILES_FOR_PROGS = Mapfile_BssAlign Mapfile_NoExStack
8471.1Slukem/* ExtraLoadFlags apply to all binaries - programs & libraries */
848# ifndef ExtraLoadFlags
849#  define ExtraLoadFlags LazyLoadFlag $(MAPFILES_FOR_ALL)
850# endif
851/* ExtraLoadOptions only apply to programs */
852# ifndef ExtraLoadOptions
853#  define ExtraLoadOptions -B direct $(MAPFILES_FOR_PROGS)
854# endif
855#endif /* OSMajorVersion < 5 */
856
857/* 64-bit build support */
858#ifndef Solaris64bitSubdir
859# ifdef Sparc64Architecture
860#  define Solaris64bitSubdir	sparcv9
861# elif defined(AMD64Architecture)
862#  define Solaris64bitSubdir	amd64
863# endif
864#endif
865
866#ifdef Solaris64bitSubdir
867# define LibDirName Concat3(lib,/,Solaris64bitSubdir)
868#endif
869
870#if ((OSMajorVersion == 5) && (OSMinorVersion <= 11))
871/* System V man page sections */
872# ifndef FileManSuffix
873#  define FileManSuffix	4		/* use just one tab or cpp will die */
874# endif
875# ifndef MiscManSuffix
876#  define MiscManSuffix	5		/* use just one tab or cpp will die */
877# endif
878# ifndef DriverManSuffix
879#  define DriverManSuffix	7	/* use just one tab or cpp will die */
880# endif
881# ifndef AdminManSuffix
882#  define AdminManSuffix	1m	/* use just one tab or cpp will die */
883# endif
884#else
885/* Bell Labs / BSD man page sections */
886# ifndef FileManSuffix
887#  define FileManSuffix	5		/* use just one tab or cpp will die */
888# endif
889# ifndef MiscManSuffix
890#  define MiscManSuffix	7		/* use just one tab or cpp will die */
891# endif
892# ifndef DriverManSuffix
893#  define DriverManSuffix	4	/* use just one tab or cpp will die */
894# endif
895# ifndef AdminManSuffix
896#  define AdminManSuffix	8	/* use just one tab or cpp will die */
897# endif
898#endif
899
900#if OSMajorVersion > 4
901# include <svr4.cf>
902#endif
903
904#ifndef ManKeywordsTarget
905# define ManKeywordsTarget(manpath)					@@\
906man_keywords::								@@\
907	catman -M $(DESTDIR)manpath -w
908#endif
909
910#if !defined(UsePamLibrary)
911# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 4))
912#  define UsePamLibrary		YES
913# endif
914#endif
915
916/* PAM appeared in SunOS 5.6 */
917#if !defined(HasPam)
918# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6)
919#  define HasPam		YES
920# endif
921#endif
922
923#ifndef PamLibraries
924#define PamLibraries		-lpam
925#endif
926
927#ifndef HasMotif
928/* Solaris's Motif depends on Solaris libX11 and won't work with libX11 built
929 * from this tree, so only use it when using libX11 from outside the tree.
930 */
931# define HasMotif (defined(UseInstalled) || UseInstalledX11)
932# define MotifDir /usr/dt
933#endif /* !HasMotif */
934#ifndef HasMotif2
935/* Solaris's Motif2 version is broken and misses XmPrintShell
936 * (see http://xprint.mozdev.org/bugs/show_bug.cgi?id=1366) */
937# define HasMotif2 NO
938#endif /* !HasMotif2 */
939
940#define MotifDefines			\
941	-DNO_ISDIR -DNO_REGCOMP -DNO_ALLOCA -DBOGUS_MB_MAX -DNO_CONST
942#define PamUnixDefines		-DPAM_NIS
943#define TtLargePICTable		YES
944#define DtSvcDefines		-DXK_MISCELLANY -DMULTIBYTE -DNO_REGCOMP
945#define DtSearchDefines		-DI18N_MSG DtSvcDefines
946#define DtWidgetDefines		DtSearchDefines
947#define DtPrintDefines		DtSearchDefines
948
949#define baseDtMailDefines	\
950	-DSunOS=OSMajorVersion\#\#OSMinorVersion -DMMAP_NORESERVE -DSPRO_V2
951#if !defined(i386Architecture) && !defined(AMD64Architecture)
952# define DtMailDefines		baseDtMailDefines
953#else
954# define DtMailDefines		-DBIG_ENDIAN baseDtMailDefines
955#endif
956
957#define ArchitectureDefines	-DSUN_ARCHITECTURE
958
959#define TtClientExtraLibs	ExtraLibraries -ldl -lintl
960
961#define ExportListGenSource	elistgen.sun
962#define ShlibExportListOpt(filename)	-M filename
963
964#define CdeProjectDefines \
965	-DMULTIBYTE -DNLS16 -DMESSAGE_CAT -D_XOPEN_VERSION=4 \
966	-D_XOPEN_SOURCE -D__EXTENSIONS__ \
967	-DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion
968
969
970/*
971 * Turn off HTML manpages like we do under NetBSD.
972 */
973#ifndef	BuildHtmlManPages
974#define	BuildHtmlManPages	NO
975#endif
976
977/*
978 * Turn off separate configuration directories.
979 */
980#ifndef	UseSeparateConfDir
981#define	UseSeparateConfDir	NO
982#endif
983
984/* Hackery for building modules as Solaris shared objects with dependencies */
985#if MakeDllModules && DoLoadableServer
986
987/* If you change this, you will need to change find-deps.pl to match */
988#define DlModuleDependencyName(module) Concat(module,_deps)
989
990#define DlModuleTarget(module,deplist,modlist)                          @@\
991DepDynamicModuleTarget(module,deplist DlModuleDependencyName(module),modlist LazyLoadFlag `cat DlModuleDependencyName(module)`) @@\
992									@@\
993DlModuleDependencyName(module):						@@\
994	touch $@							@@\
995									@@\
996clean::                                                                 @@\
997        RemoveFile(DlModuleDependencyName(module))
998
999#define ObjectModuleTarget(module,objects)				@@\
1000DlModuleTarget(Concat(module,_drv.so), objects, objects)
1001
1002#define LibraryModuleTarget(module,objects)				@@\
1003NormalLibraryTarget(module, objects)					@@\
1004DlModuleTarget(Concat3(lib,module,.so), objects, objects)
1005
1006#define DepLibraryModuleTarget(module,deplist,objects)			@@\
1007NormalDepLibraryTarget(module, deplist, objects)			@@\
1008DlModuleTarget(Concat3(lib,module,.so), deplist, objects)
1009
1010#endif
1011