pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/emulators/m88m
Module Name: pkgsrc
Committed By: ryoon
Date: Sun Nov 8 16:42:08 UTC 2026
Added Files:
pkgsrc/emulators/m88m: DESCR Makefile PLIST distinfo
pkgsrc/emulators/m88m/patches: patch-CMakeLists.txt
Log Message:
emulators/m88m: import m88m-1.2.4
M88M is a modern, cross-platform port of the classic PC-8801 emulator
M88, originally developed by cisc. While the original M88 was
tightly coupled with the Win32 API and DirectX, M88M leverages
raylib and raygui for its frontend, making it natively compatible
with macOS (Intel/Apple Silicon), Linux, FreeBSD, Haiku, and Windows
via a single CMake-based build system.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/emulators/m88m/DESCR \
pkgsrc/emulators/m88m/Makefile pkgsrc/emulators/m88m/PLIST \
pkgsrc/emulators/m88m/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/emulators/m88m/patches/patch-CMakeLists.txt
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/emulators/m88m/DESCR
diff -u /dev/null pkgsrc/emulators/m88m/DESCR:1.1
--- /dev/null Sun Nov 8 16:42:08 2026
+++ pkgsrc/emulators/m88m/DESCR Sun Nov 8 16:42:08 2026
@@ -0,0 +1,6 @@
+M88M is a modern, cross-platform port of the classic PC-8801 emulator
+M88, originally developed by cisc. While the original M88 was
+tightly coupled with the Win32 API and DirectX, M88M leverages
+raylib and raygui for its frontend, making it natively compatible
+with macOS (Intel/Apple Silicon), Linux, FreeBSD, Haiku, and Windows
+via a single CMake-based build system.
Index: pkgsrc/emulators/m88m/Makefile
diff -u /dev/null pkgsrc/emulators/m88m/Makefile:1.1
--- /dev/null Sun Nov 8 16:42:08 2026
+++ pkgsrc/emulators/m88m/Makefile Sun Nov 8 16:42:08 2026
@@ -0,0 +1,35 @@
+# $NetBSD: Makefile,v 1.1 2026/11/08 16:42:08 ryoon Exp $
+
+DISTNAME= M88M-1.2.4
+PKGNAME= ${DISTNAME:tl}
+CATEGORIES= emulators
+MASTER_SITES= ${MASTER_SITE_GITHUB:=bubio/}
+GITHUB_PROJECT= M88M
+GITHUB_TAG= v${PKGVERSION_NOREV}
+
+MAINTAINER= ryoon%NetBSD.org@localhost
+HOMEPAGE= https://github.com/bubio/M88M/
+COMMENT= Modern PC-8801 emulator
+LICENSE= 2-clause-bsd
+
+USE_LANGUAGES= c c++
+
+CWRAPPERS_PREPEND.cxx+= -L${BUILDLINK_PREFIX.gtk3}/lib
+CWRAPPERS_PREPEND.cxx+= ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.gtk3}/lib
+
+CWRAPPERS_PREPEND.cxx+= -lglib-2.0 -lgtk-3
+
+.include "../../devel/cmake/build.mk"
+.include "../../mk/dlopen.buildlink3.mk"
+BUILDLINK_TRANSFORM+= opt:-ldl:${BUILDLINK_LDADD.dl:Q}
+.include "../../devel/raygui/buildlink3.mk"
+.include "../../devel/raylib/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../graphics/MesaLib/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../x11/gtk3/buildlink3.mk"
+.include "../../x11/libXcursor/buildlink3.mk"
+.include "../../x11/libXi/buildlink3.mk"
+.include "../../x11/libXinerama/buildlink3.mk"
+.include "../../x11/nativefiledialog-extended/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/emulators/m88m/PLIST
diff -u /dev/null pkgsrc/emulators/m88m/PLIST:1.1
--- /dev/null Sun Nov 8 16:42:08 2026
+++ pkgsrc/emulators/m88m/PLIST Sun Nov 8 16:42:08 2026
@@ -0,0 +1,6 @@
+@comment $NetBSD: PLIST,v 1.1 2026/11/08 16:42:08 ryoon Exp $
+bin/m88m
+share/applications/m88m.desktop
+share/doc/M88M/NOTICE.md
+share/doc/M88M/OFL.txt
+share/icons/hicolor/512x512/apps/m88m.png
Index: pkgsrc/emulators/m88m/distinfo
diff -u /dev/null pkgsrc/emulators/m88m/distinfo:1.1
--- /dev/null Sun Nov 8 16:42:08 2026
+++ pkgsrc/emulators/m88m/distinfo Sun Nov 8 16:42:08 2026
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2026/11/08 16:42:08 ryoon Exp $
+
+BLAKE2s (M88M-1.2.4.tar.gz) = 9a8223c13d02e8a49c4cf33f10117187e3a35ce60f5da7d1f926269c00d5525b
+SHA512 (M88M-1.2.4.tar.gz) = 9339561c3ed838096dbe5a113f74445a6b669540bd47aaced512125d5f26ffcf5944e9887b5b3c763cb6cab5b498f6a09ffb41baa6fe6268670d683f1b12d0ba
+Size (M88M-1.2.4.tar.gz) = 10979704 bytes
+SHA1 (patch-CMakeLists.txt) = 3c52a38eb4ef637ff4c61ed5dd10fea6e70991b7
Index: pkgsrc/emulators/m88m/patches/patch-CMakeLists.txt
diff -u /dev/null pkgsrc/emulators/m88m/patches/patch-CMakeLists.txt:1.1
--- /dev/null Sun Nov 8 16:42:08 2026
+++ pkgsrc/emulators/m88m/patches/patch-CMakeLists.txt Sun Nov 8 16:42:08 2026
@@ -0,0 +1,112 @@
+$NetBSD: patch-CMakeLists.txt,v 1.1 2026/11/08 16:42:08 ryoon Exp $
+
+* Do not download binaries. Build from source code for all platforms.
+
+--- CMakeLists.txt.orig 2026-09-13 02:20:40.000000000 +0000
++++ CMakeLists.txt
+@@ -111,62 +111,9 @@ target_link_libraries(m88core PUBLIC ZLIB::ZLIB)
+ target_link_libraries(m88core PUBLIC ZLIB::ZLIB)
+
+ # --- raylib ------------------------------------------------------------
+-include(FetchContent)
+
+-# Automatically select binary URL based on platform/arch
+-if(TARGET raylib)
+ message(STATUS "Using system raylib")
+-elseif(APPLE)
+- # raylib 6.0 release uses a universal binary for macOS
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_macos.tar.gz")
+-elseif(WIN32)
+- if(CMAKE_GENERATOR_PLATFORM MATCHES "ARM64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64|aarch64")
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_winarm64_msvc16.zip")
+- elseif(CMAKE_GENERATOR_PLATFORM MATCHES "Win32" OR CMAKE_SIZEOF_VOID_P EQUAL 4)
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_win32_msvc16.zip")
+- elseif(MSVC)
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_win64_msvc16.zip")
+- else()
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_win64_mingw-w64.zip")
+- endif()
+-elseif(M88M_IS_LINUX AND NOT M88M_RASPIOS)
+- # The Raspberry Pi builds (M88M_RASPIOS) must not use these prebuilt
+- # binaries: they are compiled for desktop OpenGL (wrong for the Pi's GPU)
+- # and against a newer glibc than Raspberry Pi OS ships. Leaving
+- # RAYLIB_BINARY_URL unset makes the block below build raylib from source
+- # with GLES 2.0 instead.
+- if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64")
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_linux_amd64.tar.gz")
+- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64")
+- set(RAYLIB_BINARY_URL "https://github.com/raysan5/raylib/releases/download/6.0/raylib-6.0_linux_arm64.tar.gz")
+- endif()
+-endif()
+
+-if(TARGET raylib)
+- # System raylib was found above.
+-elseif(RAYLIB_BINARY_URL)
+- message(STATUS "Downloading raylib binary: ${RAYLIB_BINARY_URL}")
+- FetchContent_Declare(
+- raylib_bin
+- URL ${RAYLIB_BINARY_URL}
+- DOWNLOAD_EXTRACT_TIMESTAMP TRUE
+- )
+- FetchContent_MakeAvailable(raylib_bin)
+-
+- add_library(raylib STATIC IMPORTED GLOBAL)
+- if(MSVC)
+- set_target_properties(raylib PROPERTIES
+- IMPORTED_LOCATION "${raylib_bin_SOURCE_DIR}/lib/raylib.lib"
+- INTERFACE_INCLUDE_DIRECTORIES "${raylib_bin_SOURCE_DIR}/include"
+- )
+- else()
+- set_target_properties(raylib PROPERTIES
+- IMPORTED_LOCATION "${raylib_bin_SOURCE_DIR}/lib/libraylib.a"
+- INTERFACE_INCLUDE_DIRECTORIES "${raylib_bin_SOURCE_DIR}/include"
+- )
+- endif()
+-else()
+- message(STATUS "No pre-compiled binary for this platform. Falling back to source build.")
+ set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
+ set(BUILD_GAMES OFF CACHE BOOL "" FORCE)
+ set(SUPPORT_MODULE_RAUDIO ON CACHE BOOL "" FORCE)
+@@ -190,42 +137,15 @@ else()
+ set(OPENGL_VERSION "ES 2.0" CACHE STRING "" FORCE)
+ endif()
+
+- FetchContent_Declare(
+- raylib
+- GIT_REPOSITORY https://github.com/raysan5/raylib.git
+- GIT_TAG 6.0
+- GIT_SHALLOW TRUE
+- )
+- FetchContent_MakeAvailable(raylib)
+ if(M88M_IS_HAIKU)
+ target_compile_options(raylib PRIVATE
+ -include "${CMAKE_CURRENT_SOURCE_DIR}/src/raylib/haiku_raylib_compat.h"
+ )
+ endif()
+-endif()
+
+-include(FetchContent)
+-FetchContent_Declare(
+- raygui
+- GIT_REPOSITORY https://github.com/raysan5/raygui.git
+- GIT_TAG 5.0
+- GIT_SHALLOW TRUE
+-)
+-FetchContent_MakeAvailable(raygui)
+-
+ # raygui ships a single header; expose its include dir as an interface lib.
+ add_library(raygui INTERFACE)
+ target_include_directories(raygui INTERFACE ${raygui_SOURCE_DIR}/src)
+-
+-# --- nativefiledialog-extended -----------------------------------------
+-if(NOT M88M_IS_HAIKU)
+- FetchContent_Declare(
+- nfd
+- GIT_REPOSITORY https://github.com/btzy/nativefiledialog-extended.git
+- GIT_TAG v1.3.0
+- )
+- FetchContent_MakeAvailable(nfd)
+-endif()
+
+ # --- raylib frontend executable ----------------------------------------
+ file(GLOB RAYLIB_FRONT_SRC src/raylib/*.cpp)
Home |
Main Index |
Thread Index |
Old Index