1/* MingGW vendor strings and version */ 2#include "xorgversion.def" 3 4#ifndef CygxVersionMajor 5# define CygxVersionMajor XORG_VERSION_MAJOR 6#endif 7#ifndef CygxVersionMinor 8# define CygxVersionMinor XORG_VERSION_MINOR 9#endif 10#ifndef CygxVersionPatch 11# define CygxVersionPatch XORG_VERSION_PATCH 12#endif 13#ifndef CygxVersionSnap 14# define CygxVersionSnap XORG_VERSION_SNAP 15#endif 16#ifndef CygxVersionServer 17# define CygxVersionServer 0 18#endif 19 20#ifndef CygxVersion 21# define CygxVersion (10000000 * CygxVersionMajor + 100000 * CygxVersionMinor + 1000 * CygxVersionPatch + CygxVersionSnap) 22#endif 23 24#ifndef CygxVersionString 25# define CygxVersionString `echo CygxVersionMajor CygxVersionMinor CygxVersionPatch CygxVersionSnap%CygxVersionServer| sed -e 's/ /./g' -e 's/%/-/g'` 26#endif 27 28#ifndef CygxManVersionString 29# define CygxManVersionString `echo CygxVersionMajor CygxVersionMinor CygxVersionPatch CygxVersionSnap| sed -e 's/ /./g' -e 's/^/Version\\\ /'` 30#endif 31 32#ifndef XVendorString 33# define XVendorString "The Cygwin/X Project" 34#endif 35#ifndef XVendorRelease 36# define XVendorRelease CygxVersion 37#endif 38#ifndef XVendorManVersionString 39# define XVendorManVersionString CygxManVersionString 40#endif 41#ifndef XVendorManNameString 42# define XVendorManNameString "Xming" 43#endif 44#ifndef XVendorContact 45# define XVendorContact "win32-x11@sources.redhat.com" 46#endif 47 48/* Operating system strings and version */ 49#ifndef OSName 50# define OSName Windows 51#endif 52#ifndef OSVendor 53# define OSVendor Microsoft 54#endif 55#ifndef OSMajorVersion 56# define OSMajorVersion DefaultOSMajorVersion 57#endif 58#ifndef OSMinorVersion 59# define OSMinorVersion DefaultOSMinorVersion 60#endif 61#ifndef OSTeenyVersion 62# define OSTeenyVersion DefaultOSTeenyVersion 63#endif 64 65#ifndef ProjectRoot 66# define ProjectRoot /usr/X11R6 67#endif 68 69/* 70 * GNU Compiler stuff 71 */ 72#ifndef HasGcc3 73# define HasGcc3 NO 74#endif 75#ifndef HasGcc2 76# define HasGcc2 HasGcc3 77#endif 78#ifndef HasGcc 79# define HasGcc HasGcc2 80#endif 81#ifndef HasGcc2ForCplusplus 82# define HasGcc2ForCplusplus HasGcc2 83#endif 84 85#if HasGcc 86# ifndef Gcc28Warnings 87# if (GccMajorVersion > 2) || \ 88 ((GccMajorVersion == 2) && (GccMinorVersion >= 8)) 89# define Gcc28Warnings -Wundef 90# else 91# define Gcc28Warnings /* */ 92# endif 93# ifndef HasGcc33 94# if (((GccMajorVersion == 3) && (GccMinorVersion >= 3)) || \ 95 (GccMajorVersion > 3)) 96# define HasGcc33 YES 97# else 98# define HasGcc33 NO 99# endif 100# endif 101# ifndef HasGcc34 102# if (((GccMajorVersion == 3) && (GccMinorVersion >= 4)) || \ 103 (GccMajorVersion > 3)) 104# define HasGcc34 YES 105# else 106# define HasGcc34 NO 107# endif 108# endif 109# endif 110# ifndef GccWarningOptions 111# if XFree86Devel 112# define GccWarningOptions -Wall -Wpointer-arith -Wstrict-prototypes \ 113 -Wmissing-prototypes -Wmissing-declarations \ 114 -Wredundant-decls -Wnested-externs Gcc28Warnings 115# else 116# define GccWarningOptions -Wall -Wpointer-arith Gcc28Warnings 117# endif 118# endif 119# ifndef DefaultCCOptions 120# if defined(UseInstalled) 121# define DefaultCCOptions 122# else 123# define DefaultCCOptions GccWarningOptions 124# endif 125# endif 126# if defined(UseInstalled) 127# ifndef UseGccMakeDepend 128# define UseGccMakeDepend YES 129# endif 130# endif 131#endif 132 133#define GccUsesGas YES 134#define UseGas YES 135#define GnuCpp YES 136#define UnixCpp /* Just a flag that affects Concat macros in Imake.rules */ 137#define HasShadowPasswd NO 138#define HasLibCrypt YES 139#define HasPutenv YES 140#define HasFchown NO 141#define HasPoll NO 142#if (OSMajorVersion > 1) || (OSMajorVersion == 1 && OSMinorVersion >= 5) 143# define HasStrlcat YES 144#endif 145#define HasShm NO 146 147/* snprintf from windows runtime does return -1 if the buffer is to small */ 148#define HasSnprintf NO 149 150#define HasFfs NO 151 152#ifndef HasMakefileSafeInclude 153# define HasMakefileSafeInclude YES 154#endif 155 156#define Hastcl NO 157#define Hastk NO 158 159#define HasSockets NO 160#define GzipFontCompression YES 161#define HasZlib NO 162#define HasFreetype2 NO 163 164/* We don't need -lm */ 165#define MathLibrary /**/ 166 167/* 168 * /lib/libtermcap.a doesn't have tgetent, which is needed for 169 * xc/programs/xterm/resize.exe 170 */ 171#define TermcapLibrary -lncurses.dll 172 173#define AvoidNullMakeCommand YES 174#define StripInstalledPrograms YES 175#define CompressAllFonts YES 176#define Malloc0ReturnsNull NO 177#define NeedConstPrototypes YES 178#define NeedFunctionPrototypes YES 179#define NeedNestedPrototypes YES 180#define NeedVarargsPrototypes YES 181#define NeedWidePrototypes NO 182#define SetTtyGroup YES 183#define ExpandManNames YES 184#define HasDlopen NO 185#define HasGnuMake YES 186#define UseGccMakeDepend NO 187#define ThreadedX YES 188#define HasThreadSafeAPI YES 189#if !CrossCompiling 190#define CaseSensitiveFileSystem NO 191#endif 192#define HasWChar32 YES 193#define HasBasename NO /* basename() in libc */ 194 195#define LnCmd ln -s 196#ifndef CcCmd 197# define CcCmd gcc 198#endif /* CcCmd */ 199#ifndef CplusplusCmd 200# define CplusplusCmd g++ 201#endif /* CplusplusCmd */ 202#ifndef AsCmd 203# define AsCmd as 204#endif /* AsCmd */ 205 206#define GccGasOption -DGCCUSESGAS 207#define AsmDefines -DUSE_GAS -DGCCUSESGAS 208 209#ifndef LdCmd 210# define LdCmd gcc -lautomode 211#endif /* LdCmd */ 212 213#define MkdirHierCmd mkdir -p 214 215#ifndef CppCmd 216# define CppCmd cpp 217#endif /* CppCmd */ 218#ifndef YaccCmd 219# define YaccCmd bison -y 220#endif /* YaccCmd */ 221 222#define LexCmd flex -l 223#define LexLib -lfl 224#define HasFlex YES 225#ifndef CrossCompileDir 226# ifndef HasExpat 227# define HasExpat YES 228# endif 229# ifndef HasFreetype2 230# define HasFreetype2 YES 231# endif 232# ifndef HasFontconfig 233# define HasFontconfig YES 234# endif 235#endif 236 237/* Cygwin-specific Windows resource compiler command */ 238#ifdef CrossCompileDir 239# ifndef WindresCmd 240# define WindresCmd Concat3(CrossCompileDir,/,windres) 241# endif 242#else 243# ifndef WindresCmd 244# define WindresCmd windres 245# endif 246#endif 247 248#define PreProcessCmd CcCmd -E 249 250#ifndef PostIncDir 251# ifdef CrossCompileDir 252# define PostIncDir `CrossCompileDir/CcCmd --print-libgcc-file-name | sed 's,\\\\,/,g' | sed 's,libgcc.a,include,'` 253# else 254# define PostIncDir `CcCmd --print-libgcc-file-name | sed 's,\\\\,/,g' | sed 's,libgcc.a,include,'` 255# endif 256#endif 257#ifndef ExtraIncDir 258# ifdef CrossCompileDir 259# define ExtraIncDir CrossCompileDir/../include/w32api 260# else 261# define ExtraIncDir /usr/include/w32api 262# endif 263#endif 264 265#ifndef BourneShell 266/* 267 * This will cause builds/installs to terminate on errors, as on other 268 * platforms. 269 */ 270#define BourneShell /bin/sh -e 271#endif 272 273#define LdCombineFlags -r 274 275#ifndef DefaultCCOptions 276# define DefaultCCOptions -Wall -Wpointer-arith 277#endif 278 279/* Cygwin 1.5.x now includes alloca */ 280#if OSMinorVersion >= 5 281# define AllocateLocalDefines -DINCLUDE_ALLOCA_H 282#else 283# define AllocateLocalDefines -DNO_ALLOCA 284#endif 285 286#ifndef OptimizedCDebugFlags 287# define OptimizedCDebugFlags -O2 -fno-strength-reduce 288#endif 289 290/* 291 * -DFD_SETSIZE=256 is needed for xfs and the xserver. cygwin defines the 292 * FD_SETSIZE as 64 but some code expects it to be larger. 293 */ 294#define StandardDefines -D__i386__ -DWIN32_LEAN_AND_MEAN -DX_LOCALE \ 295 -D_X86_ -DWIN32 -D_XOPEN_SOURCE \ 296 -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE \ 297 -D_SVID_SOURCE -D_GNU_SOURCE -DFD_SETSIZE=1024 \ 298 -DXResExtension 299#define XawI18nDefines -DHAS_WCHAR_H -DHAS_WCTYPE_H \ 300 -DHAS_ISW_FUNCS -DNO_WIDEC_H 301#define StandardCppOptions -traditional 302 303/* Cygwin shared memory requires cygipc package or cygserver. */ 304#if UseCygIPC 305# if ThreadedX 306# define StandardCppDefines -DHAS_THREADS -DHAS_SHM StandardDefines 307# else 308# define StandardCppDefines -DHAS_SHM StandardDefines 309# endif 310#else 311# if ThreadedX 312# define StandardCppDefines -DHAS_THREADS StandardDefines 313# else 314# define StandardCppDefines StandardDefines 315# endif 316#endif 317 318#define BuildIPv6 NO 319#define BuildLBX NO 320 321/* 322 * This requires the pthreads-win32 library 323 * It is available from http://www.sourceware.org/pthreads-win32 324 */ 325#ifndef HasPThreads 326# define HasPThreads YES 327#endif 328 329/* Most libraries do not compile with mingw. Build only the servers. */ 330#ifndef BuildServersOnly 331# define BuildServersOnly YES 332#endif 333 334/* Enable those parts that do work and are required for running Xming */ 335#ifndef BuildXextLib 336# define BuildXextLib YES 337#endif 338#ifndef BuildXkbcomp 339# define BuildXkbcomp YES 340#endif 341 342/* XWin Server specific build flags */ 343#ifndef GlxUseWindows 344# define GlxUseWindows YES 345#endif 346#if !GlxUseWindows 347# define GlxExtraDefines -DAPIENTRY=GLAPIENTRY 348#endif 349 350#ifndef BuildXWinClipboard 351# define BuildXWinClipboard HasPThreads 352#endif 353#ifndef BuildXWinEmulatePseudo 354# define BuildXWinEmulatePseudo NO 355#endif 356#ifndef BuildXWinMultiWindow 357# define BuildXWinMultiWindow HasPThreads 358#endif 359#ifndef BuildXWinMultiWindowExtWM 360# define BuildXWinMultiWindowExtWM HasPThreads 361#endif 362#ifndef BuildXWinNativeGDI 363# define BuildXWinNativeGDI NO 364#endif 365#ifndef BuildXWinPrimaryFB 366# define BuildXWinPrimaryFB NO 367#endif 368#ifndef BuildXWinUpdateStats 369# define BuildXWinUpdateStats NO 370#endif 371#ifndef BuildXWinXF86Config 372# define BuildXWinXF86Config NO 373#endif 374 375/* XWin specific build flags - 1st order dependency */ 376#if BuildXWinMultiWindowExtWM && !defined(BuildWindowsWMLibrary) 377# define BuildWindowsWMLibrary YES 378#elif !defined(BuildWindowsWMLibrary) 379# define BuildWindowsWMLibrary NO 380#endif /* BuildXWinMultiWindowExtWM && BuildWindowsWMLibrary */ 381 382#if (BuildXWinClipboard || BuildXWinMultiWindow || BuildXWinMultiWindowExtWM) && !defined(BuildX11Lib) 383# define BuildX11Lib YES 384#endif 385 386/* XWin Server specific defines */ 387#if BuildXWinClipboard 388# define XWinClipboardDefines -DXWIN_CLIPBOARD 389#else 390# define XWinClipboardDefines 391#endif /* BuildXWinClipboard */ 392#if BuildXWinEmulatePseudo 393# define XWinEmulatePseudoDefines -DXWIN_EMULATEPSEUDO 394#else 395# define XWinEmulatePseudoDefines 396#endif /* BuildXWinEmulatePseudo */ 397#if BuildXWinMultiWindow 398# define XWinMultiWindowDefines -DXWIN_MULTIWINDOW 399#else 400# define XWinMultiWindowDefines 401#endif /* BuildXWinMultiWindow */ 402#if BuildXWinMultiWindowExtWM 403# define BuildRootless YES 404# define XWinMultiWindowExtWMDefines -DXWIN_MULTIWINDOWEXTWM 405#else /* BuildXWinMultiWindowExtWM */ 406# define XWinMultiWindowExtWMDefines 407#endif /* BuildXWinMultiWindowExtWM */ 408#if BuildXWinNativeGDI 409# define XWinNativeGDIDefines -DXWIN_NATIVEGDI 410#else 411# define XWinNativeGDIDefines 412#endif /* BuildXWinNativeGDI */ 413#if BuildXWinPrimaryFB 414# define XWinPrimaryFBDefines -DXWIN_PRIMARYFB 415#else 416# define XWinPrimaryFBDefines 417#endif /* BuildXWinPrimaryFB */ 418#if BuildXWinUpdateStats 419# define XWinUpdateStatsDefines -DXWIN_UPDATESTATS 420#else 421# define XWinUpdateStatsDefines 422#endif /* BuildXWinUpdateStats */ 423#if BuildXWinXF86Config 424# define XWinXF86ConfigDefines -DXWIN_XF86CONFIG 425#else 426# define XWinXF86ConfigDefines 427#endif /* BuildXWinXF86Config */ 428 429#if HasPThreads 430# define XWinPThreadsDefines -DPTW32_DLLPORT= 431#else 432# define XWinPThreadsDefines 433#endif /* HasPThreads */ 434 435/* 436 * XFree86Server is defined for the w32api headers, which protects some 437 * colliding names with #ifdef XFree86Server. 438 */ 439#define XWinServerDefines -DPIXPRIV \ 440 -DXFree86Server \ 441 -DX_BYTE_ORDER=ByteOrder \ 442 XvExtensionDefines \ 443 XWinXF86ConfigDefines XWinNativeGDIDefines \ 444 XWinPrimaryFBDefines \ 445 XWinEmulatePseudoDefines \ 446 XWinUpdateStatsDefines \ 447 XWinClipboardDefines XWinMultiWindowDefines \ 448 XWinMultiWindowExtWMDefines \ 449 XWinPThreadsDefines \ 450 -DDDXBEFORERESET 451#define ServerOSDefines -DDDXTIME -DDDXOSINIT \ 452 -DDDXOSVERRORF -DDDXOSFATALERROR 453#define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT 454#define ServerExtraDefines -DGCCUSESGAS XWinServerDefines \ 455 AllocateLocalDefines 456#define ConnectionFlags -DTCPCONN 457#define ExtraLibraries 458#define InstUidFlags -m 4711 459#define UseRgbTxt YES 460#define ExtraFilesToClean *.obj *.orig *.rej junk.c *.exe *.dll *.lib *~ 461 462/* Flags for which the default in X11.tmpl is not what we want. */ 463#ifndef BuildXinerama 464# define BuildXinerama NO /* Not supported by XWin Server */ 465#endif 466#ifndef BuildXIE 467# define BuildXIE NO /* Deprecated */ 468#endif 469#ifndef BuildDPMS 470# define BuildDPMS NO /* Not supported by XWin Server */ 471#endif 472#ifndef BuildXInputExt 473# define BuildXInputExt YES /* Not enabled by default */ 474#endif 475#ifndef BuildRandR 476# define BuildRandR YES /* Not supported by XWin Server */ 477#endif 478#ifndef BuildXF86BigfontExt 479# define BuildXF86BigfontExt NO 480#endif 481#ifndef BuildGlxExt 482# define BuildGlxExt YES 483#endif 484#ifndef BuildXprintLib 485# define BuildXprintLib NO 486#endif 487#ifndef BuildXprint 488# define BuildXprint NO 489#endif 490#ifndef BuildXterm 491# define BuildXterm NO /* Built separately on Cygwin */ 492#endif 493#ifndef BuildXResExt 494# define BuildXResExt YES /* Not enabled by default */ 495#endif 496#ifndef BuildFreeType 497# define BuildFreeType YES /* Not enabled by default */ 498#endif 499#ifndef BuildXTrueType 500# define BuildXTrueType YES /* Not enabled by default */ 501#endif 502 503/* Server build rules */ 504#ifndef XnestServer 505# define XnestServer NO 506#endif 507#ifndef XprtServer 508# define XprtServer NO 509#endif 510#ifndef XVirtualFramebufferServer 511# define XVirtualFramebufferServer NO 512#endif 513#ifndef XWinServer 514# define XWinServer YES 515#endif 516 517/* 518 * --unix option of Cygwin make fools the standard MakeFlagsToShellFlags macro 519 */ 520#define MakeFlagsToShellFlags(makeflags,shellcmd) \ 521 for flag in ${MAKEFLAGS} ''; do \ @@\ 522 case "$$flag" in *=*) ;;--*) ;; *[makeflags]*) shellcmd;; esac; done 523 524#define MakeNamedTargetSubdir(dir,flags,subname)\ 525 $(MAKE) -C dir $(MFLAGS) $(PARALLELMFLAGS) flags subname 526 527#ifndef ManSuffix 528# define ManSuffix 1 529#endif 530 531#ifndef XtransFailSoft 532#define XtransFailSoft YES 533#endif 534 535#ifndef HasDevWindows 536# define HasDevWindows NO 537#endif 538 539#ifndef RelocateProjectRoot 540# define RelocateProjectRoot YES 541#endif 542 543#ifndef UseInstalledOnCrossCompile 544# define UseInstalledOnCrossCompile YES 545#endif 546 547#include <mingw.rules> 548 549#if CrossCompiling 550#include <cross.def> 551#endif 552