SF.net SVN: gar:[25913] csw/mgar/gar
cgrzemba at users.sourceforge.net
cgrzemba at users.sourceforge.net
Mon Aug 29 15:53:58 CEST 2016
Revision: 25913
http://sourceforge.net/p/gar/code/25913
Author: cgrzemba
Date: 2016-08-29 13:53:58 +0000 (Mon, 29 Aug 2016)
Log Message:
-----------
add download from Mercurial repository
- use variable HG_REPOS for the mercurial download URL
- use HG_TREEISH_repo-name for repo tag to extract (default 'tip')
Modified Paths:
--------------
csw/mgar/gar/v2-hg/gar.lib.mk
csw/mgar/gar/v2-hg/gar.mk
Added Paths:
-----------
csw/mgar/gar/v2-hg/
Modified: csw/mgar/gar/v2-hg/gar.lib.mk
===================================================================
--- csw/mgar/gar/v2/gar.lib.mk 2016-08-29 13:38:26 UTC (rev 25911)
+++ csw/mgar/gar/v2-hg/gar.lib.mk 2016-08-29 13:53:58 UTC (rev 25913)
@@ -10,6 +10,8 @@
# software causes damage.
#
+# md5sum ?= md5sum
+md5sum ?= $(if $(filter no%,$(shell which md5sum)),gmd5sum,md5sum)
# cookies go here, so we have to be able to find them for
# dependency checking.
VPATH += $(COOKIEDIR)
@@ -24,6 +26,7 @@
# override GIT_PROXY_SCRIPT to something else if you need to.
GIT_MAYBEPROXY = $(if $(GIT_USE_PROXY),GIT_PROXY_COMMAND=$(GIT_PROXY_SCRIPT))
GIT_TREEISH = $(if $(GIT_TREEISH_$(1)),$(GIT_TREEISH_$(1)),HEAD)
+HG_TREEISH = $(if $(HG_TREEISH_$(1)),$(HG_TREEISH_$(1)),tip)
#################### FETCH RULES ####################
@@ -43,6 +46,14 @@
URLS += $(foreach R,$(GIT_REPOS),gitrepo://$(call GITPROJ,$(R)) $(foreach gitproto,git http file ssh,$(call gitsubst,$(gitproto),$(R))))
endif
+define hgsubst
+$(subst hg-hg,hg,$(if $(findstring $(1)://,$(2)),$(patsubst $(1)%,hg-$(1)%,$(call URLSTRIP,$(2)) )))
+endef
+
+ifdef HG_REPOS
+URLS += $(foreach R,$(HG_REPOS),$(foreach hgproto,hg http file ssh,$(call hgsubst,$(hgproto),$(R))))
+endif
+
# Download the file if and only if it doesn't have a preexisting
# checksum file. Loop through available URLs and stop when you
# get one that doesn't return an error code.
@@ -55,18 +66,18 @@
$(if $(_FLIST),,$(error INTERNAL ERROR: The file $* is requested but not in the list of generated URLs))
@if test -f $(COOKIEDIR)/checksum-$*; then : ; else \
echo " ==> Grabbing $@"; \
- ( for i in $(filter %/$*,$(URLS)) $(foreach URL,$(URLS),$(if $(findstring $(GITHUB_HOST),$(URL)),$(URL),)); do \
+ ( for i in $(filter %/$(*:%.hg=%),$(URLS)) $(foreach URL,$(URLS),$(if $(findstring $(GITHUB_HOST),$(URL)),$(URL),)); do \
echo " ==> Trying $$i"; \
$(MAKE) -s `echo $$i | tr -d :` || continue; \
case $$i in \
*$(GITHUB_HOST)*) \
mv $(PARTIALDIR)/$(GITHUB_REFERENCE) $@ ;; \
*) \
- mv $(PARTIALDIR)/$* $@ ;; \
+ mv $(PARTIALDIR)/$(*:%.hg=%) $(@:%.hg=%) ;; \
esac; \
break; \
done; ) 2>&1 | grep -v '^$(MAKE)'; \
- if test -r $@ ; then : ; else \
+ if test -r $(@:%.hg=%) ; then : ; else \
echo '(!!!) Failed to download $@!' 1>&2; \
false; \
fi; \
@@ -104,6 +115,14 @@
@( cd $(PARTIALDIR)/$(call GITPROJ,$*); \
git config remote.origin.fetch $(if $(GIT_REFS_$(call GITPROJ,$*)),$(GIT_REFS_$(call GITPROJ,$*)),$(GIT_DEFAULT_TRACK)); )
+hg-http//%:
+ hg clone http://$* $(PARTIALDIR)/$(call GITPROJ,$*)
+hg-hg//%:
+ hg clone hg://$* $(PARTIALDIR)/$(call GITPROJ,$*)
+hg-ssh//%:
+ hg clone ssh://$* $(PARTIALDIR)/$(call GITPROJ,$*)
+hg-file//%:
+ hg clone file://$* $(PARTIALDIR)/$(call GITPROJ,$*)
# create ADMSCRIPTS 'on the fly' from variables defined by the caller
# This version is private and should only be called from the non-private
@@ -182,7 +201,7 @@
checksum-%: $(CHECKSUM_FILE)
@echo " ==> Running checksum on $*"
@if ggrep -- '[ /]$*$$' $(CHECKSUM_FILE); then \
- if cat $(CHECKSUM_FILE) | sed -e 's!download/!!' | (cd $(DOWNLOADDIR); LC_ALL="C" LANG="C" gmd5sum -c 2>&1) | \
+ if cat $(CHECKSUM_FILE) | sed -e 's!download/!!' | (cd $(DOWNLOADDIR); LC_ALL="C" LANG="C" $(md5sum) -c 2>&1) | \
ggrep -- '$*' | ggrep -v ':[ ]\+OK'; then \
echo '(!!!) $* failed checksum test!' 1>&2; \
false; \
@@ -632,6 +651,10 @@
@echo " ===> Extracting Git Repo $(DOWNLOADDIR)/$* (Treeish: $(call GIT_TREEISH,$*))"
( cd $(abspath $(DOWNLOADDIR))/$*/; git --bare archive --prefix=$(NAME)-$(VERSION)/ $(call GIT_TREEISH,$*)) | gtar -xf - -C $(EXTRACTDIR)
@$(MAKECOOKIE)
+hg-extract-%:
+ @echo " ===> Extracting Mercurial Repo $(DOWNLOADDIR)/$* (Tag: $(call HG_TREEISH,$*))"
+ ( cd $(abspath $(DOWNLOADDIR))/$*/; hg archive --prefix=$(NAME)-$(VERSION)/ --rev=$(call HG_TREEISH,$*) --type tar -)| gtar -xf - -C $(EXTRACTDIR)
+ @$(MAKECOOKIE)
# rule to extract files with unzip
zip-extract-%:
@@ -723,6 +746,9 @@
extract-archive-%.git: git-extract-%.git
@$(MAKECOOKIE)
+extract-archive-%.hg: hg-extract-%
+ @$(MAKECOOKIE)
+
extract-copy-%: cp-extract-%
@$(MAKECOOKIE)
Modified: csw/mgar/gar/v2-hg/gar.mk
===================================================================
--- csw/mgar/gar/v2/gar.mk 2016-08-29 13:38:26 UTC (rev 25911)
+++ csw/mgar/gar/v2-hg/gar.mk 2016-08-29 13:53:58 UTC (rev 25913)
@@ -11,6 +11,8 @@
# Comment this out to make much verbosity
#.SILENT:
+md5sum ?= $(if $(filter no%,$(shell which md5sum)),gmd5sum,md5sum)
+
ifneq ($(abspath /),/)
$(error Your version of 'make' is too old: $(MAKE_VERSION). Please make sure you are using at least 3.81)
endif
@@ -45,7 +47,7 @@
DYNSCRIPTS := $(foreach PKG,$(SPKG_SPECS),$(foreach SCR,$(ADMSCRIPTS),$(if $(value $(PKG)_$(SCR)), $(PKG).$(SCR))))
_LOCALFILES = $(notdir $(wildcard files/*))
-_NOCHECKSUM += $(DYNSCRIPTS) $(_LOCALFILES) $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R))) $(_EXTRA_GAR_NOCHECKSUM)
+_NOCHECKSUM += $(DYNSCRIPTS) $(_LOCALFILES) $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R))) $(foreach R,$(HG_REPOS),$(call GITPROJ,$(R).hg)) $(_EXTRA_GAR_NOCHECKSUM)
DISTFILES += $(_EXTRA_GAR_DISTFILES)
@@ -54,7 +56,8 @@
ALLFILES_PATCHFILES ?= $(PATCHFILES) $(foreach M,$(MODULATIONS),$(PATCHFILES_$M))
ALLFILES_DYNSCRIPTS ?= $(DYNSCRIPTS)
ALLFILES_GIT_REPOS ?= $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R)))
-ALLFILES ?= $(sort $(ALLFILES_DISTFILES) $(ALLFILES_PATCHFILES) $(ALLFILES_DYNSCRIPTS) $(ALLFILES_GIT_REPOS) $(EXTRA_ALLFILES) $(_EXTRA_GAR_ALLFILES))
+ALLFILES_HG_REPOS ?= $(foreach R,$(HG_REPOS),$(call GITPROJ,$(R).hg))
+ALLFILES ?= $(sort $(ALLFILES_DISTFILES) $(ALLFILES_PATCHFILES) $(ALLFILES_DYNSCRIPTS) $(ALLFILES_GIT_REPOS) $(ALLFILES_HG_REPOS) $(EXTRA_ALLFILES) $(_EXTRA_GAR_ALLFILES))
ifeq ($(MAKE_INSTALL_DIRS),1)
INSTALL_DIRS = $(addprefix $(DESTDIR),$(prefix) $(exec_prefix) $(bindir) $(sbindir) $(libexecdir) $(datadir) $(sysconfdir) $(sharedstatedir) $(localstatedir) $(libdir) $(infodir) $(lispdir) $(includedir) $(mandir) $(foreach NUM,1 2 3 4 5 6 7 8, $(mandir)/man$(NUM)) $(sourcedir))
@@ -337,6 +340,8 @@
@$(foreach D,$(DYNSCRIPTS),echo " $D";)
@echo "Git Repos tracked: "
@$(foreach R,$(GIT_REPOS),echo " $R";)
+ @echo "Mercurial Repos tracked: "
+ @$(foreach R,$(HG_REPOS),echo " $R";)
@echo "All potential URLS: "
@$(foreach U,$(URLS),echo " $U";)
@@ -382,7 +387,7 @@
makesum: fetch $(addprefix $(DOWNLOADDIR)/,$(MAKESUM_TARGETS)) $(GARCHIVE_TARGETS)
@if test "x$(MAKESUM_TARGETS)" != "x"; then \
- (cd $(DOWNLOADDIR) && gmd5sum $(MAKESUM_TARGETS)) > $(CHECKSUM_FILE) ; \
+ (cd $(DOWNLOADDIR) && $(md5sum) $(MAKESUM_TARGETS)) > $(CHECKSUM_FILE) ; \
echo "Checksums made for $(MAKESUM_TARGETS)" ; \
cat $(CHECKSUM_FILE) ; \
else \
@@ -395,8 +400,8 @@
garchive: checksum $(GARCHIVE_TARGETS) ;
# extract - Unpacks $(DISTFILES) into $(EXTRACTDIR) (patches are "zcatted" into the patch program)
-EXTRACT_TARGETS-global ?= $(addprefix extract-copy-,$(filter-out $(NOEXTRACT),$(DISTFILES) $(DYNSCRIPTS) $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R)))))
-EXTRACT_TARGETS-default = $(addprefix extract-archive-,$(filter-out $(NOEXTRACT),$(DISTFILES) $(DYNSCRIPTS) $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R)))))
+EXTRACT_TARGETS-global ?= $(addprefix extract-copy-,$(filter-out $(NOEXTRACT),$(DISTFILES) $(DYNSCRIPTS) $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R))) $(foreach R,$(HG_REPOS),$(call GITPROJ,$(R).hg))))
+EXTRACT_TARGETS-default = $(addprefix extract-archive-,$(filter-out $(NOEXTRACT),$(DISTFILES) $(DYNSCRIPTS) $(foreach R,$(GIT_REPOS),$(call GITPROJ,$(R))) $(foreach R,$(HG_REPOS),$(call GITPROJ,$(R).hg))))
EXTRACT_TARGETS = $(or $(EXTRACT_TARGETS-$(MODULATION)),$(EXTRACT_TARGETS-default))
ifdef REINPLACE_FILES
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list