diff options
| -rw-r--r-- | package/Makefile.package.in | 53 | ||||
| -rw-r--r-- | toolchain/dependencies/dependencies.mk | 7 | ||||
| -rwxr-xr-x | toolchain/dependencies/dependencies.sh | 2 | 
3 files changed, 48 insertions, 14 deletions
| diff --git a/package/Makefile.package.in b/package/Makefile.package.in index 816a01323..c4a1cf8ee 100644 --- a/package/Makefile.package.in +++ b/package/Makefile.package.in @@ -85,19 +85,21 @@ DL_DIR:=$(TOPDIR)/dl  endif  ################################################################################ -# The DOWNLOAD_{GIT,SVN} helpers are in charge of getting a working copy of -# the source repository for their corresponding SCM, checking out the requested -# version / commit / tag, and create an archive out of it. DOWNLOAD_WGET is the -# normal wget-based download mechanism. +# The DOWNLOAD_{GIT,SVN,BZR} helpers are in charge of getting a +# working copy of the source repository for their corresponding SCM, +# checking out the requested version / commit / tag, and create an +# archive out of it. DOWNLOAD_WGET is the normal wget-based download +# mechanism.  # -# The SOURCE_CHECK_{GIT,SVN,WGET} helpers are in charge of simply checking that -# the source is available for download. This can be used to make sure one will -# be able to get all the sources needed for one's build configuration. +# The SOURCE_CHECK_{GIT,SVN,BZR,WGET} helpers are in charge of simply +# checking that the source is available for download. This can be used +# to make sure one will be able to get all the sources needed for +# one's build configuration.  # -# The SHOW_EXTERNAL_DEPS_{GIT,SVN,WGET} helpers simply output to the console -# the names of the files that will be downloaded, or path and revision of the -# source repositories, producing a list of all the "external dependencies" of -# a given build configuration. +# The SHOW_EXTERNAL_DEPS_{GIT,SVN,BZR,WGET} helpers simply output to +# the console the names of the files that will be downloaded, or path +# and revision of the source repositories, producing a list of all the +# "external dependencies" of a given build configuration.  ################################################################################  define DOWNLOAD_GIT @@ -123,6 +125,20 @@ define SHOW_EXTERNAL_DEPS_GIT  endef +define DOWNLOAD_BZR +	test -e $(DL_DIR)/$($(PKG)_SOURCE) || \ +	$(BZR) export $(DL_DIR)/$($(PKG)_SOURCE) $($(PKG)_SITE) -r $($(PKG)_DL_VERSION) +endef + +define SOURCE_CHECK_BZR +	$(BZR) ls --quiet $($(PKG)_SITE) > /dev/null +endef + +define SHOW_EXTERNAL_DEPS_BZR +	echo "$($(PKG)_SITE) [bzr: $($(PKG)_DL_VERSION)]" +endef + +  define DOWNLOAD_SVN  	test -e $(DL_DIR)/$($(PKG)_SOURCE) || \  	(pushd $(DL_DIR) > /dev/null && \ @@ -175,6 +191,7 @@ define DOWNLOAD  		case "$($(PKG)_SITE_METHOD)" in \  			git) $($(DL_MODE)_GIT) && exit ;; \  			svn) $($(DL_MODE)_SVN) && exit ;; \ +			bzr) $($(DL_MODE)_BZR) && exit ;; \  			*) $(call $(DL_MODE)_WGET,$(1),$(2)) && exit ;; \  		esac ; \  	fi ; \ @@ -487,9 +504,19 @@ $$($(2)_TARGET_DIRCLEAN):		PKG=$(2)  # configuration  ifeq ($$(BR2_PACKAGE_$(2)),y) +  TARGETS += $(1) -endif -endef + +ifeq ($$($(2)_SITE_METHOD),svn) +DL_TOOLS_DEPENDENCIES += svn +else ifeq ($$($(2)_SITE_METHOD),git) +DL_TOOLS_DEPENDENCIES += git +else ifeq ($$($(2)_SITE_METHOD),bzr) +DL_TOOLS_DEPENDENCIES += bzr +endif # SITE_METHOD + +endif # BR2_PACKAGE_$(2) +endef # GENTARGETS_INNER  ################################################################################  # GENTARGETS -- the target generator macro for generic packages diff --git a/toolchain/dependencies/dependencies.mk b/toolchain/dependencies/dependencies.mk index 89ffd8823..13604f092 100644 --- a/toolchain/dependencies/dependencies.mk +++ b/toolchain/dependencies/dependencies.mk @@ -10,9 +10,16 @@ ifeq ($(BR2_STRIP_sstrip),y)  DEPENDENCIES_HOST_PREREQ+=sstrip_host  endif +# Remove duplicate entries from $(DL_TOOLS_DEPENDENCIES) +DL_TOOLS = \ +	$(findstring svn,$(DL_TOOLS_DEPENDENCIES)) \ +	$(findstring git,$(DL_TOOLS_DEPENDENCIES)) \ +	$(findstring bzr,$(DL_TOOLS_DEPENDENCIES)) +  dependencies: $(DEPENDENCIES_HOST_PREREQ)  	@HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" \  		CONFIG_FILE="$(CONFIG_DIR)/.config" \ +		DL_TOOLS="$(DL_TOOLS)" \  		$(TOPDIR)/toolchain/dependencies/dependencies.sh  dependencies-source: diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index a152d4b8c..c5552cae0 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -132,7 +132,7 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then  fi;  # Check that a few mandatory programs are installed -for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python svn unzip ; do +for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python unzip ${DL_TOOLS} ; do      if ! which $prog > /dev/null ; then  	/bin/echo -e "\nYou must install '$prog' on your build machine";  	if test $prog = "makeinfo" ; then | 
