From 0d9ddef0e843133bd0cebdbfe141486fee4a6db8 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 14 Oct 2006 00:40:27 +0000 Subject: [PATCH] move common unpacking code to unpack.mk, replace zcat with $(ZCAT) for systems that use gzcat instead SVN-Revision: 5070 --- include/host-build.mk | 8 ++------ include/host.mk | 3 +++ include/package.mk | 8 ++------ include/unpack.mk | 15 +++++++++++++++ 4 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 include/unpack.mk diff --git a/include/host-build.mk b/include/host-build.mk index a1287da475b..858eee53182 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -6,13 +6,9 @@ # include $(INCLUDE_DIR)/host.mk +include $(INCLUDE_DIR)/unpack.mk -ifneq ($(strip $(PKG_CAT)),) - ifeq ($(PKG_CAT),unzip) - UNPACK=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) - else - UNPACK=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS) - - endif +ifneq ($(strip $(UNPACK)),) define Build/Prepare/Default $(UNPACK) @if [ -d ./patches ]; then \ diff --git a/include/host.mk b/include/host.mk index 11522184b7c..6c0dcd6699f 100644 --- a/include/host.mk +++ b/include/host.mk @@ -28,5 +28,8 @@ $(TOPDIR)/.host.mk: $(INCLUDE_DIR)/host.mk if $$TAR --version 2>&1 | grep 'GNU' >/dev/null; then \ echo "TAR_WILDCARDS:=--wildcards" >> $@; \ fi; \ + ZCAT=`which gzcat`; \ + [ -n "$$ZCAT" -a -x "$$ZCAT" ] || ZCAT=`which zcat`; \ + echo "ZCAT:=$$ZCAT" >> $@; \ ) diff --git a/include/package.mk b/include/package.mk index 5a9ba861af1..fc1b7802f9e 100644 --- a/include/package.mk +++ b/include/package.mk @@ -12,6 +12,7 @@ endif include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/host.mk +include $(INCLUDE_DIR)/unpack.mk define shvar V_$(subst .,_,$(subst -,_,$(subst /,_,$(1)))) @@ -269,12 +270,7 @@ define BuildPackage endif endef -ifneq ($(strip $(PKG_CAT)),) - ifeq ($(PKG_CAT),unzip) - UNPACK=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) - else - UNPACK=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS) - - endif +ifneq ($(strip $(PKG_UNPACK)),) define Build/Prepare/Default $(UNPACK) @if [ -d ./patches ]; then \ diff --git a/include/unpack.mk b/include/unpack.mk new file mode 100644 index 00000000000..6449981c1bf --- /dev/null +++ b/include/unpack.mk @@ -0,0 +1,15 @@ +ifeq ($(strip $(PKG_UNPACK)),) + ifneq ($(strip $(PKG_CAT)),) + # use existing PKG_CAT + UNPACK:=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS) - + ifeq ($(PKG_CAT),unzip) + UNPACK=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) + endif + # replace zcat with $(ZCAT), because some system have it as gzcat + ifeq ($(PKG_CAT),zcat) + UNPACK:=$(ZCAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS) - + endif + else + # try to autodetect file type + endif +endif