XCOMM platform: $XFree86: xc/config/cf/sun.cf,v 3.79 2005/02/06 23:48:14 dawes Exp $ /* * Copyright (c) 1994-2004 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject * to the following conditions: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions, and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution, and in the same place and form as other copyright, * license and disclaimer information. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: "This product * includes software developed by The XFree86 Project, Inc * (http://www.xfree86.org/) and its contributors", in the same * place and form as other third-party acknowledgments. Alternately, * this acknowledgment may appear in the software itself, in the * same form and location as other such third-party acknowledgments. * * 4. Except as contained in this notice, the name of The XFree86 * Project, Inc shall not be used in advertising or otherwise to * promote the sale, use or other dealings in this Software without * prior written authorization from The XFree86 Project, Inc. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #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 #endif /* 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 -xO3 # 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 ServerExtraDefines AllocateLocalDefines XFree86ServerDefines \ -D__SOL8__ # else # define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines # endif # else # define ServerExtraDefines AllocateLocalDefines # endif #else # ifdef BuildXFree86OnSparcSunOS # define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines # else # define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines \ -UXFree86Server # endif # define HasPlugin YES #endif #define ServerOSDefines XFree86ServerOSDefines IncludeCG2HeaderDefine #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 /* * Assume /opt/SUNWspro/bin/ contains symlinks to the appropriate tools */ #ifndef CcCmd # define CcCmd /opt/SUNWspro/bin/cc #endif #ifndef CplusplusCmd # define CplusplusCmd /opt/SUNWspro/bin/CC #endif #ifndef CplusplusFilt # define CplusplusFilt /opt/SUNWspro/bin/c++filt #endif #ifndef CplusplusDependIncludes #if CplusplusCompilerMajorVersion > 3 # define CplusplusDependIncludes -I/opt/SUNWspro/SC4.0/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 # 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 -DSVR4 -D__EXTENSIONS__ -D__SOL64__ \ -Di386 -D__i386 -D__i386__ # else # define StandardDefines -Dsun -DSVR4 -D__EXTENSIONS__ \ -Di386 -D__i386 -D__i386__ # endif # define ToolkitStringsABIOptions -intelabi # else # define StandardDefines -Dsun -DSVR4 -D__EXTENSIONS__ \ -Dsparc -D__sparc__ # 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 # define HasSnprintf YES # endif # if OSMinorVersion > 7 # define HasStrlcat YES # endif # define HasVFork NO # define HasDlopen YES # define InstKmemFlags -g sys -m 2711 # define ShLibIncludeFile /* * 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 #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 YES /* color and mono, 8 bit only */ # endif # ifndef XsunMonoServer # define XsunMonoServer NO /* monochrome only */ # 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 #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 # 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 # endif # ifdef SparcArchitecture # define OptimizedCDebugFlags DefaultGcc2SparcOpt # endif # ifndef OptimizedCDebugFlags # define OptimizedCDebugFlags -O2 GccAliasingArgs # endif # endif # if defined(SparcArchitecture) && \ (GccMajorVersion == 3) && (GccMinorVersion == 3) # define WorkaroundSparc64GccBug # 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 */ # 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 # define DefaultCCOptions -Xa -v # 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 # ifndef AsCmd # ifdef SparcArchitecture # define AsCmd as # endif # endif #endif /* HasGcc (else) */ #if OSMajorVersion < 5 # define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H # define LibraryCCOptions /* don't want special floating point */ #endif /* OSMajorVersion < 5 */ /* * 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 . */ #if OSMajorVersion == 5 && OSMinorVersion > 6 && defined(i386Architecture) && HasGcc # define SharedLibraryLoadFlags -G -z textwarn #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 #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 #ifndef BuildGLULibrary #if HasSunC #define BuildGLULibrary NO #endif #endif