Răsfoiți Sursa

- someone disabled shared lib support without fixing the libelf rule leading to
useless rebuilds. Add option to install the lib to the target and not only to
the staging_dir.

Bernhard Reutner-Fischer 18 ani în urmă
părinte
comite
2534b2ee79
2 a modificat fișierele cu 20 adăugiri și 4 ștergeri
  1. 8 0
      package/libelf/Config.in
  2. 12 4
      package/libelf/libelf.mk

+ 8 - 0
package/libelf/Config.in

@@ -7,3 +7,11 @@ config BR2_PACKAGE_LIBELF
 	  library.
 	  library.
 
 
 	  http://www.stud.uni-hannover.de/~michael/software/
 	  http://www.stud.uni-hannover.de/~michael/software/
+
+config BR2_PACKAGE_LIBELF_HEADERS
+	bool "headers on the target"
+	default n
+	depends on BR2_PACKAGE_LIBELF
+	help
+	  Whether to copy the lib and the headers to the
+	  target system.

+ 12 - 4
package/libelf/libelf.mk

@@ -28,6 +28,7 @@ $(LIBELF_DIR)/.configured: $(LIBELF_DIR)/.unpacked
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		LDFLAGS="$(TARGET_LDFLAGS)" \
 		LDFLAGS="$(TARGET_LDFLAGS)" \
 		libelf_cv_working_memmove=yes \
 		libelf_cv_working_memmove=yes \
+		mr_cv_target_elf=yes \
 		./configure \
 		./configure \
 		--target=$(GNU_TARGET_NAME) \
 		--target=$(GNU_TARGET_NAME) \
 		--host=$(GNU_TARGET_NAME) \
 		--host=$(GNU_TARGET_NAME) \
@@ -35,25 +36,32 @@ $(LIBELF_DIR)/.configured: $(LIBELF_DIR)/.unpacked
 		--prefix=/usr \
 		--prefix=/usr \
 		--sysconfdir=/etc \
 		--sysconfdir=/etc \
 		$(DISABLE_NLS) \
 		$(DISABLE_NLS) \
-		--disable-shared \
+		--enable-shared \
 	);
 	);
 	touch $@
 	touch $@
 
 
-$(LIBELF_DIR)/libelf.so.$(LIBELF_VER): $(LIBELF_DIR)/.configured
+$(LIBELF_DIR)/lib/libelf.so.$(LIBELF_VER): $(LIBELF_DIR)/.configured
 	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(LIBELF_DIR)
 	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(LIBELF_DIR)
 
 
-$(STAGING_DIR)/usr/lib/libelf.a: $(LIBELF_DIR)/libelf.so.$(LIBELF_VER)
+$(STAGING_DIR)/usr/lib/libelf.a: $(LIBELF_DIR)/lib/libelf.so.$(LIBELF_VER)
 	$(MAKE1) $(TARGET_CONFIGURE_OPTS) \
 	$(MAKE1) $(TARGET_CONFIGURE_OPTS) \
 		instroot=$(STAGING_DIR) -C $(LIBELF_DIR) install
 		instroot=$(STAGING_DIR) -C $(LIBELF_DIR) install
 
 
+ifeq ($(BR2_PACKAGE_LIBELF_HEADERS),y)
 $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VER): $(STAGING_DIR)/usr/lib/libelf.a
 $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VER): $(STAGING_DIR)/usr/lib/libelf.a
+	$(INSTALL) $(STAGING_DIR)/usr/lib/libelf* $(@D)
+	cp -dpR $(STAGING_DIR)/usr/include/{gelf.h,libelf*} $(TARGET_DIR)/usr/include/
+	$(STRIP) $@
 
 
 libelf: uclibc $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VER)
 libelf: uclibc $(TARGET_DIR)/usr/lib/libelf.so.$(LIBELF_VER)
-
+else
+libelf: uclibc $(STAGING_DIR)/usr/lib/libelf.so.$(LIBELF_VER)
+endif
 libelf-source: $(DL_DIR)/$(LIBELF_SOURCE)
 libelf-source: $(DL_DIR)/$(LIBELF_SOURCE)
 
 
 libelf-clean:
 libelf-clean:
 	$(MAKE) prefix=$(TARGET_DIR)/usr -C $(LIBELF_DIR) uninstall
 	$(MAKE) prefix=$(TARGET_DIR)/usr -C $(LIBELF_DIR) uninstall
+	$(MAKE) instroot=$(STAGING_DIR) -C $(LIBELF_DIR) uninstall
 	-$(MAKE) -C $(LIBELF_DIR) clean
 	-$(MAKE) -C $(LIBELF_DIR) clean
 
 
 libelf-dirclean:
 libelf-dirclean: