view Makefile @ 5520:05db984d3db1

Improve performance of bottleneck area calculation Avoid buffer calculations by replacing them with simple distance comparisons and calculate the boundary of the result geometry only once per iteration. In some edge cases with very large numbers of iterations, this reduced the runtime of a bottleneck import by a factor of more than twenty.
author Tom Gottfried <tom@intevation.de>
date Thu, 21 Oct 2021 19:50:39 +0200
parents 983d6efc04e9
children 02c2d0edeb2a
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

.PHONY: all gemma client clean

all: gemma client

$(ENVWARPPER):
	@echo "Preparing go build environment:"
	mkdir -p "$(GOPATH)"
	mkdir -p "$(GOCACHE)"
	@echo "Creating wrapper script:"
	echo '#!/bin/sh' >"$(ENVWARPPER)"
	echo 'export GOPATH=$(GOPATH)' >>"$(ENVWARPPER)"
	echo 'export GOCACHE=$(GOCACHE)' >>"$(ENVWARPPER)"
	echo 'exec "$$@"' >>"$(ENVWARPPER)"
	chmod +x "$(ENVWARPPER)"

gemma: $(ENVWARPPER)
	"$(ENVWARPPER)" go build -o ./cmd/gemma/gemma ./cmd/gemma

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 style-templates report-templates \
	    web misc example_conf.toml

clean:
	$(MAKE) -f Makefile.build -C client $@
	rm -f "$(gemma-bin)"
	chmod -R u+w "$(BUILDBASE)" # This is neccessary for deletion to work...
	rm -rf "$(BUILDBASE)"