Ports: Add a port of SDL_mixer

This commit is contained in:
Tim Schumacher 2022-05-26 11:27:45 +02:00 committed by Andreas Kling
parent b929b91e4f
commit d10071ce42
4 changed files with 103 additions and 0 deletions

View file

@ -199,6 +199,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n
| [`ruby`](ruby/) | Ruby | 3.0.4 | https://www.ruby-lang.org/ |
| [`sam`](sam/) | Software Automatic Mouth (SAM) | c86ea39 | https://github.com/vidarh/SAM |
| [`scummvm`](scummvm/) | ScummVM | 2.5.1 | https://www.scummvm.org/ |
| [`SDL_mixer`](SDL_mixer/) | SDL\_mixer (Audio mixer add-on for SDL 1.2) | 1.2.12 | https://www.libsdl.org/projects/SDL_mixer/release-1.2.html |
| [`SDL_sound`](SDL_sound/) | SDL_sound (Abstract soundfile decoder) | | https://github.com/icculus/SDL_sound |
| [`sdl12-compat`](sdl12-compat/) | SDL2 compatibility layer for SDL 1.2 games | 1.2.52 | https://github.com/libsdl-org/sdl12-compat/ |
| [`SDL2`](SDL2/) | Simple DirectMedia Layer (SDL2) | 2.0.22 | https://github.com/libsdl-org/SDL |

10
Ports/SDL_mixer/package.sh Executable file
View file

@ -0,0 +1,10 @@
#!/usr/bin/env -S bash ../.port_include.sh
port=SDL_mixer
version=1.2.12
useconfigure=true
configopts=("--disable-static")
use_fresh_config_sub=true
config_sub_paths=("build-scripts/config.sub")
files="https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${version}.tar.gz SDL_mixer-${version}.tar.gz 1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a"
auth_type=sha256
depends=("libmikmod" "libvorbis" "sdl12-compat")

View file

@ -0,0 +1,76 @@
From bdb6569ba8bcc1332ee220b3128e94c8c69d47f7 Mon Sep 17 00:00:00 2001
From: Tim Schumacher <timschumi@gmx.de>
Date: Sun, 29 May 2022 15:01:28 +0200
Subject: [PATCH] libtool: Enable shared library support for SerenityOS
For some odd reason, libtool handles the configuration for shared
libraries entirely statically and in its configure script. If no
shared library support is "present", building shared libraries is
disabled entirely.
Fix that by just adding the appropriate configuration options for
`serenity`. This allows us to finally create dynamic libraries
automatically using libtool, without having to manually link the
static library into a shared library.
---
configure | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/configure b/configure
index e7c8c97..37ef6b5 100755
--- a/configure
+++ b/configure
@@ -4244,6 +4244,10 @@ sysv4 | sysv4.3*)
tpf*)
lt_cv_deplibs_check_method=pass_all
;;
+
+serenity*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
esac
fi
@@ -7375,6 +7379,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_static='-Bstatic'
;;
+ serenity*)
+ lt_prog_compiler_can_build_shared=yes
+ ;;
+
*)
lt_prog_compiler_can_build_shared=no
;;
@@ -8687,6 +8695,10 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
hardcode_shlibpath_var=no
;;
+ serenity*)
+ ld_shlibs=yes
+ ;;
+
*)
ld_shlibs=no
;;
@@ -9617,6 +9629,17 @@ uts4*)
shlibpath_var=LD_LIBRARY_PATH
;;
+serenity*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}${versuffix} ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}${major}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ dynamic_linker='SerenityOS LibELF'
+ ;;
+
*)
dynamic_linker=no
;;
--
2.36.1

View file

@ -0,0 +1,16 @@
# Patches for SDL_mixer on SerenityOS
## `0001-libtool-Enable-shared-library-support-for-SerenityOS.patch`
libtool: Enable shared library support for SerenityOS
For some odd reason, libtool handles the configuration for shared
libraries entirely statically and in its configure script. If no
shared library support is "present", building shared libraries is
disabled entirely.
Fix that by just adding the appropriate configuration options for
`serenity`. This allows us to finally create dynamic libraries
automatically using libtool, without having to manually link the
static library into a shared library.