From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from gallifrey.ext.pengutronix.de ([2001:6f8:1178:4:5054:ff:fe8d:eefb] helo=localhost) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1Rfdhl-0003Lm-3s for ptxdist@pengutronix.de; Tue, 27 Dec 2011 21:33:01 +0100 From: Juergen Beisert Date: Tue, 27 Dec 2011 21:31:53 +0100 MIME-Version: 1.0 Content-Disposition: inline Message-Id: <201112272131.53853.jbe@pengutronix.de> Subject: [ptxdist] [PATCH] SPEEX: fix broken package Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de The current SPEEX adaption in PTXdist is broken in some ways. This patch - adds the forgotten 'configure* switches from the configure menu - removes the dependency to oggvorbis if not really needed - fixes some handmade configure rules and replace them with proper autotool macros - updates the configure.ac with the result of "autoupdate" Signed-off-by: Juergen Beisert diff --git a/patches/speex-1.2rc1/autogen.sh b/patches/speex-1.2rc1/autogen.sh new file mode 120000 index 0000000..9f8a4cb --- /dev/null +++ b/patches/speex-1.2rc1/autogen.sh @@ -0,0 +1 @@ +../autogen.sh \ No newline at end of file diff --git a/patches/speex-1.2rc1/clean_up_configure_ac.diff b/patches/speex-1.2rc1/clean_up_configure_ac.diff new file mode 100644 index 0000000..876bfaa --- /dev/null +++ b/patches/speex-1.2rc1/clean_up_configure_ac.diff @@ -0,0 +1,143 @@ +From: Juergen Beisert +Subject: [PATCH] SPEEX: update the configure.ac by running 'autoupdate' + +Signed-off-by: Juergen Beisert + +--- + configure.ac | 77 ++++++++++++++++++++++++++++------------------------------- + 1 file changed, 37 insertions(+), 40 deletions(-) + +Index: speex-1.2rc1/configure.ac +=================================================================== +--- speex-1.2rc1.orig/configure.ac ++++ speex-1.2rc1/configure.ac +@@ -1,8 +1,9 @@ + dnl Process this file with autoconf to produce a configure script. -*-m4-*- + +-AC_INIT(libspeex/speex.c) ++AC_INIT ++AC_CONFIG_SRCDIR([libspeex/speex.c]) + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + SPEEX_MAJOR_VERSION=1 + SPEEX_MINOR_VERSION=1 +@@ -30,8 +31,8 @@ AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no- + AM_MAINTAINER_MODE + + AC_CANONICAL_HOST +-AC_LIBTOOL_WIN32_DLL +-AM_PROG_LIBTOOL ++ ++LT_INIT + + AC_C_BIGENDIAN + AC_C_CONST +@@ -40,37 +41,24 @@ AC_C_RESTRICT + + + AC_MSG_CHECKING(for C99 variable-size arrays) +-AC_TRY_COMPILE( , [ ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ + int foo; + foo = 10; + int array[foo]; +-], +-[has_var_arrays=yes;AC_DEFINE([VAR_ARRAYS], [], [Use C99 variable-size arrays]) +-], +-has_var_arrays=no +-) ++]])],[has_var_arrays=yes;AC_DEFINE([VAR_ARRAYS], [], [Use C99 variable-size arrays]) ++],[has_var_arrays=no ++]) + AC_MSG_RESULT($has_var_arrays) + +-AC_CHECK_HEADERS([alloca.h getopt.h]) +-AC_MSG_CHECKING(for alloca) +-AC_TRY_COMPILE( [ +-#ifdef HAVE_ALLOCA_H +-# include +-#endif +-#include +-], [ +-int foo=10; +-int *array = alloca(foo); +-], +-[ +-has_alloca=yes; +-if test x$has_var_arrays = "xno" ; then +-AC_DEFINE([USE_ALLOCA], [], [Make use of alloca]) +-fi +-], +-has_alloca=no +-) +-AC_MSG_RESULT($has_alloca) ++AC_CHECK_HEADERS([alloca.h getopt.h fcntl.h libintl.h malloc.h sys/ioctl.h]) ++AC_FUNC_ALLOCA ++AC_FUNC_MALLOC ++AC_FUNC_REALLOC ++AC_CHECK_FUNCS([floor memset pow sqrt strchr]) ++ ++AC_TYPE_INT16_T ++AC_TYPE_INT32_T ++AC_TYPE_SIZE_T + + AC_MSG_CHECKING(for SSE in current arch/CFLAGS) + AC_LINK_IFELSE([ +@@ -138,7 +126,9 @@ if test "x$enable_libogg" = xyes; then + PKG_CHECK_MODULES(OGG, ogg) + fi + +-AC_CHECK_LIB(m, sin) ++AC_SEARCH_LIBS([floor], [m], [], [AC_MSG_ERROR([unable to find the floor() function])]) ++AC_SEARCH_LIBS([pow], [m], [], [AC_MSG_ERROR([unable to find the pow() function])]) ++AC_SEARCH_LIBS([sqrt], [m], [], [AC_MSG_ERROR([unable to find the sqrt() function])]) + + # Check for getopt_long; if not found, use included source. + AC_CHECK_FUNCS([getopt_long],, +@@ -181,8 +171,7 @@ AC_ARG_ENABLE(fixed-point, [ --enable-f + AC_DEFINE([FIXED_POINT], , [Compile as fixed-point]) + else + AC_DEFINE([FLOATING_POINT], , [Compile as floating-point]) +-fi], +-AC_DEFINE([FLOATING_POINT], , [Compile as floating-point])) ++fi],AC_DEFINE([FLOATING_POINT], , [Compile as floating-point])) + + if test "$has_sse" = yes; then + AC_DEFINE([_USE_SSE], , [Enable SSE support]) +@@ -296,7 +285,7 @@ fi + AC_SUBST(SIZE16) + AC_SUBST(SIZE32) + +-AC_OUTPUT([Makefile libspeex/Makefile src/Makefile doc/Makefile Speex.spec ++AC_CONFIG_FILES([Makefile libspeex/Makefile src/Makefile doc/Makefile Speex.spec + include/Makefile include/speex/Makefile speex.pc speexdsp.pc + win32/Makefile win32/libspeex/Makefile win32/speexenc/Makefile + win32/speexdec/Makefile symbian/Makefile +@@ -321,11 +310,19 @@ AC_OUTPUT([Makefile libspeex/Makefile sr + include/speex/speex_config_types.h ti/Makefile + ti/speex_C54_test/Makefile ti/speex_C55_test/Makefile + ti/speex_C64_test/Makefile ]) +- +-if test "x$src" = "x"; then +-echo "**IMPORTANT**" +-echo "You don't seem to have the development package for libogg (libogg-devel) installed. Only the Speex library (libspeex) will be built (no encoder/decoder executable)" +-echo "You can download libogg from http://downloads.xiph.org/releases/ogg/" +-fi ++AC_OUTPUT + + echo "Type \"make; make install\" to compile and install Speex"; ++ ++echo "------------------------------------------------------" ++echo " Results:" ++echo "------------------------------------------------------" ++echo " Cross compiling: $cross_compiling" ++echo " Target CPU: $host_cpu" ++echo " Target OS: $host_os" ++echo " Install prefix: $prefix" ++echo " Compiler: $CC" ++echo " CFLAGS: $CFLAGS $OGG_CFLAGS" ++echo " Additional libs: $LIBS $OGG_LIBS" ++echo " Coder/Encoder tools: $enable_coders" ++echo "------------------------------------------------------" diff --git a/patches/speex-1.2rc1/fix_ogg_usage.diff b/patches/speex-1.2rc1/fix_ogg_usage.diff new file mode 100644 index 0000000..0d0c30e --- /dev/null +++ b/patches/speex-1.2rc1/fix_ogg_usage.diff @@ -0,0 +1,162 @@ +From: Juergen Beisert +Subject: [PATCH] SPEEX: avoid libogg if not really required + +The SPEEX library needs the oggvorbis library only when the decode/encoder tools +are built. The library itself does not need it. But the configure test if the +oggvorbis library is required is broken. This patch fix it by adding +a new switch "--enable-coders". If not given, oggvorbis is not required anymore. +Also the handmade check for oggvorbis is now replaced by a simple call to +pkg_config. + +Signed-off-by: Juergen Beisert + +--- + acinclude.m4 | 102 ----------------------------------------------------------- + configure.ac | 25 +++++++++++++- + 2 files changed, 24 insertions(+), 103 deletions(-) + +Index: speex-1.2rc1/configure.ac +=================================================================== +--- speex-1.2rc1.orig/configure.ac ++++ speex-1.2rc1/configure.ac +@@ -112,9 +112,32 @@ AC_MSG_RESULT($has_visibility) + + AC_CHECK_HEADERS(sys/soundcard.h sys/audioio.h) + +-XIPH_PATH_OGG([src="src"], [src=""]) ++PKG_PROG_PKG_CONFIG ++ ++# without the coder tools we do not need libogg ++AC_MSG_CHECKING([whether to build coders tools]) ++AC_ARG_ENABLE([coders], ++ [AS_HELP_STRING([--enable-coders], ++ [Enable coder tools (needs oggvorbis) @<:@default=disabled@:>@])], ++ [enable_coders="$enableval"], ++ [enable_coders=no]) ++AC_MSG_RESULT([${enable_coders}]) ++ ++# building the coders requires libogg ++if test "x$enable_coders" = xyes; then ++ src="src" ++ enable_libogg="yes" ++else ++ src="" ++ enable_libogg="no" ++fi + AC_SUBST(src) + ++# do we need libogg? ++if test "x$enable_libogg" = xyes; then ++ PKG_CHECK_MODULES(OGG, ogg) ++fi ++ + AC_CHECK_LIB(m, sin) + + # Check for getopt_long; if not found, use included source. +Index: speex-1.2rc1/acinclude.m4 +=================================================================== +--- speex-1.2rc1.orig/acinclude.m4 ++++ /dev/null +@@ -1,102 +0,0 @@ +-# Configure paths for libogg +-# Jack Moffitt 10-21-2000 +-# Shamelessly stolen from Owen Taylor and Manish Singh +- +-dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +-dnl Test for libogg, and define OGG_CFLAGS and OGG_LIBS +-dnl +-AC_DEFUN([XIPH_PATH_OGG], +-[dnl +-dnl Get the cflags and libraries +-dnl +-AC_ARG_WITH(ogg,[ --with-ogg=PFX Prefix where libogg is installed (optional)], ogg_prefix="$withval", ogg_prefix="") +-AC_ARG_WITH(ogg-libraries,[ --with-ogg-libraries=DIR Directory where libogg library is installed (optional)], ogg_libraries="$withval", ogg_libraries="") +-AC_ARG_WITH(ogg-includes,[ --with-ogg-includes=DIR Directory where libogg header files are installed (optional)], ogg_includes="$withval", ogg_includes="") +-AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run a test Ogg program],, enable_oggtest=yes) +- +- if test "x$ogg_libraries" != "x" ; then +- OGG_LIBS="-L$ogg_libraries" +- elif test "x$ogg_prefix" != "x" ; then +- OGG_LIBS="-L$ogg_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- OGG_LIBS="-L$prefix/lib" +- fi +- +- OGG_LIBS="$OGG_LIBS -logg" +- +- if test "x$ogg_includes" != "x" ; then +- OGG_CFLAGS="-I$ogg_includes" +- elif test "x$ogg_prefix" != "x" ; then +- OGG_CFLAGS="-I$ogg_prefix/include" +- elif test "x$prefix" != "xNONE"; then +- OGG_CFLAGS="-I$prefix/include" +- fi +- +- AC_MSG_CHECKING(for Ogg) +- no_ogg="" +- +- +- if test "x$enable_oggtest" = "xyes" ; then +- ac_save_CFLAGS="$CFLAGS" +- ac_save_LIBS="$LIBS" +- CFLAGS="$CFLAGS $OGG_CFLAGS" +- LIBS="$LIBS $OGG_LIBS" +-dnl +-dnl Now check if the installed Ogg is sufficiently new. +-dnl +- rm -f conf.oggtest +- AC_TRY_RUN([ +-#include +-#include +-#include +-#include +- +-int main () +-{ +- system("touch conf.oggtest"); +- return 0; +-} +- +-],, no_ogg=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) +- CFLAGS="$ac_save_CFLAGS" +- LIBS="$ac_save_LIBS" +- fi +- +- if test "x$no_ogg" = "x" ; then +- AC_MSG_RESULT(yes) +- ifelse([$1], , :, [$1]) +- else +- AC_MSG_RESULT(no) +- if test -f conf.oggtest ; then +- : +- else +- echo "*** Could not run Ogg test program, checking why..." +- CFLAGS="$CFLAGS $OGG_CFLAGS" +- LIBS="$LIBS $OGG_LIBS" +- AC_TRY_LINK([ +-#include +-#include +-], [ return 0; ], +- [ echo "*** The test program compiled, but did not run. This usually means" +- echo "*** that the run-time linker is not finding Ogg or finding the wrong" +- echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your" +- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" +- echo "*** to the installed location Also, make sure you have run ldconfig if that" +- echo "*** is required on your system" +- echo "***" +- echo "*** If you have an old version installed, it is best to remove it, although" +- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], +- [ echo "*** The test program failed to compile or link. See the file config.log for the" +- echo "*** exact error that occured. This usually means Ogg was incorrectly installed" +- echo "*** or that you have moved Ogg since it was installed." ]) +- CFLAGS="$ac_save_CFLAGS" +- LIBS="$ac_save_LIBS" +- fi +- OGG_CFLAGS="" +- OGG_LIBS="" +- ifelse([$2], , :, [$2]) +- fi +- AC_SUBST(OGG_CFLAGS) +- AC_SUBST(OGG_LIBS) +- rm -f conf.oggtest +-]) diff --git a/patches/speex-1.2rc1/series b/patches/speex-1.2rc1/series new file mode 100644 index 0000000..fbd9fe5 --- /dev/null +++ b/patches/speex-1.2rc1/series @@ -0,0 +1,2 @@ +fix_ogg_usage.diff +clean_up_configure_ac.diff diff --git a/rules/speex.in b/rules/speex.in index 7ed3b83..0e44b08 100644 --- a/rules/speex.in +++ b/rules/speex.in @@ -3,8 +3,8 @@ menuconfig SPEEX tristate select LIBC_M - select GCCLIBS_GCC_S - select LIBOGG + select GCCLIBS_GCC_S if SPEEX_INSTALL_SPEEXDEC + select LIBOGG if SPEEX_ENABLE_TOOLS prompt "speex " help Speex is an Open Source/Free Software @@ -13,9 +13,14 @@ menuconfig SPEEX if SPEEX +config SPEEX_ENABLE_TOOLS + bool + config SPEEX_FIXED_POINT bool prompt "use fixed point" + help + Use fixed point commands config SPEEX_FIXED_POINT_DEBUG bool @@ -25,10 +30,14 @@ config SPEEX_FIXED_POINT_DEBUG config SPEEX_FLOAT_API bool prompt "enable float api" + help + Use floating point commands config SPEEX_VBR bool prompt "enable VBR" + help + Enable Variable Bit Rate choice prompt "Kind of FFT to use" @@ -37,10 +46,15 @@ choice config SPEEX_FFT_KISS bool prompt "kiss" + help + Use KISS Fast Fourier Transform config SPEEX_FFT_SMALLFT bool prompt "smallft" + help + Use FFT from the OggVorbis project (this does not require + the oggvorbis library at run-time) config SPEEX_FFT_GPL_FFTW3 bool @@ -55,10 +69,18 @@ endchoice config SPEEX_INSTALL_SPEEXENC bool + select SPEEX_ENABLE_TOOLS prompt "Install speexenc" + help + Install a tool to encode an audio file into the speex format. + Note: this requires libogg config SPEEX_INSTALL_SPEEXDEC bool + select SPEEX_ENABLE_TOOLS prompt "Install speexdec" + help + Install a tool to decode a speex audio file. + Note: this requires libogg endif diff --git a/rules/speex.make b/rules/speex.make index d181ca4..7730b26 100644 --- a/rules/speex.make +++ b/rules/speex.make @@ -48,16 +48,37 @@ SPEEX_FFT-$(PTXCONF_SPEEX_FFT_PROPRIETARY_INTL_MKL) += proprietary-intel-mkl SPEEX_CONF_TOOL := autoconf SPEEX_CONF_OPT := \ $(CROSS_AUTOCONF_USR) \ - --disable-oggtest \ + --enable-shared \ + --disable-static \ --disable-valgrind \ - --disable-fixed-point-debug \ - --enable-fixed-point \ - --disable-float-api \ - --disable-vbr \ --disable-ti-c55x \ --with-fft=$(SPEEX_FFT-y) \ - --with-ogg=$(PTXDIST_SYSROOT_TARGET)/usr +ifdef PTXCONF_SPEEX_ENABLE_TOOLS +SPEEX_CONF_OPT += --enable-coders +else +SPEEX_CONF_OPT += --disable-coders +endif +ifdef PTXCONF_SPEEX_FIXED_POINT +SPEEX_CONF_OPT += --enable-fixed-point +else +SPEEX_CONF_OPT += --disable-fixed-point +endif +ifdef PTXCONF_SPEEX_FIXED_POINT_DEBUG +SPEEX_CONF_OPT += --enable-fixed-point-debug +else +SPEEX_CONF_OPT += --disable-fixed-point-debug +endif +ifdef PTXCONF_SPEEX_FLOAT_API +SPEEX_CONF_OPT += --enable-float-api +else +SPEEX_CONF_OPT += --disable-float-api +endif +ifdef PTXCONF_SPEEX_VBR +SPEEX_CONF_OPT += --enable-vbr +else +SPEEX_CONF_OPT += --disable-vbr +endif ifdef PTXCONF_ARCH_ARM_V4 SPEEX_CONF_OPT += --enable-arm4-asm else -- Pengutronix e.K. | Juergen Beisert | Linux Solutions for Science and Industry | http://www.pengutronix.de/ | -- ptxdist mailing list ptxdist@pengutronix.de