This commit is contained in:
Mario Fetka
2025-06-27 12:42:27 +02:00
parent ef4a06d6b1
commit 14f518e6c8
33 changed files with 5032 additions and 1579 deletions

View File

@@ -0,0 +1,214 @@
https://sourceforge.net/p/vice-emu/code/45435/
--- vice/src/Makefile.am
+++ vice/src/Makefile.am
@@ -594,6 +594,7 @@
resid_lib = $(top_builddir)/src/resid/libresid.a
resid_dtv_lib = $(top_builddir)/src/resid-dtv/libresiddtv.a
rs232drv_lib = $(top_builddir)/src/rs232drv/librs232drv.a
+rs232drvpet_lib = $(top_builddir)/src/rs232drv/librs232drvpet.a
raster_lib = $(top_builddir)/src/raster/libraster.a
rtc_lib = $(top_builddir)/src/core/rtc/librtc.a
samplerdrv_lib = $(top_builddir)/src/samplerdrv/libsamplerdrv.a
@@ -631,7 +632,7 @@
# external libraries required for all emulators
emu_extlibs = @UI_LIBS@ @SDL_EXTRA_LIBS@ @SOUND_LIBS@ @JOY_LIBS@ @GFXOUTPUT_LIBS@ @ZLIB_LIBS@ @DYNLIB_LIBS@ @ARCH_LIBS@ $(archdep_lib) $(linenoise_ng_lib)
-driver_libs = $(joyport_lib) $(samplerdrv_lib) $(sounddrv_lib) $(mididrv_lib) $(socketdrv_lib) $(hwsiddrv_lib) $(gfxoutputdrv_lib) $(printerdrv_lib) $(rs232drv_lib) $(diskimage_lib) $(fsdevice_lib) $(tape_lib) $(fileio_lib) $(serial_lib) $(core_lib)
+driver_libs = $(joyport_lib) $(samplerdrv_lib) $(sounddrv_lib) $(mididrv_lib) $(socketdrv_lib) $(hwsiddrv_lib) $(gfxoutputdrv_lib) $(printerdrv_lib) $(diskimage_lib) $(fsdevice_lib) $(tape_lib) $(fileio_lib) $(serial_lib) $(core_lib)
if SUPPORT_X64
x64_bin = x64
@@ -716,6 +717,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(vicii_lib) \
$(raster_lib) \
$(userport_lib) \
@@ -773,6 +775,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(viciisc_lib) \
$(raster_lib) \
$(userport_lib) \
@@ -895,6 +898,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(viciisc_lib) \
$(raster_lib) \
$(userport_lib) \
@@ -954,6 +958,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(vicii_lib) \
$(vdc_lib) \
$(raster_lib) \
@@ -1011,6 +1016,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(raster_lib) \
$(userport_lib) \
$(diag_lib) \
@@ -1063,6 +1069,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drvpet_lib) \
$(crtc_lib) \
$(raster_lib) \
$(video_lib) \
@@ -1122,6 +1129,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(raster_lib) \
$(rtc_lib) \
$(video_lib) \
@@ -1180,6 +1188,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drvpet_lib) \
$(crtc_lib) \
$(raster_lib) \
$(video_lib) \
@@ -1236,6 +1245,7 @@
$(xcbm5x0_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(vicii_lib) \
$(raster_lib) \
$(rtc_lib) \
@@ -1540,8 +1550,11 @@
@echo "making all in printerdrv"
@(cd printerdrv && $(MAKE))
$(rs232drv_lib):
- @echo "making all in rs232drv"
- @(cd rs232drv && $(MAKE))
+ @echo "making librs232drv.a in rs232drv"
+ @(cd rs232drv && $(MAKE) librs232drv.a)
+$(rs232drvpet_lib):
+ @echo "making librs232drvpet.a in rs232drv"
+ @(cd rs232drv && $(MAKE) librs232drvpet.a)
$(raster_lib):
@echo "making libraster.a in raster"
@(cd raster && $(MAKE) libraster.a)
--- vice/src/c64/Makefile.am
+++ vice/src/c64/Makefile.am
@@ -216,8 +216,6 @@
c64fastiec.h \
c64keyboard.c \
c64keyboard.h \
- c64parallel.c \
- c64parallel.h \
c64rom.c \
c64rom.h \
c64romset.c \
--- vice/src/c64dtv/c64dtv.c
+++ vice/src/c64dtv/c64dtv.c
@@ -89,7 +89,6 @@
#include "protopad.h"
#include "ps2mouse.h"
#include "resources.h"
-#include "rs232drv.h"
#include "rushware_keypad.h"
#include "sampler.h"
#include "sampler2bit.h"
@@ -422,10 +421,12 @@
init_resource_fail("sid");
return -1;
}
+#if 0
if (rs232drv_resources_init() < 0) {
init_resource_fail("rs232drv");
return -1;
}
+#endif
if (serial_resources_init() < 0) {
init_resource_fail("serial");
return -1;
@@ -528,7 +529,9 @@
flash_trap_resources_shutdown();
c64dtv_resources_shutdown();
c64dtvmem_resources_shutdown();
+#if 0
rs232drv_resources_shutdown();
+#endif
printer_resources_shutdown();
drive_resources_shutdown();
fsdevice_resources_shutdown();
@@ -562,10 +565,12 @@
init_cmdline_options_fail("sid");
return -1;
}
+#if 0
if (rs232drv_cmdline_options_init() < 0) {
init_cmdline_options_fail("rs232drv");
return -1;
}
+#endif
if (serial_cmdline_options_init() < 0) {
init_cmdline_options_fail("serial");
return -1;
@@ -712,8 +717,10 @@
return -1;
}
+#if 0
/* Initialize RS232 handler. */
rs232drv_init();
+#endif
/* Initialize print devices. */
printer_init();
@@ -798,8 +805,9 @@
ciacore_reset(machine_context.cia2);
sid_reset();
+#if 0
rs232drv_reset();
-
+#endif
printer_reset();
/* FIXME */
--- vice/src/rs232drv/Makefile.am
+++ vice/src/rs232drv/Makefile.am
@@ -14,7 +14,7 @@
AM_LDFLAGS = @VICE_LDFLAGS@
-noinst_LIBRARIES = librs232drv.a
+noinst_LIBRARIES = librs232drv.a librs232drvpet.a
librs232drv_a_SOURCES = \
rs232dev.h \
@@ -26,3 +26,16 @@
rs232net.h \
rsuser.c \
rsuser.h
+
+# Same as above, but without the userport bits, to avoid registering userport
+# resources and command line options with xpet and xcbm2 (these have stubs for
+# rsuser_resources_init() and rsuser_cmdline_init()
+librs232drvpet_a_SOURCES = \
+ rs232dev.h \
+ rs232.c \
+ rs232.h \
+ rs232drv.c \
+ rs232drv.h \
+ rs232net.c \
+ rs232net.h \
+ rsuser.h

