summaryrefslogtreecommitdiff
path: root/xorg-cf-files/FreeBSD.cf
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-cf-files/FreeBSD.cf')
-rw-r--r--xorg-cf-files/FreeBSD.cf582
1 files changed, 582 insertions, 0 deletions
diff --git a/xorg-cf-files/FreeBSD.cf b/xorg-cf-files/FreeBSD.cf
new file mode 100644
index 0000000..8296dd4
--- /dev/null
+++ b/xorg-cf-files/FreeBSD.cf
@@ -0,0 +1,582 @@
+XCOMM platform: $Xorg: FreeBSD.cf,v 1.3 2000/08/17 19:41:45 cpqbld Exp $
+XCOMM platform: $XdotOrg: xc/config/cf/FreeBSD.cf,v 1.10 2004/08/15 00:03:36 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>