blob: b1585299a1aead5efc1848733e230cabaad9a6e7 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001# 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-nptl_db := -DLIBPTHREAD_SO="\"libpthread.so.$(ABI_VERSION)\""
12CFLAGS-nptl_db += -I$(top_srcdir)libpthread/nptl -D_GNU_SOURCE
13CFLAGS-nptl_db += -DIS_IN_libthread_db=1 -DNOT_IN_libc -std=gnu99 -I$(top_srcdir)ldso/include
14
15LDFLAGS-libthread_db.so := $(LDFLAGS_NOSTRIP) $(if $(call check_ld,--warn-unresolved-symbols),-Wl$(comma)--warn-unresolved-symbols)
16LIBS-libthread_db.so := $(LIBS)
17
18libthread_db_FULL_NAME := libthread_db-$(VERSION).so
19
20libthread_db_DIR := $(top_srcdir)libpthread/nptl_db
21libthread_db_OUT := $(top_builddir)libpthread/nptl_db
22
23libthread_db_SRC := $(wildcard $(libthread_db_DIR)/td_*.c) \
24 $(libthread_db_DIR)/fetch-value.c
25ifeq ($(UCLIBC_SUSV4_LEGACY),)
26libthread_db_SRC := $(filter-out td_ta_setconcurrency.c,$(libthread_db_SRC))
27endif
28
29libthread_db_OBJ := $(patsubst $(libthread_db_DIR)/%.c,$(libthread_db_OUT)/%.o,$(libthread_db_SRC))
30
31libthread_db-so-y := $(libthread_db_OBJ:.o=.oS)
32ifeq ($(DOPIC),y)
33libthread_db-a-y := $(libthread_db-so-y)
34else
35libthread_db-a-y := $(libthread_db_OBJ)
36endif
37
38libthread_db-multi-y := $(libthread_db_SRC)
39
40lib-a-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.a
41lib-so-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.so
42objclean-y += CLEAN_libpthread/nptl_db
43headers-$(PTHREADS_DEBUG_SUPPORT) += $(nptl_db_headers)
44headers_clean-y += HEADERCLEAN_libpthread/nptl_db
45
46ifeq ($(DOPIC),y)
47$(top_builddir)lib/libthread_db.so: $(top_builddir)lib/libthread_db.a $(libc.depend)
48else
49$(top_builddir)lib/libthread_db.so: $(libthread_db_OUT)/libthread_db_so.a $(libc.depend)
50endif
51 $(call link.so,$(libthread_db_FULL_NAME),1)
52
53$(libthread_db_OUT)/libthread_db_so.a: $(libthread_db-so-y)
54 $(Q)$(RM) $@
55 $(do_strip)
56 $(do_ar)
57
58$(top_builddir)lib/libthread_db.a: $(libthread_db-a-y) | $(top_builddir)lib
59 $(Q)$(RM) $@
60 $(do_strip)
61 $(do_ar)
62
63$(top_builddir)include/thread_db.h:
64 $(do_ln) $(call rel_srcdir)$(PTDIR)_db/$(@F) $@
65
66nptl_db_headers:= $(top_builddir)include/thread_db.h
67
68HEADERCLEAN_libpthread/nptl_db:
69 $(do_rm) $(nptl_db_headers)
70
71CLEAN_libpthread/nptl_db:
72 $(do_rm) $(addprefix $(libthread_db_OUT)/*., o oS a)