summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/Makefile.package.in12
-rw-r--r--package/tar/tar.mk13
2 files changed, 13 insertions, 12 deletions
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index 1ace683c2..33461b4dc 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -299,18 +299,6 @@ define DOWNLOAD
exit 1
endef
-# Utility programs used to build packages
-TAR ?= tar
-
-# Automatically detect tar --strip-path/components option
-TAR_STRIP_COMPONENTS := \
- $(shell $(TAR) --help | grep strip-path > /dev/null ; \
- if test $$? = 0 ; then \
- echo '--strip-path' ; \
- else \
- echo '--strip-components' ; \
- fi)
-
# Needed for the foreach loops to loop over the list of hooks, so that
# each hook call is properly separated by a newline.
define sep
diff --git a/package/tar/tar.mk b/package/tar/tar.mk
index edbd9bdc7..9e856b53f 100644
--- a/package/tar/tar.mk
+++ b/package/tar/tar.mk
@@ -10,6 +10,19 @@ TAR_SITE = $(BR2_GNU_MIRROR)/tar
# Prefer full-blown tar over buybox's version
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
TAR_DEPENDENCIES += busybox
+HOST_TAR_DEPENDENCIES =
endif
$(eval $(call AUTOTARGETS))
+
+# host-tar: use cpio.gz instead of tar.gz to prevent chicken-egg problem
+# of needing tar to build tar.
+HOST_TAR_SOURCE = tar-$(TAR_VERSION).cpio.gz
+define HOST_TAR_EXTRACT_CMDS
+ mkdir -p $(@D)
+ cd $(@D) && \
+ $(INFLATE.gz) $(DL_DIR)/$(HOST_TAR_SOURCE) | cpio -i
+ mv $(@D)/tar-$(TAR_VERSION)/* $(@D)
+ rmdir $(@D)/tar-$(TAR_VERSION)
+endef
+$(eval $(call AUTOTARGETS,host))