-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
74 lines (61 loc) · 2.12 KB
/
Makefile
File metadata and controls
74 lines (61 loc) · 2.12 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
SHELL := /bin/bash
.DELETE_ON_ERROR:
DATE=`date +%Y%m%d`
# for printing variable values
# usage: make print-VARIABLE
# > VARIABLE = value_of_variable
print-% : ; @echo $* = $($*)
# literal space
space :=
space +=
# Decide OS-specific questions
# jar-file seperator
ifeq ($(OS),Windows_NT)
SEP = ;
else
# linux
UNAME = $(shell uname)
ifeq ($(UNAME),Darwin)
SEP = :
endif
ifeq ($(UNAME),Linux)
SEP = :
endif
endif
# Fun Args to javac. Mostly limit to java8 source definitions, and fairly
# agressive lint warnings.
JAVAC_ARGS = -g -source 1.8 -target 1.8 -XDignore.symbol.file -Xlint:all -Xlint:-deprecation -Xlint:-serial -Xlint:-rawtypes -Xlint:-unchecked
# Source/Test code
SRC = src/main/java/embeddings
TST = src/test/java/embeddings
main_javas = $(wildcard $(SRC)/*java)
test_javas = $(wildcard $(TST)/*java)
main_classes = $(patsubst $(SRC)/%java,build/classes/main/%class,$(main_javas))
test_classes = $(patsubst $(TST)/%java,build/classes/test/%class,$(test_javas))
classes = $(main_classes) $(test_classes)
javas = $(main_javas)
# Just build the jar file
default: build/faster_em.jar
# run all junits
test: build/faster_em.jar build/faster_em-test.jar
./junits.sh
# Compile just the out-of-date files
$(main_classes): build/classes/main/%class: $(SRC)/%java
@echo "compiling " $@ " because " $?
@[ -d build/classes/main ] || mkdir -p build/classes/main
@javac $(JAVAC_ARGS) -cp "build/classes/main$(SEP)" -sourcepath $(SRC) -d build/classes/main $(javas)
$(test_classes): build/classes/test/%class: $(TST)/%java
@echo "compiling " $@ " because " $?
@[ -d build/classes/teset ] || mkdir -p build/classes/test
@javac $(JAVAC_ARGS) -cp "build/classes/main$(SEP)build/classes/test$(SEP)lib/*" -sourcepath $(TST) -d build/classes/test $(test_javas)
build/faster_em.jar: $(main_classes)
@echo " jarring " $@ " because " $?
@[ -d build ] || mkdir -p build
@jar -cf build/faster_em.jar -C build/classes/main .
build/faster_em-test.jar: $(test_classes)
@echo "jarring " $@ " because " $?
@[ -d build ] || mkdir -p build
@jar -cf build/faster_em-test.jar -C build/classes/test .
.PHONY: clean
clean:
rm -rf build