1
1
RUSTFLAGS ?=
2
+ OUTDIR ?= ./build
3
+
4
+ BINDIR = $(OUTDIR ) /bin
5
+ LIBDIR = $(OUTDIR ) /lib
6
+ TMPDIR = $(OUTDIR ) /tmp
2
7
3
8
RUST_SRC = $(shell find src/. -type f -name '* .rs') \
4
9
src/sdl2/generated/keycode.rs \
5
10
src/sdl2/generated/scancode.rs
6
11
7
12
.PHONY : all
8
- all : libsdl2.dummy
13
+ all : $( TMPDIR ) / libsdl2.dummy
9
14
10
15
UNAME =$(shell uname)
11
16
@@ -27,29 +32,26 @@ ifeq ($(UNAME),Darwin)
27
32
endif
28
33
endif
29
34
30
- bin/codegen : $(wildcard src/codegen/* .rs)
31
- rustpkg install codegen $(RUSTFLAGS )
35
+ $(BINDIR ) $(LIBDIR ) $(TMPDIR ) :
36
+ mkdir -p ' $@'
37
+
38
+ $(TMPDIR ) /codegen : $(wildcard src/codegen/* .rs) $(TMPDIR )
39
+ rustc -o ' $(TMPDIR)/codegen' src/codegen/main.rs $(RUSTFLAGS )
32
40
33
- src/sdl2/generated/% .rs : bin /codegen
34
- bin /codegen $(patsubst src/sdl2/generated/% ,% ,$@ ) src/sdl2/generated/
41
+ src/sdl2/generated/% .rs : $( TMPDIR ) /codegen
42
+ ' $(TMPDIR) /codegen' $(patsubst src/sdl2/generated/% ,% ,$@ ) src/sdl2/generated/
35
43
36
- libsdl2.dummy : src/sdl2/lib.rs $(RUST_SRC )
37
- rustpkg build sdl2 $(RUSTFLAGS )
44
+ $( TMPDIR ) / libsdl2.dummy : src/sdl2/lib.rs $(RUST_SRC ) $( LIBDIR ) $( TMPDIR )
45
+ rustc --out-dir ' $(LIBDIR) ' src/ sdl2/lib.rs $(RUSTFLAGS )
38
46
touch $@
39
47
40
- compile_demo : src/demo/main.rs src/demo/video.rs libsdl2.dummy
41
- rustpkg install demo
48
+ compile_demo : src/demo/main.rs src/demo/video.rs $( TMPDIR ) / libsdl2.dummy $( BINDIR )
49
+ rustc -o ' $(BINDIR)/ demo' -L ' $(LIBDIR) ' src/demo/main.rs
42
50
43
51
demo : compile_demo
44
- ./bin/ demo
52
+ ' $(BINDIR)/ demo'
45
53
46
54
.PHONY : clean
47
55
clean :
48
- rustpkg clean codegen
49
- rustpkg uninstall codegen
50
- rustpkg clean sdl2
51
- rustpkg clean demo
52
- rustpkg uninstall demo
53
- rm -f * .dummy
54
56
rm -rf src/sdl2/generated
55
-
57
+ rm -rf ' $(OUTDIR) '
0 commit comments