-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
117 lines (86 loc) · 2.09 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
# ---------------------------------------------------------------------------- #
# Uno Browser Extension #
# ---------------------------------------------------------------------------- #
.PHONY: local, watch, debug, prod, ff-review \
internal, release \
deps, package-lock.json \
test, e2e, e2e.ui, e2e.report \
typecheck, lint, format \
clean, clobber \
docbuild, FRC
# Disable builtin rules since we're not building C[XX]
MAKEFLAGS += --no-builtin-rules
.SUFFIXES:
# ---------------------
# Makefile config vars:
export OUTDIR ?= dist
# --------------------
# Convenience targets:
# Local Build (localhost:8080)
local: deps
local:
npm run build.local
# Development Server (api.u10.dev; w/hot-reloading build server)
watch: deps
watch:
npm run watch.dev
# Development Build (api.u10.dev; w/o hot-reloading build server)
.DEFAULT_GOAL := debug
debug: deps
debug:
npm run build.dev
# Production Build (api.uno.app; w/o executing release workflows)
prod: deps
prod:
npm run build.prod
# Production Build for Firefox Reviewers (api.uno.app; w/o executing release workflows)
ff-review: deps
ff-review:
npm run build.ff-review
# --------------------
# Deliverable targets:
# (in use by our native iOS build system)
# Internal Production Release (api.u10.dev)
internal: deps
internal:
npm run build.internal
# External Production Release (api.uno.app)
release: deps
release:
npm run build.release
# -----------------
# Dependency rules:
deps: package-lock.json
package-lock.json: .package-lock.timestamp
.package-lock.timestamp: package.json ./cli/package.json
npm install
touch .package-lock.timestamp
# --------
# Testing:
test: FRC
npm run test
e2e: FRC
npm run e2e
e2e.ui: FRC
npm run e2e.ui
e2e.report: FRC
npm run e2e.report
# -------
# Checks:
typecheck: FRC
npm run typecheck
lint: FRC
npm run lint
format: FRC
npm run format
# ----------------
# Other utilities:
clean: FRC
npm run clean
clobber: FRC
npm run clobber
docbuild:
@echo "THIS PRODUCT DOES NOT HAVE DOCUMENTATION."
# Force Re-Compile
# - - -
FRC: