1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-01 11:15:37 +00:00

Ports: Add libfftw3

This is just the double-precision version of the already ported library.
This commit is contained in:
kleines Filmröllchen 2023-09-20 23:02:50 +02:00 committed by Tim Schumacher
parent 228022925a
commit 7d0d44216e
4 changed files with 104 additions and 0 deletions

View File

@ -142,6 +142,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n
| [`libenet`](libenet/) | libenet | 1.3.17 | http://sauerbraten.org/enet/ |
| [`libexpat`](libexpat/) | Expat | 2.4.8 | https://libexpat.github.io/ |
| [`libffi`](libffi/) | libffi | 3.4.2 | https://www.sourceware.org/libffi/ |
| [`libfftw3`](libfftw3/) | Fastest Fourier Transform in the West (double precision) | 3.3.10 | https://www.fftw.org/ |
| [`libfftw3f`](libfftw3f/) | Fastest Fourier Transform in the West (single precision) | 3.3.10 | https://www.fftw.org/ |
| [`libfts`](libfts/) | libfts | 1.2.7 | https://github.com/void-linux/musl-fts |
| [`libgcrypt`](libgcrypt/) | libgcrypt | 1.10.1 | https://gnupg.org/software/libgcrypt/index.html |

14
Ports/libfftw3/package.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env -S bash ../.port_include.sh
port='libfftw3'
version='3.3.10'
useconfigure='true'
use_fresh_config_sub='true'
configopts=(
'--disable-static'
'--enable-shared'
'--with-pic'
)
files=(
"http://fftw.org/fftw-${version}.tar.gz#56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467"
)
workdir="fftw-${version}"

View File

@ -0,0 +1,73 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= <filmroellchen@serenityos.org>
Date: Mon, 2 Oct 2023 16:56:18 +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 b59f977f59d1bfe5abe28a2e82ae500eb1bdfc60..f6bea050a946e7642ae907c7d50a1f2653434868 100755
--- a/configure
+++ b/configure
@@ -7140,6 +7140,10 @@ tpf*)
os2*)
lt_cv_deplibs_check_method=pass_all
;;
+
+serenity*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
esac
fi
@@ -10393,6 +10397,10 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-Bstatic'
;;
+ serenity*)
+ lt_prog_compiler_can_build_shared=yes
+ ;;
+
*)
lt_prog_compiler_can_build_shared=no
;;
@@ -11915,6 +11923,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
hardcode_shlibpath_var=no
;;
+ serenity*)
+ ld_shlibs=yes
+ ;;
+
*)
ld_shlibs=no
;;
@@ -12995,6 +13007,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
;;

View File

@ -0,0 +1,16 @@
# Patches for libfftw3 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.