X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/3399aaf35ee37df541d40aeb3a360e82341de44f..66ba7ac042972065d06ce3bdb09bbe3b42368057:/include/package.mk?ds=sidebyside

diff --git a/include/package.mk b/include/package.mk
index 396fae60f..7ae95f8fe 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -12,6 +12,15 @@ endif
 
 include $(INCLUDE_DIR)/prereq.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),)
     ifeq ($(CONFIG_AUTOREBUILD),y)
@@ -20,7 +29,6 @@ define Build/DefaultTargets
         _INFO+=$(subst $(TOPDIR)/,,$(PKG_BUILD_DIR))
         $(PKG_BUILD_DIR)/.prepared: package-clean
       endif
-
     endif
   endif
 
@@ -90,30 +98,30 @@ define Package/Default
   DESCRIPTION:=
 endef
 
+define BuildDescription
+  ifneq ($(DESCRIPTION),)
+    DESCRIPTION:=$(TITLE)\\ $(DESCRIPTION)
+  else
+    DESCRIPTION:=$(TITLE)
+  endif
+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
   $(eval $(call Package/Default))
   $(eval $(call Package/$(1)))
+  $(eval $(call BuildDescription))
 
-  $(foreach FIELD, TITLE CATEGORY PRIORITY VERSION,
+  $(foreach FIELD, TITLE CATEGORY PRIORITY SECTION VERSION,
     ifeq ($($(FIELD)),)
       $$(error Package/$(1) is missing the $(FIELD) field)
     endif
   )
 
-  ifeq ($(PKGARCH),)
-    PKGARCH:=$(ARCH)
-  endif
-
-  ifeq ($(DESCRIPTION),)
-    $(eval DESCRIPTION:=$(TITLE))
-  endif
-
   IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk
   IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(1)
   INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list
@@ -161,28 +169,36 @@ 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)"; \
 	echo "Depends: $$(IDEPEND_$(1))"; \
 	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))
@@ -206,7 +222,7 @@ define BuildPackage
 	echo "Priority: $(PRIORITY)" >> $$(IDIR_$(1))/CONTROL/control
 	echo "Maintainer: $(MAINTAINER)" >> $$(IDIR_$(1))/CONTROL/control
 	echo "Architecture: $(PKGARCH)" >> $$(IDIR_$(1))/CONTROL/control
-	echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n ,g' >> $$(IDIR_$(1))/CONTROL/control
+	echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g' | sed -e 's,^[[:space:]]*$$$$, .,g' >> $$(IDIR_$(1))/CONTROL/control
 	chmod 644 $$(IDIR_$(1))/CONTROL/control
 	(cd $$(IDIR_$(1))/CONTROL; \
 		$($(1)_COMMANDS) \
@@ -271,12 +287,14 @@ define Build/Prepare
 endef
 
 define Build/Configure/Default
-	@(cd $(PKG_BUILD_DIR)/$(3); \
+	(cd $(PKG_BUILD_DIR)/$(3); \
 	if [ -x configure ]; then \
 		$(TARGET_CONFIGURE_OPTS) \
 		CFLAGS="$(TARGET_CFLAGS)" \
+		CXXFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
 		LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \
+		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \
 		$(2) \
 		./configure \
 		--target=$(GNU_TARGET_NAME) \
@@ -308,7 +326,8 @@ define Build/Compile/Default
 	$(MAKE) -C $(PKG_BUILD_DIR) \
 		$(TARGET_CONFIGURE_OPTS) \
 		CROSS="$(TARGET_CROSS)" \
-		EXTRA_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include" \
+		EXTRA_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include " \
+		EXTRA_LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib " \
 		ARCH="$(ARCH)" \
 		$(1);
 endef