diff options
-rw-r--r-- | include/host-build.mk | 8 | ||||
-rw-r--r-- | include/host.mk | 3 | ||||
-rw-r--r-- | include/package.mk | 8 | ||||
-rw-r--r-- | include/unpack.mk | 15 |
4 files changed, 22 insertions, 12 deletions
diff --git a/include/host-build.mk b/include/host-build.mk index a1287da475..858eee5318 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 11522184b7..6c0dcd6699 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 5a9ba861af..fc1b7802f9 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 0000000000..6449981c1b --- /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 |