Makefile 1.54 KB
Newer Older
1
2
3
4
5
6
7
CXXFLAGS = -Wall

VERILATOR = verilator
VFLAGS = +1364-2005ext+v \
    -Wno-WIDTH -Wno-PINMISSING -Wno-LITENDIAN -Wno-IMPLICIT -Wno-SELRANGE \
    -Wno-CASEINCOMPLETE -Wno-UNSIGNED

Antoine Kaufmann's avatar
Antoine Kaufmann committed
8
SRCS = corundum_verilator.cpp dma.cpp mem.cpp
9

10
11
12
13

mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
BASEDIR := $(abspath $(dir $(mkfile_path))/../)

14
15
16
all: corundum_verilator

obj_dir/Vinterface.cpp: rtl/interface.v
17
	$(VERILATOR) $(VFLAGS) --cc -O3 \
18
	    -CFLAGS "-I$(BASEDIR)/nicsim_common/include -I$(BASEDIR)/proto -O3 -g -Wall" \
19
20
21
22
	    -y rtl \
	    -y lib/axi/rtl \
	    -y lib/eth/lib/axis/rtl/ \
	    -y ./lib/pcie/rtl \
23
	    rtl/interface.v --exe $(SRCS) "$(BASEDIR)/nicsim_common/libnicsim_common.a"
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

obj_dir/Vinterface: obj_dir/Vinterface.cpp $(SRCS)
	 $(MAKE) -C obj_dir -f Vinterface.mk

corundum_verilator: obj_dir/Vinterface
	cp $< $@

#obj_dir/%.o: CXXFLAGS += -Wno-all
#obj_dir/%.o: CPPFLAGS += -I /usr/share/verilator/include/
#
#obj_dir/verilated.o: /usr/share/verilator/include/verilated.cpp
#	$(CXX) $(CXXFLAGS) -c $< -o $@
#
#obj_dir/verilated_vcd_c.o: /usr/share/verilator/include/verilated_vcd_c.cpp
#	$(CXX) $(CXXFLAGS) -c $< -o $@
#
#corundum_verilator: corundum_verilator.o obj_dir/verilated.o \
#	    obj_dir/verilated_vcd_c.o obj_dir/Vinterface.o \
#	    obj_dir/Vinterface__Syms.o obj_dir/Vinterface__Trace.o \
#	    obj_dir/Vinterface__Trace__Slow.o
#	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)

46
47
lightclean:
	rm -f obj_dir/Vinterface corundum_verilator obj_dir/mem.o obj_dir/dma.o
48
49
50
clean:
	rm -rf obj_dir corundum_verilator *.o

51
.PHONY: all clean lightclean