forked from hackndev/zinc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.in
48 lines (35 loc) · 987 Bytes
/
Makefile.in
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
STRIP ?= @STRIP@
OBJCOPY ?= @OBJCOPY@
OBJDUMP ?= @OBJDUMP@
DEBUG ?= false
CARGO_ROOT ?= @srcdir@
PLATFORM ?= @PLATFORM@
TARGET ?= @TARGET@
$(if $(value EXAMPLE_NAME),, \
$(error EXAMPLE_NAME must be set))
ifeq "$(DEBUG)" "true"
PROFILE_OPTION =
PROFILE = debug
else
PROFILE_OPTION = --release
PROFILE = release
endif
# Output directory
OUT_DIR=$(CARGO_ROOT)/target/$(TARGET)/$(PROFILE)
EXAMPLE_DIR=$(OUT_DIR)/examples
BIN_FILE=$(EXAMPLE_DIR)/$(EXAMPLE_NAME).bin
LST_FILE=$(EXAMPLE_DIR)/$(EXAMPLE_NAME).lst
EXAMPLE_FILE=$(EXAMPLE_DIR)/$(EXAMPLE_NAME)
.PHONY: build clean listing $(EXAMPLE_FILE)
build: $(BIN_FILE)
clean:
cargo clean
listing: $(LST_FILE)
# Target is PHONY so cargo can deal with dependencies
$(EXAMPLE_FILE):
cd $(CARGO_ROOT)
cargo build --example $(EXAMPLE_NAME) $(PROFILE_OPTION) --target=$(TARGET) --verbose --features mcu_$(PLATFORM)
$(BIN_FILE): $(EXAMPLE_FILE)
$(OBJCOPY) -O binary $< $@
$(LST_FILE): $(EXAMPLE_FILE)
$(OBJDUMP) -D $< > $@