blob: 5c110ec6ead2b4f9785a5d6cd1f3ad4d68e98f9b (
plain) (
blame)
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
|
# Copyright (c) 2020 Johannes Stoelp
ARCH ?= x86_64
ifeq ($(ARCH),arm64)
PREFIX := aarch64-linux-gnu-
else ifeq ($(ARCH),arm)
PREFIX := arm-linux-gnueabi-
endif
CXX := $(PREFIX)g++
CXXFLAGS := -g -O0 -Wall -Wextra -I.
lib/libmatcha.a:
$(MAKE) -C lib ARCH=$(ARCH)
.PHONY: lib/libmatcha.a
%.o: %.cc
$(CXX) -c -o $@ $^ $(CXXFLAGS)
fmt:
fd --type f '.+\.h$$|.+\.cc$$' --exec clang-format -i {}
example/demo1: example/demo1.o lib/libmatcha.a
$(CXX) -o $@ $^ $(LDFLAGS)
demo1: example/demo1
ifeq ($(ARCH),arm64)
qemu-aarch64 \
-L /usr/aarch64-linux-gnu \
-E LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib \
$<
else ifeq ($(ARCH),arm)
qemu-arm \
-L /usr/arm-linux-gnueabi \
-E LD_LIBRARY_PATH=/usr/arm-linux-gnueabi/lib \
$<
else
$<
endif
demo1-gdb: example/demo1
ifeq ($(ARCH),arm64)
qemu-aarch64 \
-L /usr/aarch64-linux-gnu \
-E LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib \
-g 1234 \
$< &
gdb-multiarch -ex 'target remote :1234' -ex 'b main' -ex 'c' $<
else ifeq ($(ARCH),arm)
qemu-arm \
-L /usr/arm-linux-gnueabi \
-E LD_LIBRARY_PATH=/usr/arm-linux-gnueabi/lib \
-g 1234 \
$< &
gdb-multiarch -ex 'target remote :1234' -ex 'b main' -ex 'c' $<
else
which cgdb && cgdb --ex 'start' $< \
|| gdb --ex 'start' $<
endif
docker: docker/Dockerfile
$(eval IMG := matcha-box)
cd docker && ./build.sh $(IMG)
docker run -it --rm -v $(PWD):/develop $(IMG):latest
.PHONY: docker
clean:
$(MAKE) -C lib clean
$(RM) example/demo1 example/demo1.o
|