XCOMM platform:  $Xorg: FreeBSD.cf,v 1.4 2000/12/12 12:49:13 coskrey Exp $

#ifndef OSName
#define OSName			DefaultOSName
#endif
#ifndef OSVendor
#define OSVendor		Walnut Creek CD-ROM
#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)

#define HasPutenv		YES
#define HasBSD44Sockets		YES
#define HasZlib			YES
#define HasDlopen		YES

#define CppCmd			/usr/libexec/cpp -traditional
#define PreProcessCmd		/usr/libexec/cpp -traditional
#undef  InstallCmd
#define InstallCmd		/usr/bin/install

#define UseGas			YES
#ifndef GccUsesGas
# define GccUsesGas		YES
#endif

#ifndef AsmDefines
#  define AsmDefines		-DUSE_GAS
#endif

#if GccUsesGas
# define GccGasOption		-DGCCUSESGAS
#else
# define GccGasOption		/**/
#endif

#ifndef HasGcc2
# define HasGcc2		YES
#endif

#define MkdirHierCmd		mkdir -p

#define CcCmd gcc
#ifndef DefaultCCOptions
#define DefaultCCOptions	-pipe
#endif

#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
#if OSMinorVersion < 2
#ifndef ExtraLibraries
#define ExtraLibraries		-lgnumalloc
#endif
#else
#if OSTeenyVersion == 2
#define HasSetUserContext	YES
#endif
#ifndef ExtraLoadFlags
/* 
 * 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.
 */
#define ExtraLoadFlags		-Wl,-R,$(USRLIBDIRPATH)
#endif
#endif
#else
#define ServerOSDefines		XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
#define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
#ifndef ExtraLibraries
#define ExtraLibraries		/* -lmalloc */
#endif
#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
#endif
#endif

#ifdef i386Architecture
# define OptimizedCDebugFlags DefaultGcc2i386Opt
#else
# define OptimizedCDebugFlags -O2
#endif

#define ServerExtraDefines	GccGasOption XFree86ServerDefines

#define StandardDefines		-DCSRG_BASED

#define TroffCmd		groff -Tps
#define SetTtyGroup		YES
#define HasNdbm			YES
#define HasShm			YES
#define HasWChar32		YES

#define HasLibCrypt		YES

#define AvoidNullMakeCommand	YES

#define HasPlugin		YES
#define VendorHasX11R6_3libXext	YES	/* XC or XFree86 3.3.1 */

#include <bsdLib.rules>

#ifdef i386Architecture
#include <xfree86.cf>
#endif
