ld_flags = -fPIC -shared
cxx_objs = $(verilator_build_dir)/verilated.o $(verilator_build_dir)/verilated_dpi.o $(verilator_build_dir)/tsim_device.o
-cxx_objs += $(patsubst %.cpp,%.o,$(wildcard $(verilator_build_dir)/*.cpp))
ifneq ($(USE_TRACE), 0)
verilator_opt += --trace
lib: $(lib_path)
$(verilator_build_dir)/%.o: %.cpp
- $(CXX) -c $(cxx_flags) $^ -o $@
+ $(CXX) -fPIC $(cxx_flags) -c $^ -o $@
$(verilator_build_dir)/tsim_device.o: tsim_device.cc
- $(CXX) -c $(cxx_flags) $^ -o $@
+ $(CXX) -fPIC $(cxx_flags) -c $^ -o $@
$(lib_path): $(verilator_build_dir)/V$(TOP_TEST).cpp $(cxx_objs)
- $(CXX) $(cxx_flags) $(ld_flags) $(cxx_objs) -o $@
+ for f in $(shell find $(verilator_build_dir)/*.cpp); do \
+ $(CXX) -fPIC $(cxx_flags) -c $${f} -o $${f}.o ; \
+ done
+ $(CXX) $(ld_flags) $(cxx_flags) $(cxx_objs) $(patsubst %.cpp,%.cpp.o,$(shell find $(verilator_build_dir)/*.cpp)) -o $@
verilator: $(verilator_build_dir)/V$(TOP_TEST).cpp
$(verilator_build_dir)/V$(TOP_TEST).cpp: $(chisel_build_dir)/$(TOP_TEST).$(CONFIG).v