XCOMM $XdotOrg: xc/config/cf/sun.cf,v 1.9 2004-08-19 16:28:42 kem 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) /* * 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) # if OSMinorVersion > 8 /* Solaris 9 and later require Pentium or better */ # define ArchOptimizedFlags -xpentium # 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 */ /* 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 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 #ifdef i386Architecture # if OSMajorVersion > 4 # if OSMinorVersion >= 8 # define OSServerExtraDefines -D__SOL8__ # endif # if HasSunC # define CompilerServerExtraDefines $(XF86SRC)/os-support/sunos/ia32.il # endif # endif #else # define HasPlugin YES #endif #ifndef CompilerServerExtraDefines # define CompilerServerExtraDefines /**/ #endif #ifndef OSServerExtraDefines # define OSServerExtraDefines /**/ #endif #define ServerOSDefines XFree86ServerOSDefines IncludeCG2HeaderDefine #define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines \ CompilerServerExtraDefines OSServerExtraDefines #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 #define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT #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 # ifdef i386Architecture # if (OSMajorVersion < 4) || ((OSMajorVersion == 5) && (OSMinorVersion <= 5)) # define StandardDefines -Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \ -D__SOL64__ # else # define StandardDefines -Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 # endif # define ToolkitStringsABIOptions -intelabi # else # define StandardDefines -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ # define ToolkitStringsABIOptions -sparcabi # endif # define ExtraLibraries -lsocket -lnsl # 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 HasZlib YES # endif # if OSMinorVersion > 9 /* Solaris 10 and later */ # define HasSetenv YES # define HasGetpeerucred YES /* 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 # define HasFreetype2 YES # ifndef Freetype2Dir # define Freetype2Dir /usr/sfw # endif # endif # endif # define HasVFork NO # define HasDlopen YES # define InstKmemFlags -g sys -m 2711 # define ShLibIncludeFile # define LinkerRuntimeLibraryPathFlag(path) Concat(-R,path) /* * 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 # endif # if HasSunCplusplus || HasCenterLineCplusplus # define PositionIndependentCplusplusFlags -pic # define LargePositionIndependentCplusplusFlags -PIC # endif #else /* not OSMajorVersion > 4 */ #define InstKmemFlags -g kmem -m 2711 #include #endif /* OSMajorVersion > 4 (else) */ #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 #ifndef i386Architecture # 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 # ifndef BuildPexExt # define BuildPexExt (XsunServer || Xsun24Server) # 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 /* not i386Architecture */ #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 # 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 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 DefaultCCOptions # ifndef Sparc64Architecture # define DefaultCCOptions -Xa -v -zlazyload -zcombreloc -xstrconst -xildoff # else # define DefaultCCOptions -Xa -v -xarch=v9 -zlazyload -zcombreloc -xstrconst -xildoff # define LargePICTable YES # 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 # define PexCCOptions DefaultCCOptions #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 -Wl,-z,lazyload # else # define LazyLoadFlag /* */ # endif /* ExtraLoadFlags apply to all binaries - programs & libraries */ # ifndef ExtraLoadFlags # define ExtraLoadFlags LazyLoadFlag # endif /* Build progams with non-executable stacks on Solaris 9 & later */ # if OSMinorVersion >= 9 # define NonExecStackLoadFlag -Wl,-M,/usr/lib/ld/map.noexstk # else # define NonExecStackLoadFlag /* */ # endif /* ExtraLoadOptions only apply to programs */ # ifndef ExtraLoadOptions # define ExtraLoadOptions NonExecStackLoadFlag # endif #endif /* OSMajorVersion < 5 */ #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 # define HasMotif YES #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 #ifndef i386Architecture # 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 #ifndef BuildGLULibrary #if HasSunC #define BuildGLULibrary NO #endif #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