mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 03:11:32 +02:00
[package] add package source path override
- use external source tree instead of source ball - the external package source tree will be included as symlink - make package/<name>/clean will delete the symlink instead of whole source tree - usefull in conjunction with external SCM like ClearCase - package-version-override.mk has to be included before package.mk git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16227 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
fa6c7ba5a8
commit
9158119b40
@ -1,21 +1,71 @@
|
|||||||
|
# remember the provided package version
|
||||||
PKG_VERSION_ORGINAL:=$(PKG_VERSION)
|
PKG_VERSION_ORGINAL:=$(PKG_VERSION)
|
||||||
|
|
||||||
ifeq ($(CONFIG_$(PKG_NAME)_USE_OTHER_VERSION),y)
|
# in case that another version is provided, overwrite the original
|
||||||
PKG_VERSION:= $(strip $(subst ",, $(CONFIG_$(PKG_NAME)_OTHER_VERSION)))
|
ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_VERSION),y)
|
||||||
PKG_MD5SUM:=
|
PKG_VERSION:= $(strip $(subst ",, $(CONFIG_$(PKG_NAME)_CUSTOM_VERSION)))
|
||||||
PKG_SOURCE:=$(subst $(PKG_VERSION_ORGINAL),$(PKG_VERSION),$(PKG_SOURCE))
|
PKG_SOURCE:=$(subst $(PKG_VERSION_ORGINAL),$(PKG_VERSION),$(PKG_SOURCE))
|
||||||
|
PKG_MD5SUM:=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/config
|
# 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"
|
menu "overwrite package version"
|
||||||
depends on PACKAGE_$(PKG_NAME)
|
depends on PACKAGE_$(PKG_NAME)
|
||||||
config $(PKG_NAME)_USE_OTHER_VERSION
|
config $(PKG_NAME)_USE_CUSTOM_VERSION
|
||||||
depends on PACKAGE_$(PKG_NAME)
|
depends on PACKAGE_$(PKG_NAME)
|
||||||
bool "Use other source version"
|
bool "Use custom package version"
|
||||||
default n
|
default n
|
||||||
config $(PKG_NAME)_OTHER_VERSION
|
config $(PKG_NAME)_CUSTOM_VERSION
|
||||||
depends on $(PKG_NAME)_USE_OTHER_VERSION
|
depends on $(PKG_NAME)_USE_CUSTOM_VERSION
|
||||||
string "$(PKG_BASE_NAME) version as string (default version: $(PKG_VERSION_ORGINAL))"
|
string "$(PKG_BASE_NAME) version as string (default version: $(PKG_VERSION_ORGINAL))"
|
||||||
default "$(PKG_VERSION_ORGINAL)"
|
default "$(PKG_VERSION_ORGINAL)"
|
||||||
endmenu
|
endmenu
|
||||||
endef
|
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:= $(strip $(subst ",, $(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); \
|
||||||
|
( cd $(PKG_BUILD_DIR); autoreconf -i; ) \
|
||||||
|
else \
|
||||||
|
echo "Custom Source Directory $(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR) is invalid"; \
|
||||||
|
false; \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
|
||||||
|
@ -48,6 +48,17 @@ ifeq ($(DUMP)$(filter prereq clean refresh update,$(MAKECMDGOALS)),)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_SOURCE_DIR),y)
|
||||||
|
# disable load stage
|
||||||
|
PKG_SOURCE_URL:=
|
||||||
|
# add hook to install a link to customer source path of dedicated package
|
||||||
|
Hooks/Prepare/Pre += prepare_custom_source_directory
|
||||||
|
# define empty default action
|
||||||
|
define Build/Prepare/Default
|
||||||
|
@:
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
define Download/default
|
define Download/default
|
||||||
FILE:=$(PKG_SOURCE)
|
FILE:=$(PKG_SOURCE)
|
||||||
URL:=$(PKG_SOURCE_URL)
|
URL:=$(PKG_SOURCE_URL)
|
||||||
|
Loading…
Reference in New Issue
Block a user