Message ID | b25d5c76ac9cab023880ad8bb9ab2e729bf26227.1710407405.git.joerg.sommer@navimatix.de |
---|---|
State | Accepted |
Headers | show |
Series | [meta-multimedia] spandsp: new telephony DSP library | expand |
On Thu, Mar 14, 2024 at 2:10 AM Jörg Sommer via lists.openembedded.org <joerg.sommer=navimatix.de@lists.openembedded.org> wrote: > > From: Jörg Sommer <joerg.sommer@navimatix.de> > > Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> > --- > .../spandsp/spandsp/configure.patch | 56 ++++++ > .../spandsp/spandsp/makefile.patch | 161 ++++++++++++++++++ > .../recipes-multimedia/spandsp/spandsp_git.bb | 47 +++++ > 3 files changed, 264 insertions(+) > create mode 100644 meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > create mode 100644 meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > create mode 100644 meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > > diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > new file mode 100644 > index 000000000..af504be76 > --- /dev/null > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > @@ -0,0 +1,56 @@ > +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> > +Date: Thu, 14 Mar 2024 09:41:57 +0100 > +Subject: [PATCH 2/2] configure: Replace manual search for libxml by > + AC_CHECK_LIB > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +The manual search fails if the include directories (and build environment) > +are located somewhere else. > + > +Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> > +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] > +--- > + > +ERROR: spandsp-3.0.0+git-r0 do_configure: QA Issue: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. > + > + configure.ac | 22 +++++----------------- > + 1 file changed, 5 insertions(+), 17 deletions(-) > + > +diff --git a/configure.ac b/configure.ac > +index 2140837..b5138d6 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -185,23 +185,11 @@ then > + fi > + > + # Determine XML2 include path > +-AC_MSG_CHECKING(for libxml/xmlmemory.h) > +- > +-# Can we include headers using system include dirs? > +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE=" "],[XML2_INCLUDE=]) > +- > +-# Hunt through several possible directories to find the includes for libxml2 > +-if test "x$XML2_INCLUDE" = "x"; then > +- old_CPPFLAGS="$CPPFLAGS" > +- for i in $xml2_include_dir /usr/include /usr/local/include /usr/include/libxml2 /usr/local/include/libxml2 ; do > +- CPPFLAGS="$old_CPPFLAGS -I$i" > +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE="-I$i"],[XML2_INCLUDE= > +- ]) > +- if test "x$XML2_INCLUDE" != "x"; then > +- break; > +- fi > +- done > +- CPPFLAGS="$old_CPPFLAGS $XML2_INCLUDE" > ++AC_CHECK_LIB([xml2], [xmlParseFile], [libxml2_found=yes]) > ++if test "$libxml2_found" = "yes" ; then > ++ AC_DEFINE(HAVE_LIBXML2,1,[defined when libxml2 is available]) > ++else > ++ AC_MSG_WARN([libxml2 not found. Disabling cache.]) > + fi > + > + AC_CHECK_HEADERS([libxml/xmlmemory.h]) > +-- > +2.34.1 > + > diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > new file mode 100644 > index 000000000..d3eb047fe > --- /dev/null > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > @@ -0,0 +1,161 @@ > +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> > +Date: Thu, 14 Mar 2024 08:08:13 +0100 > +Subject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +The macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and > +..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile > +time. > + > +[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html > +[2]: https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587 > + > +Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> > +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] > +--- > + configure.ac | 49 +------------------------------------------- > + src/Makefile.am | 54 +++++++++++++++++++++++++------------------------ > + 2 files changed, 29 insertions(+), 74 deletions(-) > + > +diff --git a/configure.ac b/configure.ac > +index 96fd022..2140837 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -55,54 +55,7 @@ AC_LANG([C]) > + > + AX_COMPILER_VENDOR > + > +-if test "${build}" != "${host}" > +-then > +- # If we are doing a Canadian Cross, in which the host and build systems > +- # are not the same, we set reasonable default values for the tools. > +- > +- CC_FOR_BUILD=${CC_FOR_BUILD-gcc} > +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" > +- CC=${CC-${host_alias}-gcc} > +- CFLAGS=${CFLAGS-"-g -O2"} > +- CXX=${CXX-${host_alias}-c++} > +- CXXFLAGS=${CXXFLAGS-"-g -O2"} > +-else > +- # Set reasonable default values for some tools even if not Canadian. > +- # Of course, these are different reasonable default values, originally > +- # specified directly in the Makefile. > +- # We don't export, so that autoconf can do its job. > +- # Note that all these settings are above the fragment inclusion point > +- # in Makefile.in, so can still be overridden by fragments. > +- # This is all going to change when we autoconfiscate... > +- CC_FOR_BUILD="\$(CC)" > +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" > +- AC_PROG_CC > +- > +- # We must set the default linker to the linker used by gcc for the correct > +- # operation of libtool. If LD is not defined and we are using gcc, try to > +- # set the LD default to the ld used by gcc. > +- if test -z "$LD" > +- then > +- if test "$GCC" = yes > +- then > +- case $build in > +- *-*-mingw*) > +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; > +- *) > +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; > +- esac > +- case $gcc_prog_ld in > +- # Accept absolute paths. > +- [[\\/]* | [A-Za-z]:[\\/]*)] > +- LD="$gcc_prog_ld" ;; > +- esac > +- fi > +- fi > +- > +- CXX=${CXX-"c++"} > +- CFLAGS=${CFLAGS-"-g -O2"} > +- CXXFLAGS=${CXXFLAGS-"-g -O2"} > +-fi > ++AX_PROG_CC_FOR_BUILD > + > + AC_DEFUN([REMOVE_FROM_VAR],[ > + new_val="" > +diff --git a/src/Makefile.am b/src/Makefile.am > +index e05fad5..9b409a1 100644 > +--- a/src/Makefile.am > ++++ b/src/Makefile.am > +@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \ > + v34_tx_pre_emphasis_filters.h \ > + v34_tables.h > + > +-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c > +- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src > ++LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(TARGET_ARCH_FOR_BUILD) > + > +-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c > +- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ > + > +-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c > +- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c > +- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_math_fixed_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_modem_godard_coefficients$(EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c > +- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_t43_gray_code_tables$(EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c > +- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_modem_godard_coefficients$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v17_v32_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_t43_gray_code_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v17_v32_convolutional_encoder$(EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_v17_v32_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v29_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v34_convolutional_coders$(EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c > +- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_v29_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_v34_convolutional_coders$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c > +- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src > ++make_v34_probe_signals$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm > + > +-make_v34_tx_pre_emphasis_filters$(EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c > +- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src -I$(top_builddir)/tools -lm > ++make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ > ++ > ++make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm > + > + # We need to run make_at_dictionary, so it generates the > + # at_interpreter_dictionary.h file > +-- > +2.34.1 > + > diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > new file mode 100644 > index 000000000..9f34a17f0 > --- /dev/null > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > @@ -0,0 +1,47 @@ > +SUMMARY = "A DSP library for telephony" > +DESCRIPTION = "\ > + SpanDSP is a low-level signal processing library that modulates and \ > + demodulates signals commonly used in telephony, such as the \"noise\" \ > + generated by a fax modem or DTMF touchpad. \ > +" > +HOMEPAGE = "https://www.soft-switch.org/" > +BUGTRACKER = "https://github.com/freeswitch/spandsp/issues" > +SECTION = "libs" > +LICENSE = "LGPL-2.1-only" > +LIC_FILES_CHKSUM = "file://COPYING;md5=8791c23ddf418deb5be264cffb5fa6bc" > + > +DEPENDS = "\ > + libxml2 \ > + tiff \ > + tiff-native \ > +" > + > +PV = "3.0.0+git" > + > +SRC_URI = "\ > + git://github.com/freeswitch/spandsp.git;protocol=https;branch=master \ > + file://configure.patch \ > + file://makefile.patch \ > +" > +SRCREV = "7b0b8cf3d42b725405bcc63145de5e280265ce4e" > + > +S = "${WORKDIR}/git" > + > +inherit autotools > + > +PACKAGECONFIG ?= "" > + > +PACKAGECONFIG[mmx] = "--enable-mmx" > +PACKAGECONFIG[sse] = "--enable-sse" > +PACKAGECONFIG[sse2] = "--enable-sse2" > +PACKAGECONFIG[sse3] = "--enable-sse3" > +PACKAGECONFIG[ssse3] = "--enable-ssse3" > +PACKAGECONFIG[sse4-1] = "--enable-sse4-1" > +PACKAGECONFIG[sse4-2] = "--enable-sse4-2" > +PACKAGECONFIG[sse4a] = "--enable-sse4a" > +PACKAGECONFIG[sse5] = "--enable-sse5" > +PACKAGECONFIG[avx] = "--enable-avx" > +PACKAGECONFIG[fixed-point] = "--enable-fixed-point" > +PACKAGECONFIG[v32bis] = "--enable-v32bis" > +PACKAGECONFIG[v34] = "--enable-v34" > +PACKAGECONFIG[sslfax] = "--enable-sslfax" don't we need the disable piece as well for deterministic builds ? > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#109312): https://lists.openembedded.org/g/openembedded-devel/message/109312 > Mute This Topic: https://lists.openembedded.org/mt/104923035/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On Thu, 14 Mar 2024 10:10:05 +0100, joerg.sommer@navimatix.de wrote:
>
Applied, thanks!
[1/1] spandsp: new telephony DSP library
commit: 6a2b29e98d77de46a2885eff15bc8e4bc42e9396
Best regards,
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch new file mode 100644 index 000000000..af504be76 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch @@ -0,0 +1,56 @@ +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> +Date: Thu, 14 Mar 2024 09:41:57 +0100 +Subject: [PATCH 2/2] configure: Replace manual search for libxml by + AC_CHECK_LIB +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The manual search fails if the include directories (and build environment) +are located somewhere else. + +Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] +--- + +ERROR: spandsp-3.0.0+git-r0 do_configure: QA Issue: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. + + configure.ac | 22 +++++----------------- + 1 file changed, 5 insertions(+), 17 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2140837..b5138d6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -185,23 +185,11 @@ then + fi + + # Determine XML2 include path +-AC_MSG_CHECKING(for libxml/xmlmemory.h) +- +-# Can we include headers using system include dirs? +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE=" "],[XML2_INCLUDE=]) +- +-# Hunt through several possible directories to find the includes for libxml2 +-if test "x$XML2_INCLUDE" = "x"; then +- old_CPPFLAGS="$CPPFLAGS" +- for i in $xml2_include_dir /usr/include /usr/local/include /usr/include/libxml2 /usr/local/include/libxml2 ; do +- CPPFLAGS="$old_CPPFLAGS -I$i" +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE="-I$i"],[XML2_INCLUDE= +- ]) +- if test "x$XML2_INCLUDE" != "x"; then +- break; +- fi +- done +- CPPFLAGS="$old_CPPFLAGS $XML2_INCLUDE" ++AC_CHECK_LIB([xml2], [xmlParseFile], [libxml2_found=yes]) ++if test "$libxml2_found" = "yes" ; then ++ AC_DEFINE(HAVE_LIBXML2,1,[defined when libxml2 is available]) ++else ++ AC_MSG_WARN([libxml2 not found. Disabling cache.]) + fi + + AC_CHECK_HEADERS([libxml/xmlmemory.h]) +-- +2.34.1 + diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch new file mode 100644 index 000000000..d3eb047fe --- /dev/null +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch @@ -0,0 +1,161 @@ +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> +Date: Thu, 14 Mar 2024 08:08:13 +0100 +Subject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and +..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile +time. + +[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html +[2]: https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587 + +Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] +--- + configure.ac | 49 +------------------------------------------- + src/Makefile.am | 54 +++++++++++++++++++++++++------------------------ + 2 files changed, 29 insertions(+), 74 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 96fd022..2140837 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,54 +55,7 @@ AC_LANG([C]) + + AX_COMPILER_VENDOR + +-if test "${build}" != "${host}" +-then +- # If we are doing a Canadian Cross, in which the host and build systems +- # are not the same, we set reasonable default values for the tools. +- +- CC_FOR_BUILD=${CC_FOR_BUILD-gcc} +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" +- CC=${CC-${host_alias}-gcc} +- CFLAGS=${CFLAGS-"-g -O2"} +- CXX=${CXX-${host_alias}-c++} +- CXXFLAGS=${CXXFLAGS-"-g -O2"} +-else +- # Set reasonable default values for some tools even if not Canadian. +- # Of course, these are different reasonable default values, originally +- # specified directly in the Makefile. +- # We don't export, so that autoconf can do its job. +- # Note that all these settings are above the fragment inclusion point +- # in Makefile.in, so can still be overridden by fragments. +- # This is all going to change when we autoconfiscate... +- CC_FOR_BUILD="\$(CC)" +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" +- AC_PROG_CC +- +- # We must set the default linker to the linker used by gcc for the correct +- # operation of libtool. If LD is not defined and we are using gcc, try to +- # set the LD default to the ld used by gcc. +- if test -z "$LD" +- then +- if test "$GCC" = yes +- then +- case $build in +- *-*-mingw*) +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; +- *) +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; +- esac +- case $gcc_prog_ld in +- # Accept absolute paths. +- [[\\/]* | [A-Za-z]:[\\/]*)] +- LD="$gcc_prog_ld" ;; +- esac +- fi +- fi +- +- CXX=${CXX-"c++"} +- CFLAGS=${CFLAGS-"-g -O2"} +- CXXFLAGS=${CXXFLAGS-"-g -O2"} +-fi ++AX_PROG_CC_FOR_BUILD + + AC_DEFUN([REMOVE_FROM_VAR],[ + new_val="" +diff --git a/src/Makefile.am b/src/Makefile.am +index e05fad5..9b409a1 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \ + v34_tx_pre_emphasis_filters.h \ + v34_tables.h + +-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c +- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src ++LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(TARGET_ARCH_FOR_BUILD) + +-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c +- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ + +-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c +- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c +- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_math_fixed_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_modem_godard_coefficients$(EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c +- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_t43_gray_code_tables$(EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c +- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_modem_godard_coefficients$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v17_v32_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_t43_gray_code_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v17_v32_convolutional_encoder$(EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v17_v32_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v29_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v34_convolutional_coders$(EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c +- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v29_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v34_convolutional_coders$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c +- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src ++make_v34_probe_signals$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm + +-make_v34_tx_pre_emphasis_filters$(EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c +- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src -I$(top_builddir)/tools -lm ++make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ ++ ++make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm + + # We need to run make_at_dictionary, so it generates the + # at_interpreter_dictionary.h file +-- +2.34.1 + diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb new file mode 100644 index 000000000..9f34a17f0 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb @@ -0,0 +1,47 @@ +SUMMARY = "A DSP library for telephony" +DESCRIPTION = "\ + SpanDSP is a low-level signal processing library that modulates and \ + demodulates signals commonly used in telephony, such as the \"noise\" \ + generated by a fax modem or DTMF touchpad. \ +" +HOMEPAGE = "https://www.soft-switch.org/" +BUGTRACKER = "https://github.com/freeswitch/spandsp/issues" +SECTION = "libs" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=8791c23ddf418deb5be264cffb5fa6bc" + +DEPENDS = "\ + libxml2 \ + tiff \ + tiff-native \ +" + +PV = "3.0.0+git" + +SRC_URI = "\ + git://github.com/freeswitch/spandsp.git;protocol=https;branch=master \ + file://configure.patch \ + file://makefile.patch \ +" +SRCREV = "7b0b8cf3d42b725405bcc63145de5e280265ce4e" + +S = "${WORKDIR}/git" + +inherit autotools + +PACKAGECONFIG ?= "" + +PACKAGECONFIG[mmx] = "--enable-mmx" +PACKAGECONFIG[sse] = "--enable-sse" +PACKAGECONFIG[sse2] = "--enable-sse2" +PACKAGECONFIG[sse3] = "--enable-sse3" +PACKAGECONFIG[ssse3] = "--enable-ssse3" +PACKAGECONFIG[sse4-1] = "--enable-sse4-1" +PACKAGECONFIG[sse4-2] = "--enable-sse4-2" +PACKAGECONFIG[sse4a] = "--enable-sse4a" +PACKAGECONFIG[sse5] = "--enable-sse5" +PACKAGECONFIG[avx] = "--enable-avx" +PACKAGECONFIG[fixed-point] = "--enable-fixed-point" +PACKAGECONFIG[v32bis] = "--enable-v32bis" +PACKAGECONFIG[v34] = "--enable-v34" +PACKAGECONFIG[sslfax] = "--enable-sslfax"