aboutsummaryrefslogtreecommitdiffstats
path: root/include/package-version-override.mk
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-10-05 10:12:53 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-10-05 10:12:53 +0000
commit5c105d9f3fd086aff195d3849dcf847d6b0bd927 (patch)
tree1229a11f725bfa58aa7c57a76898553bb5f6654a /include/package-version-override.mk
downloadopenwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.tar.gz
openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.zip
branch Attitude Adjustment
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'include/package-version-override.mk')
-rw-r--r--include/package-version-override.mk70
1 files changed, 70 insertions, 0 deletions
diff --git a/include/package-version-override.mk b/include/package-version-override.mk
new file mode 100644
index 000000000..2c1741eef
--- /dev/null
+++ b/include/package-version-override.mk
@@ -0,0 +1,70 @@
+# remember the provided package version
+PKG_VERSION_ORGINAL:=$(PKG_VERSION)
+
+# in case that another version is provided, overwrite the original
+ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_VERSION),y)
+PKG_VERSION:=$(call qstrip,$(CONFIG_$(PKG_NAME)_CUSTOM_VERSION))
+PKG_SOURCE:=$(subst $(PKG_VERSION_ORGINAL),$(PKG_VERSION),$(PKG_SOURCE))
+PKG_MD5SUM:=
+endif
+
+# package specific configuration
+# if includeded the package version can be overwritten within the .config file (instead of changing the package specific Makefile)
+define Package/$(PKG_NAME)/override_version
+ menu "overwrite package version"
+ depends on PACKAGE_$(PKG_NAME)
+ config $(PKG_NAME)_USE_CUSTOM_VERSION
+ depends on PACKAGE_$(PKG_NAME)
+ bool "Use custom package version"
+ default n
+ config $(PKG_NAME)_CUSTOM_VERSION
+ depends on $(PKG_NAME)_USE_CUSTOM_VERSION
+ string "$(PKG_BASE_NAME) version as string (default version: $(PKG_VERSION_ORGINAL))"
+ default "$(PKG_VERSION_ORGINAL)"
+ endmenu
+endef
+
+# in case that an customer source path is provided, set the acc. default variable
+ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_SOURCE_DIR),y)
+PKG_DEFAULT_CUSTOM_SOURCE_DIR:= $(call qstrip,$(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR))
+endif
+
+# package specific configuration
+# if includeded the package source path can be overwritten within the .config file (instead of changing the package specific Makefile)
+# instead of using a source ball (eg tar.gz) the specified path will point to the location of the sources
+define Package/$(PKG_NAME)/override_source_path
+ menu "custom source directory"
+ depends on PACKAGE_$(PKG_NAME)
+ config $(PKG_NAME)_USE_CUSTOM_SOURCE_DIR
+ depends on PACKAGE_$(PKG_NAME)
+ bool "Use custom source directory"
+ default n
+ config $(PKG_NAME)_CUSTOM_SOURCE_DIR
+ depends on $(PKG_NAME)_USE_CUSTOM_SOURCE_DIR
+ string "Custom source directory"
+ default "$(PKG_DEFAULT_CUSTOM_SOURCE_DIR)"
+ endmenu
+endef
+
+# default:
+# include both configurations as long this file is included before package.mk
+# in case that you're defining your own onfiguration within the package Makefile just include the stuff by yourself
+define Package/$(PKG_NAME)/config
+ $(call Package/$(PKG_NAME)/override_version)
+ $(call Package/$(PKG_NAME)/override_source_path)
+endef
+
+# hook for custom source path
+# in case that the specified path is valid a link to the PKG_SOURCE_DIR is created
+# otherwise the make is stopped
+define prepare_custom_source_directory
+ if [ -d $(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR) ]; then \
+ rm -Rf $(PKG_BUILD_DIR); \
+ echo "Preparing Custom Source Directory link: $(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR)"; \
+ ln -snf $(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR) $(PKG_BUILD_DIR); \
+ else \
+ echo "Custom Source Directory $(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR) is invalid"; \
+ false; \
+ fi
+endef
+