1 # Makefile for uClibc (libubacktrace)
3 # Copyright (C) 2010 STMicroelectronics Ltd
4 # Author: Carmelo Amoroso <carmelo.amoroso@st.com>
6 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
9 subdirs
+= libubacktrace libubacktrace
/$(TARGET_ARCH
)
11 CFLAGS-libubacktrace
:= -DNOT_IN_libc
-DIS_IN_libubacktrace
$(SSP_ALL_CFLAGS
)
13 LDFLAGS-libubacktrace.so
:= $(LDFLAGS
) $(top_builddir
)lib
/libdl-
$(VERSION
).so
15 LIBS-libubacktrace.so
:= $(LIBS
)
17 libubacktrace_FULL_NAME
:= libubacktrace-
$(VERSION
).so
19 libubacktrace_DIR
:= $(top_srcdir
)libubacktrace
20 libubacktrace_OUT
:= $(top_builddir
)libubacktrace
22 libubacktrace_ARCH_DIR
:=$(libubacktrace_DIR
)/$(TARGET_ARCH
)
23 libubacktrace_ARCH_OUT
:=$(libubacktrace_OUT
)/$(TARGET_ARCH
)
25 -include $(libubacktrace_ARCH_DIR
)/Makefile.arch
27 libubacktrace_SRC-y
:=
28 libubacktrace_SRC-
$(UCLIBC_HAS_BACKTRACE
) := backtracesyms.c backtracesymsfd.c
29 libubacktrace_SRC_SHARED-
$(UCLIBC_HAS_BACKTRACE
) := backtrace.c
31 # remove generic sources, if arch specific version is present
32 ifneq ($(strip $(libubacktrace_ARCH_SRC-y
)),)
33 libubacktrace_SRC-y
:= $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y
)),$(libubacktrace_SRC-y
))
34 libubacktrace_SRC_SHARED-y
:= $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y
)),$(libubacktrace_SRC_SHARED-y
))
37 # -fasynchronous-unwind-tables is required for backtrace to work using dwarf2
38 CFLAGS-backtrace.c
:= -fasynchronous-unwind-tables
40 libubacktrace_SRCS
:= $(patsubst %.c
,$(libubacktrace_DIR
)/%.c
,$(libubacktrace_SRC-y
))
41 libubacktrace_OBJS
:= $(patsubst $(libubacktrace_DIR
)/%.c
,$(libubacktrace_OUT
)/%.o
,$(libubacktrace_SRCS
))
43 libubacktrace_SHARED_SRCS
:= $(patsubst %.c
,$(libubacktrace_DIR
)/%.c
,$(libubacktrace_SRC_SHARED-y
))
44 libubacktrace_SHARED_OBJS
:= $(patsubst $(libubacktrace_DIR
)/%.c
,$(libubacktrace_OUT
)/%.o
,$(libubacktrace_SHARED_SRCS
))
46 libubacktrace-shared-y
:= $(libubacktrace_SHARED_OBJS
:.o
=.oS
)
47 libubacktrace-static-y
:= $(libubacktrace_SHARED_OBJS
)
50 libubacktrace-a-y
+= $(libubacktrace_OBJS
:.o
=.os
) $(libubacktrace-static-y
:.o
=.os
)
52 libubacktrace-a-y
+= $(libubacktrace_OBJS
) $(libubacktrace-static-y
)
54 libubacktrace-so-y
+= $(libubacktrace_OBJS
:.o
=.os
) $(libubacktrace-shared-y
)
57 lib-a-
$(UCLIBC_HAS_BACKTRACE
) += $(top_builddir
)lib
/libubacktrace.a
58 lib-so-
$(UCLIBC_HAS_BACKTRACE
) += $(top_builddir
)lib
/libubacktrace.so
60 objclean-y
+= CLEAN_libubacktrace
63 $(top_builddir
)lib
/libubacktrace.so
: $(libubacktrace_OUT
)/libubacktrace_so.a
$(libdl.depend
)
64 $(call link.so
,$(libubacktrace_FULL_NAME
),$(ABI_VERSION
))
66 $(top_builddir
)lib
/libubacktrace.so
: $(libubacktrace_OUT
)/libubacktrace.oS |
$(libdl.depend
)
67 $(call linkm.so
,$(libubacktrace_FULL_NAME
),$(ABI_VERSION
))
70 $(libubacktrace_OUT
)/libubacktrace_so.a
: $(libubacktrace-so-y
)
74 $(libubacktrace_OUT
)/libubacktrace.oS
: $(libubacktrace_SRCS
) $(libubacktrace_ARCH_SRCS
) $(libubacktrace_SHARED_SRCS
)
78 $(top_builddir
)lib
/libubacktrace.a
: $(libubacktrace-a-y
)
79 $(Q
)$(INSTALL
) -d
$(dir $@
)
84 $(do_rm
) $(addprefix $(libubacktrace_OUT
)/*.
, o os oS a
)