# -*- Makefile -*-
#*****************************************************************************
#
# DESCRIPTION: Verilator Example: Makefile for inside object directory
#
# This is executed in the object directory, and called by ../Makefile
#
# Copyright 2003-2009 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: simx
include Vtop.mk

#######################################################################
# Use sp_log.cpp, so we can get output in sim.log

CPPFLAGS += -DUTIL_PRINTF=sp_log_printf
CPPFLAGS += -Wno-deprecated
CPPFLAGS += $(SYSTEMC_CXX_FLAGS)
CPPFLAGS += $(OPT)
ifeq ($(VERILATOR_AUTHOR_SITE),1)	# Local... Else don't burden users
#CPPFLAGS += -W -Wall -Wno-char-subscripts -Wno-unused-parameter -Wno-unused-variable -Wno-uninitialized -Werror
endif

LDFLAGS += $(SYSTEMC_CXX_FLAGS)

#######################################################################
# Linking final exe -- presumes have a sim_main.cpp

SP_SRCS = Sp.o verilated.o

SC_LIB = $(SYSTEMC)/lib-$(VM_SC_TARGET_ARCH)/libsystemc.a

simx: sc_main.o $(SP_SRCS) \
	  $(VM_PREFIX)__ALL.a $(SC_LIB)
	$(LINK) $(LDFLAGS) -g $^ $(LOADLIBES) $(LDLIBS) -o $@ $(SC_LIBS) $(LIBS) 2>&1 | c++filt

sc_main.o: sc_main.cpp $(VM_PREFIX).h
