forked from nus-sys/cs5223-labs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
53 lines (38 loc) · 1.35 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
################################################################################
# Java compiler settings
################################################################################
JC = javac -source 14 -g
################################################################################
# Folders, files
################################################################################
OUT = out
# Windows uses ; as a path separator while Linux and Mac use :
SEP = :
ifeq ($(OS),Windows_NT)
SEP = ;
endif
SRC_JARS = jars/framework.jar$(SEP)jars/framework-deps.jar
TST_JARS = $(SRC_JARS)$(SEP)jars/grader.jar$(SEP)jars/grader-deps.jar
JAVA_SRC = $(shell find labs/*/src -type f -name "*.java")
JAVA_TST = $(shell find labs/*/tst -type f -name "*.java")
################################################################################
# Targets
################################################################################
.PHONY: all clean
all: $(OUT)/src/ $(OUT)/tst/
$(OUT)/src/: $(JAVA_SRC)
@ echo "[javac] $@"
@ mkdir -p $@
@ touch $@
@ $(JC) -d $@ -cp "$(SRC_JARS)" $(JAVA_SRC)
$(OUT)/tst/: $(JAVA_TST) $(OUT)/src
@ echo "[javac] $@"
@ mkdir -p $@
@ touch $@
@ $(JC) -d $@ -cp "$(TST_JARS)$(SEP)$(OUT)/src" $(JAVA_TST)
submit.tar.gz:
@ echo "[tar] submit.tar.gz"
@ tar -cvzf $@ labs/*/src
clean:
@ echo "[clean]"
@ rm -rf $(OUT) submit.tar.gz