-
Notifications
You must be signed in to change notification settings - Fork 102
Expand file tree
/
Copy pathMakefile
More file actions
70 lines (48 loc) · 1.71 KB
/
Makefile
File metadata and controls
70 lines (48 loc) · 1.71 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
SRC_MAIN := src/main/java
SRC_TEST := src/test/java
RES_TEST := src/test/resources
OUT_DIR := out
OUT_MAIN := $(OUT_DIR)/main
OUT_TEST := $(OUT_DIR)/test
LIB_DIR := lib
JUNIT := $(LIB_DIR)/junit-platform-console-standalone-6.0.1.jar
CLASSPATH_MAIN := $(OUT_MAIN):$(JUNIT)
.PHONY: all clean test compile compile-main compile-test help deps
help:
@echo ""
@echo "Available targets:"
@echo " help Show this help message"
@echo " deps Download dependencies (JUnit)"
@echo " compile Compile main and test sources"
@echo " compile-main Compile only main sources"
@echo " compile-test Compile only test sources (depends on compile-main)"
@echo " test Run JUnit tests"
@echo " clean Remove build output"
@echo ""
all: compile
compile: deps compile-main compile-test
compile-main:
@echo "== Compiling main sources =="
mkdir -p $(OUT_MAIN)
javac -cp $(JUNIT) -d $(OUT_MAIN) $$(find $(SRC_MAIN) -name "*.java")
compile-test: compile-main
@echo "== Compiling test sources =="
mkdir -p $(OUT_TEST)
javac -cp $(CLASSPATH_MAIN) -d $(OUT_TEST) $$(find $(SRC_TEST) -name "*.java")
@echo "== Copying test resources =="
@if [ -d $(RES_TEST) ]; then cp -r $(RES_TEST)/* $(OUT_TEST)/ 2>/dev/null || true; fi
test: compile
@echo "== Running JUnit tests =="
java -jar $(JUNIT) \
execute \
--classpath "$(OUT_MAIN):$(OUT_TEST)" \
--scan-classpath
clean:
rm -rf $(OUT_DIR)
deps: $(JUNIT)
$(JUNIT): | $(LIB_DIR)
wget -q https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/6.0.1/junit-platform-console-standalone-6.0.1.jar \
-O $(JUNIT)
@echo "Downloaded JUnit Platform Console 6.0.1"
$(LIB_DIR):
mkdir -p $(LIB_DIR)