-define PKG_template
-IPKG_$(1):=$(PACKAGE_DIR)/$(2)_$(3)_$(4).ipk
-IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(2)
-INFO_$(1):=$(IPKG_STATE_DIR)/info/$(2).list
+ifneq ($(DUMP),)
+all: dumpinfo
+else
+all: compile
+endif
+
+define Build/DefaultTargets
+$(PKG_BUILD_DIR)/.prepared: FORCE $(DL_DIR)/$(PKG_SOURCE)
+ifeq ($(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) .),.)
+ @-rm -rf $(PKG_BUILD_DIR)
+ @mkdir -p $(PKG_BUILD_DIR)
+ $(call Build/Prepare)
+ @touch $$@
+endif
+
+$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared
+ $(call Build/Configure)
+ touch $$@
+
+$(PKG_BUILD_DIR)/.built: FORCE $(PKG_BUILD_DIR)/.configured
+ifeq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg $$(IPKG_$(1)) $(PKG_BUILD_DIR)),$(PKG_BUILD_DIR))
+ $(call Build/Compile)
+ touch $$@
+endif
+
+package-clean: FORCE
+ $(call Build/Clean)
+ rm -f $(PKG_BUILD_DIR)/.built
+
+define Build/DefaultTargets
+endef
+endef
+
+define Package/Default
+CONFIGFILE:=
+SECTION:=opt
+CATEGORY:=Extra packages
+DEPENDS:=
+MAINTAINER:=OpenWrt Developers Team <openwrt-devel@openwrt.org>
+SOURCE:=$(patsubst $(TOPDIR)/%,%,${shell pwd})
+VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
+PKGARCH:=$(ARCH)
+PRIORITY:=optional
+DEFAULT:=
+MENU:=
+TITLE:=
+DESCRIPTION:=
+endef