⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 pthread source code,you can compile directly
💻
字号:
# 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	= 2DLL_VERD= $(DLL_VER)dDEVROOT	= C:\pthreadsDLLDEST	= $(DEVROOT)\DLLLIBDEST	= $(DEVROOT)\LIBHDRDEST	= $(DEVROOT)\INCLUDEDLLS	= pthreadVCE$(DLL_VER).dll pthreadVSE$(DLL_VER).dll pthreadVC$(DLL_VER).dll \		  pthreadVCE$(DLL_VERD).dll pthreadVSE$(DLL_VERD).dll pthreadVC$(DLL_VERD).dllINLINED_STAMPS	= pthreadVCE$(DLL_VER).stamp pthreadVSE$(DLL_VER).stamp pthreadVC$(DLL_VER).stamp \				  pthreadVCE$(DLL_VERD).stamp pthreadVSE$(DLL_VERD).stamp pthreadVC$(DLL_VERD).stampSTATIC_STAMPS	= pthreadVCE$(DLL_VER).static pthreadVSE$(DLL_VER).static pthreadVC$(DLL_VER).static \				  pthreadVCE$(DLL_VERD).static pthreadVSE$(DLL_VERD).static pthreadVC$(DLL_VERD).staticOPTIM	= /O2 /Ob2OPTIMD	=CFLAGS	= /W3 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_HCFLAGSD	= /Zi $(CFLAGS)# Default cleanup styleCLEANUP	= __CLEANUP_C# C++ ExceptionsVCEFLAGS	= /GX /TP $(CFLAGS)VCEFLAGSD	= /GX /TP $(CFLAGSD)#Structured ExceptionsVSEFLAGS	= $(CFLAGS)VSEFLAGSD	= $(CFLAGSD)#C cleanup codeVCFLAGS	= $(CFLAGS)VCFLAGSD= $(CFLAGSD)DLL_INLINED_OBJS = \		pthread.obj \		version.res# Aggregate modules for inlinabilityDLL_OBJS	= \		attr.obj \		barrier.obj \		cancel.obj \		cleanup.obj \		condvar.obj \		create.obj \		dll.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 imagesSMALL_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 \		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_mutex_lock.obj \		pthread_mutex_timedlock.obj \		pthread_mutex_unlock.obj \		pthread_mutex_trylock.obj \		pthread_mutexattr_setkind_np.obj \		pthread_mutexattr_getkind_np.obj \		pthread_getw32threadhandle_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_InterlockedCompareExchange.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.resINCL	= config.h implement.h semaphore.h pthread.h need_errno.hATTR_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.cBARRIER_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.cCANCEL_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.cEXIT_SRCS	= \		pthread_exit.cMISC_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.cMUTEX_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_mutex_lock.c \		pthread_mutex_timedlock.c \		pthread_mutex_unlock.c \		pthread_mutex_trylock.cNONPORTABLE_SRCS = \		pthread_mutexattr_setkind_np.c \		pthread_mutexattr_getkind_np.c \		pthread_getw32threadhandle_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_InterlockedCompareExchange.c \		ptw32_getprocessors.cRWLOCK_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.cSCHED_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.cSEMAPHORE_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.cSPIN_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.cSYNC_SRCS	= \		pthread_detach.c \		pthread_join.cTSD_SRCS	= \		pthread_key_create.c \		pthread_key_delete.c \		pthread_setspecific.c \		pthread_getspecific.chelp:	@ 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:	@ nmake clean VCE-inlined	@ nmake clean VSE-inlined	@ nmake clean VC-inlined	@ nmake clean VCE-inlined-debug	@ nmake clean VSE-inlined-debug	@ nmake clean VC-inlined-debugVCE:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VCEFLAGS)" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VER).dllVCE-debug:	@ nmake /nologo EHFLAGS="$(OPTIMD) $(VCEFLAGSD)" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VERD).dllVSE:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VSEFLAGS)" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VER).dllVSE-debug:	@ nmake /nologo EHFLAGS="$(OPTIMD) $(VSEFLAGSD)" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VERD).dllVC:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VCFLAGS)" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).dllVC-debug:	@ nmake /nologo EHFLAGS="$(OPTIMD) $(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:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VCEFLAGS) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VER).stampVCE-inlined-debug:	@ nmake /nologo EHFLAGS="$(OPTIMD) $(VCEFLAGSD) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_CXX pthreadVCE$(DLL_VERD).stampVSE-inlined:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VSEFLAGS) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VER).stampVSE-inlined-debug:	@ nmake /nologo EHFLAGS="$(OPTIMD) $(VSEFLAGSD) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_SEH pthreadVSE$(DLL_VERD).stampVC-inlined:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VCFLAGS) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).stampVC-inlined-debug:	nmake /nologo EHFLAGS="$(OPTIMD) $(VCFLAGSD) /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).stampVC-static:	@ nmake /nologo EHFLAGS="$(OPTIM) $(VCFLAGS) /DPTW32_BUILD_INLINED /DPTW32_STATIC_LIB" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).staticVC-static-debug:	@ nmake /nologo EHFLAGS="$(OPTIMD) $(VCFLAGSD) /DPTW32_BUILD_INLINED /DPTW32_STATIC_LIB" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).staticrealclean: clean	if exist pthread*.dll del pthread*.dll	if exist pthread*.lib del pthread*.lib	if exist *.stamp del *.stampclean:	if exist *.obj del *.obj	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 *.resinstall: $(DLLS)	copy pthread*.dll $(DLLDEST)	copy pthread*.lib $(LIBDEST)	copy pthread.h $(HDRDEST)	copy sched.h $(HDRDEST)	copy semaphore.h $(HDRDEST)$(DLLS): $(DLL_OBJS)	cl /LDd /Zi /nologo $(DLL_OBJS) \		/link /nodefaultlib:libcmt /implib:$*.lib \		msvcrt.lib wsock32.lib /out:$@$(INLINED_STAMPS): $(DLL_INLINED_OBJS)	cl /LDd /Zi /nologo $(DLL_INLINED_OBJS) \		/link /nodefaultlib:libcmt /implib:$*.lib \		msvcrt.lib wsock32.lib /out:$*.dll$(STATIC_STAMPS): $(DLL_INLINED_OBJS)	if exist $*.lib del $*.lib	lib $(DLL_INLINED_OBJS) /out:$*.lib.c.obj:	cl $(EHFLAGS) /D$(CLEANUP) -c $<.rc.res:	rc /dPTW32_RC_MSC /d$(CLEANUP) $<.c.i:	cl /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)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -