Makefile.in 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # Makefile for uClibc (libubacktrace)
  2. #
  3. # Copyright (C) 2010 STMicroelectronics Ltd
  4. # Author: Carmelo Amoroso <carmelo.amoroso@st.com>
  5. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  6. #
  7. subdirs += libubacktrace libubacktrace/$(TARGET_ARCH)
  8. CFLAGS-libubacktrace := -DNOT_IN_libc -DIS_IN_libubacktrace $(SSP_ALL_CFLAGS)
  9. LDFLAGS-libubacktrace.so := $(LDFLAGS) $(top_builddir)lib/libdl-$(VERSION).so
  10. ifeq ($(UCLIBC_HAS_BACKTRACE)$(CONFIG_ARM_EABI),yy)
  11. LIBGCC += $(shell $(CC) -print-file-name=libgcc_eh.a)
  12. endif
  13. LIBS-libubacktrace.so := $(LIBS)
  14. libubacktrace_FULL_NAME := libubacktrace-$(VERSION).so
  15. libubacktrace_DIR := $(top_srcdir)libubacktrace
  16. libubacktrace_OUT := $(top_builddir)libubacktrace
  17. libubacktrace_ARCH_DIR:=$(libubacktrace_DIR)/$(TARGET_ARCH)
  18. libubacktrace_ARCH_OUT:=$(libubacktrace_OUT)/$(TARGET_ARCH)
  19. -include $(libubacktrace_ARCH_DIR)/Makefile.arch
  20. libubacktrace_SRC-y :=
  21. libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtrace.c backtracesyms.c backtracesymsfd.c
  22. # remove generic sources, if arch specific version is present
  23. ifneq ($(strip $(libubacktrace_ARCH_SRC-y)),)
  24. libubacktrace_SRC-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC-y))
  25. endif
  26. # -fasynchronous-unwind-tables is required for backtrace to work using dwarf2
  27. CFLAGS-backtrace.c := -fasynchronous-unwind-tables
  28. # pass common flags to arch dirs
  29. ifneq ($(strip $(libubacktrace_ARCH_OBJS)),)
  30. CFLAGS-libubacktrace/$(TARGET_ARCH)/ := $(CFLAGS-libubacktrace)
  31. endif
  32. libubacktrace_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC-y))
  33. libubacktrace_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SRCS))
  34. ifeq ($(DOPIC),y)
  35. libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os)
  36. else
  37. libubacktrace-a-y += $(libubacktrace_OBJS)
  38. endif
  39. libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os)
  40. lib-a-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.a
  41. lib-so-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.so
  42. objclean-y += CLEAN_libubacktrace
  43. ifeq ($(DOMULTI),n)
  44. ifeq ($(DOPIC),y)
  45. $(top_builddir)lib/libubacktrace.so: $(top_builddir)lib/libubacktrace.a $(libdl.depend)
  46. else
  47. $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace_so.a $(libdl.depend)
  48. endif
  49. $(call link.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
  50. else
  51. $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace.oS | $(libdl.depend)
  52. $(call linkm.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
  53. endif
  54. $(libubacktrace_OUT)/libubacktrace_so.a: $(libubacktrace-so-y)
  55. $(Q)$(RM) $@
  56. $(do_ar)
  57. $(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS)
  58. $(Q)$(RM) $@
  59. $(compile-m)
  60. $(top_builddir)lib/libubacktrace.a: $(libubacktrace-a-y)
  61. $(Q)$(INSTALL) -d $(dir $@)
  62. $(Q)$(RM) $@
  63. $(do_ar)
  64. CLEAN_libubacktrace:
  65. $(do_rm) $(addprefix $(libubacktrace_OUT)/*., o os oS a)