summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
Diffstat (limited to 'make')
-rw-r--r--make/git.mk26
-rw-r--r--make/rules.mk26
2 files changed, 37 insertions, 15 deletions
diff --git a/make/git.mk b/make/git.mk
index 930e77a..b870f1b 100644
--- a/make/git.mk
+++ b/make/git.mk
@@ -1,11 +1,27 @@
+# main local branch (the one we want checked out)
+master = master
+
+# all local branches (including those needed by child clones)
+branches = $(master)
+
+# local name of origin
+origin = origin
+
+currentbranch := $(shell git branch | grep \* | awk '{ print $2 }')
+noncurrentbranches = $(filter-out $(currentbranch),$(branches))
+
update:
+ $(if $(filter $(currentbranch),$(master)),,git checkout "$(master)")
git pull
init:
- git init
- git remote add -f -t "$(master)" -m "$(master)" origin "$(origin)"
- git merge origin
- git branch -m "$(master)"
- git config remote.origin.push +"refs/heads/$(master)":"refs/heads/$(master)"
+# Assume that initial cloning is done already when invoking this target
+# git init
+# git remote add -f -t "$(master)" -m "$(master)" origin "$(origin)"
+# git merge origin
+# git config remote.origin.push +"refs/heads/$(master)":"refs/heads/$(master)"
+ $(if $(filter $(currentbranch),$(master)),,git branch -f "$(master)" "$(origin)/$(master)")
+ $(if $(noncurrentbranches),$(foreach branch,$(noncurrentbranches),git branch -f "$(branch)" "$(origin)/$(branch)" &&) true)
+ $(if $(filter $(currentbranch),$(master)),,git checkout -f "$(master)")
.PHONY: update init
diff --git a/make/rules.mk b/make/rules.mk
index 1c10382..2dcfc96 100644
--- a/make/rules.mk
+++ b/make/rules.mk
@@ -8,22 +8,27 @@ $(foreach source,$(SOURCES),$(eval $(call SOURCE_template,$(source),$($(source)_
+# Initially clone, and later pull, all Git repositories:
+# * Clone master branches from remote origin
+# * Clone each non-master from local master
+
# 1:moduledir 2:locale 3:mastermodule 4:source
define MODULE_template
+$(3)_BRANCHES += $$(subst -LOCALE,$(2:%=-$(2)),$$($(4)_BRANCH))
+
$(4): $(1)
+ifneq ($(2),)
+$(1): $$(subst module,$(3),$$(masterdir))
+endif
-$(1): origin = $$(subst MODULE,$(3),$$($(4)_ORIGIN))
+$(1): action = $$(if $(wildcard $(1)/.git),update,init)
+$(1): origin = $$(if $(2),$(3),$$(subst MODULE,$(3),$$($(4)_ORIGIN)))
$(1): master = $$(subst -LOCALE,$(2:%=-$(2)),$$($(4)_BRANCH))
+$(1): branches = $$(if $(2),,$$(filter-out $$(master),$$($(3)_BRANCHES)))
$(1):
- mkdir -p $$@
- @if [ -d "$$@/.git" ]; then \
- echo $(MAKE) -f "$$(CURDIR)/make/git.mk" -C "$$@" update; \
- $(MAKE) -f "$$(CURDIR)/make/git.mk" -C "$$@" update; \
- else \
- echo $(MAKE) -f "$$(CURDIR)/make/git.mk" -C "$$@" master="$$(master)" origin="$$(origin)" init; \
- $(MAKE) -f "$$(CURDIR)/make/git.mk" -C "$$@" master="$$(master)" origin="$$(origin)" init; \
- fi
-
+ @[ -d "$$(dir $$@)" ] || ( echo mkdir -p "$$(dir $$@)" && mkdir -p "$$(dir $$@)" )
+ @[ -d "$$@" ] || ( echo git clone "$$(origin)" "$$@" && git clone -o "$(4)" "$$(origin)" "$$@" )
+ @$(MAKE) -f "$$(CURDIR)/make/git.mk" -C "$$@" master="$$(master)" branches="$$(branches)" origin="$(4)" "$$(action)"
# WARNING: this may wipe unrelated files too!
ultraclean::
@@ -38,6 +43,7 @@ $(foreach source,$(SOURCES),$(foreach module,$($(source)_MODULES),$(eval $(call
$(foreach source,$(SOURCES),$(foreach module,$($(source)_MODULES),$(foreach locale,$($(source)_LOCALES),$(eval $(call MODULE_template,$(l10ndir),$(locale),$(module),$(source))))))
+
# Override po4a with local Markdown-supportive text module
export PERL5LIB = $(CURDIR)/perl
002.8390C1CCD8B@lxp5.free-owl.de/unread?h=master'>tags/8d/75/20181128010002.8390C1CCD8B@lxp5.free-owl.de/unread0
-rw-r--r--tags/8d/75/20200711224208.79202.19089@server.kojevnikov.com/unread0
-rw-r--r--tags/8d/75/20201016174002.E6D2C314@jawa.homebase.dk/hb0
-rw-r--r--tags/8d/75/20201016174002.E6D2C314@jawa.homebase.dk/sys0
-rw-r--r--tags/8d/75/20201016174002.E6D2C314@jawa.homebase.dk/unread0
-rw-r--r--tags/8d/75/26206551558449734@sas1-cd55e40a6ba0.qloud-c.yandex.net/debian0
-rw-r--r--tags/8d/75/26206551558449734@sas1-cd55e40a6ba0.qloud-c.yandex.net/unread0
-rw-r--r--tags/8d/75/61aeb074c7092_3d3108be5b075213@godard.mail/debian0
-rw-r--r--tags/8d/75/61aeb074c7092_3d3108be5b075213@godard.mail/inbox0
-rw-r--r--tags/8d/75/61aeb074c7092_3d3108be5b075213@godard.mail/killed0
-rw-r--r--tags/8d/75/61aeb074c7092_3d3108be5b075213@godard.mail/unread0
-rw-r--r--tags/8d/75/CAHbZrxoSdMRnMsS0fJXT-oLYF-d9SbcSJHZ021wuAPXMGenykA@mail.gmail.com/attachment0
-rw-r--r--tags/8d/75/CAHbZrxoSdMRnMsS0fJXT-oLYF-d9SbcSJHZ021wuAPXMGenykA@mail.gmail.com/inbox0
-rw-r--r--tags/8d/75/CAHbZrxoSdMRnMsS0fJXT-oLYF-d9SbcSJHZ021wuAPXMGenykA@mail.gmail.com/old0
-rw-r--r--tags/8d/75/CAHbZrxoSdMRnMsS0fJXT-oLYF-d9SbcSJHZ021wuAPXMGenykA@mail.gmail.com/sugar0
-rw-r--r--tags/8d/75/Pine.LNX.4.33.0107141121170.20848-100000@auryn.jones.dk/sent0
34 files changed, 0 insertions, 0 deletions