xenocara/util/cf/sun.cf

958 lines
28 KiB
CFEngine3
Raw Normal View History

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