📄 gnumakefile
字号:
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 \ 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_relmillisecs.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.cGCE_DLL = pthreadGCE$(DLL_VER).dllGCED_DLL= pthreadGCE$(DLL_VERD).dllGCE_LIB = libpthreadGCE$(DLL_VER).aGCED_LIB= libpthreadGCE$(DLL_VERD).aGCE_INLINED_STAMP = pthreadGCE$(DLL_VER).stampGCED_INLINED_STAMP = pthreadGCE$(DLL_VERD).stampGC_DLL = pthreadGC$(DLL_VER).dllGCD_DLL = pthreadGC$(DLL_VERD).dllGC_LIB = libpthreadGC$(DLL_VER).aGCD_LIB = libpthreadGC$(DLL_VERD).aGC_INLINED_STAMP = pthreadGC$(DLL_VER).stampGCD_INLINED_STAMP = pthreadGC$(DLL_VERD).stampGC_STATIC_STAMP = libpthreadGC$(DLL_VER).stampGCD_STATIC_STAMP = libpthreadGC$(DLL_VERD).stampPTHREAD_DEF = pthread.defhelp: @ echo "Run one of the following command lines:" @ echo "make clean GC (to build the GNU C dll with C cleanup code)" @ echo "make clean GCE (to build the GNU C dll with C++ exception handling)" @ echo "make clean GC-inlined (to build the GNU C inlined dll with C cleanup code)" @ echo "make clean GCE-inlined (to build the GNU C inlined dll with C++ exception handling)" @ echo "make clean GC-static (to build the GNU C inlined static lib with C cleanup code)" @ echo "make clean GC-debug (to build the GNU C debug dll with C cleanup code)" @ echo "make clean GCE-debug (to build the GNU C debug dll with C++ exception handling)" @ echo "make clean GC-inlined-debug (to build the GNU C inlined debug dll with C cleanup code)" @ echo "make clean GCE-inlined-debug (to build the GNU C inlined debug dll with C++ exception handling)" @ echo "make clean GC-static-debug (to build the GNU C inlined static debug lib with C cleanup code)"all: @ $(MAKE) clean GCE @ $(MAKE) clean GCGC: $(MAKE) CLEANUP=-D__CLEANUP_C XC_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_OBJS)" $(GC_DLL)GC-debug: $(MAKE) CLEANUP=-D__CLEANUP_C XC_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_OBJS)" DLL_VER=$(DLL_VERD) OPT="$(DOPT)" $(GCD_DLL)GCE: $(MAKE) CC=$(CXX) CLEANUP=-D__CLEANUP_CXX XC_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_OBJS)" $(GCE_DLL)GCE-debug: $(MAKE) CC=$(CXX) CLEANUP=-D__CLEANUP_CXX XC_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_OBJS)" DLL_VER=$(DLL_VERD) OPT="$(DOPT)" $(GCED_DLL)GC-inlined: $(MAKE) XOPT="-DPTW32_BUILD_INLINED" CLEANUP=-D__CLEANUP_C XC_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GC_INLINED_STAMP)GC-inlined-debug: $(MAKE) XOPT="-DPTW32_BUILD_INLINED" CLEANUP=-D__CLEANUP_C XC_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" DLL_VER=$(DLL_VERD) OPT="$(DOPT)" $(GCD_INLINED_STAMP)GCE-inlined: $(MAKE) CC=$(CXX) XOPT="-DPTW32_BUILD_INLINED" CLEANUP=-D__CLEANUP_CXX XC_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GCE_INLINED_STAMP)GCE-inlined-debug: $(MAKE) CC=$(CXX) XOPT="-DPTW32_BUILD_INLINED" CLEANUP=-D__CLEANUP_CXX XC_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" DLL_VER=$(DLL_VERD) OPT="$(DOPT)" $(GCED_INLINED_STAMP)GC-static: $(MAKE) XOPT="-DPTW32_BUILD_INLINED -DPTW32_STATIC_LIB" CLEANUP=-D__CLEANUP_C XC_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GC_STATIC_STAMP)GC-static-debug: $(MAKE) XOPT="-DPTW32_BUILD_INLINED -DPTW32_STATIC_LIB" CLEANUP=-D__CLEANUP_C XC_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" DLL_VER=$(DLL_VERD) OPT="$(DOPT)" $(GCD_STATIC_STAMP)tests: @ cd tests @ $(MAKE) auto%.pre: %.c $(CC) -E -o $@ $(CFLAGS) $^%.s: %.c $(CC) -c $(CFLAGS) -DPTW32_BUILD_INLINED -Wa,-ahl $^ > $@%.o: %.rc $(RC) $(RCFLAGS) $(CLEANUP) -o $@ $<.SUFFIXES: .dll .rc .c .o.c.o:; $(CC) -c -o $@ $(CFLAGS) $(XC_FLAGS) $<$(GC_DLL) $(GCD_DLL): $(DLL_OBJS) $(CC) $(OPT) -shared -o $(GC_DLL) $(DLL_OBJS) $(LFLAGS) $(DLLTOOL) -z pthread.def $(DLL_OBJS) $(DLLTOOL) -k --dllname $@ --output-lib $(GC_LIB) --def $(PTHREAD_DEF)$(GCE_DLL): $(DLL_OBJS) $(CC) $(OPT) -mthreads -shared -o $(GCE_DLL) $(DLL_OBJS) $(LFLAGS) $(DLLTOOL) -z pthread.def $(DLL_OBJS) $(DLLTOOL) -k --dllname $@ --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)$(GC_INLINED_STAMP) $(GCD_INLINED_STAMP): $(DLL_INLINED_OBJS) $(CC) $(OPT) $(XOPT) -shared -o $(GC_DLL) $(DLL_INLINED_OBJS) $(LFLAGS) $(DLLTOOL) -z pthread.def $(DLL_INLINED_OBJS) $(DLLTOOL) -k --dllname $(GC_DLL) --output-lib $(GC_LIB) --def $(PTHREAD_DEF) echo touched > $(GC_INLINED_STAMP)$(GCE_INLINED_STAMP) $(GCED_INLINED_STAMP): $(DLL_INLINED_OBJS) $(CC) $(OPT) $(XOPT) -mthreads -shared -o $(GCE_DLL) $(DLL_INLINED_OBJS) $(LFLAGS) $(DLLTOOL) -z pthread.def $(DLL_INLINED_OBJS) $(DLLTOOL) -k --dllname $(GCE_DLL) --output-lib $(GCE_LIB) --def $(PTHREAD_DEF) echo touched > $(GCE_INLINED_STAMP)$(GC_STATIC_STAMP) $(GCD_STATIC_STAMP): $(DLL_INLINED_OBJS) $(RM) $(GC_LIB) $(AR) -rv $(GC_LIB) $(DLL_INLINED_OBJS) $(RANLIB) $(GC_LIB) echo touched > $(GC_STATIC_STAMP)clean: -$(RM) *~ -$(RM) *.i -$(RM) *.o -$(RM) *.obj -$(RM) *.exe -$(RM) $(PTHREAD_DEF)realclean: clean -$(RM) $(GC_LIB) -$(RM) $(GCE_LIB) -$(RM) $(GC_DLL) -$(RM) $(GCE_DLL) -$(RM) $(GC_INLINED_STAMP) -$(RM) $(GCE_INLINED_STAMP) -$(RM) $(GC_STATIC_STAMP) -$(RM) $(GCD_LIB) -$(RM) $(GCED_LIB) -$(RM) $(GCD_DLL) -$(RM) $(GCED_DLL) -$(RM) $(GCD_INLINED_STAMP) -$(RM) $(GCED_INLINED_STAMP) -$(RM) $(GCD_STATIC_STAMP)attr.o: attr.c $(ATTR_SRCS) $(INCL)barrier.o: barrier.c $(BARRIER_SRCS) $(INCL)cancel.o: cancel.c $(CANCEL_SRCS) $(INCL)condvar.o: condvar.c $(CONDVAR_SRCS) $(INCL)exit.o: exit.c $(EXIT_SRCS) $(INCL)misc.o: misc.c $(MISC_SRCS) $(INCL)mutex.o: mutex.c $(MUTEX_SRCS) $(INCL)nonportable.o: nonportable.c $(NONPORTABLE_SRCS) $(INCL)private.o: private.c $(PRIVATE_SRCS) $(INCL)rwlock.o: rwlock.c $(RWLOCK_SRCS) $(INCL)sched.o: sched.c $(SCHED_SRCS) $(INCL)semaphore.o: semaphore.c $(SEMAPHORE_SRCS) $(INCL)spin.o: spin.c $(SPIN_SRCS) $(INCL)sync.o: sync.c $(SYNC_SRCS) $(INCL)tsd.o: tsd.c $(TSD_SRCS) $(INCL)version.o: version.rc $(INCL)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -