X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/f269a04bb6614e6274ec7abf6b4c4ca4abe780ea..4992754ee11aea559337e46c74df7bf15297f4c1:/package/libelf/Makefile

diff --git a/package/libelf/Makefile b/package/libelf/Makefile
index c176db5ff..02ea765b0 100644
--- a/package/libelf/Makefile
+++ b/package/libelf/Makefile
@@ -7,88 +7,83 @@ PKG_VERSION:=0.8.5
 PKG_RELEASE:=1
 PKG_MD5SUM:=c1daf069367871350ece779b7de20047
 
-PKG_SOURCE_URL:=\
-	http://www.mr511.de/software/ \
-	http://nthill.free.fr/openwrt/sources/$(PKG_NAME)/
+PKG_SOURCE_URL:=http://www.mr511.de/software/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_CAT:=zcat
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
 
-IPKG_LIBELF:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
-IDIR_LIBELF:=$(PKG_BUILD_DIR)/ipkg/$(PKG_NAME)
-INFO_LIBELF:=$(IPKG_STATE_DIR)/info/$(PKG_NAME).list
+include $(TOPDIR)/package/rules.mk
 
-.NOTPARALLEL:
-
-$(DL_DIR)/$(PKG_SOURCE):
-	$(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL)
+$(eval $(call PKG_template,LIBELF,libelf,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 
-$(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE)
-	$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	touch $(PKG_BUILD_DIR)/.prepared
+.NOTPARALLEL:
 
-$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared
-	(cd $(PKG_BUILD_DIR); rm -rf config.cache config.status; \
+$(PKG_BUILD_DIR)/.configured:
+	(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
 		$(TARGET_CONFIGURE_OPTS) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
 		LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
 		mr_cv_target_elf=yes \
+		libelf_64bit=yes \
+		libelf_cv_struct_elf64_ehdr=yes \
+		libelf_cv_type_elf64_addr=no \
+		libelf_cv_struct_elf64_rel=yes \
+		ac_cv_sizeof_long_long=8 \
 		./configure \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--program-prefix="" \
-		--program-suffix="" \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--datadir=/usr/share \
-		--includedir=/usr/include \
-		--infodir=/usr/share/info \
-		--libdir=/usr/lib \
-		--libexecdir=/usr/lib \
-		--localstatedir=/var \
-		--mandir=/usr/share/man \
-		--sbindir=/usr/sbin \
-		--sysconfdir=/etc \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-		--enable-shared \
-		--enable-static \
+		  --target=$(GNU_TARGET_NAME) \
+		  --host=$(GNU_TARGET_NAME) \
+		  --build=$(GNU_HOST_NAME) \
+		  --program-prefix="" \
+		  --program-suffix="" \
+		  --prefix=/usr \
+		  --exec-prefix=/usr \
+		  --bindir=/usr/bin \
+		  --datadir=/usr/share \
+		  --includedir=/usr/include \
+		  --infodir=/usr/share/info \
+		  --libdir=/usr/lib \
+		  --libexecdir=/usr/lib \
+		  --localstatedir=/var \
+		  --mandir=/usr/share/man \
+		  --sbindir=/usr/sbin \
+		  --sysconfdir=/etc \
+		  $(DISABLE_LARGEFILE) \
+		  $(DISABLE_NLS) \
+		  --enable-shared \
+		  --enable-static \
+		  --enable-elf64=yes \
 	);
-	touch $(PKG_BUILD_DIR)/.configured
+	touch $@
 
-$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/.configured
+$(PKG_BUILD_DIR)/.built:
+	rm -rf $(PKG_INSTALL_DIR)
+	mkdir -p $(PKG_INSTALL_DIR)
 	$(MAKE) -C $(PKG_BUILD_DIR) -j1 \
 		CC=$(TARGET_CC) LD=$(TARGET_CROSS)ld ARCH=$(ARCH) \
-		
-	touch $(PKG_BUILD_DIR)/.built
-
-$(STAGING_DIR)/usr/lib/libelf.so: $(PKG_BUILD_DIR)/.built
-	$(MAKE) -C $(PKG_BUILD_DIR) -j1 \
-		instroot="$(STAGING_DIR)" \
-		install
+		instroot="$(PKG_INSTALL_DIR)" \
+		all install
+	touch $@
 
-$(IPKG_LIBELF): $(STAGING_DIR)/usr/lib/libelf.so
-	$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_LIBELF) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
-	mkdir -p $(IDIR_LIBELF)/usr/lib
-	cp -fp $(PKG_BUILD_DIR)/lib/libelf.so.* $(IDIR_LIBELF)/usr/lib/
-	$(STRIP) $(IDIR_LIBELF)/usr/lib/lib*.so*
-	mkdir -p $(PACKAGE_DIR)
+$(IPKG_LIBELF):
+	install -d -m0755 $(IDIR_LIBELF)/usr/lib
+	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libelf.so.* $(IDIR_LIBELF)/usr/lib/
+	$(RSTRIP) $(IDIR_LIBELF)
 	$(IPKG_BUILD) $(IDIR_LIBELF) $(PACKAGE_DIR)
 
-$(INFO_LIBELF): $(IPKG_LIBELF)
-	$(IPKG) install $(IPKG_LIBELF)
+$(STAGING_DIR)/usr/lib/libelf.so: $(PKG_BUILD_DIR)/.built
+	mkdir -p $(STAGING_DIR)/usr/include
+	cp -fpR $(PKG_INSTALL_DIR)/usr/include/libelf* $(STAGING_DIR)/usr/include/
+	mkdir -p $(STAGING_DIR)/usr/lib
+	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libelf.{a,so*} $(STAGING_DIR)/usr/lib/
+
+install-dev: $(STAGING_DIR)/usr/lib/libelf.so
 
-source: $(DL_DIR)/$(PKG_SOURCE)
-prepare: $(PKG_BUILD_DIR)/.prepared
-compile: $(IPKG_LIBELF)
-install: $(INFO_LIBELF)
+uninstall-dev:
+	rm -rf $(STAGING_DIR)/usr/include/libelf*
+	rm -rf $(STAGING_DIR)/usr/lib/libelf.{a,so*}
 
-clean:
-	-$(MAKE) -C $(PKG_BUILD_DIR) -j1 \
-		instroot="$(STAGING_DIR)" \
-		uninstall
-	rm -rf $(PKG_BUILD_DIR) $(IPKG_LIBELF)
+compile: install-dev
+clean: uninstall-dev