move common unpacking code to unpack.mk, replace zcat with $(ZCAT) for systems that...
authorFelix Fietkau <nbd@openwrt.org>
Sat, 14 Oct 2006 00:40:27 +0000 (00:40 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 14 Oct 2006 00:40:27 +0000 (00:40 +0000)
SVN-Revision: 5070

include/host-build.mk
include/host.mk
include/package.mk
include/unpack.mk [new file with mode: 0644]

index a1287da475bc8a63a5d13c021e6d27efc0fe39e9..858eee53182ab9407efa6e1380ace928b7b4e28b 100644 (file)
@@ -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 \
index 11522184b7ce7f72240493a7b189ed8d229161c9..6c0dcd6699f39d2202d396b6b45fb77838cf4ea9 100644 (file)
@@ -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" >> $@; \
        )
 
index 5a9ba861af1b9fca3cc559455a48ff58b82d2ba6..fc1b7802f9e09bcf93c8c239deadcf3acb269f31 100644 (file)
@@ -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 (file)
index 0000000..6449981
--- /dev/null
@@ -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