111d341caSmrgXCOMM $Xorg: Threads.tmpl,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
211d341caSmrg
311d341caSmrg
411d341caSmrg
511d341caSmrgXCOMM $XFree86: xc/config/cf/Threads.tmpl,v 3.3tsi Exp $
611d341caSmrg
711d341caSmrg/*
811d341caSmrg * For a multi-threaded application or library,
911d341caSmrg * Define LocalThreadsDefines in your Imakefile (unless you like the
1011d341caSmrg * project default), then include this file.
111c80d5b0Smrg * Everything else should be automatic.
1211d341caSmrg */
1311d341caSmrg
1411d341caSmrg#ifndef LocalThreadsDefines
1511d341caSmrg#ifdef ProjectThreadsDefines
1611d341caSmrg#define LocalThreadsDefines ProjectThreadsDefines
1711d341caSmrg#else
1811d341caSmrg#define LocalThreadsDefines /**/
1911d341caSmrg#endif
2011d341caSmrg#endif
2111d341caSmrg
2211d341caSmrg#ifndef LocalThreads
2311d341caSmrg#ifdef ThreadedProject
2411d341caSmrg#define LocalThreads ThreadedProject
2511d341caSmrg#else
2611d341caSmrg#define LocalThreads YES
2711d341caSmrg#endif
2811d341caSmrg#endif
2911d341caSmrg
3011d341caSmrg#ifndef HasCThreads
3111d341caSmrg#define HasCThreads NO
3211d341caSmrg#endif
3311d341caSmrg
3411d341caSmrg#ifndef ThreadTypeDefines
3511d341caSmrg#if HasCThreads
3611d341caSmrg#define ThreadTypeDefines -DCTHREADS
3711d341caSmrg#else
3811d341caSmrg#define ThreadTypeDefines /**/
3911d341caSmrg#endif
4011d341caSmrg#endif
4111d341caSmrg#ifndef SystemMTDefines
4211d341caSmrg#define SystemMTDefines /**/
4311d341caSmrg#endif
4411d341caSmrg#ifndef LibraryMTDefines
4511d341caSmrg#define LibraryMTDefines /**/
4611d341caSmrg#endif
4711d341caSmrg#ifndef HasThreadSafeAPI		/* does it have getpwnam_r, etc. */
4811d341caSmrg#define HasThreadSafeAPI YES
4911d341caSmrg#endif
5011d341caSmrg#ifndef MTSafeAPIDefines
5111d341caSmrg#if HasThreadSafeAPI
5211d341caSmrg#define MTSafeAPIDefines -DXUSE_MTSAFE_API
5311d341caSmrg#else
5411d341caSmrg#define MTSafeAPIDefines /**/
5511d341caSmrg#endif
5611d341caSmrg#endif
5711d341caSmrg#ifndef ThreadPreStdAPIDefines
5811d341caSmrg#define ThreadPreStdAPIDefines /* nominally for POSIX P1003.4a (Draft 4) API */
5911d341caSmrg#endif
6011d341caSmrg#ifndef CplusplusSystemMTDefines
6111d341caSmrg# ifdef SystemMTDefines
6211d341caSmrg#  define CplusplusSystemMTDefines SystemMTDefines
6311d341caSmrg# else
6411d341caSmrg#  define CplusplusSystemMTDefines /**/
6511d341caSmrg# endif
6611d341caSmrg#endif
6711d341caSmrg#ifndef ThreadsCompileFlags
6811d341caSmrg#define ThreadsCompileFlags /**/
6911d341caSmrg#endif
7011d341caSmrg#ifndef ThreadsCplusplusCompileFlags
7111d341caSmrg# ifdef ThreadsCompileFlags
7211d341caSmrg#  define ThreadsCplusplusCompileFlags ThreadsCompileFlags
7311d341caSmrg# else
7411d341caSmrg#  define ThreadsCplusplusCompileFlags /**/
7511d341caSmrg# endif
7611d341caSmrg#endif
7711d341caSmrg
7811d341caSmrg#ifndef ThreadsLibraries
7911d341caSmrg#define ThreadsLibraries /**/
8011d341caSmrg#endif
8111d341caSmrg#ifndef ThreadsCplusplusLibraries
8211d341caSmrg# ifdef ThreadsLibraries
8311d341caSmrg#  define ThreadsCplusplusLibraries ThreadsLibraries
8411d341caSmrg# else
8511d341caSmrg#  define ThreadsCplusplusLibraries /**/
8611d341caSmrg# endif
8711d341caSmrg#endif
8811d341caSmrg#ifndef ThreadsLoadFlags
8911d341caSmrg#define ThreadsLoadFlags ThreadsCompileFlags
9011d341caSmrg#endif
9111d341caSmrg#ifndef ThreadsCplusplusLoadFlags
9211d341caSmrg#define ThreadsCplusplusLoadFlags ThreadsCplusplusCompileFlags
9311d341caSmrg#endif
9411d341caSmrg
9511d341caSmrg#if LocalThreads
9611d341caSmrg    THREADS_CFLAGS = ThreadsCompileFlags
9711d341caSmrg   THREADS_DEFINES = LocalThreadsDefines ThreadTypeDefines SystemMTDefines MTSafeAPIDefines ThreadPreStdAPIDefines $(LIB_MT_DEFINES)
9811d341caSmrg   THREADS_LDFLAGS = ThreadsLoadFlags
9911d341caSmrg      THREADS_LIBS = ThreadsLibraries
10011d341caSmrg
10111d341caSmrg  THREADS_CXXFLAGS = ThreadsCplusplusCompileFlags
10211d341caSmrgTHREADS_CXXDEFINES = LocalThreadsDefines ThreadTypeDefines CplusplusSystemMTDefines MTSafeAPIDefines ThreadPreStdAPIDefines $(LIB_MT_DEFINES)
10311d341caSmrgTHREADS_CXXLDFLAGS = ThreadsCplusplusLoadFlags
10411d341caSmrg   THREADS_CXXLIBS = ThreadsCplusplusLibraries
10511d341caSmrg#endif
106