View File

@@ -0,0 +1,196 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools multibuild toolchain-funcs xdg
DESCRIPTION="Versatile Commodore Emulator"
HOMEPAGE="https://vice-emu.sourceforge.io/"
SRC_URI="https://downloads.sourceforge.net/vice-emu/releases/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 x86"
IUSE="
alsa curl debug doc ethernet +evdev flac gif +gtk headless lame
mpg123 ogg openmp oss parport pci png portaudio pulseaudio sdl
"
REQUIRED_USE="|| ( gtk headless sdl )"
RDEPEND="
sys-libs/zlib:=
app-emulation/opencbm
virtual/libintl
alsa? ( media-libs/alsa-lib )
curl? ( net-misc/curl )
ethernet? (
net-libs/libpcap
sys-libs/libcap
)
evdev? ( dev-libs/libevdev )
flac? ( media-libs/flac:= )
gif? ( media-libs/giflib:= )
gtk? (
>=app-accessibility/at-spi2-core-2.46:2
dev-libs/glib:2
media-libs/fontconfig:1.0
media-libs/glew:0=[-egl-only(-)]
media-libs/libglvnd[X]
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3[X]
x11-libs/libX11
x11-libs/pango
)
lame? ( media-sound/lame )
mpg123? ( media-sound/mpg123-base )
ogg? (
media-libs/libogg
media-libs/libvorbis
)
parport? ( sys-libs/libieee1284 )
pci? ( sys-apps/pciutils )
png? ( media-libs/libpng:= )
portaudio? ( media-libs/portaudio )
pulseaudio? ( media-libs/libpulse )
sdl? (
media-libs/libsdl2[video]
media-libs/sdl2-image
)
"
DEPEND="
${RDEPEND}
x11-base/xorg-proto
"
BDEPEND="
app-alternatives/awk
app-alternatives/yacc
app-arch/unzip
app-text/dos2unix
dev-embedded/xa
dev-lang/perl
sys-apps/texinfo
app-alternatives/lex
sys-devel/gettext
virtual/pkgconfig
doc? ( virtual/texi2dvi )
gtk? ( x11-misc/xdg-utils )
"
PATCHES=(
"${FILESDIR}"/${P}-dupe-symbols.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_prepare() {
default
eautoreconf
# Strip the predefined C(XX)FLAGS.
sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die
MULTIBUILD_VARIANTS=(
$(usev gtk)
$(usev headless)
$(usev sdl)
)
# Debug build currently broken without copy sources.
multibuild_copy_sources
}
src_configure() {
tc-export AR
multibuild_foreach_variant run_in_build_dir multibuild_src_configure
}
multibuild_src_configure() {
# Append ".variant" to x* programs if building multiple variants.
local xform
(( ${#MULTIBUILD_VARIANTS[@]} > 1 )) &&
xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/"
vice-multi_enable() {
if [[ ${MULTIBUILD_VARIANT} == ${1} ]]; then
echo --enable-${2}
else
echo --disable-${2}
fi
}
local econfargs=(
--program-transform-name="${xform}"
$(vice-multi_enable gtk desktop-files)
$(vice-multi_enable gtk gtk3ui)
$(vice-multi_enable headless headlessui)
$(vice-multi_enable sdl sdl2ui)
$(usex debug $(vice-multi_enable gtk debug-gtk3ui) --disable-debug-gtk3ui)
$(use_enable debug)
$(use_enable doc pdf-docs)
$(use_enable ethernet)
$(use_enable openmp)
$(use_enable parport parsid)
$(use_with alsa)
$(use_with curl libcurl)
$(use_with evdev)
$(use_with flac)
$(use_with gif)
$(use_with lame)
$(use_with lame static-lame) # disables dlopen, uses shared still
$(use_with mpg123)
$(use_with ogg vorbis)
$(use_with oss)
$(use_with parport libieee1284)
$(use_with png)
$(use_with portaudio)
$(use_with pulseaudio pulse)
$(usex alsa --enable-midi $(use_enable oss midi))
$(usev !pci ac_cv_header_pci_pci_h=no)
--disable-arch
--disable-ffmpeg # deprecated in 3.8, also bug #834359
--disable-sdl1ui
--enable-realdevice
ac_cv_lib_ungif_EGifPutLine=no # ensure use giflib, not ungif
)
econf "${econfargs[@]}"
}
src_compile() {
# bug #924116 wrt SHELL
multibuild_foreach_variant run_in_build_dir emake SHELL="${BASH}"
}
src_install() {
# Get xdg-desktop-menu to play nicely while doing the install.
dodir /etc/xdg/menus /usr/share/{applications,desktop-directories}
XDG_UTILS_INSTALL_MODE=system \
XDG_DATA_DIRS="${ED}"/usr/share \
XDG_CONFIG_DIRS="${ED}"/etc/xdg \
multibuild_foreach_variant run_in_build_dir default
rm -f -- "${ED}"/usr/share/applications/*.cache || die
vice-install_extras() {
docinto html
dodoc doc/html/*.{html,css}
dodoc -r doc/html/images
insinto /usr/share/vim/vimfiles/ftdetect
doins doc/vim/ftdetect/*.vim
insinto /usr/share/vim/vimfiles/syntax
doins doc/vim/syntax/*.vim
}
multibuild_for_best_variant run_in_build_dir vice-install_extras
}