From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-qa0-x231.google.com ([2607:f8b0:400d:c00::231]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1W6k0P-0001jB-50 for ptxdist@pengutronix.de; Fri, 24 Jan 2014 17:53:22 +0100 Received: by mail-qa0-f49.google.com with SMTP id w8so4140977qac.36 for ; Fri, 24 Jan 2014 08:53:14 -0800 (PST) From: jon@ringle.org Date: Fri, 24 Jan 2014 11:53:03 -0500 Message-Id: <1390582385-6652-1-git-send-email-jon@ringle.org> Subject: [ptxdist] [PATCHv3] ptxdist getdev: Download dev packages from ${PTXCONF_PROJECT_DEVMIRROR} Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de Cc: Jon Ringle From: Jon Ringle This patch allows you to setup a dev package mirror to hold *-dev.tar.gz packages. Upload your *-dev.tar.gz packages to your mirror, then you can avoid rebuilding all your packages by doing: ptxdist getdev Signed-off-by: Jon Ringle --- bin/ptxdist | 5 +++++ rules/post/ptxd_make_world_get.make | 7 +++++++ rules/project-name.in | 9 +++++++++ scripts/lib/ptxd_lib_dgen.awk | 7 +++++++ scripts/lib/ptxd_make_get.sh | 15 ++++++++------- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/bin/ptxdist b/bin/ptxdist index f9cbdec..663c41e 100755 --- a/bin/ptxdist +++ b/bin/ptxdist @@ -1789,6 +1789,11 @@ EOF fi exit ;; + getdev) + check_premake && + ptxd_make_log getdev + exit + ;; go|images) do_${cmd} exit diff --git a/rules/post/ptxd_make_world_get.make b/rules/post/ptxd_make_world_get.make index 152674c..edbdde9 100644 --- a/rules/post/ptxd_make_world_get.make +++ b/rules/post/ptxd_make_world_get.make @@ -26,6 +26,9 @@ $(SRCDIR)/%: @$(call targetinfo) @$(call get, $($@)) +$(call remove_quotes, $(PTXCONF_PROJECT_DEVPKGDIR))/%: + @$(call targetinfo) + @$(call getdev, $@) $(STATEDIR)/%.get: @$(call targetinfo) @@ -59,4 +62,8 @@ get = \ check_src = \ ptxd_make_check_src "$($(strip $(1))_SOURCE)" "$($(strip $(1))_MD5)" +getdev = \ + ptxd_make_get_nofail=y \ + ptxd_make_get "$(strip $(1))" "$(call remove_quotes, $(PTXCONF_PROJECT_DEVMIRROR))/$(notdir $(1))" + # vim: syntax=make diff --git a/rules/project-name.in b/rules/project-name.in index f546458..d1cd09a 100644 --- a/rules/project-name.in +++ b/rules/project-name.in @@ -180,4 +180,13 @@ config PROJECT_DEVPKGDIR depends on PROJECT_USE_DEVPKGS default "/opt/OSELAS.BSP/${PTXCONF_PROJECT_VENDOR}/OSELAS.BSP-${PTXCONF_PROJECT_VENDOR}-${PTXCONF_PROJECT}${PTXCONF_PROJECT_VERSION}" +config PROJECT_DEVMIRROR + string + prompt "Mirror for pre-build archives" + depends on PROJECT_USE_DEVPKGS + help + Enter a URL where *-dev.tar.gz packages can be downloaded + Use: ptxdist getdev + + endmenu diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk index 7f790c9..6cd60e2 100644 --- a/scripts/lib/ptxd_lib_dgen.awk +++ b/scripts/lib/ptxd_lib_dgen.awk @@ -241,6 +241,13 @@ function write_deps_pkg_all(this_PKG, this_pkg) { # .get rule # print "$(STATEDIR)/" this_pkg ".get: $(" this_PKG "_SOURCES)" > DGEN_DEPS_POST; + print "ifneq ($(call remove_quotes, $(PTXCONF_PROJECT_DEVMIRROR)),)" > DGEN_DEPS_POST; + print "ifneq ($($(" this_PKG "_DEVPKG)),NO)" > DGEN_DEPS_POST; + print "ifneq ($(" this_PKG "_CFGHASH),)" > DGEN_DEPS_POST; + print "getdev: $(call remove_quotes, $(PTXCONF_PROJECT_DEVPKGDIR))/$(" this_PKG "_DEVPKG)" > DGEN_DEPS_POST; + print "endif" > DGEN_DEPS_POST; + print "endif" > DGEN_DEPS_POST; + print "endif" > DGEN_DEPS_POST; } function write_deps_pkg_active(this_PKG, this_pkg, prefix) { diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh index f4d7922..1ce913f 100644 --- a/scripts/lib/ptxd_make_get.sh +++ b/scripts/lib/ptxd_make_get.sh @@ -285,7 +285,7 @@ ptxd_make_get() { argv[${#argv[@]}]="${url}" mrd=true ;; - ${PTXCONF_SETUP_PTXMIRROR}/*) + ${PTXCONF_SETUP_PTXMIRROR}/*|${PTXCONF_PROJECT_DEVMIRROR}/*) # if mirror is given us to download, add it, but only once if ! ${mrd}; then argv[${#argv[@]}]="${url}" @@ -397,11 +397,12 @@ ptxd_make_get() { esac done - echo - echo "Could not download package" - echo "URL: ${orig_argv[@]}" - echo - exit 1 + if [ "${ptxd_make_get_nofail}" != "y" ]; then + echo + echo "Could not download package" + echo "URL: ${orig_argv[@]}" + echo + exit 1 + fi } - export -f ptxd_make_get -- 1.7.10.4 -- ptxdist mailing list ptxdist@pengutronix.de