view Makefile @ 327:363983d5c567

Allow Waterway User to update a limited set of profile attributes
author Tom Gottfried <tom@intevation.de>
date Thu, 02 Aug 2018 19:25:30 +0200
parents 75e32633fb96
children 20d2edbc863d
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

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

clean:
	$(MAKE) -f Makefile.build -C client $@
	rm -f "$(gemma-bin)"
	rm -rf "$(BUILDBASE)"