2014-05-04 11:54:08 -07:00
|
|
|
RUSTC ?= rustc
|
2013-09-12 07:33:28 -05:00
|
|
|
RUSTFLAGS ?=
|
2014-01-29 17:57:55 -05:00
|
|
|
OUTDIR ?= ./build
|
2014-06-24 19:46:44 +09:00
|
|
|
CARGODIR ?= ./target
|
2014-01-29 17:57:55 -05:00
|
|
|
|
|
|
|
|
BINDIR = $(OUTDIR)/bin
|
|
|
|
|
LIBDIR = $(OUTDIR)/lib
|
|
|
|
|
TMPDIR = $(OUTDIR)/tmp
|
2013-09-12 07:33:28 -05:00
|
|
|
|
|
|
|
|
RUST_SRC = $(shell find src/. -type f -name '*.rs') \
|
2013-12-09 20:09:25 +01:00
|
|
|
src/sdl2/generated/keycode.rs \
|
|
|
|
|
src/sdl2/generated/scancode.rs
|
2013-09-12 07:33:28 -05:00
|
|
|
|
2014-06-18 13:17:06 +02:00
|
|
|
.PHONY: all gen-lib
|
2014-01-29 17:57:55 -05:00
|
|
|
all: $(TMPDIR)/libsdl2.dummy
|
2013-09-12 07:33:28 -05:00
|
|
|
|
|
|
|
|
UNAME=$(shell uname)
|
|
|
|
|
|
|
|
|
|
ifeq ($(UNAME),Darwin)
|
|
|
|
|
# If the user wasn't explicit, see if SDL2 library exists
|
2014-03-30 13:41:49 +02:00
|
|
|
ifeq ("$(strip $(SDL_MODE))","")
|
2014-06-17 21:00:24 +09:00
|
|
|
SDL_CHECK=$(shell pkg-config --exists sdl2 && echo $$?)
|
2013-09-12 07:33:28 -05:00
|
|
|
ifeq ($(SDL_CHECK),0)
|
|
|
|
|
SDL_MODE = dylib
|
|
|
|
|
else
|
|
|
|
|
SDL_MODE = framework
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(SDL_MODE),framework)
|
|
|
|
|
RUSTFLAGS+=--cfg mac_framework
|
|
|
|
|
else
|
|
|
|
|
RUSTFLAGS+=--cfg mac_dylib
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
2014-01-29 17:57:55 -05:00
|
|
|
$(BINDIR) $(LIBDIR) $(TMPDIR):
|
|
|
|
|
mkdir -p '$@'
|
2013-09-12 07:33:28 -05:00
|
|
|
|
2014-01-29 17:57:55 -05:00
|
|
|
$(TMPDIR)/codegen: $(wildcard src/codegen/*.rs) $(TMPDIR)
|
2014-05-04 11:54:08 -07:00
|
|
|
$(RUSTC) -o '$(TMPDIR)/codegen' src/codegen/main.rs $(RUSTFLAGS)
|
2013-09-12 07:33:28 -05:00
|
|
|
|
2014-01-29 17:57:55 -05:00
|
|
|
src/sdl2/generated/%.rs: $(TMPDIR)/codegen
|
|
|
|
|
'$(TMPDIR)/codegen' $(patsubst src/sdl2/generated/%,%,$@) src/sdl2/generated/
|
|
|
|
|
|
2014-06-18 13:17:06 +02:00
|
|
|
gen-lib: src/sdl2/lib.rs $(RUST_SRC) $(LIBDIR) $(TMPDIR)
|
|
|
|
|
$(RUSTC) --out-dir '$(LIBDIR)' src/sdl2/lib.rs $(RUSTFLAGS)
|
|
|
|
|
|
2014-01-29 17:57:55 -05:00
|
|
|
$(TMPDIR)/libsdl2.dummy: src/sdl2/lib.rs $(RUST_SRC) $(LIBDIR) $(TMPDIR)
|
2014-05-04 11:54:08 -07:00
|
|
|
$(RUSTC) --out-dir '$(LIBDIR)' src/sdl2/lib.rs $(RUSTFLAGS)
|
2013-09-12 07:33:28 -05:00
|
|
|
touch $@
|
|
|
|
|
|
2014-01-29 17:57:55 -05:00
|
|
|
compile_demo: src/demo/main.rs src/demo/video.rs $(TMPDIR)/libsdl2.dummy $(BINDIR)
|
2014-05-04 11:54:08 -07:00
|
|
|
$(RUSTC) -o '$(BINDIR)/demo' -L '$(LIBDIR)' src/demo/main.rs
|
2013-09-12 07:33:28 -05:00
|
|
|
|
2014-01-12 20:41:49 +00:00
|
|
|
demo: compile_demo
|
2014-01-29 17:57:55 -05:00
|
|
|
'$(BINDIR)/demo'
|
2013-09-12 07:33:28 -05:00
|
|
|
|
2014-06-24 19:46:44 +09:00
|
|
|
.PHONY: cargo
|
|
|
|
|
cargo:
|
|
|
|
|
cargo build
|
|
|
|
|
|
2013-09-12 07:33:28 -05:00
|
|
|
.PHONY: clean
|
|
|
|
|
clean:
|
2013-12-09 20:09:25 +01:00
|
|
|
rm -rf src/sdl2/generated
|
2014-01-29 17:57:55 -05:00
|
|
|
rm -rf '$(OUTDIR)'
|
2014-06-24 19:46:44 +09:00
|
|
|
rm -rf '$(CARGODIR)'
|