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 . */ #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 # 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 #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 . */ # 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 #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