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