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 |