forked from capablevms/cheri-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.riscv64
34 lines (26 loc) · 819 Bytes
/
Makefile.riscv64
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
CC=$(HOME)/cheri/output/sdk/bin/clang
CFORMAT=$(HOME)/cheri/output/sdk/bin/clang-format
CXX=$(HOME)/cheri/output/sdk/bin/clang++
CFLAGS=-fuse-ld=lld --config cheribsd-riscv64-purecap.cfg
SSHPORT=10021
export
cfiles := $(wildcard *.c **/*.c **/**/*.c)
hfiles := $(wildcard include/*.h **/include/*.h)
cppfiles := $(wildcard *.cpp)
examples := $(patsubst %.c,bin/%,$(cfiles)) $(patsubst %.cpp,bin/%,$(cfiles))
.PHONY: all run clean
all: $(examples)
bin/%: %.c
@mkdir -p $(@D)
$(CC) $(CFLAGS) $< -o $@
bin/%: %.cpp
@mkdir -p $(@D)
$(CXX) $(CFLAGS) $< -o $@
.SECONDEXPANSION:
run-%: bin/% $$(wildcard %.c) $$(wildcard %.cpp)
scp -P $(SSHPORT) $(word 2,$^) bin/$(<F) root@127.0.0.1:/root
ssh -p $(SSHPORT) root@127.0.0.1 -t '/root/$(<F)'
clang-format:
$(CFORMAT) -i $(cfiles) $(hfiles)
clean:
rm -rv bin/*