3 # Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
4 # Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
6 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
9 subdirs
+= libpthread
/linuxthreads
11 CFLAGS-dir_linuxthreads
:= -DNOT_IN_libc
-DIS_IN_libpthread
12 CFLAGS-libpthread
/linuxthreads
:= $(CFLAGS-dir_linuxthreads
) $(SSP_ALL_CFLAGS
)
14 libpthread_DIR
:= $(top_srcdir
)libpthread
/linuxthreads
15 libpthread_OUT
:= $(top_builddir
)libpthread
/linuxthreads
17 -include $(libpthread_DIR
)/sysdeps
/$(TARGET_ARCH
)/Makefile.arch
20 attr.c cancel.c condvar.c errno.c events.c
join.c lockfile.c manager.c \
21 mutex.c pt-machine.c ptfork.c pthread.c ptlongjmp.c \
22 rwlock.c semaphore.c signals.c specific.c spinlock.c wrapsyscall.c
23 ifeq ($(UCLIBC_HAS_XLOCALE
),y
)
24 libpthread_SRC
+= locale.c
27 # remove generic sources, if arch specific version is present
28 ifneq ($(strip $(libpthread_ARCH_SRC
)),)
29 libpthread_SRC
:= $(filter-out $(patsubst %.c
,$(libpthread_DIR
)/%.c
,$(notdir $(libpthread_ARCH_SRC
))),$(libpthread_SRC
))
32 libpthread_SRC
:= $(patsubst %,$(libpthread_DIR
)/%,$(libpthread_SRC
))
34 libpthread_OBJ
:= $(patsubst $(libpthread_DIR
)/%.c
,$(libpthread_OUT
)/%.o
,$(libpthread_SRC
))
37 # Stuff that goes into libc.so, not libpthread.so
39 CFLAGS-OMIT-libc_pthread_init.c
:= $(CFLAGS-dir_linuxthreads
)
40 libpthread_libc_CSRC
:= libc_pthread_init.c
41 libpthread_libc_OBJ
:= $(patsubst %.c
, $(libpthread_OUT
)/%.o
,$(libpthread_libc_CSRC
))
42 libc-static-y
+= $(libpthread_OUT
)/libc_pthread_init.o
43 libc-shared-y
+= $(libpthread_libc_OBJ
:.o
=.oS
)
46 libpthread-a-y
+= $(libpthread_OBJ
:.o
=.os
)
48 libpthread-a-y
+= $(libpthread_OBJ
)
50 libpthread-so-y
+= $(libpthread_OBJ
:.o
=.oS
)
52 ifeq ($(PTHREADS_DEBUG_SUPPORT
),y
)
53 $(libpthread_OUT
)/libpthread.oS
: STRIP_FLAGS
:=$(STRIP_FLAGS
:-x
=-X
--strip-debug
)
55 $(libpthread_OUT
)/libpthread.oS
: $(libpthread_SRC
)
59 $(top_builddir
)include/pthread.h
:
60 $(do_ln
) $(call rel_srcdir
)$(PTDIR
)/sysdeps
/pthread
/$(@F
) $@
61 $(top_builddir
)include/semaphore.h
:
62 $(do_ln
) $(call rel_srcdir
)$(PTDIR
)/$(@F
) $@
63 $(top_builddir
)include/bits
/pthreadtypes.h
: |
$(top_builddir
)include/bits
64 $(do_ln
) $(call rel_srcdir
)$(PTDIR
)/sysdeps
/pthread
/bits
/$(@F
) $@
66 linuxthreads_headers
:= $(top_builddir
)include/pthread.h \
67 $(top_builddir
)include/semaphore.h \
68 $(top_builddir
)include/bits
/pthreadtypes.h
69 $(linuxthreads_headers
): $(wildcard $(addprefix $(top_builddir
)include/config
/linuxthreads
/,old.h new.h
))
70 headers-
$(UCLIBC_HAS_THREADS
) += $(linuxthreads_headers
)
72 objclean-y
+= CLEAN_libpthread
/linuxthreads
73 headers_clean-y
+= HEADERCLEAN_libpthread
/linuxthreads
74 HEADERCLEAN_libpthread
/linuxthreads
:
75 $(do_rm
) $(linuxthreads_headers
)
77 CLEAN_libpthread
/linuxthreads
:
78 $(do_rm
) $(addprefix $(libpthread_OUT
)/*.
, o os oS a
)