Edit

IABSD.fr/xenocara/util/cf/FreeBSD.cf

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2006-11-25 16:15:45
    Hash : 782466d3
    Message : import from X.Org 7.2RC2

  • util/cf/FreeBSD.cf
  • XCOMM platform:  $Xorg: FreeBSD.cf,v 1.3 2000/08/17 19:41:45 cpqbld Exp $
    XCOMM platform:  $XdotOrg: util/cf/FreeBSD.cf,v 1.11 2005/05/04 04:14:57 anholt Exp $
    XCOMM
    XCOMM
    XCOMM
    XCOMM platform:  $XFree86: xc/config/cf/FreeBSD.cf,v 3.147 2004/01/28 01:46:21 dawes Exp $
    
    #ifndef UseElfFormat
    #define UseElfFormat		DefaultToElfFormat
    #endif
    
    #if UseElfFormat
    #define OSBinaryFormat		[ELF]
    #else
    #define OSBinaryFormat		[a.out]
    #endif
    
    #ifndef OSName
    #define OSName			DefaultOSName OSBinaryFormat
    #endif
    #ifndef OSVendor
    #define OSVendor		/**/
    #endif
    #ifndef OSMajorVersion
    #define OSMajorVersion		DefaultOSMajorVersion
    #endif
    #ifndef OSMinorVersion
    #define OSMinorVersion		DefaultOSMinorVersion
    #endif
    #ifndef OSTeenyVersion
    #define OSTeenyVersion		DefaultOSTeenyVersion
    #endif
    
    #ifndef OSRelVersion
    /* Include this to get finer-grained information about the OS version */
    #include "/usr/include/osreldate.h"
    #define OSRelVersion __FreeBSD_version
    #endif
    
    XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) (OSRelVersion)
    
    
    #define HasCplusplus		YES
    #define GccUsesGas		YES
    #define UseGas			YES
    #define GnuCpp			YES
    #define HasNdbm			YES
    #define HasPutenv		YES
    #define HasSnprintf		YES
    #if OSMajorVersion == 3 && OSMinorVersion >= 3 || OSMajorVersion > 3
    # define HasStrlcat		YES
    #endif
    #if OSMajorVersion == 4 && OSMinorVersion >= 2 || OSMajorVersion > 4
    # define HasBasename		YES
    #else
    # define HasBasename		NO
    #endif
    #define HasBSD44Sockets 	YES
    #define HasDlopen		YES
    #if ((OSRelVersion >= 410002) && OSRelVersion < 500000) || (OSRelVersion >= 500012)
    #define HasSetProcTitle		YES
    #endif
    #ifndef HasLibCrypt
    # define HasLibCrypt		YES
    #endif
    #ifndef HasShm
    # define HasShm			YES
    #endif
    #define HasWChar32		YES
    #define HasUsableFileMmap	YES
    #define HasNCurses		YES
    #define HasVarRun		YES
    #define HasVarDb		YES
    #ifndef BuildPDFdocs
    # define BuildPDFdocs NO
    #endif
    #if (OSMajorVersion >= 3)
    #define HasIssetugid		YES
    #define HasPoll			YES
    #endif
    
    #if OSMajorVersion >= 4
    #define HasGetIfAddrs		YES
    #endif
    
    /* All versions define AF_INET6. 3.x and earlier don't have IPv6 support. */
    #if OSMajorVersion < 4
    #ifndef BuildIPv6
    #define BuildIPv6		NO
    #endif
    #endif
    
    #define IPv6SocketsAlsoIPv4	NO
    
    #if (OSMajorVersion > 1)
    #define InstallXloadSetGID	NO
    #else
    #define InstallXloadSetGID	YES
    #endif
    
    #define HasWeakSymbols		UseElfFormat
    
    /*
     * Multi-thread safe libs 
     */	
    /* 2.2.7 and later has libc_r (POSIX threads) */
    #if OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 7 || \
        OSMajorVersion >= 3
    # define HasPosixThreads	YES
    # define ThreadedX		YES
    # define HasThreadSafeAPI	YES
    # if OSRelVersion < 501000
    #  define MTSafeAPIDefines	-DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
    # else
    #  define MTSafeAPIDefines	-DXUSE_MTSAFE_API
    # endif
    # if (OSRelVersion < 500043)
    #  define NeedUIThrStubs	YES
    # endif
    # if (OSRelVersion >= 502102)
    #  define ThreadsLibraries	-lpthread
    # elif (OSRelVersion >= 500016)
    #  define ThreadsLibraries	-lc_r
    # else
    #  define ThreadsLibraries	-pthread
    # endif
    # define SystemMTDefines	-D_THREAD_SAFE
    #endif
    
    /* This fixes linking C programs against libGLU on FreeBSD 3.x */
    #if (OSMajorVersion == 3)
    #define SharedGLUReqs		$(LDPRELIB) $(XLIB) $(GLXLIB) -lstdc++ -lgcc
    #endif
    
    #define AvoidNullMakeCommand	YES
    #define StripInstalledPrograms	YES
    #define CompressAllFonts	YES
    #define Malloc0ReturnsNull	YES
    #define NeedConstPrototypes	YES
    #define NeedFunctionPrototypes	YES
    #define NeedNestedPrototypes	YES
    #define NeedVarargsPrototypes	YES
    #define NeedWidePrototypes	NO
    
    #define HasPlugin		YES
    #define VendorHasX11R6_3libXext	YES	/* XC or XFree86 >= 3.3.1 */
    
    #define MkdirHierCmd		mkdir -p
    
    #ifndef LexCmd
    #define LexCmd			flex -l
    #endif
    #ifndef HasFlex
    #define HasFlex			YES
    #endif
    
    #ifndef HasMktemp
    #if (OSMajorVersion >= 4) || (OSMajorVersion == 3 && OSMinorVersion >= 1) || \
    	(OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 7)
    #define HasMktemp		YES
    #else
    #define HasMktemp		NO
    #endif
    #endif
    
    /*
     * 2.2.x has perl 4 by default, not perl 5.
     */
    #if (OSMajorVersion <= 2)
    #ifndef HasPerl5
    #define HasPerl5		NO
    #endif
    #endif
    
    #ifndef CcCmd
    #define CcCmd			cc
    #endif
    #ifndef CplusplusCmd
    #define CplusplusCmd		c++
    #endif
    #define CppCmd			/usr/bin/cpp
    #define PreProcessCmd		CppCmd
    #define StandardCppOptions	-traditional
    #define StandardCppDefines	/**/
    #ifndef DefaultCCOptions
    #if defined(UseInstalled)
    #define DefaultCCOptions	/**/
    #else
    #if defined(HasGcc3) && HasGcc3
    #define NoSystemWarn		-Wno-system-headers
    #else
    #define NoSystemWarn
    #endif
    #define DefaultCCOptions	-ansi -pedantic NoSystemWarn -Dasm=__asm \
    	GccWarningOptions
    #endif
    #endif
    #ifndef ExtraLibraries
    /* support for multi-byte locales is in libxpg4 rather than libc */
    #if (OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)) && \
        !(OSMajorVersion == 4 && OSRelVersion >= 400020) && \
        !(OSRelVersion >= 500005)
    #define ExtraLibraries		-lxpg4
    #else
    #define ExtraLibraries		/**/
    #endif
    #endif
    #ifndef UseGnuMalloc
    /* 2.2 doesn't really have GnuMalloc */
    #if OSMajorVersion < 2 || (OSMajorVersion == 2 && OSMinorVersion < 2)
    #define UseGnuMalloc		YES
    #else
    #define UseGnuMalloc		NO
    #endif
    #endif
    /* 2.2.2 and later has setusercontext() */
    #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 2) || \
         (OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 2)
    #define HasSetUserContext	YES
    #endif
    
    #if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 6)
    #define HasGetpeereid		YES
    #endif
    
    /* 3.3(?) and later has support for setting MTRRs */
    #ifndef HasMTRRSupport
    #if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion >= 3)
    #define HasMTRRSupport		YES
    #else
    #define HasMTRRSupport		NO
    #endif
    #endif
    
    /*
     * Drivers that don't need AGP can work with 4.0, but we don't have a
     * mechanism for specifying a subset of drivers in the OS.cf files yet.
     */
    #ifndef BuildXF86DRI
    #if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1)
    #define BuildXF86DRI		YES
    #endif
    #endif
    
    /*
     * 4.1/i386 and 5.0/i386,alpha,ia64,amd64 have the AGP driver.
     */
    #ifndef HasAgpGart
    #if defined(i386Architecture) && \
    	(OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1))
    #define HasAgpGart		YES
    #endif
    #if (defined(AlphaArchitecture) || defined(ia64Architecture) || \
    	defined(AMD64Architecture)) && (OSMajorVersion >= 5)
    #define HasAgpGart		YES
    #endif
    #endif
    
    /*
     * SSE and 3DNow will be autodetected, so binutils is the only 
     * requirement for enabling this.  By 4.2 they were all supported.
     */
    #if defined(AMD64Architecture) || defined(i386Architecture) && \
    	(OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 2))
    # define HasX86Support          YES
    # define HasMMXSupport		YES
    # define Has3DNowSupport	YES
    # define HasSSESupport		YES
    #else
    # define HasX86Support	        NO
    # define HasMMXSupport		NO
    # define Has3DNowSupport	NO
    # define HasSSESupport		NO
    #endif
    
    /* 
     * This doesn't work the way it does on every other system. On FreeBSD it's
     * only a "hint, not a demand", whatever that means. Note that this is not 
     * what it says in the ld and ld.so man pages, which are rather vague on the
     * matter.
     *
     * But we do know that if a) you do what the X Project team does and set your 
     * ProjectRoot to something like "/X11", and b) you have other X libraries, 
     * e.g. in /usr/X11R6/lib, and you have added /usr/X11R6/lib to your 
     * ld.so.cache with ldconfig, then any programs linked with this "hint" will
     * find that ld.so ignores the "hint" at runtime and loads the libraries in 
     * the ld.so.cache, i.e.the wrong ones, instead! Empirically we find that
     * the run-path is only used as a last resort to find the libraries, after
     * the LD_LIBRARY_PATH and ld.so.cache.
     *
     * N. B. to FreeBSD users who are not familiar with the semantics of the run-
     * path on other systems. The run-path is akin to a per-program ld.so.cache. 
     * If a program is linked with a run-path, that run-path should take 
     * precedence over _everything_ else! In my opinion ldconfig and the 
     * ld.so.cache should be deprecated immediately now that FreeBSD has run-
     * paths. Any program that needs libraries that are outside the "well known" 
     * locations should be linked with a run-path.
     *
     * All of which begs the question: If this option doesn't work in any useful
     * way, why did they (FreeBSD) bother to add it? It would be nice if FreeBSD
     * would fix ld.so so that run-paths are truly useful.
     *
     * Using run-paths is added with the intent that vendors who ship X for 
     * FreeBSD should use it too. Once everyone uses it then there will be no 
     * reason for FreeBSD to assume that it knows where X libraries are installed 
     * and they can remove it from the list of directories they add to ld.so.cache 
     * in their /etc/rc file.
     */
    
    #ifndef UseRpath
    # define UseRpath		YES
    #endif
    
    #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
    
    # ifndef RpathLoadFlags
    #  if UseRpath
    #   if UseElfFormat
    #    define RpathLoadFlags	-Wl,-rpath,$(USRLIBDIRPATH)
    #   else
    #    define RpathLoadFlags	-Wl,-R,$(USRLIBDIRPATH)
    #   endif
    #  else
    #   define RpathLoadFlags	/**/
    #  endif
    # endif
    
    # ifndef ExtraLoadFlags
    #  if UseElfFormat && !defined(UseInstalled)
    #   define ExtraLoadFlags	RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
    #  else
    #   define ExtraLoadFlags	RpathLoadFlags
    #  endif
    # endif
    
    #endif
    
    #ifndef LibraryRpathLoadFlags
    # if UseRpath
    #  if UseElfFormat
    #   define LibraryRpathLoadFlags	-rpath $(USRLIBDIRPATH)
    #  else
    #   define LibraryRpathLoadFlags	-R $(USRLIBDIRPATH)
    #  endif
    # else
    #  define LibraryRpathLoadFlags		/**/
    # endif
    #endif
    
    #ifndef SharedLibraryLoadFlags
    # if UseElfFormat
    #  define SharedLibraryLoadFlags	-shared LibraryRpathLoadFlags
    # else
    #  define SharedLibraryLoadFlags	-Bshareable LibraryRpathLoadFlags
    # endif
    #endif
    
    #ifndef GnuMallocLibrary
    #define GnuMallocLibrary	-lgnumalloc
    #endif
    
    #if (OSMajorVersion > 2) || (OSMajorVersion == 2 && OSMinorVersion >= 2) \
    	|| (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 6)
    /* 2.1.6 and 2.2 have libz */
    #ifndef HasZlib
    #define HasZlib		YES
    #endif
    #endif
    
    /* PAM appeared in FreeBSD 3.1 */
    #if (OSMajorVersion > 3) || (OSMajorVersion == 3 && OSMinorVersion >=1 )
    #ifndef HasPam
    #define HasPam		YES
    #endif
    #endif
    
    /* There are two options for building.  One is to assume that the system has
     * many of the dependencies provided by the ports tree.  The other is to just
     * build everything from this tree.
     */
    
    #ifndef HasStandardPorts
    #define HasStandardPorts	YES
    #endif
    
    #ifndef LocalBase
    #define LocalBase		/usr/local
    #endif
    #ifndef X11Base
    #define X11Base			/usr/X11R6
    #endif
    
    #if HasStandardPorts
    
    #ifndef HasExpat
    # define HasExpat		YES
    # define ExpatDir		LocalBase
    #endif
    
    #ifndef HasFreetype2
    # define HasFreetype2		YES
    # define Freetype2Dir		LocalBase
    #endif
    
    #ifndef HasFontconfig
    # define HasFontconfig		YES
    # define FontconfigDir		X11Base
    #endif
    
    #ifndef HasLibpng
    # define HasLibpng		YES
    # define LibpngDir		LocalBase
    #endif
    
    #endif /* HasStandardPorts */
    
    #undef  InstallCmd
    #define InstallCmd		/usr/bin/install
    
    #if UseElfFormat
    # define AsmElfDefines		-D__ELF__
    #else
    # define AsmElfDefines /**/
    #endif
    
    #if GccUsesGas
    # define GccGasOption		-DGCCUSESGAS
    # define AsmDefines		-DUSE_GAS AsmElfDefines
    #else
    # define GccGasOption /**/
    # define AsmDefines		AsmElfDefines
    #endif
    
    #ifdef i386Architecture
    #define ServerExtraDefines GccGasOption XFree86ServerDefines
    #endif
    #if defined(AlphaArchitecture) || defined(Sparc64Architecture) || \
    	defined(ia64Architecture) || defined(AMD64Architecture)
    #define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
    #endif
    #ifdef Sparc64Architecture
    #define AsVISOption		-Av9a
    #define AsOutputArchSize	64
    #endif
    
    #ifdef PpcArchitecture
    #define XF86INT10_BUILD		X86INT10_STUB
    #endif
    
    #define StandardDefines	-DCSRG_BASED
    
    #if OSMajorVersion > 1
    #define ServerOSDefines		XFree86ServerOSDefines -DDDXTIME
    #define XawI18nDefines		-DUSE_XWCHAR_STRING
    #define HasMakefileSafeInclude	YES
    #define IncludeMakefile(file) @@# dependencies are in .depend
    #define DependFileName		.depend
    #ifndef DoLoadableServer
    #define DoLoadableServer	YES
    #endif
    #ifndef ForceNormalLib
    #define ForceNormalLib		YES
    #endif
    #define HasMkstemp		YES
    #else
    #define ServerOSDefines		XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
    #define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
    #endif
    
    /* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */
    #ifndef DefaultGcc2i386Opt
    #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5)
    #define DefaultGcc2i386Opt -O2 GccAliasingArgs
    #endif
    #endif
    
    #ifdef i386Architecture
    # define OptimizedCDebugFlags DefaultGcc2i386Opt
    #else
    # define OptimizedCDebugFlags -O
    #endif
    
    #ifndef PreIncDir
    # define PreIncDir	/usr/include
    #endif
    
    #define HasGroff	YES
    #define NroffCmd	env GROFF_NO_SGR=y groff -Tascii
    #define SetTtyGroup	YES
    
    #ifndef ExtraFilesToClean
    # define ExtraFilesToClean *.core
    #endif
    
    #define DefaultUserPath		/bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR):/usr/gnu/bin:/usr/local/bin
    #define DefaultSystemPath	/bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR)
    #ifndef SystemManDirectory
    #define SystemManDirectory	/usr/share/man
    #endif
    
    #define InstKmemFlags	-g kmem -m 2755
    
    /*
     * Compress manual pages
     */
    #ifndef CompressManPages
    # define CompressManPages	YES
    #endif
    
    #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 1)
    #define HasBsdMake	YES
    #endif
    
    #ifndef StaticLibrary
    #define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
    #endif
    
    #if UseElfFormat
    #define DlLibrary		-rdynamic
    #else
    #define DlLibrary		/**/
    #endif
    
    #ifdef AlphaArchitecture
    #define IoLibrary		-lio
    #else
    #define IoLibrary		/**/
    #endif
    
    #define ServerExtraSysLibs	IoLibrary
     
    #ifndef PamLibraries
    #define PamLibraries		-lpam DlLibrary
    #endif
    
    #ifndef SharedLibXdmGreet
    # define SharedLibXdmGreet		NO
    #endif
    
    /*
     * On FreeBSD, the run-time loader will use the built-in "rpath" before
     * LD_LIBRARY_PATH.  This means that utilities like mkfontdir will load
     * installed libraries (if they exist) in preference to the ones in the
     * build tree, even though LD_LIBRARY_PATH points to the build tree.
     * This can result in the build failing.  One way to avoid this is to
     * pre-load the libraries from the build tree.
     *
     * There should be a better way than this hack...
     */
    #if UseElfFormat
    #ifndef PreloadFontSetup
    #define PreloadFontSetup	LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(XFONTPRELOADPATTERN))`"
    #endif
    #ifndef PreloadFreetypeSetup
    #define PreloadFreetypeSetup	LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(FT2PRELOADPATTERN))`"
    #endif
    #ifndef PreloadXFTSetup
    #define PreloadXFTSetup		LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(FT2PRELOADPATTERN) $(XFTPRELOADPATTERN) $(XRENDERPRELOADPATTERN) $(FCPRELOADPATTERN))`"
    #endif
    #endif
    
    #ifndef HasCookieMaker
    /* Which versions have /dev/urandom? */
    #if OSMajorVersion >= 4
    #define HasCookieMaker		YES
    #define MkCookieCmd \
    	'dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"'
    #else
    #define HasCookieMaker		NO
    #endif
    #endif
    
    /*
     * A hack to work around an optimization problem with gcc 2.95.2 - 2.95.4
     */
    #if (GccMajorVersion == 2 && GccMinorVersion == 95)
    #define GccOptBug295
    #endif
    
    #include <bsdLib.rules>
    
    #include <xorg.cf>