Add emulators/ripes: Graphical RISC-V simulator
PR: 260124
This commit is contained in:
parent
05debb3dd4
commit
885796f15a
@ -111,6 +111,7 @@
|
||||
SUBDIR += qemu5
|
||||
SUBDIR += qmc2
|
||||
SUBDIR += quasi88
|
||||
SUBDIR += ripes
|
||||
SUBDIR += riscv-isa-sim
|
||||
SUBDIR += rpcs3
|
||||
SUBDIR += rtc
|
||||
|
26
emulators/ripes/Makefile
Normal file
26
emulators/ripes/Makefile
Normal file
@ -0,0 +1,26 @@
|
||||
PORTNAME= ripes
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 2.2.3
|
||||
CATEGORIES= emulators
|
||||
|
||||
MAINTAINER= mclay@astate.edu
|
||||
COMMENT= Graphical processor simulator and assembly editor for the RISC-V ISA
|
||||
|
||||
LICENSE= MIT
|
||||
|
||||
USES= cmake qmake qt:5
|
||||
|
||||
USE_QT= buildtools_build charts concurrent core gui svg testlib widgets
|
||||
|
||||
CMAKE_INSTALL_PREFIX= ${STAGEDIR}${PREFIX}
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= mortbopet
|
||||
GH_PROJECT= Ripes
|
||||
GH_TUPLE= mortbopet:VSRTL:65ac251:VSRTL/external/VSRTL \
|
||||
serge1:ELFIO:79fcd11:ELFIO/external/ELFIO \
|
||||
pbhogan:Signals:17881fb:Signals/external/VSRTL/external/Signals \
|
||||
USCiLab:cereal:51cbda5:cereal/external/VSRTL/external/cereal \
|
||||
mortbopet:better-enums:52a694b:better_enums/external/VSRTL/external/better-enums
|
||||
|
||||
.include <bsd.port.mk>
|
13
emulators/ripes/distinfo
Normal file
13
emulators/ripes/distinfo
Normal file
@ -0,0 +1,13 @@
|
||||
TIMESTAMP = 1638160024
|
||||
SHA256 (mortbopet-Ripes-v2.2.3_GH0.tar.gz) = 321dbe3884a339d859e36c6d5fd1c402c616916c72fba5ead544eef64075e7ca
|
||||
SIZE (mortbopet-Ripes-v2.2.3_GH0.tar.gz) = 14150373
|
||||
SHA256 (mortbopet-VSRTL-65ac251_GH0.tar.gz) = 872b619e5c6f590d94a0ab6fec5e037cc3c948fefe3d3e59f7b5ba3bf9bfe8cc
|
||||
SIZE (mortbopet-VSRTL-65ac251_GH0.tar.gz) = 14500229
|
||||
SHA256 (serge1-ELFIO-79fcd11_GH0.tar.gz) = 2f2478e48dc20b30fd705e9ae7208ea8ab175b5aa9195d0705142ad6e9054e55
|
||||
SIZE (serge1-ELFIO-79fcd11_GH0.tar.gz) = 4229577
|
||||
SHA256 (pbhogan-Signals-17881fb_GH0.tar.gz) = 7d2c420dc34471519306dd4070c571c74cb129cac782cb0a38ba07f0ba8488f8
|
||||
SIZE (pbhogan-Signals-17881fb_GH0.tar.gz) = 38528
|
||||
SHA256 (USCiLab-cereal-51cbda5_GH0.tar.gz) = efa214cfc850a4a2360baf4419b88c93be2a08b09ff5f9bac604a18498b83cfb
|
||||
SIZE (USCiLab-cereal-51cbda5_GH0.tar.gz) = 335754
|
||||
SHA256 (mortbopet-better-enums-52a694b_GH0.tar.gz) = 6fe24b59328a174eae7b4d755d606615a5bc0397a2b9846079a931486bf94cd3
|
||||
SIZE (mortbopet-better-enums-52a694b_GH0.tar.gz) = 136663
|
83
emulators/ripes/files/patch-CMakeLists.txt
Normal file
83
emulators/ripes/files/patch-CMakeLists.txt
Normal file
@ -0,0 +1,83 @@
|
||||
--- CMakeLists.txt.orig 2022-01-05 13:44:44.993511000 -0600
|
||||
+++ CMakeLists.txt 2022-01-05 14:10:26.330330000 -0600
|
||||
@@ -1,4 +1,4 @@
|
||||
-cmake_minimum_required(VERSION 3.9)
|
||||
+cmake_minimum_required(VERSION 3.13)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
@@ -9,19 +9,27 @@
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
-project(Ripes CXX)
|
||||
+project(Ripes
|
||||
+ LANGUAGES CXX
|
||||
+ DESCRIPTION "A graphical processor simulator and assembly editor for the RISC-V ISA"
|
||||
+ HOMEPAGE_URL "https://github.com/mortbopet/Ripes"
|
||||
+)
|
||||
|
||||
+if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
||||
+ include(GNUInstallDirs) #Must exist after declaring a project
|
||||
+endif()
|
||||
+
|
||||
# Error flags on everything but MSVC
|
||||
if(NOT MSVC)
|
||||
set(CMAKE_CXX_FLAGS "-Wextra -Wall \
|
||||
- -Werror=switch -Werror=return-type -Werror=shadow \
|
||||
+ -Werror=switch -Werror=return-type \
|
||||
-Werror=unreachable-code")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(/bigobj) # Allow big object
|
||||
elseif(MINGW)
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj") # Allow big object
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mbig-obj") # Allow big object
|
||||
endif()
|
||||
|
||||
######################################################################
|
||||
@@ -62,6 +70,7 @@
|
||||
include_directories(${RIPES_LIB} PUBLIC external/VSRTL/external)
|
||||
include_directories(SYSTEM external/ELFIO)
|
||||
include_directories(SYSTEM external/VSRTL/external/Signals)
|
||||
+include_directories(external/libelfin_cmake)
|
||||
include_directories(external)
|
||||
|
||||
option(RIPES_BUILD_VERILATOR_PROCESSORS "Build verilator processors" OFF)
|
||||
@@ -89,6 +98,9 @@
|
||||
endif()
|
||||
|
||||
add_subdirectory(external)
|
||||
+
|
||||
+# Fix the name of the ripes library.
|
||||
+set(RIPES_LIB ripes_lib)
|
||||
add_subdirectory(src)
|
||||
|
||||
option(RIPES_BUILD_TESTS "Build Ripes tests" OFF)
|
||||
@@ -102,4 +114,24 @@
|
||||
# Link Qt libraries
|
||||
target_link_libraries(${APP_NAME} Qt5::Core Qt5::Widgets)
|
||||
# Link Ripes library
|
||||
-target_link_libraries(${APP_NAME} ripes_lib)
|
||||
+target_link_libraries(${APP_NAME} ${RIPES_LIB})
|
||||
+
|
||||
+if(UNIX AND NOT APPLE) #Define the LINUX variable before testing it
|
||||
+ set(LINUX TRUE)
|
||||
+endif()
|
||||
+
|
||||
+if(${LINUX})
|
||||
+ install(TARGETS ${APP_NAME}
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ )
|
||||
+elseif(${APPLE})
|
||||
+ install(TARGETS ${APP_NAME}
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ )
|
||||
+endif()
|
||||
+
|
||||
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/appdir/usr/
|
||||
+ DESTINATION ${CMAKE_INSTALL_PREFIX}
|
||||
+)
|
||||
+
|
11
emulators/ripes/pkg-descr
Normal file
11
emulators/ripes/pkg-descr
Normal file
@ -0,0 +1,11 @@
|
||||
Ripes is a graphical processor simulator and assembly code editor built
|
||||
for the RISC-V instruction set architecture, suitable for teaching how
|
||||
assembly level code is executed on various microarchitectures.
|
||||
|
||||
Ripes may be used to explore concepts such as how machine code is executed
|
||||
on a variety of microarchitectures (RV32IMC/RV64IMC based), how different
|
||||
cache designs influence performance, how C and assembly code is compiled
|
||||
and assembled to executable machine code, and how a processor interacts
|
||||
with memory-mapped I/O.
|
||||
|
||||
WWW: https://github.com/mortbopet/ripes
|
11
emulators/ripes/pkg-plist
Normal file
11
emulators/ripes/pkg-plist
Normal file
@ -0,0 +1,11 @@
|
||||
/usr/local/bin/Ripes
|
||||
/usr/local/share/applications/Ripes.desktop
|
||||
/usr/local/share/icons/hicolor/48x48/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/64x64/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/512x512/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/256x256/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/24x24/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/128x128/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/22x22/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/32x32/apps/Ripes.png
|
||||
/usr/local/share/icons/hicolor/16x16/apps/Ripes.png
|
Loading…
Reference in New Issue
Block a user