blob: 37349a1d263a326451f943db2ed8ebcab75cf8f1 (
plain)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
root_dir ?= $(PWD)
test_dir ?= $(root_dir)/test
regress_dir ?= $(root_dir)/regress
firrtl_dir ?= $(root_dir)/src/main/stanza
install_dir ?= $(root_dir)/utils/bin
SBT ?= sbt
stanza ?= $(install_dir)/stanza
stanza_bin ?= $(install_dir)/firrtl-stanza
scala_jar ?= $(install_dir)/firrtl.jar
scala_src := $(shell find src -type f \( -name "*.scala" -o -path "*/resources/*" \))
stanza_src=$(shell ls src/main/stanza/*.stanza)
all-noise:
${MAKE} all || ${MAKE} fail
all: done
# Installs Stanza into $(insall_dir)
stanza_zip_name = $(subst Darwin,mac,$(subst Linux,linux,$(shell uname)))
stanza_target_name = $(subst Darwin,os-x,$(subst Linux,linux,$(shell uname)))
$(root_dir)/src/lib/stanza/stamp: src/lib/stanza-$(stanza_zip_name).zip
rm -rf src/lib/stanza
mkdir -p src/lib
cd src/lib && unzip stanza-$(stanza_zip_name).zip
touch $@
utils/bin/stanza: $(stanza)
$(stanza): $(root_dir)/src/lib/stanza/stamp $(root_dir)/utils/stanza-wrapper
cd src/lib/stanza && ./stanza -platform $(stanza_target_name) -install $(stanza)
cat $(root_dir)/utils/stanza-wrapper | sed 's!@@TOP@@!$(root_dir)!g' > $@
$(stanza_bin): $(stanza) $(stanza_src)
cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $@
build-stanza: $(stanza)
cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $(install_dir)/firrtl-stanza
$(MAKE) set-stanza
build-fast: $(stanza)
cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $(install_dir)/firrtl-stanza -flags OPTIMIZE
$(MAKE) set-stanza
build-deploy: $(stanza)
cd $(firrtl_dir) && $(stanza) -i firrtl-main.stanza -o $(install_dir)/firrtl-stanza
$(MAKE) set-stanza
check:
cd $(test_dir) && lit -j 2 -v . --path=$(install_dir)/
regress:
cd $(regress_dir) && $(install_dir)/firrtl -i rocket.fir -o rocket.v -X verilog
parser:
cd $(test_dir)/parser && lit -v . --path=$(install_dir)/
perf:
cd $(test_dir)/performance && lit -v . --path=$(install_dir)/
jack:
cd $(test_dir)/passes/jacktest && lit -v . --path=$(install_dir)/
passes:
cd $(test_dir)/passes && lit -v . --path=$(install_dir)/
errors:
cd $(test_dir)/errors && lit -v . --path=$(install_dir)/
features:
cd $(test_dir)/features && lit -j 2 -v . --path=$(install_dir)/
chirrtl:
cd $(test_dir)/chirrtl && lit -v . --path=$(install_dir)/
custom:
cd $(test_dir)/custom && lit -v . --path=$(install_dir)/ --max-time=10
clean:
rm -f $(test_dir)/*/*/*.out
rm -f $(test_dir)/*/*.out
rm -rf src/lib/stanza
rm -f $(stanza)
rm -f $(install_dir)/firrtl.jar
rm -f $(install_dir)/firrtl
rm -f $(install_dir)/firrtl-stanza
$(SBT) "clean"
riscv:
cd $(test_dir)/riscv-mini && lit -v . --path=$(install_dir)/
units = ALUTop Datapath Control Core Test
v = $(addsuffix .fir.v, $(units))
$(units): % :
firrtl -X verilog -i test/chisel3/$*.fir -o test/chisel3/$*.fir.v -p c > test/chisel3/$*.fir.out
#scp test/chisel3/$*.fir.v adamiz@a5:/scratch/adamiz/firrtl-all/riscv-mini/generated-src/$*.v
done: build-fast check regress
say "done"
fail:
say "fail"
build: build-scala
# Scala Added Makefile commands
build-scala: $(scala_jar)
$(MAKE) set-scala
$(scala_jar): $(scala_src)
$(SBT) "assembly"
test-scala:
$(SBT) test
set-scala:
ln -f -s $(install_dir)/firrtl-scala $(install_dir)/firrtl
set-stanza:
ln -f -s $(install_dir)/firrtl-stanza $(install_dir)/firrtl
set-linux:
ln -f -s $(install_dir)/FileCheck_linux $(install_dir)/FileCheck
set-osx:
ln -f -s $(install_dir)/FileCheck_mac $(install_dir)/FileCheck
.PHONY: all install build-deploy build check clean fail succeed regress set-scala set-stanza build-scala test-scala
|