-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
91 lines (71 loc) · 2.63 KB
/
Makefile
File metadata and controls
91 lines (71 loc) · 2.63 KB
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
VERSION=0.1
BUILD_ROOT=build
TARGET_DIR=$(BUILD_ROOT)/jvmemory-$(VERSION)
ROOT?=$(PWD)
GRADLE_FLAGS=--daemon --parallel
# protobufs
# PROTO_ROOT=$(ROOT)/protobufs
# PROTO_SRCS_JVM=$(shell find $(PROTO_ROOT/monitor) -type f)
# PROTO_SRCS_VIS=$(shell find $(PROTO_ROOT/vis) -type f)
# monitor agent
MONITOR_TRGT=$(TARGET_DIR)/agent.jar
MONITOR_ROOT=$(ROOT)/monitor-agent
MONITOR_SRCS=$(shell find $(MONITOR_ROOT)/src -type f)
# bootstrap
BOOTSTRAP_TRGT=$(TARGET_DIR)/bootstrap.jar
# native agent
NATIVE_TRGT=$(TARGET_DIR)/libagent.so
NATIVE_ROOT=$(ROOT)/jvmti-agent
# preprocessor
PREPROC_TRGT=$(TARGET_DIR)/preprocessor.jar
PREPROC_ROOT=$(ROOT)/visualisation-server
PREPROC_DPND=$(ROOT)/preprocessor
PREPROC_SRCS=$(shell find $(PREPROC_ROOT)/src -type f) $(shell find $(PREPROC_DPND)/src -type f)
# event ticker
SCALA_VERSION=2.12
VIS_ROOT=$(ROOT)/visualisation
VIS_OUT=$(TARGET_DIR)/visualisation
EVENTS_ROOT=$(VIS_ROOT)/event_ticker
EVENTS_TRGT=$(VIS_OUT)/event_ticker.js
EVENTS_SRCS=$(shell find $(EVENTS_ROOT)/src -type f)
# visualisation
VIS_SRCS=$(shell find $(VIS_ROOT)/src -type f)
# scripts
SH_SRCS=run.sh open.sh debug_print.sh
SH_TRGT=$(addprefix $(TARGET_DIR)/,$(SH_SRCS))
.PHONY: build
build: $(TARGET_DIR) $(MONITOR_TRGT) $(NATIVE_TRGT) $(BOOTSTRAP_TRGT) $(PREPROC_TRGT) $(EVENTS_TRGT) vis_srcs $(SH_TRGT)
@echo $(TARGET_DIR)
$(TARGET_DIR):
@mkdir -p $(TARGET_DIR) $(VIS_OUT)
# TODO check for failures needed?
$(MONITOR_TRGT): $(MONITOR_SRC)
$(MONITOR_ROOT)/gradlew $(GRADLE_FLAGS) -p $(MONITOR_ROOT) buildJar >$@.stdout 2>$@.stderr
@cp -f $(MONITOR_ROOT)/build/libs/monitor-agent-$(VERSION).jar $@
$(BOOTSTRAP_TRGT): $(MONITOR_TRGT)
@cp -f $< $@
@zip -q -d $@ ms/domwillia/jvmemory/modify/*
$(PREPROC_TRGT): $(PREPROC_SRCS)
$(PREPROC_ROOT)/gradlew $(GRADLE_FLAGS) -p $(PREPROC_ROOT) buildJar >$@.stdout 2>$@.stderr
@cp -f $(PREPROC_ROOT)/build/libs/visualisation-server-$(VERSION).jar $@
$(NATIVE_TRGT):
$(MAKE) RELEASE=1 -C $(NATIVE_ROOT) >$@.stdout 2>$@.stderr
cp -f $(NATIVE_ROOT)/libagent.so $@
# TODO replace slow sbt
# TODO release config
$(EVENTS_TRGT): $(EVENTS_SRCS)
(cd $(EVENTS_ROOT) && exec sbt fastOptJS) >$@.stdout 2>$@.stderr
@cp -f $(EVENTS_ROOT)/target/scala-$(SCALA_VERSION)/event_ticker-fastopt.js $@
.PHONY: vis_srcs
vis_srcs:
@cp -f $(VIS_SRCS) $(VIS_OUT)
$(TARGET_DIR)/%.sh: $(ROOT)/scripts/%.sh
@sed 's:$$INSTALL_DIR:$(abspath $(TARGET_DIR)):' $< > $@
@chmod +x $@
.PHONY: clean
clean:
rm -rf $(BUILD_ROOT)
@$(MAKE) -C $(NATIVE_ROOT) clean
@$(MONITOR_ROOT)/gradlew $(GRADLE_FLAGS) -p $(MONITOR_ROOT) clean
@$(PREPROC_ROOT)/gradlew $(GRADLE_FLAGS) -p $(PREPROC_ROOT) clean
@(cd $(EVENTS_ROOT) && exec sbt clean)