move common unpacking code to unpack.mk, replace zcat with $(ZCAT) for systems that...
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 14 Oct 2006 00:40:27 +0000 (00:40 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 14 Oct 2006 00:40:27 +0000 (00:40 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5070 3c298f89-4303-0410-b956-a3cf2f4a3e73

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

index a1287da..858eee5 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 1152218..6c0dcd6 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 5a9ba86..fc1b780 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