summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-10-14 00:40:27 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-10-14 00:40:27 +0000
commitf6777ece942ebd64b3ae43c3c939654577bfc6bd (patch)
tree5740afd664000225e2cfb54e51686fcf72ab0d66
parent79a17f08d7bd5640b46c51e32bdda9a80b4d329e (diff)
move common unpacking code to unpack.mk, replace zcat with $(ZCAT) for systems that use gzcat instead
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5070 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/host-build.mk8
-rw-r--r--include/host.mk3
-rw-r--r--include/package.mk8
-rw-r--r--include/unpack.mk15
4 files changed, 22 insertions, 12 deletions
diff --git a/include/host-build.mk b/include/host-build.mk
index a1287da47..858eee531 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 11522184b..6c0dcd669 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 5a9ba861a..fc1b7802f 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 000000000..6449981c1
--- /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