XCOMM $XdotOrg: xc/config/cf/DragonFly.cf,v 1.1 2005/03/02 11:20:29 gisburn Exp $

#define UseElfFormat        YES

#define OSBinaryFormat        [ELF]

#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 OSRelVersion
/* Include this to get finer-grained information about the OS version */
#include "/usr/include/osreldate.h"
#define OSRelVersion __DragonFly_version
#endif

XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion) (OSRelVersion)

/*
 * Base OS setup
 */
#define HasCplusplus             YES
#define GccUsesGas               YES
#define UseGas                   YES
#define GnuCpp                   YES
#define HasBasename              YES
#define HasBSD44Sockets          YES
#define HasDlopen                YES
#define HasGetIfAddrs            YES
#define HasIssetugid             YES
#define HasLibCrypt              YES
#define HasMktemp                YES
#define HasNCurses               YES
#define HasNdbm                  YES
#define HasPlugin                YES
#define HasPoll                  YES
#define HasPutenv                YES
#define HasUsableFileMmap        YES
#define HasSetProcTitle          YES
#define HasShm                   YES
#define HasSnprintf              YES
#define HasStrlcat               YES
#define HasVarDb                 YES
#define HasVarRun                YES
#define HasWChar32               YES
#define HasWeakSymbols           UseElfFormat
#define BuildXaw6                NO /*depreciated*/
#define BuildXaw7                NO /*depreciated*/
#define BuildXaw                 YES /*needed*/
#ifndef BuildPDFdocs
#define BuildPDFdocs NO
#endif
#define IPv6SocketsAlsoIPv4      NO
#define InstallXloadSetGID       NO

/*
 * Multi-thread safe libs
 */
#ifndef HasLibPthread
# define HasLibPthread           NO
#endif
#define HasPosixThreads          YES
#define ThreadedX                YES
#define SystemMTDefines          -D_REENTRANT -D_THREAD_SAFE
#define HasThreadSafeAPI         YES
#define MTSafeAPIDefines         -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
#if HasLibPthread
# define ThreadsLibraries        -lpthread
#else
# define ThreadsLibraries        -pthread
#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 MkdirHierCmd             mkdir -p

#define LexCmd                   flex -l
#define HasFlex                  YES

#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 NoSystemWarn -Dasm=__asm GccWarningOptions
#endif
#ifndef ExtraLibraries
/* support for multi-byte locales is in libxpg4 rather than libc */
#define ExtraLibraries          -lxpg4
#endif
#define HasSetUserContext       YES
#define HasGetpeereid           YES
#define HasMTRRSupport          YES

#ifndef BuildXF86DRI
# define BuildXF86DRI           YES
#endif

#if defined(i386Architecture)
#define HasAgpGart              YES
#endif

/*
 * SSE and 3DNow will be autodetected, so binutils is the only
 * requirement for enabling this.
 */
#if defined(i386Architecture)
# 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

#ifndef UseRpath
# define UseRpath               YES
#endif

#ifndef RpathLoadFlags
# if UseRpath
#  define RpathLoadFlags        -Wl,-rpath,$(USRLIBDIRPATH)
# else
#  define RpathLoadFlags        /**/
# endif
#endif

#ifndef ExtraLoadFlags
# if !defined(UseInstalled)
#  define ExtraLoadFlags     RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
# else
#  define ExtraLoadFlags     RpathLoadFlags
# endif
#endif

#endif

#ifndef LibraryRpathLoadFlags
# if UseRpath
#  define LibraryRpathLoadFlags  -rpath $(USRLIBDIRPATH)
# else
#  define LibraryRpathLoadFlags  /**/
# endif
#endif

#ifndef SharedLibraryLoadFlags
# define SharedLibraryLoadFlags  -shared LibraryRpathLoadFlags
#endif

#ifndef HasZlib
# define HasZlib                 YES
#endif

#ifndef HasPam
# define HasPam                  YES
#endif

/* Take from FreeBSD */
/* 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            NO /* set this to YES once DragonFly ships FT218 */
# 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

#define AsmElfDefines            -D__ELF__

#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(Sparc64Architecture) || defined(ia64Architecture) || \
    defined(AMD64Architecture)
#define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
#endif

#define StandardDefines          -DCSRG_BASED

#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

#define OptimizedCDebugFlags -O

#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/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

#define HasBsdMake    YES

#ifndef StaticLibrary
# define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
#endif

#define DlLibrary        -Wl,--export-dynamic

#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
# define HasCookieMaker        YES
# define MkCookieCmd \
    'dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"'
#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>