1XCOMM $Xorg: Threads.tmpl,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
2
3
4
5XCOMM $XFree86: xc/config/cf/Threads.tmpl,v 3.3tsi Exp $
6
7/*
8 * For a multi-threaded application or library,
9 * Define LocalThreadsDefines in your Imakefile (unless you like the
10 * project default), then include this file.
11 * Everything else should be automatic.
12 */
13
14#ifndef LocalThreadsDefines
15#ifdef ProjectThreadsDefines
16#define LocalThreadsDefines ProjectThreadsDefines
17#else
18#define LocalThreadsDefines /**/
19#endif
20#endif
21
22#ifndef LocalThreads
23#ifdef ThreadedProject
24#define LocalThreads ThreadedProject
25#else
26#define LocalThreads YES
27#endif
28#endif
29
30#ifndef HasCThreads
31#define HasCThreads NO
32#endif
33
34#ifndef ThreadTypeDefines
35#if HasCThreads
36#define ThreadTypeDefines -DCTHREADS
37#else
38#define ThreadTypeDefines /**/
39#endif
40#endif
41#ifndef SystemMTDefines
42#define SystemMTDefines /**/
43#endif
44#ifndef LibraryMTDefines
45#define LibraryMTDefines /**/
46#endif
47#ifndef HasThreadSafeAPI		/* does it have getpwnam_r, etc. */
48#define HasThreadSafeAPI YES
49#endif
50#ifndef MTSafeAPIDefines
51#if HasThreadSafeAPI
52#define MTSafeAPIDefines -DXUSE_MTSAFE_API
53#else
54#define MTSafeAPIDefines /**/
55#endif
56#endif
57#ifndef ThreadPreStdAPIDefines
58#define ThreadPreStdAPIDefines /* nominally for POSIX P1003.4a (Draft 4) API */
59#endif
60#ifndef CplusplusSystemMTDefines
61# ifdef SystemMTDefines
62#  define CplusplusSystemMTDefines SystemMTDefines
63# else
64#  define CplusplusSystemMTDefines /**/
65# endif
66#endif
67#ifndef ThreadsCompileFlags
68#define ThreadsCompileFlags /**/
69#endif
70#ifndef ThreadsCplusplusCompileFlags
71# ifdef ThreadsCompileFlags
72#  define ThreadsCplusplusCompileFlags ThreadsCompileFlags
73# else
74#  define ThreadsCplusplusCompileFlags /**/
75# endif
76#endif
77
78#ifndef ThreadsLibraries
79#define ThreadsLibraries /**/
80#endif
81#ifndef ThreadsCplusplusLibraries
82# ifdef ThreadsLibraries
83#  define ThreadsCplusplusLibraries ThreadsLibraries
84# else
85#  define ThreadsCplusplusLibraries /**/
86# endif
87#endif
88#ifndef ThreadsLoadFlags
89#define ThreadsLoadFlags ThreadsCompileFlags
90#endif
91#ifndef ThreadsCplusplusLoadFlags
92#define ThreadsCplusplusLoadFlags ThreadsCplusplusCompileFlags
93#endif
94
95#if LocalThreads
96    THREADS_CFLAGS = ThreadsCompileFlags
97   THREADS_DEFINES = LocalThreadsDefines ThreadTypeDefines SystemMTDefines MTSafeAPIDefines ThreadPreStdAPIDefines $(LIB_MT_DEFINES)
98   THREADS_LDFLAGS = ThreadsLoadFlags
99      THREADS_LIBS = ThreadsLibraries
100
101  THREADS_CXXFLAGS = ThreadsCplusplusCompileFlags
102THREADS_CXXDEFINES = LocalThreadsDefines ThreadTypeDefines CplusplusSystemMTDefines MTSafeAPIDefines ThreadPreStdAPIDefines $(LIB_MT_DEFINES)
103THREADS_CXXLDFLAGS = ThreadsCplusplusLoadFlags
104   THREADS_CXXLIBS = ThreadsCplusplusLibraries
105#endif
106