1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:07:45 +00:00

Ports: Replace manually linking SDL2_mixer with a libtool patch

This commit is contained in:
Tim Schumacher 2022-06-03 16:20:26 +02:00 committed by Linus Groh
parent e7f8389d37
commit 546f398ff5
4 changed files with 94 additions and 8 deletions

View file

@ -15,6 +15,8 @@ configure() {
--with-sdl-prefix="${SERENITY_INSTALL_ROOT}/usr/local" \
--enable-music-opus=false \
--enable-music-opus-shared=false \
--disable-static \
--enable-shared \
EXTRA_LDFLAGS="-lgui -lgfx -lipc -lcore -lcompression"
}
@ -25,9 +27,3 @@ post_configure() {
build() {
run make -k
}
install() {
run make -k DESTDIR="${SERENITY_INSTALL_ROOT}" install
${CC} -shared -o ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_mixer.so -Wl,-soname,libSDL2_mixer.so -Wl,--whole-archive ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_mixer.a -Wl,--no-whole-archive -Wl,--no-as-needed -lvorbis -lvorbisfile
rm -f ${SERENITY_INSTALL_ROOT}/usr/local/lib/libSDL2_mixer.la
}

View file

@ -1,7 +1,7 @@
From a8e2b31abe3f56f21b4835af00620ce29ce6becb Mon Sep 17 00:00:00 2001
From 45c3472482141099e7a14fa67c159b0dcd4164da Mon Sep 17 00:00:00 2001
From: Andreas Kling <kling@serenityos.org>
Date: Mon, 8 Mar 2021 13:15:35 +0100
Subject: [PATCH] Skip building the playmus and playwav utilities
Subject: [PATCH 1/2] Skip building the playmus and playwav utilities
---
Makefile.in | 14 ++------------

View file

@ -0,0 +1,76 @@
From 2bc8e2c1b321c59ef39c7dbe95871f0f08d1d139 Mon Sep 17 00:00:00 2001
From: Tim Schumacher <timschumi@gmx.de>
Date: Sun, 29 May 2022 15:01:28 +0200
Subject: [PATCH 2/2] 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 4df0be5..9a5f606 100755
--- a/configure
+++ b/configure
@@ -4480,6 +4480,10 @@ sysv4 | sysv4.3*)
tpf*)
lt_cv_deplibs_check_method=pass_all
;;
+
+serenity*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
esac
fi
@@ -7268,6 +7272,10 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_static='-Bstatic'
;;
+ serenity*)
+ lt_prog_compiler_can_build_shared=yes
+ ;;
+
*)
lt_prog_compiler_can_build_shared=no
;;
@@ -8504,6 +8512,10 @@ rm -f core conftest.err conftest.$ac_objext \
hardcode_shlibpath_var=no
;;
+ serenity*)
+ ld_shlibs=yes
+ ;;
+
*)
ld_shlibs=no
;;
@@ -9406,6 +9418,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

@ -5,3 +5,17 @@
Skip building the playmus and playwav utilities
## `0002-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.