xenocara/util/cf/darwin.cf

331 lines
9.1 KiB
CFEngine3
Raw Normal View History

2006-11-25 09:15:45 -07:00
XCOMM $XdotOrg: util/cf/darwin.cf,v 1.8 2005/04/01 01:22:07 torrey Exp $
XCOMM platform: $XFree86: xc/config/cf/darwin.cf,v 1.50 2004/01/20 23:54:50 torrey Exp $
/* Darwin / Mac OS X configuration by John Carmack <johnc@idsoftware.com> */
/* imake determines the default values by parsing uname */
#ifndef OSName
#define OSName DefaultOSName
#endif
#ifndef OSVendor
#define OSVendor Apple Computer, Inc.
#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 the operating system's capabilities
*/
#define HasSnprintf YES
#define HasPutenv YES
#define HasBSD44Sockets YES
#define Malloc0ReturnsNull NO
#define HasShadowPasswd NO
#define HasUsableFileMmap YES
#define HasZlib YES
#ifndef HasShm
# define HasShm YES
#endif
#define HasNdbm YES
#if OSMajorVersion >= 6
# define HasNCurses YES
# define HasArc4Random YES
# define HasGetIfAddrs YES
# define HasStrlcat YES
#else
# define HasBasename NO
# define HasNCurses NO
#endif
#ifndef HasGroff
# define HasGroff YES
#endif
#ifndef HasGcc3
# define HasGcc3 NO
#endif
#ifndef HasFreetype2
# define HasFreetype2 NO
#endif
#ifndef HasExpat
# define HasExpat NO
#endif
#ifndef HasLibpng
# define HasLibpng NO
#endif
/* Older versions don't really support IPv6, but #define AF_INET6. */
#if OSMajorVersion < 6
# define BuildIPv6 NO
#endif
/* Thread support */
#define HasPosixThreads YES
#define SystemMTDefines -D_REENTRANT
#if OSMajorVersion >= 6
# define HasThreadSafeAPI YES
# define MTSafeAPIDefines -DXUSE_MTSAFE_API -DXNO_MTSAFE_UNISTDAPI
#else
# define HasThreadSafeAPI NO
# define MTSafeAPIDefines -DXOS_USE_MTSAFE_NETDBAPI
#endif
/* Libtool on Darwin always uses minor numbers */
#define LibtoolMinorVersions YES
/* The most common file system, HFS+, is not case sensitive. */
#ifndef CaseSensitiveFileSystem
# define CaseSensitiveFileSystem NO
#endif
/*
* This enables some settings for developers.
*/
#ifndef XFree86Devel
# define XFree86Devel NO
#endif
/*
* This enables Quartz compatibility.
* Turn off to build on raw Darwin systems.
*/
#ifndef DarwinQuartzSupport
# define DarwinQuartzSupport YES
#endif
#if DarwinQuartzSupport
# if OSMajorVersion >= 7
PROJ_BUILD = xcodebuild
# else
PROJ_BUILD = pbxbuild
# endif
# ifndef HasXplugin
# if OSMajorVersion >= 7
# define HasXplugin YES
# else
# define HasXplugin NO
# endif
# endif
# if HasXplugin
# ifndef XpLibDir
# define XpLibDir /usr/lib
# endif
# ifndef XpIncDir
# define XpIncDir $(SERVERSRC)/hw/darwin/quartz/xpr
# endif
XPLIBDIR = XpLibDir
XPINCDIR = XpIncDir
# define XpluginLibrary Concat(-L,$(XPLIBDIR)) -lXplugin
# else
# define XpluginLibrary /**/
# endif
# ifndef BuildAppleDRI
# if HasXplugin
# define BuildAppleDRI YES
# else
# define BuildAppleDRI NO
# endif
# endif
# if BuildAppleDRI
# define GlxExtraDefines -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL GlxArchDefines
# endif
# define BuildRootless YES
# define BuildAppleWMLibrary YES
#endif /* DarwinQuartzSupport */
/* we don't need -lm */
#define MathLibrary /**/
#define TermcapLibrary -lcurses
#define SetTtyGroup YES /* for xterm */
/* we don't have a dbm library */
#define DBMLibrary /**/
#define MkdirHierCmd mkdir -p
/* Use flex -l for compatibility with various versions of flex. */
#ifndef LexCmd
# define LexCmd flex -l
#endif
#define HasFlex YES
/*
* Our cpp isn't in /lib/cpp and early versions don't like -undef.
* The gcc 3.3 cpp that Apple ships inserts spurious #pragmas,
* so we use the 3.1-based version in this case.
*/
#if (GccMajorVersion == 3) && (GccMinorVersion == 3)
# define CppCmd /usr/bin/cpp3
#else
# define CppCmd /usr/bin/cpp
#endif
#if (GccMajorVersion == 3) && (GccMinorVersion == 3) || (GccMajorVersion > 3)
# define StandardCppOptions -traditional -D__GNUC__
#endif
#if HasGcc3
# define RawCppCmd CppCmd -undef
#else
# define RawCppCmd CppCmd
#endif
/* we have a gcc compatible compiler, but its not called gcc */
#define CcCmd /usr/bin/cc
#define CplusplusCmd /usr/bin/c++
/* default flags to pass to cc */
#ifndef DefaultCCOptions
#if XFree86Devel
# define DefaultCCOptions -Wall -Wpointer-arith -Wstrict-prototypes \
-Wmissing-prototypes -Wmissing-declarations \
-Wredundant-decls -Wnested-externs \
-no-cpp-precomp
#else
# define DefaultCCOptions -Wall -Wpointer-arith -no-cpp-precomp
#endif
#endif
/* flags to pass to cc when building libraries */
#ifndef LibraryCCOptions
# define LibraryCCOptions DefaultCCOptions -fno-common
#endif
/* The cr implementation does not build with NEED_SCREEN_REGIONS,
so play it safe. */
#ifndef ServerCCOptions
# define ServerCCOptions DefaultCCOptions -UNEED_SCREEN_REGIONS
#endif
#ifdef PpcDarwinArchitecture
# define DarwinMachineDefines -D__powerpc__
# if HasGcc3
# define OptimizedCDebugFlags -Os
# else
# define OptimizedCDebugFlags -O2
# endif
# define ByteOrder X_BIG_ENDIAN
#endif /* PpcDarwinArchitecture */
#ifdef i386DarwinArchitecture
# define DarwinMachineDefines -D__i386__
# if HasGcc3
# define OptimizedCDebugFlags -Os
# else
# define OptimizedCDebugFlags -O2 -fno-strength-reduce
# endif
# define ByteOrder X_LITTLE_ENDIAN
#endif /* i386DarwinArchitecture */
#if OSMajorVersion < 7
# define DarwinLocaleDefines -DX_LOCALE
#else
# define DarwinLocaleDefines /**/
# define XawI18nDefines -DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H
#endif
/*
* __DARWIN__ will be used for platform specific #ifdefs that can't
* be handled by existing X defines.
*
* Darwin's alloca() seg faults (rather than returning NULL) on failed
* allocations, so we can't use it.
*/
#define StandardDefines DarwinMachineDefines -D__DARWIN__ \
-DNO_ALLOCA -DCSRG_BASED DarwinLocaleDefines
/*
* Set this to NO to just build the client libs, which should work without
* having to write any platform specific code.
*/
#ifndef BuildServer
# define BuildServer YES
/* our custom X server */
# define XDarwinServer YES
#endif
/* Thanks to the IOKit, the X server does not have to be SetUID. */
#ifndef InstallXserverSetUID
# define InstallXserverSetUID NO
#endif
/* Allow Xtrans to work with non-SetUID server. */
#ifndef XtransFailSoft
# define XtransFailSoft YES
#endif
/* disable XKB by default as it can cause problems */
#define DfltDisableXKB YES
/* no direct graphics extension */
#define BuildXF86DGA NO
/* Support for tablets and other non-standard input devices */
#ifndef BuildXInputExt
# define BuildXInputExt YES
#endif
#define BuildXInputLib YES
/* no Display Power Management extension */
#define BuildDPMS NO
/* no XFree86-Misc extension */
#define BuildXF86MiscExt NO
/* no XFree86-VidMode extension */
#define BuildXF86VidModeExt NO
#ifndef BuildXterm
# define BuildXterm BuildClients /* Not enabled by default */
#endif
#define BuildLibPathVar DYLD_LIBRARY_PATH
/* include rules to build shared libraries */
#include <darwinLib.rules>
/*
* BundleProgramTarget - Generate rules for compiling, linking and
* installing a bundle executable.
*/
#ifndef BundleProgramTarget
#define BundleProgramTarget(program,loader,subdirs,objs,deplib,syslib,dstdir) @@\
@@\
AllTarget(program) @@\
@@\
program: loader subdirs objs deplib @@\
RemoveTargetProgram($@) @@\
LinkRule($@,-bundle $(LDOPTIONS),objs,deplib $(LDLIBS) syslib -bundle_loader loader) @@\
@@\
InstallProgram(program,dstdir/program.bundle/Contents/MacOS) @@\
@@\
clean:: @@\
RemoveFile(program)
#endif /* BundleProgramTarget */
/*
* Darwin specific Imake Config files
*/
#ifndef LocalConfigFiles
#define LocalConfigFiles \
darwinLib.rules \
darwinLib.tmpl
#endif
/* include all the X.Org rules */
#include <xorg.cf>