eval "var=\"\${$1}\""
[ -n "$var" ]
}
+
+trapret() {(
+ local retvals="$1"; shift
+ local cmd="$1"; shift
+ for retval in $(echo $retvals); do
+ local trap_$retval=1
+ done
+ "$cmd" "$@" || {
+ local retval="$?"
+ eval "trapped=\${trap_$retval}"
+ [ -n "$trapped" ] || {
+ return $retval
+ }
+ }
+)}
ifeq ($(strip $(PKG_UNPACK)),)
+ ifneq ($(HOST_OS),Linux)
+ TAR := trapret 2 $(PKG_UNPACK) $(TAR)
+ endif
ifneq ($(strip $(PKG_CAT)),)
# use existing PKG_CAT
PKG_UNPACK:=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | $(TAR) -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS)
ifeq ($(PKG_CAT),unzip)
- PKG_UNPACK=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE)
+ PKG_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)