From 34d04e1ab52c72eaf974f94152a615d3d1f2ae2d Mon Sep 17 00:00:00 2001 From: "Paul W. Frields" Date: Tue, 16 Oct 2012 17:54:03 -0400 Subject: More Makefile work, better modularization --- Makefile | 72 +++++++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 2a80e62..ebcd76e 100644 --- a/Makefile +++ b/Makefile @@ -1,37 +1,71 @@ +##################### +# Makefile support +# (C) 2012 Paul W. Frields +# Licensed uner the GNU General Public License, v2 or later. +# + ifndef LANGUAGES -LANGUAGES := $(shell ls po/*.po | sed 's/po\/\(.*\).po/\1/') +LANGUAGES:=$(shell ls po/*.po | sed 's/po\/\(.*\).po/\1/') endif -DOMAIN = pulsecaster - -PO_FILES = $(wildcard po/*.po) -MO_FILES = $(PO_FILES:.po=.mo) +DOMAIN=pulsecaster +PYTHON=$(shell which python) +TX=$(shell which tx) +PWD=$(shell pwd) +GIT=$(shell which git) -PYTHON = $(shell which python) -TX = $(shell which tx) -PWD = $(shell pwd) +LATEST_TAG=$(shell git describe --tags --abbrev=0) +LATEST_VERSION=$(shell $(PYTHON) -c 'from pulsecaster.config import VERSION; print "%s" % (VERSION)') -.PHONY: all mo po clean +all:: +.PHONY:: vars +vars:: + @echo LATEST_TAG = $(LATEST_TAG) + @echo LATEST_VERSION = $(LATEST_VERSION) -all: mo - @echo -n -mo: $(foreach L,$(LANGUAGES),po/$(L).mo) +##################### -define MO_template = -po/$(1).mo: po/$(1).po - mkdir -p locale/$(1)/LC_MESSAGES && $(PYTHON) setup.py compile_catalog -l $(1) -i po/$(1).po -o po/$(1).mo -D $(DOMAIN) >/dev/null -endef -$(foreach L,$(LANGUAGES),$(eval $(call MO_template,$(L)))) +.PHONY:: all clean +##################### +# L10n support +.PHONY:: po +all:: po po: $(foreach L,$(LANGUAGES),po/$(L).po) define PO_template = +PO_FILES+= po/$(1).po po/$(1).po: po/$(DOMAIN).pot $(PYTHON) setup.py update_catalog -l $(1) -i po/$(DOMAIN).pot -o po/$(1).po -D $(DOMAIN) >/dev/null endef $(foreach L,$(LANGUAGES),$(eval $(call PO_template,$(L)))) +vars:: + @echo PO_FILES = $(PO_FILES) +.PHONY:: mo +all:: mo +mo: $(foreach L,$(LANGUAGES),po/$(L).mo) + +define MO_template = +MO_FILES+= po/$(1).mo +po/$(1).mo: po/$(1).po + mkdir -p locale/$(1)/LC_MESSAGES && $(PYTHON) setup.py compile_catalog -l $(1) -i po/$(1).po -o po/$(1).mo -D $(DOMAIN) >/dev/null +clean:: + rm -f po/$(1).mo +endef +$(foreach L,$(LANGUAGES),$(eval $(call MO_template,$(L)))) +vars:: + @echo MO_FILES = $(MO_FILES) +##################### -clean: - rm -rf po/*.mo +##################### +# Release stuff +release:: $(DOMAIN)-$(LATEST_VERSION).tar.gz +$(DOMAIN)-$(LATEST_VERSION).tar.gz:: +ifneq ($(LATEST_TAG),$(LATEST_VERSION)) + @echo Version=$(LATEST_VERSION), latest git tag=$(LATEST_TAG), either fix config.py or tag repo +else + $(PYTHON) setup.py sdist + @echo Tarball is in dist/$@ +endif -- cgit