2
1

libelf.mk 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #############################################################
  2. #
  3. # libelf
  4. #
  5. #############################################################
  6. LIBELF_VERSION=0.8.10
  7. LIBELF_SOURCE=libelf-$(LIBELF_VERSION).tar.gz
  8. LIBELF_SITE=http://www.mr511.de/software/
  9. LIBELF_DIR=$(BUILD_DIR)/libelf-$(LIBELF_VERSION)
  10. LIBELF_ARCH:=$(ARCH)
  11. ifeq ("$(strip $(ARCH))","armeb")
  12. LIBELF_ARCH:=arm
  13. endif
  14. ifeq ($(BR2_LARGEFILE),y)
  15. LIBELF_CONFIG:=--enable-elf64
  16. endif
  17. $(DL_DIR)/$(LIBELF_SOURCE):
  18. $(call DOWNLOAD,$(LIBELF_SITE),$(LIBELF_SOURCE))
  19. $(LIBELF_DIR)/.unpacked: $(DL_DIR)/$(LIBELF_SOURCE)
  20. $(ZCAT) $(DL_DIR)/$(LIBELF_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  21. toolchain/patch-kernel.sh $(LIBELF_DIR) package/libelf libelf\*.patch
  22. $(CONFIG_UPDATE) $(LIBELF_DIR)
  23. touch $@
  24. $(LIBELF_DIR)/.configured: $(LIBELF_DIR)/.unpacked
  25. (cd $(LIBELF_DIR); rm -f config.cache; \
  26. $(TARGET_CONFIGURE_OPTS) \
  27. $(TARGET_CONFIGURE_ARGS) \
  28. CFLAGS="$(TARGET_CFLAGS)" \
  29. libelf_cv_working_memmove=yes \
  30. mr_cv_target_elf=yes \
  31. libelf_64bit=yes \
  32. ./configure \
  33. --target=$(GNU_TARGET_NAME) \
  34. --host=$(GNU_TARGET_NAME) \
  35. --build=$(GNU_HOST_NAME) \
  36. --prefix=/usr \
  37. --sysconfdir=/etc \
  38. --enable-shared \
  39. --disable-debug \
  40. --disable-sanity-checks \
  41. $(LIBELF_CONFIG) \
  42. $(DISABLE_NLS) \
  43. )
  44. touch $@
  45. $(LIBELF_DIR)/lib/libelf.so.$(LIBELF_VERSION): $(LIBELF_DIR)/.configured
  46. $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(LIBELF_DIR)
  47. $(STAGING_DIR)/usr/lib/libelf.a $(STAGING_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION): $(LIBELF_DIR)/lib/libelf.so.$(LIBELF_VERSION)
  48. $(MAKE) $(TARGET_CONFIGURE_OPTS) \
  49. instroot=$(STAGING_DIR) -C $(LIBELF_DIR) install
  50. ifeq ($(BR2_PACKAGE_LIBELF_HEADERS),y)
  51. $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION): $(STAGING_DIR)/usr/lib/libelf.a
  52. mkdir -p $(@D)
  53. cp -dpf $(STAGING_DIR)/usr/lib/libelf* $(@D)
  54. mkdir -p $(TARGET_DIR)/usr/include
  55. cp -dpR $(STAGING_DIR)/usr/include/{gelf.h,libelf*} $(TARGET_DIR)/usr/include/
  56. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
  57. libelf: uclibc $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION)
  58. else
  59. libelf: uclibc $(STAGING_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION)
  60. endif
  61. libelf-source: $(DL_DIR)/$(LIBELF_SOURCE)
  62. libelf-clean:
  63. $(MAKE) prefix=$(TARGET_DIR)/usr -C $(LIBELF_DIR) uninstall
  64. $(MAKE) instroot=$(STAGING_DIR) -C $(LIBELF_DIR) uninstall
  65. -$(MAKE) -C $(LIBELF_DIR) clean
  66. libelf-dirclean:
  67. rm -rf $(LIBELF_DIR)
  68. #############################################################
  69. #
  70. # Toplevel Makefile options
  71. #
  72. #############################################################
  73. ifeq ($(BR2_PACKAGE_LIBELF),y)
  74. TARGETS+=libelf
  75. endif