515 lines
15 KiB
Makefile
515 lines
15 KiB
Makefile
# This makefile is compatible with MS nmake and can be used as a
|
|
# replacement for buildlib.bat. I've changed the target from an ordinary dll
|
|
# (/LD) to a debugging dll (/LDd).
|
|
#
|
|
# The variables $DLLDEST and $LIBDEST hold the destination directories for the
|
|
# dll and the lib, respectively. Probably all that needs to change is $DEVROOT.
|
|
|
|
|
|
# DLL_VER:
|
|
# See pthread.h and README - This number is computed as 'current - age'
|
|
DLL_VER = 2
|
|
DLL_VERD= $(DLL_VER)d
|
|
|
|
DEVROOT = C:\pthreads
|
|
|
|
DLLDEST = $(DEVROOT)\dll
|
|
LIBDEST = $(DEVROOT)\lib
|
|
HDRDEST = $(DEVROOT)\include
|
|
|
|
DLLS = pthreadVCE$(DLL_VER).dll pthreadVSE$(DLL_VER).dll pthreadVC$(DLL_VER).dll \
|
|
pthreadVCE$(DLL_VERD).dll pthreadVSE$(DLL_VERD).dll pthreadVC$(DLL_VERD).dll
|
|
INLINED_STAMPS = pthreadVCE$(DLL_VER).stamp pthreadVSE$(DLL_VER).stamp pthreadVC$(DLL_VER).stamp \
|
|
pthreadVCE$(DLL_VERD).stamp pthreadVSE$(DLL_VERD).stamp pthreadVC$(DLL_VERD).stamp
|
|
STATIC_STAMPS = pthreadVCE$(DLL_VER).static pthreadVSE$(DLL_VER).static pthreadVC$(DLL_VER).static \
|
|
pthreadVCE$(DLL_VERD).static pthreadVSE$(DLL_VERD).static pthreadVC$(DLL_VERD).static
|
|
|
|
CC = cl
|
|
CPPFLAGS = /I. /DHAVE_PTW32_CONFIG_H
|
|
XCFLAGS = /W3 /MD /nologo
|
|
CFLAGS = /O2 /Ob2 $(XCFLAGS)
|
|
CFLAGSD = /Z7 $(XCFLAGS)
|
|
|
|
# Uncomment this if config.h defines RETAIN_WSALASTERROR
|
|
#XLIBS = wsock32.lib
|
|
|
|
# Default cleanup style
|
|
CLEANUP = __CLEANUP_C
|
|
|
|
# C++ Exceptions
|
|
VCEFLAGS = /EHsc /TP $(CPPFLAGS) $(CFLAGS)
|
|
VCEFLAGSD = /EHsc /TP $(CPPFLAGS) $(CFLAGSD)
|
|
#Structured Exceptions
|
|
VSEFLAGS = $(CPPFLAGS) $(CFLAGS)
|
|
VSEFLAGSD = $(CPPFLAGS) $(CFLAGSD)
|
|
#C cleanup code
|
|
VCFLAGS = $(CPPFLAGS) $(CFLAGS)
|
|
VCFLAGSD = $(CPPFLAGS) $(CFLAGSD)
|
|
|
|
DLL_INLINED_OBJS = \
|
|
pthread.obj \
|
|
version.res
|
|
|
|
# Aggregate modules for inlinability
|
|
DLL_OBJS = \
|
|
attr.obj \
|
|
barrier.obj \
|
|
cancel.obj \
|
|
cleanup.obj \
|
|
condvar.obj \
|
|
create.obj \
|
|
dll.obj \
|
|
autostatic.obj \
|
|
errno.obj \
|
|
exit.obj \
|
|
fork.obj \
|
|
global.obj \
|
|
misc.obj \
|
|
mutex.obj \
|
|
nonportable.obj \
|
|
private.obj \
|
|
rwlock.obj \
|
|
sched.obj \
|
|
semaphore.obj \
|
|
signal.obj \
|
|
spin.obj \
|
|
sync.obj \
|
|
tsd.obj \
|
|
version.res
|
|
|
|
# Separate modules for minimising the size of statically linked images
|
|
SMALL_STATIC_OBJS = \
|
|
pthread_attr_init.obj \
|
|
pthread_attr_destroy.obj \
|
|
pthread_attr_getdetachstate.obj \
|
|
pthread_attr_setdetachstate.obj \
|
|
pthread_attr_getstackaddr.obj \
|
|
pthread_attr_setstackaddr.obj \
|
|
pthread_attr_getstacksize.obj \
|
|
pthread_attr_setstacksize.obj \
|
|
pthread_attr_getscope.obj \
|
|
pthread_attr_setscope.obj \
|
|
pthread_attr_setschedpolicy.obj \
|
|
pthread_attr_getschedpolicy.obj \
|
|
pthread_attr_setschedparam.obj \
|
|
pthread_attr_getschedparam.obj \
|
|
pthread_attr_setinheritsched.obj \
|
|
pthread_attr_getinheritsched.obj \
|
|
pthread_barrier_init.obj \
|
|
pthread_barrier_destroy.obj \
|
|
pthread_barrier_wait.obj \
|
|
pthread_barrierattr_init.obj \
|
|
pthread_barrierattr_destroy.obj \
|
|
pthread_barrierattr_setpshared.obj \
|
|
pthread_barrierattr_getpshared.obj \
|
|
pthread_setcancelstate.obj \
|
|
pthread_setcanceltype.obj \
|
|
pthread_testcancel.obj \
|
|
pthread_cancel.obj \
|
|
cleanup.obj \
|
|
pthread_condattr_destroy.obj \
|
|
pthread_condattr_getpshared.obj \
|
|
pthread_condattr_init.obj \
|
|
pthread_condattr_setpshared.obj \
|
|
pthread_cond_destroy.obj \
|
|
pthread_cond_init.obj \
|
|
pthread_cond_signal.obj \
|
|
pthread_cond_wait.obj \
|
|
create.obj \
|
|
dll.obj \
|
|
autostatic.obj \
|
|
errno.obj \
|
|
pthread_exit.obj \
|
|
fork.obj \
|
|
global.obj \
|
|
pthread_mutex_init.obj \
|
|
pthread_mutex_destroy.obj \
|
|
pthread_mutexattr_init.obj \
|
|
pthread_mutexattr_destroy.obj \
|
|
pthread_mutexattr_getpshared.obj \
|
|
pthread_mutexattr_setpshared.obj \
|
|
pthread_mutexattr_settype.obj \
|
|
pthread_mutexattr_gettype.obj \
|
|
pthread_mutexattr_setrobust.obj \
|
|
pthread_mutexattr_getrobust.obj \
|
|
pthread_mutex_lock.obj \
|
|
pthread_mutex_timedlock.obj \
|
|
pthread_mutex_unlock.obj \
|
|
pthread_mutex_trylock.obj \
|
|
pthread_mutex_consistent.obj \
|
|
pthread_mutexattr_setkind_np.obj \
|
|
pthread_mutexattr_getkind_np.obj \
|
|
pthread_getw32threadhandle_np.obj \
|
|
pthread_getunique_np.obj \
|
|
pthread_delay_np.obj \
|
|
pthread_num_processors_np.obj \
|
|
pthread_win32_attach_detach_np.obj \
|
|
pthread_equal.obj \
|
|
pthread_getconcurrency.obj \
|
|
pthread_once.obj \
|
|
pthread_self.obj \
|
|
pthread_setconcurrency.obj \
|
|
pthread_rwlock_init.obj \
|
|
pthread_rwlock_destroy.obj \
|
|
pthread_rwlockattr_init.obj \
|
|
pthread_rwlockattr_destroy.obj \
|
|
pthread_rwlockattr_getpshared.obj \
|
|
pthread_rwlockattr_setpshared.obj \
|
|
pthread_rwlock_rdlock.obj \
|
|
pthread_rwlock_wrlock.obj \
|
|
pthread_rwlock_unlock.obj \
|
|
pthread_rwlock_tryrdlock.obj \
|
|
pthread_rwlock_trywrlock.obj \
|
|
pthread_setschedparam.obj \
|
|
pthread_getschedparam.obj \
|
|
pthread_timechange_handler_np.obj \
|
|
ptw32_is_attr.obj \
|
|
ptw32_processInitialize.obj \
|
|
ptw32_processTerminate.obj \
|
|
ptw32_threadStart.obj \
|
|
ptw32_threadDestroy.obj \
|
|
ptw32_tkAssocCreate.obj \
|
|
ptw32_tkAssocDestroy.obj \
|
|
ptw32_callUserDestroyRoutines.obj \
|
|
ptw32_timespec.obj \
|
|
ptw32_throw.obj \
|
|
ptw32_getprocessors.obj \
|
|
ptw32_calloc.obj \
|
|
ptw32_new.obj \
|
|
ptw32_reuse.obj \
|
|
ptw32_rwlock_check_need_init.obj \
|
|
ptw32_cond_check_need_init.obj \
|
|
ptw32_mutex_check_need_init.obj \
|
|
ptw32_semwait.obj \
|
|
ptw32_relmillisecs.obj \
|
|
ptw32_MCS_lock.obj \
|
|
sched_get_priority_max.obj \
|
|
sched_get_priority_min.obj \
|
|
sched_setscheduler.obj \
|
|
sched_getscheduler.obj \
|
|
sched_yield.obj \
|
|
sem_init.obj \
|
|
sem_destroy.obj \
|
|
sem_trywait.obj \
|
|
sem_timedwait.obj \
|
|
sem_wait.obj \
|
|
sem_post.obj \
|
|
sem_post_multiple.obj \
|
|
sem_getvalue.obj \
|
|
sem_open.obj \
|
|
sem_close.obj \
|
|
sem_unlink.obj \
|
|
signal.obj \
|
|
pthread_kill.obj \
|
|
ptw32_spinlock_check_need_init.obj \
|
|
pthread_spin_init.obj \
|
|
pthread_spin_destroy.obj \
|
|
pthread_spin_lock.obj \
|
|
pthread_spin_unlock.obj \
|
|
pthread_spin_trylock.obj \
|
|
pthread_detach.obj \
|
|
pthread_join.obj \
|
|
pthread_key_create.obj \
|
|
pthread_key_delete.obj \
|
|
pthread_setspecific.obj \
|
|
pthread_getspecific.obj \
|
|
w32_CancelableWait.obj \
|
|
version.res
|
|
|
|
INCL = config.h implement.h semaphore.h pthread.h need_errno.h
|
|
|
|
ATTR_SRCS = \
|
|
pthread_attr_init.c \
|
|
pthread_attr_destroy.c \
|
|
pthread_attr_getdetachstate.c \
|
|
pthread_attr_setdetachstate.c \
|
|
pthread_attr_getstackaddr.c \
|
|
pthread_attr_setstackaddr.c \
|
|
pthread_attr_getstacksize.c \
|
|
pthread_attr_setstacksize.c \
|
|
pthread_attr_getscope.c \
|
|
pthread_attr_setscope.c
|
|
|
|
BARRIER_SRCS = \
|
|
pthread_barrier_init.c \
|
|
pthread_barrier_destroy.c \
|
|
pthread_barrier_wait.c \
|
|
pthread_barrierattr_init.c \
|
|
pthread_barrierattr_destroy.c \
|
|
pthread_barrierattr_setpshared.c \
|
|
pthread_barrierattr_getpshared.c
|
|
|
|
CANCEL_SRCS = \
|
|
pthread_setcancelstate.c \
|
|
pthread_setcanceltype.c \
|
|
pthread_testcancel.c \
|
|
pthread_cancel.c
|
|
|
|
CONDVAR_SRCS = \
|
|
ptw32_cond_check_need_init.c \
|
|
pthread_condattr_destroy.c \
|
|
pthread_condattr_getpshared.c \
|
|
pthread_condattr_init.c \
|
|
pthread_condattr_setpshared.c \
|
|
pthread_cond_destroy.c \
|
|
pthread_cond_init.c \
|
|
pthread_cond_signal.c \
|
|
pthread_cond_wait.c
|
|
|
|
EXIT_SRCS = \
|
|
pthread_exit.c
|
|
|
|
MISC_SRCS = \
|
|
pthread_equal.c \
|
|
pthread_getconcurrency.c \
|
|
pthread_kill.c \
|
|
pthread_once.c \
|
|
pthread_self.c \
|
|
pthread_setconcurrency.c \
|
|
ptw32_calloc.c \
|
|
ptw32_MCS_lock.c \
|
|
ptw32_new.c \
|
|
ptw32_reuse.c \
|
|
ptw32_relmillisecs.c \
|
|
w32_CancelableWait.c
|
|
|
|
MUTEX_SRCS = \
|
|
ptw32_mutex_check_need_init.c \
|
|
pthread_mutex_init.c \
|
|
pthread_mutex_destroy.c \
|
|
pthread_mutexattr_init.c \
|
|
pthread_mutexattr_destroy.c \
|
|
pthread_mutexattr_getpshared.c \
|
|
pthread_mutexattr_setpshared.c \
|
|
pthread_mutexattr_settype.c \
|
|
pthread_mutexattr_gettype.c \
|
|
pthread_mutexattr_setrobust.c \
|
|
pthread_mutexattr_getrobust.c \
|
|
pthread_mutex_lock.c \
|
|
pthread_mutex_timedlock.c \
|
|
pthread_mutex_unlock.c \
|
|
pthread_mutex_trylock.c \
|
|
pthread_mutex_consistent.c
|
|
|
|
NONPORTABLE_SRCS = \
|
|
pthread_mutexattr_setkind_np.c \
|
|
pthread_mutexattr_getkind_np.c \
|
|
pthread_getw32threadhandle_np.c \
|
|
pthread_getunique_np.c \
|
|
pthread_delay_np.c \
|
|
pthread_num_processors_np.c \
|
|
pthread_win32_attach_detach_np.c \
|
|
pthread_timechange_handler_np.c
|
|
|
|
PRIVATE_SRCS = \
|
|
ptw32_is_attr.c \
|
|
ptw32_processInitialize.c \
|
|
ptw32_processTerminate.c \
|
|
ptw32_threadStart.c \
|
|
ptw32_threadDestroy.c \
|
|
ptw32_tkAssocCreate.c \
|
|
ptw32_tkAssocDestroy.c \
|
|
ptw32_callUserDestroyRoutines.c \
|
|
ptw32_semwait.c \
|
|
ptw32_timespec.c \
|
|
ptw32_throw.c \
|
|
ptw32_getprocessors.c
|
|
|
|
RWLOCK_SRCS = \
|
|
ptw32_rwlock_check_need_init.c \
|
|
ptw32_rwlock_cancelwrwait.c \
|
|
pthread_rwlock_init.c \
|
|
pthread_rwlock_destroy.c \
|
|
pthread_rwlockattr_init.c \
|
|
pthread_rwlockattr_destroy.c \
|
|
pthread_rwlockattr_getpshared.c \
|
|
pthread_rwlockattr_setpshared.c \
|
|
pthread_rwlock_rdlock.c \
|
|
pthread_rwlock_timedrdlock.c \
|
|
pthread_rwlock_wrlock.c \
|
|
pthread_rwlock_timedwrlock.c \
|
|
pthread_rwlock_unlock.c \
|
|
pthread_rwlock_tryrdlock.c \
|
|
pthread_rwlock_trywrlock.c
|
|
|
|
SCHED_SRCS = \
|
|
pthread_attr_setschedpolicy.c \
|
|
pthread_attr_getschedpolicy.c \
|
|
pthread_attr_setschedparam.c \
|
|
pthread_attr_getschedparam.c \
|
|
pthread_attr_setinheritsched.c \
|
|
pthread_attr_getinheritsched.c \
|
|
pthread_setschedparam.c \
|
|
pthread_getschedparam.c \
|
|
sched_get_priority_max.c \
|
|
sched_get_priority_min.c \
|
|
sched_setscheduler.c \
|
|
sched_getscheduler.c \
|
|
sched_yield.c
|
|
|
|
SEMAPHORE_SRCS = \
|
|
sem_init.c \
|
|
sem_destroy.c \
|
|
sem_trywait.c \
|
|
sem_timedwait.c \
|
|
sem_wait.c \
|
|
sem_post.c \
|
|
sem_post_multiple.c \
|
|
sem_getvalue.c \
|
|
sem_open.c \
|
|
sem_close.c \
|
|
sem_unlink.c
|
|
|
|
SPIN_SRCS = \
|
|
ptw32_spinlock_check_need_init.c \
|
|
pthread_spin_init.c \
|
|
pthread_spin_destroy.c \
|
|
pthread_spin_lock.c \
|
|
pthread_spin_unlock.c \
|
|
pthread_spin_trylock.c
|
|
|
|
SYNC_SRCS = \
|
|
pthread_detach.c \
|
|
pthread_join.c
|
|
|
|
TSD_SRCS = \
|
|
pthread_key_create.c \
|
|
pthread_key_delete.c \
|
|
pthread_setspecific.c \
|
|
pthread_getspecific.c
|
|
|
|
|
|
help:
|
|
@ echo Run one of the following command lines:
|
|
@ echo nmake clean VCE (to build the MSVC dll with C++ exception handling)
|
|
@ echo nmake clean VSE (to build the MSVC dll with structured exception handling)
|
|
@ echo nmake clean VC (to build the MSVC dll with C cleanup code)
|
|
@ echo nmake clean VCE-inlined (to build the MSVC inlined dll with C++ exception handling)
|
|
@ echo nmake clean VSE-inlined (to build the MSVC inlined dll with structured exception handling)
|
|
@ echo nmake clean VC-inlined (to build the MSVC inlined dll with C cleanup code)
|
|
@ echo nmake clean VC-static (to build the MSVC static lib with C cleanup code)
|
|
@ echo nmake clean VCE-debug (to build the debug MSVC dll with C++ exception handling)
|
|
@ echo nmake clean VSE-debug (to build the debug MSVC dll with structured exception handling)
|
|
@ echo nmake clean VC-debug (to build the debug MSVC dll with C cleanup code)
|
|
@ echo nmake clean VCE-inlined-debug (to build the debug MSVC inlined dll with C++ exception handling)
|
|
@ echo nmake clean VSE-inlined-debug (to build the debug MSVC inlined dll with structured exception handling)
|
|
@ echo nmake clean VC-inlined-debug (to build the debug MSVC inlined dll with C cleanup code)
|
|
@ echo nmake clean VC-static-debug (to build the debug MSVC static lib with C cleanup code)
|
|
|
|
all:
|
|
@ $(MAKE) /E clean VCE-inlined
|
|
@ $(MAKE) /E clean VSE-inlined
|
|
@ $(MAKE) /E clean VC-inlined
|
|
@ $(MAKE) /E clean VCE-inlined-debug
|
|
@ $(MAKE) /E clean VSE-inlined-debug
|
|
@ $(MAKE) /E clean VC-inlined-debug
|
|
|
|
VCE:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCEFLAGS)" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VER).dll
|
|
|
|
VCE-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCEFLAGSD)" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VERD).dll
|
|
|
|
VSE:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VSEFLAGS)" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VER).dll
|
|
|
|
VSE-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VSEFLAGSD)" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VERD).dll
|
|
|
|
VC:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGS)" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).dll
|
|
|
|
VC-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGSD)" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).dll
|
|
|
|
#
|
|
# The so-called inlined DLL is just a single translation unit with
|
|
# inlining optimisation turned on.
|
|
#
|
|
VCE-inlined:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCEFLAGS) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VER).stamp
|
|
|
|
VCE-inlined-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCEFLAGSD) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VERD).stamp
|
|
|
|
VSE-inlined:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VSEFLAGS) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VER).stamp
|
|
|
|
VSE-inlined-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VSEFLAGSD) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VERD).stamp
|
|
|
|
VC-inlined:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGS) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).stamp
|
|
|
|
VC-inlined-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGSD) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).stamp
|
|
|
|
VC-static:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGS) /DPTW32_BUILD_INLINED /DPTW32_STATIC_LIB" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).static
|
|
|
|
VC-static-debug:
|
|
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGSD) /DPTW32_BUILD_INLINED /DPTW32_STATIC_LIB" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).static
|
|
|
|
realclean: clean
|
|
if exist pthread*.dll del pthread*.dll
|
|
if exist pthread*.lib del pthread*.lib
|
|
if exist *.manifest del *.manifest
|
|
if exist *.stamp del *.stamp
|
|
|
|
clean:
|
|
if exist *.obj del *.obj
|
|
if exist *.def del *.def
|
|
if exist *.ilk del *.ilk
|
|
if exist *.pdb del *.pdb
|
|
if exist *.exp del *.exp
|
|
if exist *.map del *.map
|
|
if exist *.o del *.o
|
|
if exist *.i del *.i
|
|
if exist *.res del *.res
|
|
|
|
|
|
install:
|
|
copy pthread*.dll $(DLLDEST)
|
|
copy pthread*.lib $(LIBDEST)
|
|
copy pthread.h $(HDRDEST)
|
|
copy sched.h $(HDRDEST)
|
|
copy semaphore.h $(HDRDEST)
|
|
|
|
$(DLLS): $(DLL_OBJS)
|
|
$(CC) /LDd /Zi /nologo $(DLL_OBJS) /link /implib:$*.lib $(XLIBS) /out:$@
|
|
|
|
$(INLINED_STAMPS): $(DLL_INLINED_OBJS)
|
|
$(CC) /LDd /Zi /nologo $(DLL_INLINED_OBJS) /link /implib:$*.lib $(XLIBS) /out:$*.dll
|
|
|
|
$(STATIC_STAMPS): $(DLL_INLINED_OBJS)
|
|
if exist $*.lib del $*.lib
|
|
lib $(DLL_INLINED_OBJS) /out:$*.lib
|
|
|
|
.c.obj:
|
|
$(CC) $(EHFLAGS) /D$(CLEANUP) -c $<
|
|
|
|
# TARGET_CPU is an environment variable set by Visual Studio Command Prompt
|
|
# as provided by the SDK
|
|
.rc.res:
|
|
rc /dPTW32_ARCH$(TARGET_CPU) /dPTW32_RC_MSC /d$(CLEANUP) $<
|
|
|
|
.c.i:
|
|
$(CC) /P /O2 /Ob1 $(VCFLAGS) $<
|
|
|
|
attr.obj: attr.c $(ATTR_SRCS) $(INCL)
|
|
barrier.obj: barrier.c $(BARRIER_SRCS) $(INCL)
|
|
cancel.obj: cancel.c $(CANCEL_SRCS) $(INCL)
|
|
condvar.obj: condvar.c $(CONDVAR_SRCS) $(INCL)
|
|
exit.obj: exit.c $(EXIT_SRCS) $(INCL)
|
|
misc.obj: misc.c $(MISC_SRCS) $(INCL)
|
|
mutex.obj: mutex.c $(MUTEX_SRCS) $(INCL)
|
|
nonportable.obj: nonportable.c $(NONPORTABLE_SRCS) $(INCL)
|
|
private.obj: private.c $(PRIVATE_SRCS) $(INCL)
|
|
rwlock.obj: rwlock.c $(RWLOCK_SRCS) $(INCL)
|
|
sched.obj: sched.c $(SCHED_SRCS) $(INCL)
|
|
semaphore.obj: semaphore.c $(SEMAPHORE_SRCS) $(INCL)
|
|
spin.obj: spin.c $(SPIN_SRCS) $(INCL)
|
|
sync.obj: sync.c $(SYNC_SRCS) $(INCL)
|
|
tsd.obj: tsd.c $(TSD_SRCS) $(INCL)
|
|
version.res: version.rc $(INCL)
|