forked from GrispLasp/node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
169 lines (132 loc) · 5.13 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# EXCLUDE_FROM_SOURCE="_build,_grisp,config,_elixir_build"
# see : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898744
# https://www.gnu.org/software/make/manual/html_node/MAKE-Variable.html#MAKE-Variable
# https://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html#Options_002fRecursion
# https://www.gnu.org/software/make/manual/html_node/Instead-of-Execution.html#Instead-of-Execution
# http://erlang.org/pipermail/erlang-questions/2001-November/004120.html
# https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
# http://erlang.org/pipermail/erlang-questions/2002-January/004295.html
REBAR ?= $(shell which rebar3)
# REVISION ?= $(shell git rev-parse --short HEAD)
GRISPAPP ?= $(shell basename `find src -name "*.app.src"` .app.src)
BASE_DIR ?= $(shell pwd)
DEPLOYMENTS_DIR ?= $(BASE_DIR)/priv/deployment_args
GRISPFILES_DIR ?= $(BASE_DIR)/grisp/grisp_base/files
CACHE_DIR ?= $(HOME)/.cache/rebar3
# ERLANG_BIN ?= $(shell dirname $(shell which erl))
# HOSTNAME ?= $(shell hostname)
COOKIE ?= MyCookie
VERSION ?= 0.1.0
DEPLOY_DEST ?= /media/laymer/GRISP
# MAKE = make
#
# .PHONY: grispbuild rel deps plots dcos logs fpm no-cfg-build tarball-build \
# build compile-no-deps test docs xref dialyzer-run dialyzer-quick dialyzer \
# cleanplt upload-docs wipeout clean cacheclean rebar3
# EXCLUDE=$(subst src/bar.cpp,,${SRC_FILES})
# SRC_FILES = $(filter-out $(wildcard ./_*))
# .PHONY: grispbuild rel deps test plots dcos logs fpm no-cfg-build tarball-build build
.PHONY: compile testshell shell 2shell 3shell deploy 10deploy 11deploy rel stage doubledeploy ndeploy \
# cleaning targets :
wipe clean buildclean grispclean cacheclean elixirclean checkoutsclean \
# currently not working targets :
build no-cfg-build tarball-build \
# Others
test-app-src prod-app-src
all: compile
##
## Compilation targets
##
compile:
$(REBAR) compile
# rebar3_grisp build call to sh(./otp_build boot -a) forces single directory change that make cannot overwrite
# open issue?
build:
$(REBAR) grisp build
no-cfg-build:
$(REBAR) grisp build -c false
tarball-build:
$(REBAR) grisp build -t true
#
# Cleaning targets
#
wipe: clean grispclean
$(REBAR) update
$(REBAR) unlock
$(REBAR) upgrade
clean: buildclean elixirclean checkoutsclean cacheclean
$(REBAR) clean
buildclean:
rm -rdf $(BASE_DIR)/_build
grispclean:
rm -rdf $(BASE_DIR)/_grisp
elixirclean:
$(foreach var,$(shell find $(BASE_DIR)/elixir_libs/ -type d -name "_build"),rm -rdf $(var);)
rm -rdf $(BASE_DIR)/_elixir_build
cacheclean:
rm -rdf $(CACHE_DIR)/hex
rm -rdf $(CACHE_DIR)/plugins/rebar3_grisp
checkoutsclean:
rm -rdf $(BASE_DIR)/_checkouts/*/ebin/*
#
# Test targets
#
testshell: test-app-src
$(REBAR) as test shell --sname $(GRISPAPP) --setcookie $(COOKIE)
shell: test-app-src
$(REBAR) as test shell --sname $(GRISPAPP) --setcookie $(COOKIE) --apps node
2shell: test-app-src
$(REBAR) as test shell --sname $(GRISPAPP)2 --setcookie $(COOKIE) --apps node
3shell: test-app-src
$(REBAR) as test shell --sname $(GRISPAPP)3 --setcookie $(COOKIE) --apps node
test-app-src:
cp $(BASE_DIR)/src/node.app.src $(BASE_DIR)/src/node.app.src.prod
cp $(DEPLOYMENTS_DIR)/node.app.src $(BASE_DIR)/src/node.app.src
##
## Release targets
##
rel: prod-app-src
$(REBAR) release
stage: prod-app-src
$(REBAR) release -d
# deploy: prod-app-src
# $(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION)
#
# 1deploy: prod-app-src
# cp $(DEPLOYMENTS_DIR)/1/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
# $(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION)
#
# 2deploy: prod-app-src
# cp $(DEPLOYMENTS_DIR)/2/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
# $(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION)
doubledeploy: deploy 1deploy
echo "deployed"
ndeploy:
cp $(DEPLOYMENTS_DIR)/$(n)/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
rm -rdf $(DEPLOY_DEST)$(d)/*
$(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION) --destination $(DEPLOY_DEST)$(d) --force true
umount $(DEPLOY_DEST)$(d)
deploy:
# cp $(DEPLOYMENTS_DIR)/$(n)/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
rm -rdf $(DEPLOY_DEST)/*
$(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION) --destination $(DEPLOY_DEST) --force true
umount $(DEPLOY_DEST)
1deploy:
cp $(DEPLOYMENTS_DIR)/2/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
rm -rdf $(DEPLOY_DEST)1/*
$(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION) --destination $(DEPLOY_DEST)1 --force true
umount $(DEPLOY_DEST)1
3deploy:
cp $(DEPLOYMENTS_DIR)/3/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
rm -rdf $(DEPLOY_DEST)/*
$(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION) --destination $(DEPLOY_DEST) --force true
umount $(DEPLOY_DEST)
10deploy: prod-app-src
cp $(DEPLOYMENTS_DIR)/10/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
$(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION)
11deploy: prod-app-src
cp $(DEPLOYMENTS_DIR)/11/grisp.ini.mustache $(GRISPFILES_DIR)/grisp.ini.mustache
$(REBAR) grisp deploy -n $(GRISPAPP) -v $(VERSION)
prod-app-src:
cp $(BASE_DIR)/src/node.app.src.prod $(BASE_DIR)/src/node.app.src
include tools.mk