# vcs.mk - make rules to make fetching/updating VCS repositories easy # $(call METHOD,URI[,OUTPUT[,MODULE]]) # Fetch or update a file or directory. bzr = $(if $(_wo),bzr up $(_o),bzr co $1 $(_o)) cvs = $(if $(_wo),cd $(_o) && cvs up -dAP,cvs -d $1 co -d $(_o) $(_o3)) darcs = $(if $(_wo),cd $(_o) && darcs pull -a $1,darcs get $1 $(_o)) git = $(if $(_wo),cd $(_o) && git pull,git clone $1 $(_o)) hg = $(if $(_wo),cd $(_o) && hg pull $1,hg clone $1 $(_o)) lcp = lcp --force $1 $(_o) rsync = rsync -avrz $1 $(_o) svn = $(if $(_wo),svn up $(_o),svn co $1 $(_o)) wget = wget -O $(_o) $1 lcp += ;$(_ci) rsync += ;$(_ci) wget += ;$(_ci) _nvc = $(warning $@: warning: no support for local version control) svn += ;$(_nvc) cvs += ;$(_nvc) _ignore = ! -wholename "*,v" ! -wholename "*/.bzr/*" ! -wholename "*/\.svn/*" ! -wholename "*/CVS/*" _ci = find $(_o) -type f $(_ignore) | xargs ci -t/dev/null -m"Updated $(_o) from $1." -l _o = $(or $2,$@) _wo = $(wildcard $(_o)) _o3 = $(or $3,$@) # vcs.mk ends here.