1# Makefile for uClibc
2#
3# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
4#
5# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
6#
7
8subdirs += libpthread/nptl_db
9
10# Get the thread include dependencies and shared object name
11CFLAGS-libpthread/nptl_db := -DNOT_IN_libc \
12	-DLIBPTHREAD_SO="\"libpthread.so.$(ABI_VERSION)\"" \
13	-std=gnu99 -D_GNU_SOURCE \
14	-I$(top_srcdir)libpthread/nptl \
15	-I$(top_srcdir)ldso/include
16
17LDFLAGS-libthread_db.so := $(LDFLAGS_NOSTRIP) $(if $(call check_ld,--warn-unresolved-symbols),-Wl$(comma)--warn-unresolved-symbols)
18LIBS-libthread_db.so := $(LIBS)
19
20libthread_db_FULL_NAME := libthread_db-$(VERSION).so
21
22libthread_db_DIR := $(top_srcdir)libpthread/nptl_db
23libthread_db_OUT := $(top_builddir)libpthread/nptl_db
24
25libthread_db_SRC := $(notdir $(wildcard $(libthread_db_DIR)/td_*.c)	\
26		    $(libthread_db_DIR)/fetch-value.c)
27ifeq ($(UCLIBC_SUSV4_LEGACY),)
28libthread_db_SRC := $(filter-out td_ta_setconcurrency.c,$(libthread_db_SRC))
29endif
30
31libthread_db_OBJ := $(addprefix $(libthread_db_OUT)/,$(libthread_db_SRC:.c=.o))
32
33libthread_db-so-y := $(libthread_db_OBJ:.o=.oS)
34ifeq ($(DOPIC),y)
35libthread_db-a-y := $(libthread_db-so-y)
36else
37libthread_db-a-y := $(libthread_db_OBJ)
38endif
39
40libthread_db-multi-y := $(addprefix $(libthread_db_DIR)/,$(libthread_db_SRC))
41
42lib-a-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.a
43lib-so-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.so
44objclean-y += CLEAN_libpthread/nptl_db
45headers-$(PTHREADS_DEBUG_SUPPORT) += $(nptl_db_headers)
46headers_clean-y += HEADERCLEAN_libpthread/nptl_db
47
48ifeq ($(DOPIC),y)
49$(top_builddir)lib/libthread_db.so: $(top_builddir)lib/libthread_db.a $(libc.depend)
50else
51$(top_builddir)lib/libthread_db.so: $(libthread_db_OUT)/libthread_db_so.a $(libc.depend)
52endif
53	$(call link.so,$(libthread_db_FULL_NAME),1)
54
55$(libthread_db_OUT)/libthread_db_so.a: $(libthread_db-so-y)
56	$(Q)$(RM) $@
57	$(do_strip)
58	$(do_ar)
59
60$(top_builddir)lib/libthread_db.a: $(libthread_db-a-y) | $(top_builddir)lib
61	$(Q)$(RM) $@
62	$(do_strip)
63	$(do_ar)
64
65$(top_builddir)include/thread_db.h:
66	$(do_ln) $(call rel_srcdir)$(PTDIR)_db/$(@F) $@
67
68nptl_db_headers:= $(top_builddir)include/thread_db.h
69
70HEADERCLEAN_libpthread/nptl_db:
71	$(do_rm) $(nptl_db_headers)
72
73CLEAN_libpthread/nptl_db:
74	$(do_rm) $(addprefix $(libthread_db_OUT)/*., o oS a)
75