aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 80bc150caf2f4b28f74a358d82d387f4b53f5779 (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
131
132
133
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

stanza ?= $(install_dir)/stanza
stanza_bin ?= $(install_dir)/firrtl-stanza
scala_jar ?= $(install_dir)/firrtl.jar
scala_src=$(shell ls src/main/scala/firrtl/*.scala)
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 $@

$(stanza): $(root_dir)/src/lib/stanza/stamp
	cd src/lib/stanza && ./stanza -platform $(stanza_target_name) -install $(stanza)

$(stanza_bin): $(stanza) $(stanza_src)
	cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $@

build-deploy: $(stanza)
	cd $(firrtl_dir) && $(stanza) -i firrtl-main.stanza -o $(root_dir)/utils/bin/firrtl

build: $(stanza)
	cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $(root_dir)/utils/bin/firrtl

build-fast: $(stanza)
	cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $(root_dir)/utils/bin/firrtl -flags OPTIMIZE

build-deploy: 
	cd $(firrtl_dir) && $(stanza) -i firrtl-main.stanza -o $(root_dir)/utils/bin/firrtl-stanza
	make set-stanza

build: 
	cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $(root_dir)/utils/bin/firrtl-stanza
	make set-stanza

build-fast: 
	cd $(firrtl_dir) && $(stanza) -i firrtl-test-main.stanza -o $(root_dir)/utils/bin/firrtl-stanza -flags OPTIMIZE
	make set-stanza

check: 
	cd $(test_dir) && lit -v . --path=$(root_dir)/utils/bin/

regress: 
	cd $(regress_dir) && firrtl -i rocket.fir -o rocket.v -X verilog

perf: 
	cd $(test_dir)/performance && lit -v . --path=$(root_dir)/utils/bin/

jack: 
	cd $(test_dir)/passes/jacktest && lit -v . --path=$(root_dir)/utils/bin/

passes: 
	cd $(test_dir)/passes && lit -v . --path=$(root_dir)/utils/bin/

perf: 
	cd $(test_dir)/performance && lit -v . --path=$(root_dir)/utils/bin/

errors:
	cd $(test_dir)/errors && lit -v . --path=$(root_dir)/utils/bin/

features:
	cd $(test_dir)/features && lit -v . --path=$(root_dir)/utils/bin/

chirrtl:
	cd $(test_dir)/chirrtl && lit -v . --path=$(root_dir)/utils/bin/

custom:
	cd $(test_dir)/custom && lit -v . --path=$(root_dir)/utils/bin/ --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

riscv:
	cd $(test_dir)/riscv-mini && lit -v . --path=$(root_dir)/utils/bin/

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"

# Scala Added Makefile commands

build-scala: $(scala_jar) $(stanza_bin) $(firrtl_bin)
	make set-scala

$(scala_jar): $(scala_src)
	sbt "assembly"

test-scala:
	cd $(test_dir)/parser && lit -v . --path=$(root_dir)/utils/bin/

set-scala:
	ln -f -s $(root_dir)/utils/bin/firrtl-scala $(root_dir)/utils/bin/firrtl

set-stanza:
	ln -f -s $(root_dir)/utils/bin/firrtl-stanza $(root_dir)/utils/bin/firrtl

set-linux:
	ln -f -s $(root_dir)/utils/bin/FileCheck_linux $(root_dir)/utils/bin/FileCheck

set-osx:
	ln -f -s $(root_dir)/utils/bin/FileCheck_osx $(root_dir)/utils/bin/FileCheck

.PHONY: all install build-deploy build check clean fail succeed regress set-scala set-stanza build-scala test-scala