XCOMM platform: $XFree86: xc/config/cf/darwin.cf,v 1.46 2003/11/18 19:00:14 torrey Exp $ /* Darwin / Mac OS X configuration by John Carmack */ /* 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 HasStrlcat YES #define HasPutenv YES #define HasBSD44Sockets YES #define Malloc0ReturnsNull NO #define HasShadowPasswd NO #define HasUsableFileMmap YES #define HasZlib YES #define HasArc4Random YES #ifndef HasShm # define HasShm YES #endif #define HasNdbm YES #if OSMajorVersion >= 6 # define HasNCurses YES #else # define HasNCurses NO #endif #ifndef HasGroff # define HasGroff YES #endif #ifndef HasGcc3 # define HasGcc3 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 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 default cpp-3.3 that ships with Panther inserts spurious #pragmas, * so we use the 3.1-based version. */ #if OSMajorVersion >= 7 # define CppCmd /usr/bin/cpp3 # define StandardCppOptions -traditional #else # define CppCmd /usr/bin/cpp #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 */ /* * __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. * * Darwin's setlocale() doesn't work properly, so use X11's instead. */ #define StandardDefines DarwinMachineDefines -D__DARWIN__ \ -DNO_ALLOCA -DX_LOCALE -DCSRG_BASED /* * 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 /* no direct graphics extension */ #define BuildXF86DGA NO /* no server support for extra tablets and weird input devices */ #define BuildXInputExt NO #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 #define BuildLibPathVar DYLD_LIBRARY_PATH /* include rules to build shared libraries */ #include /* * 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 XFree86 rules */ #include