Merge pull request #20 from palmer-dabbelt/package
[riscv-isa-sim.git] / riscv / riscv.mk.in
1 get_insn_list = $(shell grep ^DECLARE_INSN $(1) | sed 's/DECLARE_INSN(\(.*\),.*,.*)/\1/')
2 get_opcode = $(shell grep ^DECLARE_INSN.*\\\<$(2)\\\> $(1) | sed 's/DECLARE_INSN(.*,\(.*\),.*)/\1/')
3
4 riscv_subproject_deps = \
5 softfloat \
6
7 riscv_install_prog_srcs = \
8
9 riscv_hdrs = \
10 htif.h \
11 common.h \
12 decode.h \
13 disasm.h \
14 mmu.h \
15 processor.h \
16 sim.h \
17 trap.h \
18 encoding.h \
19 cachesim.h \
20 memtracer.h \
21 extension.h \
22 rocc.h \
23 insn_template.h \
24 mulhi.h \
25
26 riscv_precompiled_hdrs = \
27 insn_template.h \
28
29 riscv_srcs = \
30 htif.cc \
31 processor.cc \
32 sim.cc \
33 interactive.cc \
34 trap.cc \
35 cachesim.cc \
36 mmu.cc \
37 disasm.cc \
38 extension.cc \
39 extensions.cc \
40 rocc.cc \
41 regnames.cc \
42 $(riscv_gen_srcs) \
43
44 riscv_test_srcs =
45
46 riscv_gen_hdrs = \
47 icache.h \
48
49 riscv_gen_srcs = \
50 $(addsuffix .cc, $(call get_insn_list,$(src_dir)/riscv/encoding.h))
51
52 icache_entries := `grep "ICACHE_ENTRIES =" $(src_dir)/riscv/mmu.h | sed 's/.* = \(.*\);/\1/'`
53
54 icache.h: mmu.h
55 $(src_dir)/riscv/gen_icache $(icache_entries) > $@.tmp
56 mv $@.tmp $@
57
58 $(riscv_gen_srcs): %.cc: insns/%.h insn_template.cc
59 sed 's/NAME/$(subst .cc,,$@)/' $(src_dir)/riscv/insn_template.cc | sed 's/OPCODE/$(call get_opcode,$(src_dir)/riscv/encoding.h,$(subst .cc,,$@))/' > $@
60
61 riscv_junk = \
62 $(riscv_gen_srcs) \