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