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