summaryrefslogtreecommitdiff
path: root/package/libelf
diff options
context:
space:
mode:
Diffstat (limited to 'package/libelf')
-rw-r--r--package/libelf/Config.in14
-rw-r--r--package/libelf/libelf.mk84
2 files changed, 12 insertions, 86 deletions
diff --git a/package/libelf/Config.in b/package/libelf/Config.in
index 197f993da..600ef68fd 100644
--- a/package/libelf/Config.in
+++ b/package/libelf/Config.in
@@ -1,15 +1,7 @@
config BR2_PACKAGE_LIBELF
bool "libelf"
help
- This is the public release of libelf-0.8.5, a free ELF object
- file access library. This build does not generate a shared
- library.
+ The elf library provides routines to access, and manipulate,
+ Elf object files.
- http://www.stud.uni-hannover.de/~michael/software/
-
-config BR2_PACKAGE_LIBELF_HEADERS
- bool "headers on the target"
- depends on BR2_PACKAGE_LIBELF
- help
- Whether to copy the lib and the headers to the
- target system.
+ http://www.mr511.de/software/
diff --git a/package/libelf/libelf.mk b/package/libelf/libelf.mk
index 1d1b175c9..ade369ecf 100644
--- a/package/libelf/libelf.mk
+++ b/package/libelf/libelf.mk
@@ -6,82 +6,16 @@
LIBELF_VERSION=0.8.10
LIBELF_SOURCE=libelf-$(LIBELF_VERSION).tar.gz
LIBELF_SITE=http://www.mr511.de/software/
-LIBELF_DIR=$(BUILD_DIR)/libelf-$(LIBELF_VERSION)
+LIBELF_INSTALL_STAGING = YES
+LIBELF_INSTALL_STAGING_OPT = instroot=$(STAGING_DIR) install
+LIBELF_INSTALL_TARGET_OPT = instroot=$(TARGET_DIR) install
-LIBELF_ARCH:=$(ARCH)
-ifeq ("$(strip $(ARCH))","armeb")
-LIBELF_ARCH:=arm
-endif
-
-ifeq ($(BR2_LARGEFILE),y)
-LIBELF_CONFIG:=--enable-elf64
-endif
-
-$(DL_DIR)/$(LIBELF_SOURCE):
- $(call DOWNLOAD,$(LIBELF_SITE),$(LIBELF_SOURCE))
-
-$(LIBELF_DIR)/.unpacked: $(DL_DIR)/$(LIBELF_SOURCE)
- $(ZCAT) $(DL_DIR)/$(LIBELF_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(LIBELF_DIR) package/libelf libelf\*.patch
- $(CONFIG_UPDATE) $(LIBELF_DIR)
- touch $@
-
-$(LIBELF_DIR)/.configured: $(LIBELF_DIR)/.unpacked
- (cd $(LIBELF_DIR); rm -f config.cache; \
- $(TARGET_CONFIGURE_OPTS) \
- $(TARGET_CONFIGURE_ARGS) \
- CFLAGS="$(TARGET_CFLAGS)" \
- libelf_cv_working_memmove=yes \
+LIBELD_CONF_ENV = libelf_cv_working_memmove=yes \
mr_cv_target_elf=yes \
- libelf_64bit=yes \
- ./configure $(QUIET) \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-shared \
- --disable-debug \
- --disable-sanity-checks \
- $(LIBELF_CONFIG) \
- $(DISABLE_NLS) \
- )
- touch $@
-
-$(LIBELF_DIR)/lib/libelf.so.$(LIBELF_VERSION): $(LIBELF_DIR)/.configured
- $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(LIBELF_DIR)
-
-$(STAGING_DIR)/usr/lib/libelf.a $(STAGING_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION): $(LIBELF_DIR)/lib/libelf.so.$(LIBELF_VERSION)
- $(MAKE) $(TARGET_CONFIGURE_OPTS) \
- instroot=$(STAGING_DIR) -C $(LIBELF_DIR) install
-
-ifeq ($(BR2_PACKAGE_LIBELF_HEADERS),y)
-$(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION): $(STAGING_DIR)/usr/lib/libelf.a
- mkdir -p $(@D)
- cp -dpf $(STAGING_DIR)/usr/lib/libelf* $(@D)
- mkdir -p $(TARGET_DIR)/usr/include
- cp -dpR $(STAGING_DIR)/usr/include/{gelf.h,libelf*} $(TARGET_DIR)/usr/include/
- $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
+ libelf_64bit=yes
-libelf: $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION)
-else
-libelf: $(STAGING_DIR)/usr/lib/libelf.so.$(LIBELF_VERSION)
-endif
-libelf-source: $(DL_DIR)/$(LIBELF_SOURCE)
+LIBELF_CONF_OPT = --enable-shared --disable-sanity-checks \
+ $(if $(BR2_ENABLE_DEBUG),--enable-debug,--disable-debug) \
+ $(if $(BR2_LARGEFILE),--enable-elf64)
-libelf-clean:
- $(MAKE) prefix=$(TARGET_DIR)/usr -C $(LIBELF_DIR) uninstall
- $(MAKE) instroot=$(STAGING_DIR) -C $(LIBELF_DIR) uninstall
- -$(MAKE) -C $(LIBELF_DIR) clean
-
-libelf-dirclean:
- rm -rf $(LIBELF_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBELF),y)
-TARGETS+=libelf
-endif
+$(eval $(call AUTOTARGETS,package,libelf))