-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
79 lines (57 loc) · 2.35 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
PROJ = ports
REL_DIR = ./_build/default/rel/$(PROJ)
PROJ_BIN = $(REL_DIR)/bin/$(PROJ)
PRIV = ./apps/$(PROJ)/priv
PWD = $(shell pwd)
#############################################################################
### General Targets #####################################################
#############################################################################
default: build
build: build-cl build-go release
clean-all: clean clean-cl clean-go
.PHONY: default run release shutdown run-fresh build build-cl build-go clean-cl clean-go
#############################################################################
### Erlang Targets ######################################################
#############################################################################
$(PROJ_BIN):
@echo '>> Building release ...'
@rebar3 release
release: | $(PROJ_BIN)
run: release
@echo '>> Running application from distribution console ...'
@echo $(PROJ_BIN)
@GO111MODULE=on GOPATH=$(PWD)/apps/ports/priv/go $(PROJ_BIN) console
run-fresh: clean-all build run
shutdown:
@echo '>> Shutting down OTP application ...'
-@$(PROJ_BIN) status || $(PROJ_BIN) stop
@ps aux|grep $(PROJ_BIN)|grep -v grep
clean:
@rebar3 clean
@rm -rf $(REL_DIR)
#############################################################################
### Go Targets ##########################################################
#############################################################################
GO_BASE = $(PRIV)/go/src/github.com/geomyidia
GO_PROJ = $(GO_BASE)/erlang-port-examples
$(GO_PROJ):
@echo ">> Setting up Go examples ..."
-@mkdir $(GO_BASE) && \
git clone https://github.com/geomyidia/erlang-port-examples.git $(GO_PROJ)
build-go: | $(GO_PROJ)
@echo ">> Building Go examples ..."
@cd $(GO_PROJ) && $(MAKE)
clean-go:
@cd $(GO_PROJ) && $(MAKE) clean
#############################################################################
### Common Lisp Targets #################################################
#############################################################################
CL_PROJ = $(PRIV)/cl-port-examples
$(CL_PROJ):
@echo ">> Setting up Common Lisp examples ..."
@git clone https://github.com/cl-axon/erlang-port-examples.git $(CL_PROJ)
build-lisp: | $(CL_PROJ)
@echo ">> Building Common Lisp examples ..."
@cd $(CL_PROJ) && $(MAKE)
clean-lisp:
@cd $(CL_PROJ) && $(MAKE) clean