-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile_sample
58 lines (42 loc) · 1.65 KB
/
Makefile_sample
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
# Modified by Haoyang
# make assembly - Build the memory file for an assembly source
# make program - Build the memory file for a C program
SOURCE = test_progs/alexnet.c
CRT = crt.s
LINKERS = linker.lds
ASLINKERS = aslinker.lds
DEBUG_FLAG = -g
CFLAGS = -mno-relax -march=rv32im -mabi=ilp32 -nostartfiles -std=gnu11 -mstrict-align -mno-div
OFLAGS = -O0
ASFLAGS = -mno-relax -march=rv32im -mabi=ilp32 -nostartfiles -Wno-main -mstrict-align
OBJFLAGS = -SD -M no-aliases
OBJDFLAGS = -SD -M numeric,no-aliases
GCC = riscv32-unknown-elf-gcc
OBJDUMP = riscv32-unknown-elf-objdump
AS = riscv32-unknown-elf-as
ELF2HEX = riscv32-unknown-elf-elf2hex
compile: $(CRT) $(LINKERS)
$(GCC) $(CFLAGS) $(OFLAGS) $(CRT) $(SOURCE) -T $(LINKERS) -o program.elf
$(GCC) $(CFLAGS) $(DEBUG_FLAG) $(OFLAGS) $(CRT) $(SOURCE) -T $(LINKERS) -o program.debug.elf
assemble: $(ASLINKERS)
$(GCC) $(ASFLAGS) $(SOURCE) -T $(ASLINKERS) -o program.elf
cp program.elf program.debug.elf
disassemble: program.debug.elf
$(OBJDUMP) $(OBJFLAGS) program.debug.elf > program.dump
$(OBJDUMP) $(OBJDFLAGS) program.debug.elf > program.debug.dump
rm program.debug.elf
hex: program.elf
$(ELF2HEX) --bit-width 64 --input program.elf > program.mem
program: compile disassemble hex
@:
debug_program:
gcc -lm -g -std=gnu11 -DDEBUG $(SOURCE) -o debug_bin
assembly: assemble disassemble hex
@:
clean:
rm -rf *simv *simv.daidir csrc vcs.key program.out *.key
rm -rf vis_simv vis_simv.daidir
rm -rf dve* inter.vpd DVEfiles
rm -rf syn_simv syn_simv.daidir syn_program.out
rm -rf synsimv synsimv.daidir csrc vcdplus.vpd vcs.key synprog.out pipeline.out writeback.out vc_hdrs.h
rm -f *.elf *.dump *.mem debug_bin