cygwin.cf revision 11d341ca
1/* Cygwin/X 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 "Cygwin/X"
43#endif
44#ifndef XVendorContact
45# define XVendorContact "cygwin-xfree@cygwin.com"
46#endif
47
48/* Operating system strings and version */
49#ifndef OSName
50# define OSName			Cygwin
51#endif
52#ifndef OSVendor
53# define OSVendor		Red Hat Inc.
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#if !CrossCompiling
70# define HasGcc2		YES
71#endif /* !CrossCompiling */
72#define HasGcc2ForCplusplus	YES
73#define GccUsesGas		YES
74#define UseGas			YES
75#define GnuCpp			YES
76#define UnixCpp /* Just a flag that affects Concat macros in Imake.rules */
77
78#define ExtraLoadFlags		-Wl,--enable-auto-import,--enable-runtime-pseudo-reloc
79
80#define HasShadowPasswd		NO
81#define HasLibCrypt		YES
82#define HasPutenv		YES
83#define HasPoll			NO
84#if (OSMajorVersion > 1) || (OSMajorVersion == 1 && OSMinorVersion >= 5)
85# define HasStrlcat		YES
86#endif
87#define HasShm			YES
88
89#define HasSnprintf		YES
90#ifndef HasMakefileSafeInclude
91# define HasMakefileSafeInclude YES
92#endif
93
94/*
95 * Cygwin has Tcl/Tk, but you need to keep the version numbers
96 * of the libs in sync.  These version numbers may change
97 * occassionally.
98 */
99#define Hastcl			YES
100#define Hastk			YES
101#define TclLibName		tcl80
102#define TkLibName		tk80
103
104#define HasSockets		YES
105#define GzipFontCompression	YES
106#define HasZlib			YES
107#ifndef GzipLibrary
108# define GzipLibrary		-lz.dll
109#endif
110
111/* We don't need -lm */
112#define MathLibrary		/**/
113
114/*
115 * /lib/libtermcap.a doesn't have tgetent, which is needed for
116 * xc/programs/xterm/resize.exe
117 */
118#define TermcapLibrary		-lncurses.dll
119
120#define AvoidNullMakeCommand	YES
121#define StripInstalledPrograms	YES
122#define CompressAllFonts	YES
123#define Malloc0ReturnsNull	NO
124#define NeedConstPrototypes	YES
125#define NeedFunctionPrototypes	YES
126#define NeedNestedPrototypes	YES
127#define NeedVarargsPrototypes	YES
128#define NeedWidePrototypes	NO
129#define SetTtyGroup		YES
130#define ExpandManNames		YES
131#define HasDlopen		NO
132#define HasGnuMake		YES
133#define UseGccMakeDepend	NO
134#define ThreadedX		YES
135#define HasThreadSafeAPI	YES
136#if !CrossCompiling
137#define CaseSensitiveFileSystem	NO
138#endif
139#define HasWChar32		YES
140#define HasBasename		NO /* basename() in libc */
141
142#define LnCmd			ln -s
143#ifndef CcCmd
144# define CcCmd			gcc
145#endif /* CcCmd */
146#ifndef CplusplusCmd
147# define CplusplusCmd		g++
148#endif /* CplusplusCmd */
149#ifndef AsCmd
150# define AsCmd			as
151#endif /* AsCmd */
152
153#define GccGasOption		-DGCCUSESGAS
154#define AsmDefines		-DUSE_GAS -DGCCUSESGAS
155
156#ifndef LdCmd
157# define LdCmd			gcc -lautomode
158#endif /* LdCmd */
159
160#define MkdirHierCmd		mkdir -p
161
162#ifndef CppCmd
163# define CppCmd			cpp
164#endif /* CppCmd */
165#ifndef YaccCmd
166# define YaccCmd		bison -y
167#endif /* YaccCmd */
168
169#define LexCmd			flex -l
170#define LexLib			-lfl
171#define HasFlex			YES
172#ifndef CrossCompileDir
173# ifndef HasExpat
174#  define HasExpat		YES
175# endif
176# ifndef HasFreetype2
177#  define HasFreetype2		YES
178# endif
179# ifndef HasFontconfig
180#  define HasFontconfig		YES
181# endif
182#endif
183
184/* Cygwin-specific Windows resource compiler command */
185#ifdef CrossCompileDir
186# ifndef WindresCmd
187#  define WindresCmd		Concat3(CrossCompileDir,/,windres)
188# endif
189#else
190# ifndef WindresCmd
191#  define WindresCmd		windres
192# endif
193#endif
194
195#define PreProcessCmd		CcCmd -E
196
197#ifndef PostIncDir
198# ifdef CrossCompileDir
199#  define PostIncDir		`CrossCompileDir/CcCmd --print-libgcc-file-name | sed 's,\\\\,/,g' | sed 's,libgcc.a,include,'`
200# else
201#  define PostIncDir		`CcCmd --print-libgcc-file-name | sed 's,\\\\,/,g' | sed 's,libgcc.a,include,'`
202# endif
203#endif
204#ifndef ExtraIncDir
205# ifdef CrossCompileDir
206#  define ExtraIncDir		CrossCompileDir/../include/w32api
207# else
208#  define ExtraIncDir		/usr/include/w32api
209# endif
210#endif
211
212#ifndef BourneShell
213/*
214 * This will cause builds/installs to terminate on errors, as on other
215 * platforms.
216 */
217#define BourneShell		/bin/sh -e
218#endif
219
220#define LdCombineFlags		-r
221
222#ifndef DefaultCCOptions
223# define DefaultCCOptions	-Wall -Wpointer-arith
224#endif
225
226/* Cygwin 1.5.x now includes alloca */
227#if OSMinorVersion >= 5
228# define AllocateLocalDefines	-DINCLUDE_ALLOCA_H
229#else
230# define AllocateLocalDefines	-DNO_ALLOCA
231#endif
232
233#ifndef OptimizedCDebugFlags
234# define OptimizedCDebugFlags	-O2 -fno-strength-reduce
235#endif
236
237/*
238 * -DFD_SETSIZE=256 is needed for xfs and the xserver. cygwin defines the
239 * FD_SETSIZE as 64 but some code expects it to be larger. 
240 */ 
241#define StandardDefines		-D__i386__ -DWIN32_LEAN_AND_MEAN -DX_LOCALE \
242				-D_X86_ -D__CYGWIN__ -D_XOPEN_SOURCE \
243				-D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE \
244				-D_SVID_SOURCE -D_GNU_SOURCE -DFD_SETSIZE=256 \
245				-DXResExtension
246#define XawI18nDefines		-DHAS_WCHAR_H -DHAS_WCTYPE_H \
247				-DHAS_ISW_FUNCS -DNO_WIDEC_H
248#define StandardCppOptions	-traditional
249
250/* Cygwin shared memory requires cygipc package or cygserver. */
251#if UseCygIPC
252# if ThreadedX
253#  define StandardCppDefines	-DHAS_THREADS -DHAS_SHM StandardDefines
254# else
255#  define StandardCppDefines	-DHAS_SHM StandardDefines
256# endif
257#else
258# if ThreadedX
259#  define StandardCppDefines	-DHAS_THREADS StandardDefines
260# else
261#  define StandardCppDefines	StandardDefines
262# endif
263#endif
264
265/* IPv6 not yet supported */
266#ifndef BuildIPv6
267# define BuildIPv6		NO
268#endif
269
270#if 0
271/* 2004/02/29 - Harold - This doesn't do anything yet.  Stay tuned. */
272/* Support for accelerating OpenGL with Win32's OpenGL layer. */
273#ifndef BuildXWinDRI
274# define BuildXWinDRI		NO
275#endif
276#if BuildXWinDRI
277# define GlxExtraDefines	-DGLX_DIRECT_RENDERING GlxArchDefines
278#endif
279#endif
280
281/* XWin Server specific build flags */
282#ifndef GlxUseWindows
283# define GlxUseWindows		YES
284#endif
285#ifndef BuildXWinClipboard
286# define BuildXWinClipboard	YES
287#endif
288#ifndef BuildXWinEmulatePseudo
289# define BuildXWinEmulatePseudo	NO
290#endif
291#ifndef BuildXWinMultiWindow
292# define BuildXWinMultiWindow	YES
293#endif
294#ifndef BuildXWinMultiWindowExtWM
295# define BuildXWinMultiWindowExtWM YES
296#endif
297#ifndef BuildXWinNativeGDI
298# define BuildXWinNativeGDI	NO
299#endif
300#ifndef BuildXWinPrimaryFB
301# define BuildXWinPrimaryFB	NO
302#endif
303#ifndef BuildXWinUpdateStats
304# define BuildXWinUpdateStats	NO
305#endif
306#ifndef BuildXWinXF86Config
307# define BuildXWinXF86Config	NO
308#endif
309
310/* XWin specific build flags - 1st order dependency */
311#if BuildXWinMultiWindowExtWM && !defined(BuildWindowsWMLibrary)
312# define BuildWindowsWMLibrary	YES
313#elif !defined(BuildWindowsWMLibrary)
314# define BuildWindowsWMLibrary	NO
315#endif /* BuildXWinMultiWindowExtWM && BuildWindowsWMLibrary */
316
317/* XWin Server specific defines */
318#if BuildXWinClipboard
319# define XWinClipboardDefines	-DXWIN_CLIPBOARD
320#else
321# define XWinClipboardDefines 
322#endif /* BuildXWinClipboard */
323#if BuildXWinEmulatePseudo
324# define XWinEmulatePseudoDefines -DXWIN_EMULATEPSEUDO
325#else
326# define XWinEmulatePseudoDefines 
327#endif /* BuildXWinEmulatePseudo */
328#if BuildXWinMultiWindow
329# define XWinMultiWindowDefines	-DXWIN_MULTIWINDOW
330#else
331# define XWinMultiWindowDefines 
332#endif /* BuildXWinMultiWindow */
333#if BuildXWinMultiWindowExtWM
334# define BuildRootless		YES
335# define XWinMultiWindowExtWMDefines -DXWIN_MULTIWINDOWEXTWM
336#else /* BuildXWinMultiWindowExtWM */
337# define XWinMultiWindowExtWMDefines 
338#endif /* BuildXWinMultiWindowExtWM */
339#if BuildXWinNativeGDI
340# define XWinNativeGDIDefines	-DXWIN_NATIVEGDI
341#else
342# define XWinNativeGDIDefines 
343#endif /* BuildXWinNativeGDI */
344#if BuildXWinPrimaryFB
345# define XWinPrimaryFBDefines	-DXWIN_PRIMARYFB
346#else
347# define XWinPrimaryFBDefines 
348#endif /* BuildXWinPrimaryFB */
349#if BuildXWinUpdateStats
350# define XWinUpdateStatsDefines	-DXWIN_UPDATESTATS
351#else
352# define XWinUpdateStatsDefines 
353#endif /* BuildXWinUpdateStats */
354#if BuildXWinXF86Config
355# define XWinXF86ConfigDefines	-DXWIN_XF86CONFIG
356#else
357# define XWinXF86ConfigDefines 
358#endif /* BuildXWinXF86Config */
359
360/*
361 * XFree86Server is defined for the w32api headers, which protects some
362 * colliding names with #ifdef XFree86Server.
363 */
364#define XWinServerDefines	-DPIXPRIV \
365				-DXFree86Server \
366				-DX_BYTE_ORDER=ByteOrder \
367				XvExtensionDefines \
368				XWinXF86ConfigDefines XWinNativeGDIDefines \
369				XWinPrimaryFBDefines \
370				XWinEmulatePseudoDefines \
371				XWinUpdateStatsDefines \
372				XWinClipboardDefines XWinMultiWindowDefines \
373				XWinMultiWindowExtWMDefines \
374				-DDDXBEFORERESET
375#define ServerOSDefines		-DDDXTIME -DDDXOSINIT \
376				-DDDXOSVERRORF -DDDXOSFATALERROR
377#define XkbServerDefines	-DXKB_ALWAYS_USES_SOFT_REPEAT
378#define ServerExtraDefines	-DGCCUSESGAS XWinServerDefines \
379				AllocateLocalDefines
380#define ConnectionFlags		-DTCPCONN -DUNIXCONN
381#define ExtraLibraries 
382#define InstUidFlags		-m 4711
383#define UseRgbTxt		YES
384#define ExtraFilesToClean	*.obj *.orig *.rej junk.c *.exe *.dll *.lib *~
385
386/* Flags for which the default in X11.tmpl is not what we want. */
387#ifndef BuildXinerama
388# define BuildXinerama		NO	/* Not supported by XWin Server */
389#endif
390#ifndef BuildXIE
391# define BuildXIE		NO	/* Deprecated */
392#endif
393#ifndef BuildDPMS
394# define BuildDPMS		NO	/* Not supported by XWin Server */
395#endif
396#ifndef BuildXInputExt
397# define BuildXInputExt		YES	/* Not enabled by default */
398#endif
399#ifndef BuildRandR
400# define BuildRandR		YES	/* Not supported by XWin Server */
401#endif
402#ifndef BuildXF86BigfontExt
403# define BuildXF86BigfontExt	YES	/* Not enabled by default */
404#endif
405#ifndef BuildGlxExt
406# define BuildGlxExt		YES	/* Not enabled by default */
407#endif
408#ifndef BuildXprintLib
409# define BuildXprintLib		YES     /* Not enabled when Xprt disabled */
410#endif
411#ifndef BuildXterm
412# define BuildXterm		NO	/* Built separately on Cygwin */
413#endif
414#ifndef BuildXResExt
415# define BuildXResExt		YES	/* Not enabled by default */
416#endif
417#ifndef BuildFreeType
418# define BuildFreeType		YES	/* Not enabled by default */
419#endif
420#ifndef BuildXTrueType
421# define BuildXTrueType		YES	/* Not enabled by default */
422#endif
423
424/* Server build rules */
425#ifndef XnestServer
426# define XnestServer		YES
427#endif
428#ifndef XprtServer
429# define XprtServer		NO
430#endif
431#ifndef XVirtualFramebufferServer
432# define XVirtualFramebufferServer YES
433#endif
434#ifndef XWinServer
435# define XWinServer		YES
436#endif
437
438/* We need libX11 and libXext for the XWin Server */
439#if XWinServer
440# define BuildX11Lib		YES
441#endif
442
443/*
444 * --unix option of Cygwin make fools the standard MakeFlagsToShellFlags macro
445 */
446#define MakeFlagsToShellFlags(makeflags,shellcmd) \
447	for flag in ${MAKEFLAGS} ''; do \				@@\
448	  case "$$flag" in *=*) ;;--*) ;; *[makeflags]*) shellcmd;; esac; done
449
450#define MakeNamedTargetSubdir(dir,flags,subname)\
451	$(MAKE) -C dir $(MFLAGS) $(PARALLELMFLAGS) flags subname
452
453#ifndef ManSuffix
454# define ManSuffix	1
455#endif
456
457#ifndef XtransFailSoft
458#define XtransFailSoft		YES
459#endif
460
461#ifndef HasDevWindows
462# define HasDevWindows		YES
463#endif
464
465#include <cygwin.rules>
466
467#if CrossCompiling
468#include <cross.def>
469#endif
470