Files
DRAMSys/DRAMSys/library/library.pro
2020-02-25 19:41:23 +01:00

279 lines
9.2 KiB
Prolog

TARGET = DRAMSys
TEMPLATE = lib
CONFIG += staticlib
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
system(cd ../../DRAMSys/library/src/common/third_party/DRAMPower; make src/libdrampower.a;)
systemc_home = $$(SYSTEMC_HOME)
isEmpty(systemc_home) {
systemc_home = /opt/systemc/
}
# Check if PCT's SystemC should be used?
dramsys_pct = $$(DRAMSYS_PCT)
isEmpty(dramsys_pct) {
dramsys_pct = false
}
$$eval(dramsys_pct) {
# PCT:
message(PCT Simulation Feature Enabled)
systemc_home = /software/Synopsys_CoWare/K-2015.12-SP1/SLS/linux/common
INCLUDEPATH += $${systemc_home}/include/tlm
DEFINES += DRAMSYS_PCT
}
# Check if gem5 should be used
gem5 = $$(GEM5)
isEmpty(gem5) {
message(GEM5 environment variable not found)
message(Gem5 Simulation Disabled)
} else {
message(Gem5 Simulation Feature Enabled)
message(Gem5 home is $${gem5})
DEFINES += DRAMSYS_GEM5
}
message(SystemC home is $${systemc_home})
INCLUDEPATH += $${systemc_home}/include
INCLUDEPATH += src/common/third_party/DRAMPower/src
INCLUDEPATH += src/common/third_party/DRAMPower/src/libdrampower
INCLUDEPATH += src/common/third_party/json/include
DEFINES += TIXML_USE_STL
DEFINES += SC_INCLUDE_DYNAMIC_PROCESSES
dramsys_disable_coverage_check = $$(DRAMSYS_DISABLE_COVERAGE_CHECK)
isEmpty(dramsys_disable_coverage_check) {
coverage_check = true
message(Coverage check ENABLED)
} else {
coverage_check = false
message(Coverage check DISABLED)
}
unix:!macx {
QMAKE_CXXFLAGS += -std=c++11 -O0 -g
$$eval(coverage_check) {
QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -fPIC -O0
QMAKE_LFLAGS += -lgcov --coverage
}
}
macx: {
CONFIG += c++11
QMAKE_CXXFLAGS += -std=c++0x -stdlib=libc++ -O0 -g
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.14
$$eval(coverage_check) {
QMAKE_CXXFLAGS += --coverage
QMAKE_LFLAGS += --coverage
}
}
QMAKE_CXXFLAGS += -isystem $${systemc_home}/include
SOURCES += \
src/common/third_party/tinyxml2/tinyxml2.cpp \
src/common/TlmRecorder.cpp \
src/common/DebugManager.cpp \
src/configuration/Configuration.cpp \
src/simulation/MemoryManager.cpp \
src/simulation/TemperatureController.cpp \
src/configuration/ConfigurationLoader.cpp \
src/controller/Command.cpp \
src/error/errormodel.cpp \
src/simulation/TracePlayer.cpp \
src/simulation/TraceSetup.cpp \
src/simulation/DRAMSys.cpp \
src/simulation/Setup.cpp \
src/error/ECC/Bit.cpp \
src/error/ECC/ECC.cpp \
src/error/ECC/Word.cpp \
src/error/eccbaseclass.cpp \
src/error/ecchamming.cpp \
src/common/AddressDecoder.cpp \
src/simulation/dram/Dram.cpp \
src/simulation/Arbiter.cpp \
src/common/CongenAddressDecoder.cpp \
src/common/XmlAddressDecoder.cpp \
src/common/timingCalculations.cpp \
src/common/dramExtensions.cpp \
src/common/utils.cpp \
src/simulation/dram/DramDDR3.cpp \
src/simulation/dram/DramDDR4.cpp \
src/simulation/dram/DramRecordable.cpp \
src/simulation/dram/DramWideIO.cpp \
src/configuration/memspec/MemSpec.cpp \
src/controller/BankMachine.cpp \
src/controller/Controller.cpp \
src/controller/scheduler/SchedulerFifo.cpp \
src/controller/scheduler/SchedulerFrFcfs.cpp \
src/controller/cmdmux/CmdMuxStrict.cpp \
src/controller/cmdmux/CmdMuxOldest.cpp \
src/controller/ControllerRecordable.cpp \
src/controller/checker/CheckerDDR3.cpp \
src/controller/refresh/RefreshManager.cpp \
src/controller/refresh/RefreshManagerDummy.cpp \
src/controller/refresh/RefreshManagerBankwise.cpp \
src/controller/checker/CheckerWideIO.cpp \
src/configuration/memspec/MemSpecDDR3.cpp \
src/configuration/memspec/MemSpecDDR4.cpp \
src/configuration/memspec/MemSpecWideIO.cpp \
src/configuration/memspec/MemSpecLPDDR4.cpp \
src/controller/checker/CheckerDDR4.cpp \
src/simulation/dram/DramLPDDR4.cpp \
src/controller/checker/CheckerLPDDR4.cpp \
src/configuration/memspec/MemSpecWideIO2.cpp \
src/simulation/dram/DramWideIO2.cpp \
src/controller/checker/CheckerWideIO2.cpp \
src/configuration/memspec/MemSpecHBM2.cpp \
src/simulation/dram/DramHBM2.cpp \
src/controller/checker/CheckerHBM2.cpp \
src/configuration/memspec/MemSpecGDDR5.cpp \
src/configuration/memspec/MemSpecGDDR5X.cpp \
src/configuration/memspec/MemSpecGDDR6.cpp \
src/controller/checker/CheckerGDDR5.cpp \
src/controller/checker/CheckerGDDR5X.cpp \
src/controller/checker/CheckerGDDR6.cpp \
src/simulation/dram/DramGDDR5.cpp \
src/simulation/dram/DramGDDR5X.cpp \
src/simulation/dram/DramGDDR6.cpp \
src/controller/powerdown/PowerDownManagerStaggered.cpp \
src/controller/powerdown/PowerDownManagerDummy.cpp
HEADERS += \
src/common/third_party/tinyxml2/tinyxml2.h \
src/common/TlmRecorder.h \
src/common/tlm2_base_protocol_checker.h \
src/common/protocol.h \
src/common/DebugManager.h \
src/configuration/Configuration.h \
src/simulation/TracePlayer.h \
src/simulation/MemoryManager.h \
src/simulation/dram/Dram.h \
src/simulation/Arbiter.h \
src/common/libDRAMPower.h \
src/simulation/ReorderBuffer.h \
src/configuration/memspec/MemSpec.h \
src/simulation/StlPlayer.h \
src/simulation/TracePlayerListener.h \
src/simulation/TraceGenerator.h \
src/simulation/TemperatureController.h \
src/controller/Command.h \
src/configuration/ConfigurationLoader.h \
src/error/errormodel.h \
src/simulation/ExampleInitiator.h \
src/simulation/TraceSetup.h \
src/simulation/DRAMSys.h \
src/simulation/Setup.h \
src/error/ECC/Bit.h \
src/error/ECC/ECC.h \
src/error/ECC/Word.h \
src/error/eccbaseclass.h \
src/error/ecchamming.h \
src/simulation/IArbiter.h \
src/simulation/SimpleArbiter.h \
src/common/AddressDecoder.h \
src/common/CongenAddressDecoder.h \
src/common/XmlAddressDecoder.h \
src/common/timingCalculations.h \
src/common/dramExtensions.h \
src/common/utils.h \
src/configuration/TemperatureSimConfig.h \
src/simulation/dram/DramDDR3.h \
src/simulation/dram/DramDDR4.h \
src/simulation/dram/DramRecordable.h \
src/simulation/dram/DramWideIO.h \
src/controller/GenericController.h \
src/controller/BankMachine.h \
src/controller/Controller.h \
src/controller/scheduler/SchedulerIF.h \
src/controller/scheduler/SchedulerFifo.h \
src/controller/scheduler/SchedulerFrFcfs.h \
src/controller/cmdmux/CmdMuxIF.h \
src/controller/cmdmux/CmdMuxStrict.h \
src/controller/cmdmux/CmdMuxOldest.h \
src/controller/ControllerRecordable.h \
src/controller/checker/CheckerIF.h \
src/controller/checker/CheckerDDR3.h \
src/controller/refresh/RefreshManagerIF.h \
src/controller/refresh/RefreshManager.h \
src/controller/refresh/RefreshManagerDummy.h \
src/controller/refresh/RefreshManagerBankwise.h \
src/controller/checker/CheckerWideIO.h \
src/configuration/memspec/MemSpecDDR3.h \
src/configuration/memspec/MemSpecWideIO.h \
src/configuration/memspec/MemSpecDDR4.h \
src/configuration/memspec/MemSpecLPDDR4.h \
src/controller/checker/CheckerDDR4.h \
src/simulation/dram/DramLPDDR4.h \
src/controller/checker/CheckerLPDDR4.h \
src/configuration/memspec/MemSpecWideIO2.h \
src/simulation/dram/DramWideIO2.h \
src/controller/checker/CheckerWideIO2.h \
src/configuration/memspec/MemSpecHBM2.h \
src/simulation/dram/DramHBM2.h \
src/controller/checker/CheckerHBM2.h \
src/configuration/memspec/MemSpecGDDR5.h \
src/configuration/memspec/MemSpecGDDR5X.h \
src/configuration/memspec/MemSpecGDDR6.h \
src/controller/checker/CheckerGDDR5.h \
src/controller/checker/CheckerGDDR5X.h \
src/controller/checker/CheckerGDDR6.h \
src/simulation/dram/DramGDDR5.h \
src/simulation/dram/DramGDDR5X.h \
src/simulation/dram/DramGDDR6.h \
src/controller/powerdown/PowerDownManagerStaggered.h \
src/controller/powerdown/PowerDownManagerIF.h \
src/controller/powerdown/PowerDownManagerDummy.h
#src/common/third_party/json/include/nlohmann/json.hpp \
thermalsim = $$(THERMALSIM)
isEmpty(thermalsim) {
thermalsim = false
}
$$eval(thermalsim) {
message(Thermal Simulation Feature Enabled)
libthreed_ice_home = $$(LIBTHREED_ICE_HOME)
isEmpty(libthreed_ice_home) {
libthreed_ice_home = /opt/3D-ICE/
}
message(LIBTHREED_ICE_HOME path is $${libthreed_ice_home})
libsuperlu_home = $$(LIBSUPERLU_HOME)
isEmpty(libsuperlu_home) {
libsuperlu_home = /opt/SuperLU_4.3/
}
message(LIBSUPERLU_HOME path is $${libthreed_ice_home})
LIBS += -L$${libthreed_ice_home}/lib -lthreed-ice-2.2.4
LIBS += -L$${libsuperlu_home}/lib -lsuperlu_4.3
LIBS += -lblas
message(Libraries: $${LIBS})
INCLUDEPATH += $${libthreed_ice_home}/include
INCLUDEPATH += $${libsuperlu_home}/SRC
INCLUDEPATH += $${systemc_home}/include
message(Include paths: $${INCLUDEPATH})
QMAKE_CXXFLAGS += -DTHERMALSIM
message(Compiler flags: $${QMAKE_CXXFLAGS})
} else {
message(Thermal Simulation Feature Disabled)
}
# Additional Files:
include(resources/resources.pri)
DISTFILES += ../DRAMSys.astylerc