| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 | # Makefile for uClibc NPTL## Copyright (C) 2005-2006 Steven J. Hill <sjhill@uclibc.org>## Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.### NOTE: glibc puts flockfile.c, ftrylockfile.c, funlockfile.c, and#       pt-longjmp.c in libc and libpthread. For uClibc, they are#       in libc only.#libpthread_CSRC = pthread_barrier_init.c pthread_barrier_destroy.c    \		  pthread_barrier_wait.c pthread_cond_broadcast.c	\		  pthread_cond_signal.c pthread_cond_timedwait.c	\		  pthread_cond_wait.c pthread_rwlock_rdlock.c		\		  pthread_rwlock_timedrdlock.c				\		  pthread_rwlock_timedwrlock.c pthread_rwlock_unlock.c	\		  pthread_rwlock_wrlock.c pthread_sigmask.c		\		  pthread_spin_destroy.c pthread_spin_init.c		\		  pthread_spin_unlock.c pt-sigfillset.c	\		  pt-longjmp.c tpp.cifeq ($(TARGET_ARCH),i386)X86_PTHREAD_EXCLUDE_LIST = pthread_spin_unlock.c pthread_spin_init.c \		pthread_barrier_wait.c pthread_cond_broadcast.c	\		pthread_cond_signal.c pthread_rwlock_timedrdlock.c	\		pthread_rwlock_timedwrlock.c pthread_rwlock_unlock.c pthread_rwlock_wrlock.c \		pthread_rwlock_rdlock.clibpthread_CSRC := $(filter-out $(X86_PTHREAD_EXCLUDE_LIST),$(libpthread_CSRC))endififeq ($(TARGET_ARCH),sh)SH_PTHREAD_EXCLUDE_LIST = pthread_spin_unlock.c pthread_spin_init.c \		pthread_rwlock_wrlock.c pthread_rwlock_rdlock.c \		pthread_rwlock_unlock.c pt-longjmp.c \		pthread_barrier_wait.c pthread_cond_broadcast.c	\		pthread_cond_signal.c \		pthread_rwlock_timedrdlock.c \		pthread_rwlock_timedwrlock.clibpthread_CSRC := $(filter-out $(SH_PTHREAD_EXCLUDE_LIST),$(libpthread_CSRC))endififeq ($(TARGET_ARCH),sparc)SPARC_PTHREAD_EXCLUDE_LIST = pthread_barrier_init.c pthread_barrier_wait.c \		pthread_barrier_destroy.clibpthread_CSRC := $(filter-out $(SPARC_PTHREAD_EXCLUDE_LIST),$(libpthread_CSRC))endififeq ($(TARGET_ARCH),x86_64)X64_PTHREAD_EXCLUDE_LIST = pthread_spin_unlock.c pthread_spin_init.c \		pthread_barrier_wait.c pthread_cond_broadcast.c	\		pthread_cond_signal.c pthread_rwlock_timedrdlock.c	\		pthread_rwlock_timedwrlock.c pthread_rwlock_unlock.c pthread_rwlock_wrlock.c \		pthread_rwlock_rdlock.c pthread_cond_timedwait.c pthread_cond_wait.clibpthread_CSRC := $(filter-out $(X64_PTHREAD_EXCLUDE_LIST),$(libpthread_CSRC))endifCFLAGS-pt-common = -DNOT_IN_libc=1 $(SSP_ALL_CFLAGS)CFLAGS-pthread_barrier_init.c = $(CFLAGS-pt-common)	-DIS_IN_libpthread=1CFLAGS-pthread_barrier_destroy.c = $(CFLAGS-pt-common)	-DIS_IN_libpthread=1CFLAGS-pthread_barrier_wait.c = -D_GNU_SOURCE $(CFLAGS-pt-common)	\				-DIS_IN_libpthread=1CFLAGS-pthread_cond_broadcast.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_cond_signal.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_cond_timedwait.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_cond_wait.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_rwlock_rdlock.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_rwlock_timedrdlock.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_rwlock_timedwrlock.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_rwlock_unlock.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_rwlock_wrlock.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_sigmask.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1CFLAGS-pthread_spin_destroy.c = -D_GNU_SOURCE $(CFLAGS-pt-common)	\				-DIS_IN_libpthread=1CFLAGS-pthread_spin_init.c = -D_GNU_SOURCE $(CFLAGS-pt-common)		\			     -DIS_IN_libpthread=1CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE $(CFLAGS-pt-common)	\			       -DIS_IN_libpthread=1CFLAGS-pt-sigaction.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1	\		     -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)	\		     -I$(top_srcdir)libc/signalCFLAGS-pt-sigfillset.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1	\		      -I$(top_srcdir)libc/signalCFLAGS-pt-sigprocmask.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1	\		       -I$(top_srcdir)libc/sysdeps/linux/commonCFLAGS-unwind-forcedunwind.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1 -fexceptions -fasynchronous-unwind-tablesCFLAGS-librt-cancellation.c = -DIS_IN_librt=1 $(CFLAGS-pt-common)	\			      -fexceptions -fasynchronous-unwind-tablesCFLAGS-rt-unwind-resume.c = -DIS_IN_librt=1 $(CFLAGS-pt-common)		\			    -fexceptions -fasynchronous-unwind-tablesCFLAGS-tpp.c = $(CFLAGS-pt-common) -DIS_IN_libpthread=1#CFLAGS:=$(CFLAGS:-O1=-O2)pthread_DIR := $(top_srcdir)libpthread/nptl/sysdeps/pthreadpthread_OUT := $(top_builddir)libpthread/nptl/sysdeps/pthreadpthread_SRC = $(patsubst %.c, $(pthread_DIR)/%.c, $(libpthread_CSRC))pthread_OBJ = $(patsubst %.c, $(pthread_OUT)/%.o, $(libpthread_CSRC))ifeq ($(DOPIC),y)libpthread-a-y += $(pthread_OBJ:.o=.os)elselibpthread-a-y += $(pthread_OBJ)endiflibpthread-so-y += $(pthread_OBJ:.o=.oS)libpthread-so-y += $(pthread_OUT)/pt-sigaction.oS $(pthread_OUT)/pt-sigprocmask.oS \					$(pthread_OUT)/unwind-forcedunwind.oSCFLAGS-sigaction.c = -I$(top_srcdir)libc/signallibc-y += $(pthread_OUT)/sigaction.olibrt-a-y += $(pthread_OUT)/librt-cancellation.olibrt-so-y += $(pthread_OUT)/librt-cancellation.oS		\	      $(pthread_OUT)/rt-unwind-resume.oSifeq ($(UCLIBC_CTOR_DTOR),y)CFLAGS-pt-initfini.c = -S -g0 -fPIC -fno-inline-functions	\		       $(call check_gcc,-fno-unit-at-a-time,)	\		       -finhibit-size-directive			\		       $(patsubst -f%,-fno-%,$(call check_gcc,-fexceptions,))ASFLAGS-crti.S = -g0ASFLAGS-crtn.S = -g0$(pthread_OUT)/pt-initfini.s: $(pthread_DIR)/pt-initfini.c	$(compile.c)	$(do_sed) '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \		$(AWK) -f $(pthread_DIR)/defs.awk > $(pthread_OUT)/defs.h$(pthread_OUT)/crti.S: $(pthread_OUT)/pt-initfini.s	$(do_sed) -e '1,/@HEADER_ENDS/p' \	       -e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \	       -e '/@TRAILER_BEGINS/,$$p' $< > $@$(pthread_OUT)/crtn.S: $(pthread_OUT)/pt-initfini.s	$(do_sed) -e '1,/@HEADER_ENDS/p' \	       -e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \	       -e '/@TRAILER_BEGINS/,$$p' $< > $@endif$(pthread_DIR)/pt-sigaction.c:	$(LN) -s sigaction.c $@$(pthread_DIR)/pt-sigfillset.c:	$(LN) -s sigfillset.c $@$(pthread_DIR)/pt-sigprocmask.c:	$(LN) -s sigprocmask.c $@objclean-y += CLEAN_libpthread/nptl/sysdeps/pthreadCLEAN_libpthread/nptl/sysdeps/pthread:	$(do_rm) $(addprefix $(pthread_OUT)/*., o os oS s S) $(pthread_OUT)/defs.h \	      $(pthread_DIR)/pt-sigaction.c $(pthread_DIR)/pt-sigfillset.c \	      $(pthread_DIR)/pt-sigprocmask.c
 |