-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
53 lines (38 loc) · 1.05 KB
/
Makefile
File metadata and controls
53 lines (38 loc) · 1.05 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
CRATE_ROOT = src/quadtree.rs
RLIB_FILE = $(shell rustc --crate-type=rlib --crate-file-name $(CRATE_ROOT))
RLIB = lib/$(RLIB_FILE)
SFML_RLIB_FILE = $(shell (rustc --crate-type=rlib --crate-file-name lib/rust-sfml/src/lib.rs 2> /dev/null) \
|| (echo "sfml-placeholder.rlib"))
SFML_RLIB = lib/$(SFML_RLIB_FILE)
default: lib
all: lib demo doc
lib: $(RLIB)
demo: bin/demo
doc: $(CRATE_ROOT)
rustdoc $(CRATE_ROOT)
$(RLIB): $(CRATE_ROOT)
mkdir -p lib
rustc --crate-type=rlib -o $@ $(CRATE_ROOT)
bin/demo: deps $(RLIB) src/demo.rs
mkdir -p bin
rustc -L lib -o $@ src/demo.rs
deps: $(SFML_RLIB)
$(SFML_RLIB): lib/rust-sfml
cd lib/rust-sfml && make rsfml && cd .. && cp rust-sfml/lib/*.rlib .
lib/rust-sfml:
mkdir -p lib
git clone https://github.com/JeremyLetang/rust-sfml $@
.PHONY: test
test: $(CRATE_ROOT)
mkdir -p bin
rustc --test -o bin/test $(CRATE_ROOT)
bin/test
.PHONY: clean
clean:
rm -fr bin doc $(RLIB)
.PHONY: clean-deps
clean-deps:
rm -fr $(SFML_RLIB) lib/rust-sfml
.PHONY: clean-all
clean-all: clean clean-deps
rmdir lib