+define BuildPackage
+ $(eval $(call Package/Default))
+ $(eval $(call Package/$(1)))
+
+ $(foreach FIELD, TITLE CATEGORY PRIORITY 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
+
+ ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),)
+ COMPILE_$(1):=1
+ endif
+
+ ifeq ($(CONFIG_PACKAGE_$(1)),y)
+ install-targets: $$(INFO_$(1))
+ endif
+
+ ifneq ($(COMPILE_$(1)),)
+ compile-targets: $(IPKG_$(1))
+ endif
+
+ IDEPEND_$(1):=$$(strip $$(DEPENDS))
+
+ DUMPINFO += \
+ echo "Package: $(1)";
+
+ ifneq ($(MENU),)
+ DUMPINFO += \
+ echo "Menu: $(MENU)";
+ endif
+
+ ifneq ($(DEFAULT),)
+ DUMPINFO += \
+ echo "Default: $(DEFAULT)";
+ endif
+
+ DUMPINFO += \
+ echo "Version: $(VERSION)"; \
+ echo "Depends: $$(IDEPEND_$(1))"; \
+ echo "Category: $(CATEGORY)"; \
+ echo "Title: $(TITLE)"; \
+ echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g';
+
+ ifneq ($(URL),)
+ DUMPINFO += \
+ echo; \
+ echo "$(URL)";
+ endif
+
+ DUMPINFO += \
+ echo "@@";
+
+ $$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.prepared
+ mkdir -p $$(IDIR_$(1))/CONTROL
+ echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control
+ echo "Version: $(VERSION)" >> $$(IDIR_$(1))/CONTROL/control
+ echo "Depends: $$(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control
+ echo "Source: $(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control
+ echo "Section: $(SECTION)" >> $$(IDIR_$(1))/CONTROL/control
+ 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
+ chmod 644 $$(IDIR_$(1))/CONTROL/control