Line 1... |
Line 1... |
VERILATED_CPP = /usr/share/verilator/include/verilated.cpp
|
# -*- Makefile -*-
|
VERILATED_INC = -I/usr/share/verilator/include
|
#*****************************************************************************
|
|
#
|
|
# DESCRIPTION: Verilator Example: Makefile for inside object directory
|
|
#
|
|
# This is executed in the object directory, and called by ../Makefile
|
|
#
|
|
# Copyright 2003-2014 by Wilson Snyder. This program is free software; you can
|
|
# redistribute it and/or modify it under the terms of either the GNU
|
|
# Lesser General Public License Version 3 or the Perl Artistic License
|
|
# Version 2.0.
|
|
#
|
|
#*****************************************************************************
|
|
|
|
default: sim
|
|
|
MUDULB = Vnoc
|
MUDULB = Vnoc
|
MUDULA = Vrouter
|
MUDULA = Vrouter
|
MUDULC = Vtraffic
|
MUDULC = Vtraffic
|
|
|
sim:
|
|
#Compile your test code
|
|
g++ -I. -L. $(VERILATED_INC) -o testbench testbench.cpp -l$(MUDULA) -l$(MUDULB) -l$(MUDULC) -Wall -O3
|
|
|
|
|
include Vrouter.mk
|
|
|
lib:
|
lib:
|
#Create object files
|
$(MAKE) -f $(MUDULA).mk
|
g++ -c -I. $(VERILATED_INC) $(VERILATED_CPP) -O3
|
$(MAKE) -f $(MUDULB).mk
|
g++ -c -I. $(VERILATED_INC) $(MUDULA).cpp $(MUDULA)__Syms.cpp -O3
|
$(MAKE) -f $(MUDULC).mk
|
g++ -c -I. $(VERILATED_INC) $(MUDULB).cpp $(MUDULB)__Syms.cpp -O3
|
|
g++ -c -I. $(VERILATED_INC) $(MUDULC).cpp $(MUDULC)__Syms.cpp -O3
|
|
#Link object files into static library
|
#######################################################################
|
ar rcs lib$(MUDULA).a $(MUDULA).o $(MUDULA)__Syms.o verilated.o
|
# Compile flags
|
ar rcs lib$(MUDULB).a $(MUDULB).o $(MUDULB)__Syms.o
|
|
ar rcs lib$(MUDULC).a $(MUDULC).o $(MUDULC)__Syms.o
|
CPPFLAGS += -DVL_DEBUG=1
|
#Remove object files
|
ifeq ($(CFG_WITH_CCWARN),yes) # Local... Else don't burden users
|
rm *.o
|
CPPFLAGS += -DVL_THREADED=1
|
|
CPPFLAGS += -W -Werror -Wall
|
|
endif
|
|
|
|
#######################################################################
|
|
# Linking final exe -- presumes have a sim_main.cpp
|
|
|
|
|
|
sim: testbench.o $(VK_GLOBAL_OBJS) $(MUDULB)__ALL.a $(MUDULA)__ALL.a $(MUDULC)__ALL.a
|
|
$(LINK) $(LDFLAGS) -g $^ $(LOADLIBES) $(LDLIBS) -o testbench $(LIBS) -Wall -O3 2>&1 | c++filt
|
|
|
|
testbench.o: testbench.cpp $(MUDULA).h $(MUDULB).h $(MUDULC).h
|
|
|
clean:
|
clean:
|
rm *.o *.a main
|
rm *.o *.a main
|
|
|
|
|