-
Notifications
You must be signed in to change notification settings - Fork 1
/
makefile
57 lines (43 loc) · 1.02 KB
/
makefile
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
#SPACE
NULLSTRING :=
SPACE := $(NULLSTRING)
BASEDIR := $(abspath .)
SRCDIR := $(BASEDIR)/src
HEADERDIR := $(SRCDIR)/headers
CSRCDIR := $(SRCDIR)/csrc
BUILDDIR := $(BASEDIR)/build
OUTPUTDIR := $(BASEDIR)/output
CC := riscv64-unknown-elf-gcc
CXX := riscv64-unknown-elf-g++
CFLAGS += -lm
default: all
# Make Flags
TEST ?= 1
TRAIN ?= 0
ifeq ($(TEST),1)
CONFIGTEST := _test
endif
ifeq ($(TRAIN),1)
CONFIGTRAIN := _train
endif
SAVETRANDATA ?= 0 # 0-Not save & 1-save
PREDEFINE += SAVETRANDATA=$(SAVETRANDATA) \
TEST=$(TEST) \
TRAIN=$(TRAIN) \
PREDEF := $(addprefix -D$(SPACE),$(PREDEFINE))
CFLAGS += $(PREDEF)
all: cnn$(CONFIGTRAIN)$(CONFIGTEST)
cnn$(CONFIGTRAIN)$(CONFIGTEST): $(CSRCDIR)/*.c
@echo "[C] Make CNN $(CONFIGTRAIN) $(CONFIGTEST) Module"
mkdir -p $(BUILDDIR)
$(CC) $^ -I$(HEADERDIR) $(CFLAGS) -o $(BUILDDIR)/$@
.PHONY: run
run:
$(BUILDDIR)/cnn$(CONFIGTRAIN)$(CONFIGTEST)
.PHONY: clean
clean:
rm -f $(BUILDDIR)/cnn_*
rmdir $(BUILDDIR)
.PHONY: dist-clean
dist-clean: clean
rm -rf $(OUTPUTDIR)