fix mistakes in unpack change
[openwrt-10.03/.git] / include / package.mk
index 3f2f7d41befb463cebee392d61c3fdb957addc93..706b38d12a20a1b43369f8b03b15535d8c87845d 100644 (file)
@@ -11,6 +11,17 @@ else
 endif
 
 include $(INCLUDE_DIR)/prereq.mk
+include $(INCLUDE_DIR)/host.mk
+include $(INCLUDE_DIR)/unpack.mk
+
+define shvar
+V_$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
+endef
+
+define shexport
+$(call shvar,$(1))=$$(call $(1))
+export $(call shvar,$(1))
+endef
 
 define Build/DefaultTargets
   ifeq ($(DUMP),)
@@ -20,7 +31,6 @@ define Build/DefaultTargets
         _INFO+=$(subst $(TOPDIR)/,,$(PKG_BUILD_DIR))
         $(PKG_BUILD_DIR)/.prepared: package-clean
       endif
-
     endif
   endif
 
@@ -99,9 +109,8 @@ define BuildDescription
 endef
 
 define BuildIPKGVariable
-  pkg_$(subst .,_,$(subst -,_,$(1)))_$(2) = $$(Package/$(1)/$(2))
-  export pkg_$(subst .,_,$(subst -,_,$(1))_$(2))
-  $(1)_COMMANDS += if [ -n "$$$$$$$$pkg_$(subst .,_,$(subst -,_,$(1)))_$(2)" ]; then echo "$$$$$$$$pkg_$(subst .,_,$(subst -,_,$(1)))_$(2)" > $(2); fi;
+  $(call shexport,Package/$(1)/$(2))
+  $(1)_COMMANDS += var2file "$(call shvar,Package/$(1)/$(2))" $(2);
 endef
 
 define BuildPackage
@@ -162,6 +171,8 @@ define BuildPackage
        echo "Default: $(DEFAULT)";
     endif
 
+       $(call shexport,Package/$(1)/description)
+
     DUMPINFO += \
        if [ "$$$$PREREQ_CHECK" = 1 ]; then echo "Prereq-Check: 1"; fi; \
        echo "Version: $(VERSION)"; \
@@ -169,22 +180,27 @@ define BuildPackage
        echo "Build-Depends: $(PKG_BUILDDEP)"; \
        echo "Category: $(CATEGORY)"; \
        echo "Title: $(TITLE)"; \
-       echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g';
+       if isset $(call shvar,Package/$(1)/description); then \
+               echo -n "Description: "; \
+               getvar $(call shvar,Package/$(1)/description); \
+       else \
+               echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g'; \
+       fi;
        
     ifneq ($(URL),)
       DUMPINFO += \
-       echo; \
-       echo "$(URL)";
-    endif
-
-    DUMPINFO += \
-       echo "@@";
-
-    ifneq ($(CONFIG),)
-      DUMPINFO += \
-       echo "Config: $(CONFIG)" | sed -e 's,\\,\n,g'; \
-       echo "@@";
+               echo; \
+               echo "$(URL)";
     endif
+       
+       DUMPINFO += \
+               echo "@@";
+
+       $(call shexport,Package/$(1)/config)
+       DUMPINFO += \
+               if isset $(call shvar,Package/$(1)/config); then echo "Config: "; getvar $(call shvar,Package/$(1)/config); fi; \
+               echo "@@";
+  
   endif
 
   $(eval $(call BuildIPKGVariable,$(1),conffiles))
@@ -254,14 +270,9 @@ 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)
+       $(PKG_UNPACK)
        @if [ -d ./patches ]; then \
                $(PATCH) $(PKG_BUILD_DIR) ./patches; \
        fi