annotate Makefile @ 1008:9f49ae20c54c

demo build via make demo
author Markus Kottlaender <markus@intevation.de>
date Tue, 23 Oct 2018 08:34:44 +0200
parents 9b67c4f5a7b2
children 77202406b1a7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
1 # Simple Makefile to build all of Gemma
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
2 #
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
3 # Authors: Sascha Wilde <wilde@intevation.de>
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
4
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
5 basedir := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
6
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
7 BUILDBASE := $(basedir).buildbase
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
8 GOPATH := $(BUILDBASE)/go
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
9 GOCACHE := $(BUILDBASE)/gocache
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
10 ENVWARPPER := $(BUILDBASE)/run-with-env.sh
402
20d2edbc863d Add install target for backend and use in Dockerfile
Tom Gottfried <tom@intevation.de>
parents: 303
diff changeset
11 BINDIR := /usr/local/bin
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
12
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
13 export BUILDBASE
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
14
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
15 3rdpartylibs-stamp := $(BUILDBASE)/3rdpartylibs-build
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
16
1008
9f49ae20c54c demo build via make demo
Markus Kottlaender <markus@intevation.de>
parents: 547
diff changeset
17 .PHONY: all demo 3rdpartylibs gemma client clientdemo clean
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
18
206
cd6ad5eaef8d Renamed cmd/tokenserver to cmd/gemma.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 191
diff changeset
19 all: gemma client
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
20
1008
9f49ae20c54c demo build via make demo
Markus Kottlaender <markus@intevation.de>
parents: 547
diff changeset
21 demo: gemma clientdemo
9f49ae20c54c demo build via make demo
Markus Kottlaender <markus@intevation.de>
parents: 547
diff changeset
22
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
23 $(ENVWARPPER):
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
24 @echo "Preparing go build environment:"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
25 mkdir -p "$(GOCACHE)"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
26 mkdir -p "$(GOPATH)/src/gemma.intevation.de"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
27 [ -e "$(GOPATH)/src/gemma.intevation.de/gemma" ] || \
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
28 ln -s "$(basedir)" "$(GOPATH)/src/gemma.intevation.de/gemma"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
29 @echo "Creating wrapper script:"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
30 echo '#!/bin/sh' >"$(ENVWARPPER)"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
31 echo 'export GOPATH=$(GOPATH)' >>"$(ENVWARPPER)"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
32 echo 'export GOCACHE=$(GOCACHE)' >>"$(ENVWARPPER)"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
33 echo 'exec "$$@"' >>"$(ENVWARPPER)"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
34 chmod +x "$(ENVWARPPER)"
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
35
303
75e32633fb96 Makefile: Force rebuild of dependencies when 3rdpartylibs.sh changes.
Sascha Wilde <wilde@intevation.de>
parents: 217
diff changeset
36 $(3rdpartylibs-stamp): $(ENVWARPPER) 3rdpartylibs.sh
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
37 "$(ENVWARPPER)" bash ./3rdpartylibs.sh && \
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
38 touch $@
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
39
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
40 3rdpartylibs: $(3rdpartylibs-stamp)
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
41
217
3fdbdd59ef80 Makefile: Make rebuild of gemma work
Sascha Wilde <wilde@intevation.de>
parents: 214
diff changeset
42 gemma: $(3rdpartylibs-stamp) $(ENVWARPPER)
206
cd6ad5eaef8d Renamed cmd/tokenserver to cmd/gemma.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 191
diff changeset
43 cd cmd/gemma && "$(ENVWARPPER)" go build
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
44
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
45 client:
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
46 $(MAKE) -f Makefile.build -C client
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
47
1008
9f49ae20c54c demo build via make demo
Markus Kottlaender <markus@intevation.de>
parents: 547
diff changeset
48 clientdemo:
9f49ae20c54c demo build via make demo
Markus Kottlaender <markus@intevation.de>
parents: 547
diff changeset
49 $(MAKE) demo -f Makefile.build -C client
9f49ae20c54c demo build via make demo
Markus Kottlaender <markus@intevation.de>
parents: 547
diff changeset
50
402
20d2edbc863d Add install target for backend and use in Dockerfile
Tom Gottfried <tom@intevation.de>
parents: 303
diff changeset
51 install: gemma
20d2edbc863d Add install target for backend and use in Dockerfile
Tom Gottfried <tom@intevation.de>
parents: 303
diff changeset
52 cp cmd/gemma/gemma $(BINDIR)
20d2edbc863d Add install target for backend and use in Dockerfile
Tom Gottfried <tom@intevation.de>
parents: 303
diff changeset
53
537
942a865986f6 Added simple build target for deployment tar.
Sascha Wilde <wilde@intevation.de>
parents: 402
diff changeset
54 tar: all
942a865986f6 Added simple build target for deployment tar.
Sascha Wilde <wilde@intevation.de>
parents: 402
diff changeset
55 v="gemma-$$(hg id -i)" ;\
942a865986f6 Added simple build target for deployment tar.
Sascha Wilde <wilde@intevation.de>
parents: 402
diff changeset
56 tar --transform "s@^@$${v}/@" \
942a865986f6 Added simple build target for deployment tar.
Sascha Wilde <wilde@intevation.de>
parents: 402
diff changeset
57 -cJf "../$${v}.tar.xz" \
547
9b67c4f5a7b2 Added example_conf.toml to packaging.
Sascha Wilde <wilde@intevation.de>
parents: 537
diff changeset
58 cmd/gemma/gemma schema web example_conf.toml
537
942a865986f6 Added simple build target for deployment tar.
Sascha Wilde <wilde@intevation.de>
parents: 402
diff changeset
59
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
60 clean:
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
61 $(MAKE) -f Makefile.build -C client $@
214
da24df80c25d Fix Makefile clean target: don't fail if no back end bin to delete.
Sascha Wilde <wilde@intevation.de>
parents: 206
diff changeset
62 rm -f "$(gemma-bin)"
191
01c5794608e0 Added simple makefiles to build back end and client.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
63 rm -rf "$(BUILDBASE)"