-
Notifications
You must be signed in to change notification settings - Fork 4
/
Makefile
76 lines (60 loc) · 2.51 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
# Copyright (c) Meta Platforms, Inc. and affiliates.
# Copyright (c) WhatsApp LLC
#
# This source code is licensed under the MIT license found in the
# LICENSE.md file in the root directory of this source tree.
PROJECT = erldist_filter
PROJECT_DESCRIPTION = erldist_filter
PROJECT_VERSION = 1.0.0
include erlang.mk
.PHONY: erlfmt erlfmt-check distclean-erlfmt format
# Configuration.
ERLFMT_VERSION ?= 1.2.0
ERLFMT ?= $(CURDIR)/erlfmt
export ERLFMT
ERLFMT_URL ?= https://github.com/WhatsApp/erlfmt/archive/refs/tags/v$(ERLFMT_VERSION).tar.gz
ERLFMT_OPTS ?=
ERLFMT_BUILD_DIR ?= $(CURDIR)/_erlfmt_build
ERLFMT_CODE_ARCHIVE = $(ERLFMT_VERSION).tar.gz
ERLFMT_REBAR3_URL ?= https://s3.amazonaws.com/rebar3/rebar3
ERLFMT_REBAR3 ?= rebar3
# Core targets.
help::
$(verbose) printf "%s\n" "" \
"erlfmt targets:" \
" erlfmt Run erlfmt or download the default otherwise" \
" elrfmt-check Run erlfmt --check"
distclean:: distclean-erlfmt
# Plugin-specific targets.
$(ERLFMT):
$(verbose) mkdir -p $(ERLFMT_BUILD_DIR)
ifeq ($(shell command -v $(ERLFMT_REBAR3)),)
$(verbose) echo "Downloading Rebar3 from: "$(ERLFMT_REBAR3_URL)
$(verbose) $(call core_http_get,$(ERLFMT_BUILD_DIR)/rebar3,$(ERLFMT_REBAR3_URL))
$(verbose) chmod +x $(ERLFMT_BUILD_DIR)/rebar3
$(eval ERLFMT_REBAR3 := $(ERLFMT_BUILD_DIR)/rebar3)
else
$(verbose) echo "Using Rebar3: "$(ERLFMT_REBAR3)
endif
$(verbose) echo "Downloading erlfmt from: "$(ERLFMT_URL)
$(verbose) $(call core_http_get,$(ERLFMT_BUILD_DIR)/$(ERLFMT_CODE_ARCHIVE),$(ERLFMT_URL))
$(verbose) cd $(ERLFMT_BUILD_DIR) && \
tar -xzf $(ERLFMT_CODE_ARCHIVE) && \
cd erlfmt-$(ERLFMT_VERSION) && \
$(ERLFMT_REBAR3) as release escriptize
$(gen_verbose) cp $(ERLFMT_BUILD_DIR)/erlfmt-$(ERLFMT_VERSION)/_build/release/bin/erlfmt $(ERLFMT)
$(verbose) chmod +x $(ERLFMT)
$(verbose) rm -rf $(ERLFMT_BUILD_DIR)/erlfmt-$(ERLFMT_VERSION)
$(verbose) rm $(ERLFMT_BUILD_DIR)/$(ERLFMT_CODE_ARCHIVE)
$(verbose) rm -f $(ERLFMT_BUILD_DIR)/rebar3
$(verbose) rm -rf $(ERLFMT_BUILD_DIR)
erlfmt: $(ERLFMT)
$(verbose) $(ERLFMT) --verbose --write --require-pragma --print-width=120 'apps/**/{src,include,test}/**/*.{hrl,erl,app.src}' 'apps/**/rebar.config' rebar.config
erlfmt-check: $(ERLFMT)
$(verbose) $(ERLFMT) --check --require-pragma --print-width=120 'apps/**/{src,include,test}/**/*.{hrl,erl,app.src}' 'apps/**/rebar.config' rebar.config
distclean-erlfmt:
$(gen_verbose) rm -rf $(ERLFMT)
format: $(ERLFMT)
$(verbose) $(MAKE) -C $(CURDIR)/apps/erldist_filter/c_src format
$(verbose) $(MAKE) erlfmt
$(verbose) mix format