Mercurial > gemma
view Makefile @ 2121:bd4370badbf7
Improve Makefile target `makemessages`
* Change code to only run msginit, if the file is not there.
This avoids losing data if msgmerge fails because of a temorarily
bad .po file. Rewrite the used shell code using `if` instead of
using more implicit `||` and `&&` operator to make it more readable.
* Make the operation stop if one of the commands in the makemessages
loop fails, so that errors are propagated up to the build process and
can be noticed.
Given to upstream at https://github.com/Polyconseil/vue-gettext/issues/84 .
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Tue, 05 Feb 2019 13:34:29 +0100 |
parents | 77202406b1a7 |
children | f7a32b0b9235 |
line wrap: on
line source
# Simple Makefile to build all of Gemma # # Authors: Sascha Wilde <wilde@intevation.de> basedir := $(dir $(realpath $(firstword $(MAKEFILE_LIST)))) BUILDBASE := $(basedir).buildbase GOPATH := $(BUILDBASE)/go GOCACHE := $(BUILDBASE)/gocache ENVWARPPER := $(BUILDBASE)/run-with-env.sh BINDIR := /usr/local/bin export BUILDBASE 3rdpartylibs-stamp := $(BUILDBASE)/3rdpartylibs-build .PHONY: all 3rdpartylibs gemma client clean all: gemma client $(ENVWARPPER): @echo "Preparing go build environment:" mkdir -p "$(GOCACHE)" mkdir -p "$(GOPATH)/src/gemma.intevation.de" [ -e "$(GOPATH)/src/gemma.intevation.de/gemma" ] || \ ln -s "$(basedir)" "$(GOPATH)/src/gemma.intevation.de/gemma" @echo "Creating wrapper script:" echo '#!/bin/sh' >"$(ENVWARPPER)" echo 'export GOPATH=$(GOPATH)' >>"$(ENVWARPPER)" echo 'export GOCACHE=$(GOCACHE)' >>"$(ENVWARPPER)" echo 'exec "$$@"' >>"$(ENVWARPPER)" chmod +x "$(ENVWARPPER)" $(3rdpartylibs-stamp): $(ENVWARPPER) 3rdpartylibs.sh "$(ENVWARPPER)" bash ./3rdpartylibs.sh && \ touch $@ 3rdpartylibs: $(3rdpartylibs-stamp) gemma: $(3rdpartylibs-stamp) $(ENVWARPPER) cd cmd/gemma && "$(ENVWARPPER)" go build client: $(MAKE) -f Makefile.build -C client install: gemma cp cmd/gemma/gemma $(BINDIR) tar: all v="gemma-$$(hg id -i)" ;\ tar --transform "s@^@$${v}/@" \ -cJf "../$${v}.tar.xz" \ cmd/gemma/gemma schema web example_conf.toml clean: $(MAKE) -f Makefile.build -C client $@ rm -f "$(gemma-bin)" rm -rf "$(BUILDBASE)"