From f0d38ce4b915954feb0cf6d48f93e8754f8875de Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Fri, 30 May 2008 21:23:45 +0200 Subject: Split rule-exansions from main Makefile to make/rules.mk. --- Makefile | 142 ++------------------------------------------------------------- 1 file changed, 3 insertions(+), 139 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index b85590a..fd39a38 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,10 @@ SOURCES = ikiwiki ikiwiki_ORIGIN = git://source.jones.dk/ikiwiki_MODULE ikiwiki_MODULES = templates basewiki smiley -ikiwiki_POMODULES = smiley +ikiwiki_POMODULES = basewiki smiley ikiwiki_BRANCH = master-LOCALE ikiwiki_LOCALES = da no_NB -#ikiwiki_POLOCALES = da +ikiwiki_POLOCALES = da #dummy_MODULES = content_dummy @@ -26,147 +26,11 @@ ifeq ($(strip $(CONFIGS)),) $(error Please configure ikiwiki.setup and then uncomment it at the top of the Makefile!) endif - - -# 1:source 2:locales -define SOURCE_template -$(1): $$($(1)_MODULES) $(dummy_MODULES) - -.PHONY: $(1) -endef -$(foreach source,$(SOURCES),$(eval $(call SOURCE_template,$(source),$($(source)_LOCALES)))) - - - -# 1:moduledir 2:locale 3:mastermodule 4:source -define MODULE_template -$(4): $(1) - -$(1): origin = $$(subst MODULE,$(3),$$($(4)_ORIGIN)) -$(1): master = $$(subst -LOCALE,$(2:%=-$(2)),$$($(4)_BRANCH)) -$(1): - mkdir -p $$@ - @if [ -d "$$@/.git" ]; then \ - cd $$@ && \ - git pull; \ - else \ - cd $$@ && \ - 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); \ - fi - - -# WARNING: this may wipe unrelated files too! -ultraclean:: - rm -rf "$(1)" -ifneq ($(2),) - rm -rf "$(dir $(1))" -endif - -.PHONY: $(1) -endef -$(foreach source,$(SOURCES),$(foreach module,$($(source)_MODULES),$(eval $(call MODULE_template,$(masterdir),,$(module),$(source))))) -$(foreach source,$(SOURCES),$(foreach module,$($(source)_MODULES),$(foreach locale,$($(source)_LOCALES),$(eval $(call MODULE_template,$(l10ndir),$(locale),$(module),$(source)))))) - - - -# 1:moduledir 2:locale 3:mastermodule 4:source -define POT_template -fileformat = $(if $(filter templates,$(3)),htmltemplate,text) -filetype = $(if $(filter templates,$(3)),tmpl,mdwn) -ALL_POTFILES += $(podir)/$(3).pot -$(3)_L10NFILES = $$(patsubst $(1)/%,%,$$(shell find $(1) -type f -name '*.$$(filetype)')) -MASTER_L10NFILES += $$(patsubst %,$(1)/%,$$($(3)_L10NFILES)) - -$(podir)/$(3).pot: $(1) - cd "$(1)" && PERL5LIB="$(CURDIR)/perl" po4a-gettextize -M UTF-8 -L UTF-8 -f $$(fileformat) -o markdown $$(patsubst %,-m %,$$($(3)_L10NFILES)) -p $(CURDIR)/$$@ - -.PHONY: $(1) -endef -$(foreach source,$(SOURCES),$(foreach module,$($(source)_POMODULES),$(eval $(call POT_template,$(masterdir),,$(module),$(source))))) - - - -# 1:moduledir 2:locale 3:mastermodule 4:source 5:originmodule -define INITPO_template -fileformat = $(if $(filter templates,$(3)),htmltemplate,text) -filetype = $(if $(filter templates,$(3)),tmpl,mdwn) -ALL_POFILES += $(podir)/$(3).$(2).po -LOCALE_L10NFILES += $$(patsubst %,$(1)/%,$$($(3)_L10NFILES)) - -$(4)_POMODULES := $(filter-out $(3),$$($(4)_POMODULES)) -$(4)_POLOCALES := $(filter-out $(2),$$($(4)_POLOCALES)) - -$(podir)/$(3).$(2).po: $(3) $(5) - cd "$(3)" && PERL5LIB="$(CURDIR)/perl" po4a-gettextize -M UTF-8 -L UTF-8 -f $$(fileformat) -o markdown $$(patsubst %,-m %,$$($(3)_L10NFILES)) $$(patsubst %,-l $$(CURDIR)/$(1)/%,$($(3)_L10NFILES)) -p $(CURDIR)/$$@ - -# TODO: Implement the below for automated tests, after unfuzzing the above like this: -# grep -v '^#, fuzzy$' | sed 's/^#, fuzzy,/#,/' -# -# FIXME: needs to depend also on its masterfile -#$$(patsubst %,$(1)/%,$$($(3)_L10NFILES)): $(podir)/$(3).$(2).po -# mkdir -p $(1) -# cd "$(1)" && PERL5LIB="$(CURDIR)/perl" po4a-translate -M UTF-8 -L UTF-8 -k 0 -f $(fileformat) -o markdown $$(patsubst $(1)/%,-m $(CURDIR)/$(3)/%,$$@) -p $(CURDIR)/$(podir)/$(3).$(locale).po -l $(CURDIR)/$$@ -endef -$(foreach source,$(SOURCES),$(foreach module,$(po-init-modules),$(foreach locale,$(po-init-locales),$(eval $(call INITPO_template,$(l10ndir),$(locale),$(module),$(source),$(if $(po-init-fromlocale),$(module)_l10n/$(po-init-fromlocale),$(module))))))) - - - -# 1:moduledir 2:locale 3:mastermodule 4:source -define PO_template -fileformat = $(if $(filter templates,$(3)),htmltemplate,text) -filetype = $(if $(filter templates,$(3)),tmpl,mdwn) -ALL_POFILES += $(podir)/$(3).$(2).po -LOCALE_L10NFILES += $$(patsubst %,$(1)/%,$$($(3)_L10NFILES)) - -$(podir)/$(3).$(2).po: $(3) - cd "$(3)" && PERL5LIB="$(CURDIR)/perl" po4a-updatepo -M UTF-8 -f $(fileformat) -o markdown $$(patsubst %,-m %,$$($(3)_L10NFILES)) -p $(CURDIR)/$$@ - -$$(patsubst %,$(1)/%,$$($(3)_L10NFILES)): $(podir)/$(3).$(2).po - mkdir -p $(1) - cd "$(1)" && PERL5LIB="$(CURDIR)/perl" po4a-translate -M UTF-8 -L UTF-8 -k 100 -f $(fileformat) -o markdown $$(patsubst $(1)/%,-m $$(CURDIR)/$(3)/%,$$@) -p $(CURDIR)/$(podir)/$(3).$(locale).po -l $(CURDIR)/$$@ -endef -# Only update if not initializing - can't do both at once -ifeq ($(po-init-modules),) -$(foreach source,$(SOURCES),$(foreach module,$($(source)_POMODULES),$(foreach locale,$($(source)_POLOCALES),$(eval $(call PO_template,$(l10ndir),$(locale),$(module),$(source)))))) -endif - - - -# 1:dummydir -define DUMMYMODULE_template -$(1): - mkdir -p $$@ - -# WARNING: this may wipe unrelated files too! -ultraclean:: - rm -rf "$(1)" -endef -$(foreach module,$(dummy_MODULES),$(eval $(call DUMMYMODULE_template,$(masterdir)))) - - - -# 1:configfile -define CONFIG_template -$(1): - mkdir -p $$@ - -# WARNING: this may wipe unrelated files too! -install:: - ikiwiki --setup $(1) --rebuild -endef -$(foreach config,$(CONFIGS),$(eval $(call CONFIG_template,$(config)))) - - +include make/rules.mk pot: $(ALL_POTFILES) po: $(ALL_POFILES) $(LOCALE_L10NFILES): $(MASTER_L10NFILES) translations: po $(LOCALE_L10NFILES) - - .PHONY: all $(SOURCES) pot po translations install ultraclean -- cgit v1.2.3