forked from bloomberg/blpapi-http
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
81 lines (55 loc) · 1.81 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
SRCS_TS :=
SRCS_JS :=
SRCS_TEST_TS :=
SRCS_TEST_JS :=
TEST_DIR = test
SRCS_TS += index.ts
SRCS_TS += $(shell find lib -type f -name '*.ts')
SRCS_TEST_TS += $(wildcard $(TEST_DIR)/*.ts)
SRCS_JS += $(patsubst %.ts,%.js,$(SRCS_TS))
SRCS_TEST_JS += $(patsubst %.ts,%.js,$(SRCS_TEST_TS))
BIN_PREFIX := $(shell npm bin)
TSC_BIN := $(addprefix $(BIN_PREFIX)/,tsc)
TSC_COMMON := --module commonjs --target ES5 --sourceMap --noImplicitAny --noEmitOnError
TSC := $(TSC_BIN) $(TSC_COMMON)
TSLINT_RULES_DIR := tslint-rules
TSLINT := $(addprefix $(BIN_PREFIX)/,tslint) -r $(TSLINT_RULES_DIR)
TSLINT_CONFIG := tslint.json
TSLINT_TARGET := .tslint.d
TSLINT_TEST_TARGET := $(addprefix $(TEST_DIR)/,.tslint.d)
MOCHA_BIN := $(addprefix $(BIN_PREFIX)/,mocha)
MOCHA_COMMON := --reporter spec
MOCHA := $(MOCHA_BIN) $(MOCHA_COMMON)
RM ?= rm -f
TOUCH ?= touch
.PHONY: all build check dependencies tslint test test-mocha clean
all: dependencies build tslint
check: all test
dependencies:
@npm install
lint: tslint
test: test-mocha
build: $(SRCS_JS)
build-test: $(SRCS_TEST_JS)
build-rules:
@$(MAKE) -s -C $(TSLINT_RULES_DIR)
clean-rules:
@$(MAKE) -s -C $(TSLINT_RULES_DIR) clean
tslint: build-rules $(TSLINT_TARGET)
tslint-test: $(TSLINT_TEST_TARGET)
test-mocha: build build-test tslint-test
@$(MOCHA)
clean: clean-rules
@$(RM) $(SRCS_JS) $(patsubst %.js,%.js.map,$(SRCS_JS))
@$(RM) $(SRCS_TEST_JS) $(patsubst %.js,%.js.map,$(SRCS_TEST_JS))
@$(RM) $(TSC_TARGET) $(TSLINT_TARGET) $(TSLINT_TEST_TARGET)
$(TSLINT_TARGET): $(SRCS_TS) $(TSLINT_CONFIG)
@$(RM) $(TSLINT_TARGET)
@$(TSLINT) $(foreach file,$(SRCS_TS),-f $(file))
@$(TOUCH) $(TSLINT_TARGET)
$(TSLINT_TEST_TARGET): $(SRCS_TEST_TS) $(TSLINT_CONFIG)
@$(RM) $(TSLINT_TEST_TARGET)
@$(TSLINT) $(foreach file,$(SRCS_TEST_TS),-f $(file))
@$(TOUCH) $(TSLINT_TEST_TARGET)
%.js: %.ts
@$(TSC) $<