diff --git a/Makefile.am b/Makefile.am index 14fdf69..9fa6056 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,29 +31,26 @@ XFAIL_TESTS = check_PROGRAMS = AM_CPPFLAGS = -DPKGLIBDIR="\"$(pkglibdir)\"" -# That can be trimmed down later when adapting the sources to -# use relative paths for includes. -# Watch out for generated headers (that's why top_builddir is also present). -AM_CPPFLAGS += \ - $(LTDLINCL) \ - -I$(top_srcdir)/src \ - -I$(top_srcdir)/src/compat \ - -I$(top_srcdir)/src/libmpg123 \ - -I$(top_srcdir)/src/libsyn123 \ - -I$(top_srcdir)/src/libout123 \ - -I$(top_builddir)/src/libmpg123 \ - -I$(top_builddir)/src/libsyn123 \ - -I$(top_builddir)/src/libout123 +AM_CPPFLAGS += $(LTDLINCL) + +# Central place defining the mpg123 libraries to be used. You could +# put -lmpg123 in here to use an external one (for whatever reason). +LIBMPG123 = src/libmpg123/libmpg123.la +LIBOUT123 = src/libout123/libout123.la +LIBSYN123 = src/libsyn123/libsyn123.la # Include Make modules from subdirectories. include src/Makemodule.am include doc/Makemodule.am +# Always use our set of API headers. +AM_CPPFLAGS+= -I$(top_srcdir)/src/include + if NEED_MAINLIB pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = -# Stuff from this directory. +# Pkg-config files and library includes. if BUILD_LIBMPG123 pkgconfig_DATA += libmpg123.pc endif @@ -71,6 +68,7 @@ endif # mpg123.spec is autogenerated but needs to be present in tarball! EXTRA_DIST += \ + test_c99.c \ mpg123.spec \ makedll.sh \ windows-builds.sh \ diff --git a/Makefile.in b/Makefile.in index a512728..f76a731 100644 --- a/Makefile.in +++ b/Makefile.in @@ -174,10 +174,12 @@ check_PROGRAMS = $(am__EXEEXT_5) #pulse sdl sndio sun win32 win32_wasapi aix alib arts hp os2 \ #sgi mint openal \ #| tr ' ' '\n' | -#perl -ne 'chomp; $big = uc($_); print <. # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='mpg123' PACKAGE_TARNAME='mpg123' -PACKAGE_VERSION='1.32.3' -PACKAGE_STRING='mpg123 1.32.3' +PACKAGE_VERSION='1.32.4' +PACKAGE_STRING='mpg123 1.32.4' PACKAGE_BUGREPORT='maintainer@mpg123.org' PACKAGE_URL='' @@ -668,22 +668,6 @@ LIBOUT123_LIBS LIBSYN123_LIBS LIBMPG123_LIBS PROG_LIBS -NEED_MAINLIB_FALSE -NEED_MAINLIB_TRUE -NEED_LIB_FALSE -NEED_LIB_TRUE -NEED_FMT123_FALSE -NEED_FMT123_TRUE -BUILD_LIBSYN123_FALSE -BUILD_LIBSYN123_TRUE -BUILD_LIBOUT123_MODULES_FALSE -BUILD_LIBOUT123_MODULES_TRUE -BUILD_LIBOUT123_FALSE -BUILD_LIBOUT123_TRUE -BUILD_LIBMPG123_FALSE -BUILD_LIBMPG123_TRUE -BUILD_PROGRAMS_FALSE -BUILD_PROGRAMS_TRUE TERM_WIN32_FALSE TERM_WIN32_TRUE TERM_NONE_FALSE @@ -960,6 +944,22 @@ HAVE_ICY_FALSE HAVE_ICY_TRUE HAVE_STRING_FALSE HAVE_STRING_TRUE +NEED_MAINLIB_FALSE +NEED_MAINLIB_TRUE +NEED_LIB_FALSE +NEED_LIB_TRUE +BUILD_LIBSYN123_FALSE +BUILD_LIBSYN123_TRUE +BUILD_LIBOUT123_OR_MODULES_FALSE +BUILD_LIBOUT123_OR_MODULES_TRUE +BUILD_LIBOUT123_MODULES_FALSE +BUILD_LIBOUT123_MODULES_TRUE +BUILD_LIBOUT123_FALSE +BUILD_LIBOUT123_TRUE +BUILD_LIBMPG123_FALSE +BUILD_LIBMPG123_TRUE +BUILD_PROGRAMS_FALSE +BUILD_PROGRAMS_TRUE EXEC_LT_LDFLAGS LT_LDFLAGS LIB_CFLAGS @@ -1107,6 +1107,12 @@ with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock +enable_components +enable_programs +enable_libmpg123 +enable_libout123 +enable_libout123_modules +enable_libsyn123 enable_debug enable_xdebug enable_nagging @@ -1147,11 +1153,6 @@ enable_feature_report enable_ipv6 enable_network with_network -enable_components -enable_libmpg123 -enable_libout123 -enable_libout123_modules -enable_libsyn123 ' ac_precious_vars='build_alias host_alias @@ -1726,7 +1727,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures mpg123 1.32.3 to adapt to many kinds of systems. +\`configure' configures mpg123 1.32.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1797,7 +1798,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of mpg123 1.32.3:";; + short | recursive ) echo "Configuration of mpg123 1.32.4:";; esac cat <<\_ACEOF @@ -1818,6 +1819,16 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --disable-components (not) build end-user programs with default + components, select individual components via + --enable-libmpg123 etc. + --enable-programs build (only) programs (with --disable-components) + --enable-libmpg123 build (only) libmpg123 (with --disable-components) + --enable-libout123 build (only) libout123 (with --disable-components) + --enable-libout123-modules + build (only) libout123 modules (with + --disable-components) + --enable-libsyn123 build (only) libsyn123 (with --disable-components) --enable-debug turn on (lots of) debugging printouts --enable-xdebug turn on (yet more) extreme debugging printouts --enable-nagging turn on GCC's pedantic nagging with error on @@ -1873,15 +1884,6 @@ Optional Features: --enable-ipv6 IPv6 support in internal network stack --enable-network network support (http streams / webradio), if available (overruled by --with-network!) - --disable-components (not) build end-user programs with default - components, select individual components via - --enable-libmpg123 etc. - --enable-libmpg123 build (only) libmpg123 (with --disable-components) - --enable-libout123 build (only) libout123 (with --disable-components) - --enable-libout123-modules - build (only) libout123 modules (with - --disable-components) - --enable-libsyn123 build (only) libsyn123 (with --disable-components) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -2074,7 +2076,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -mpg123 configure 1.32.3 +mpg123 configure 1.32.4 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2350,63 +2352,6 @@ printf "%s\n" "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes @@ -2595,6 +2540,63 @@ rm -f conftest.val as_fn_set_status $ac_retval } # ac_fn_c_compute_int + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type ac_configure_args_raw= for ac_arg do @@ -2619,7 +2621,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by mpg123 $as_me 1.32.3, which was +It was created by mpg123 $as_me 1.32.4, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3388,9 +3390,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -LIBMPG123_VERSION=48:1:48 -LIBOUT123_VERSION=5:0:5 -LIBSYN123_VERSION=2:2:2 +LIBMPG123_VERSION=48:2:48 +LIBOUT123_VERSION=5:1:5 +LIBSYN123_VERSION=2:3:2 @@ -3989,7 +3991,7 @@ fi # Define the identity of the package. PACKAGE='mpg123' - VERSION='1.32.3' + VERSION='1.32.4' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -15992,6 +15994,216 @@ fi +# Check whether --enable-components was given. +if test ${enable_components+y} +then : + enableval=$enable_components; + if test "x$enableval" = xyes + then + build_all=yes + else + build_all=no + fi + +else $as_nop + + build_all=yes + + +fi + + +# Check whether --enable-programs was given. +if test ${enable_programs+y} +then : + enableval=$enable_programs; + if test "x$enableval" = xyes + then + build_programs=yes + else + build_programs=no + fi + +else $as_nop + + build_programs=no + + +fi + + +# Check whether --enable-libmpg123 was given. +if test ${enable_libmpg123+y} +then : + enableval=$enable_libmpg123; + if test "x$enableval" = xyes + then + build_libmpg123=yes + else + build_libmpg123=no + fi + +else $as_nop + + build_libmpg123=no + + +fi + + +# Check whether --enable-libout123 was given. +if test ${enable_libout123+y} +then : + enableval=$enable_libout123; + if test "x$enableval" = xyes + then + build_libout123=yes + else + build_libout123=no + fi + +else $as_nop + + build_libout123=no + + +fi + + +# Check whether --enable-libout123-modules was given. +if test ${enable_libout123_modules+y} +then : + enableval=$enable_libout123_modules; + if test "x$enableval" = xyes + then + build_libout123_modules=yes + else + build_libout123_modules=no + fi + +else $as_nop + + build_libout123_modules=no + + +fi + + +# Check whether --enable-libsyn123 was given. +if test ${enable_libsyn123+y} +then : + enableval=$enable_libsyn123; + if test "x$enableval" = xyes + then + build_libsyn123=yes + else + build_libsyn123=no + fi + +else $as_nop + + build_libsyn123=no + + +fi + + +if test "x$build_all" = xyes; then + build_programs=yes + build_libmpg123=yes + build_libout123=yes + build_libout123_modules=yes + build_libsyn123=yes +fi + + if test "x$build_programs" = xyes ; then + BUILD_PROGRAMS_TRUE= + BUILD_PROGRAMS_FALSE='#' +else + BUILD_PROGRAMS_TRUE='#' + BUILD_PROGRAMS_FALSE= +fi + + if test "x$build_libmpg123" = xyes ; then + BUILD_LIBMPG123_TRUE= + BUILD_LIBMPG123_FALSE='#' +else + BUILD_LIBMPG123_TRUE='#' + BUILD_LIBMPG123_FALSE= +fi + + if test "x$build_libout123" = xyes ; then + BUILD_LIBOUT123_TRUE= + BUILD_LIBOUT123_FALSE='#' +else + BUILD_LIBOUT123_TRUE='#' + BUILD_LIBOUT123_FALSE= +fi + + if test "x$build_libout123_modules" = xyes ; then + BUILD_LIBOUT123_MODULES_TRUE= + BUILD_LIBOUT123_MODULES_FALSE='#' +else + BUILD_LIBOUT123_MODULES_TRUE='#' + BUILD_LIBOUT123_MODULES_FALSE= +fi + + if test "x$build_libout123" = xyes || test "x$build_libout123_modules" = xyes ; then + BUILD_LIBOUT123_OR_MODULES_TRUE= + BUILD_LIBOUT123_OR_MODULES_FALSE='#' +else + BUILD_LIBOUT123_OR_MODULES_TRUE='#' + BUILD_LIBOUT123_OR_MODULES_FALSE= +fi + + if test "x$build_libsyn123" = xyes ; then + BUILD_LIBSYN123_TRUE= + BUILD_LIBSYN123_FALSE='#' +else + BUILD_LIBSYN123_TRUE='#' + BUILD_LIBSYN123_FALSE= +fi + +# If we install libraries, prompting pkgconfig and include directories. + if test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libout123_modules" = xyes || test "x$build_libsyn123" = xyes ; then + NEED_LIB_TRUE= + NEED_LIB_FALSE='#' +else + NEED_LIB_TRUE='#' + NEED_LIB_FALSE= +fi + + if test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libsyn123" = xyes ; then + NEED_MAINLIB_TRUE= + NEED_MAINLIB_FALSE='#' +else + NEED_MAINLIB_TRUE='#' + NEED_MAINLIB_FALSE= +fi + + +components="" + +if test "x$build_programs" = xyes; then + components="$components programs" +fi + +if test "x$build_libmpg123" = xyes; then + components="$components libmpg123" +fi +if test "x$build_libout123" = xyes; then + components="$components libout123" +fi +if test "x$build_libout123_modules" = xyes; then + components="$components libout123-modules" +fi +if test "x$build_libsyn123" = xyes; then + components="$components libsyn123" +fi + +components=$(echo $components) + + # Check whether --enable-debug was given. if test ${enable_debug+y} then : @@ -17088,24 +17300,27 @@ fi -ac_fn_c_check_header_compile "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" -if test "x$ac_cv_header_stdio_h" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for basic C99 features" >&5 +printf %s "checking for basic C99 features... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +`cat "$srcdir/test_c99.c"` +_ACEOF +if ac_fn_c_try_link "$LINENO" then : - printf "%s\n" "#define HAVE_STDIO_H 1" >>confdefs.h + have_c99=yes; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + have_c99=no; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = xyes -then : - printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h - +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +if test "x$have_c99" = xno; then + as_fn_error $? "Your toolchain lacks basic C99 features. See test_c99.c for the requirements." "$LINENO" 5 fi -ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" -if test "x$ac_cv_header_string_h" = xyes -then : - printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h -fi ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes then : @@ -17129,24 +17344,6 @@ if test "x$ac_cv_header_sys_types_h" = xyes then : printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h -fi -ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" -if test "x$ac_cv_header_stdint_h" = xyes -then : - printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h - -fi -ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" -if test "x$ac_cv_header_limits_h" = xyes -then : - printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h - -fi -ac_fn_c_check_header_compile "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = xyes -then : - printf "%s\n" "#define HAVE_INTTYPES_H 1" >>confdefs.h - fi ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" if test "x$ac_cv_header_sys_time_h" = xyes @@ -17199,236 +17396,6 @@ fi -# Using the lower level macros instead of AC_TYPE_* for compatibility with not freshest autoconf. -# Re-think this list. Some things just should be a given. We assume C99 now. -# Rather think about assumptions like int64_t >= ptrdiff_t. -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define size_t unsigned long" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" -if test "x$ac_cv_type_uintptr_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define uintptr_t unsigned long" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define ssize_t long" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define ptrdiff_t long" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default" -if test "x$ac_cv_type_int32_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define int32_t int" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default" -if test "x$ac_cv_type_int64_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define int64_t long long" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" -if test "x$ac_cv_type_uint32_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default" -if test "x$ac_cv_type_int16_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define int16_t short" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default" -if test "x$ac_cv_type_uint16_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define uint16_t unsigned short" >>confdefs.h - -fi - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 -printf %s "checking size of size_t... " >&6; } -if test ${ac_cv_sizeof_size_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_size_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (size_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_size_t=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } - - - -printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5 -printf %s "checking size of ssize_t... " >&6; } -if test ${ac_cv_sizeof_ssize_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ssize_t))" "ac_cv_sizeof_ssize_t" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_ssize_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (ssize_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_ssize_t=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ssize_t" >&5 -printf "%s\n" "$ac_cv_sizeof_ssize_t" >&6; } - - - -printf "%s\n" "#define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int32_t" >&5 -printf %s "checking size of int32_t... " >&6; } -if test ${ac_cv_sizeof_int32_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int32_t))" "ac_cv_sizeof_int32_t" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_int32_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int32_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int32_t=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int32_t" >&5 -printf "%s\n" "$ac_cv_sizeof_int32_t" >&6; } - - - -printf "%s\n" "#define SIZEOF_INT32_T $ac_cv_sizeof_int32_t" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -printf %s "checking size of long... " >&6; } -if test ${ac_cv_sizeof_long+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -printf "%s\n" "$ac_cv_sizeof_long" >&6; } - - - -printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h - - - -# We do not need to know if off_t actually changes size using -# _FILE_OFFSET_BITS, only need to know what size it has. - - portable_api=no # Check whether --enable-portable was given. if test ${enable_portable+y} @@ -18767,7 +18734,7 @@ fi # The full list of supported modules to check, first come, first serve. -check_modules="pulse alsa tinyalsa oss coreaudio sndio sun win32 win32_wasapi os2 esd jack portaudio sdl nas arts openal dummy" +check_modules="pulse alsa tinyalsa oss coreaudio sndio sun win32 win32_wasapi os2 esd jack portaudio sdl nas arts openal" # Only check qsa before all else on QNX. # It would mask ALSA otherwise. case $host in @@ -18783,13 +18750,16 @@ check_forced=no check_failed=no if test "x$with_audio" != "x"; then check_modules=`echo $with_audio|tr , ' '` - if ! echo "$check_modules" | grep -qw dummy; then - check_modules="$check_modules dummy" - fi echo "Limiting outputs to build according to your preference: $check_modules" check_forced=yes fi +# Dummy output module is always built alongside libout123, but not +# when just building the modules. +if test "x$build_libout123" = xyes && ! echo "$check_modules" | grep -qw dummy; then + check_modules="$check_modules dummy" +fi + @@ -21484,194 +21454,6 @@ printf "%s\n" "$as_me: WARNING: You forced IPv6 code while I think there is no fi -# Check whether --enable-components was given. -if test ${enable_components+y} -then : - enableval=$enable_components; - if test "x$enableval" = xyes - then - build_all=yes - else - build_all=no - fi - -else $as_nop - - build_all=yes - - -fi - - -# Check whether --enable-libmpg123 was given. -if test ${enable_libmpg123+y} -then : - enableval=$enable_libmpg123; - if test "x$enableval" = xyes - then - build_libmpg123=yes - else - build_libmpg123=no - fi - -else $as_nop - - build_libmpg123=no - - -fi - - -# Check whether --enable-libout123 was given. -if test ${enable_libout123+y} -then : - enableval=$enable_libout123; - if test "x$enableval" = xyes - then - build_libout123=yes - else - build_libout123=no - fi - -else $as_nop - - build_libout123=no - - -fi - - -# Check whether --enable-libout123-modules was given. -if test ${enable_libout123_modules+y} -then : - enableval=$enable_libout123_modules; - if test "x$enableval" = xyes - then - build_libout123_modules=yes - else - build_libout123_modules=no - fi - -else $as_nop - - build_libout123_modules=no - - -fi - - -# Check whether --enable-libsyn123 was given. -if test ${enable_libsyn123+y} -then : - enableval=$enable_libsyn123; - if test "x$enableval" = xyes - then - build_libsyn123=yes - else - build_libsyn123=no - fi - -else $as_nop - - build_libsyn123=no - - -fi - - -if test "x$build_all" = xyes; then - build_programs=yes - build_libmpg123=yes - build_libout123=yes - build_libout123_modules=yes - build_libsyn123=yes - components="programs" -else - build_programs=no -fi - - if test "x$build_programs" = xyes ; then - BUILD_PROGRAMS_TRUE= - BUILD_PROGRAMS_FALSE='#' -else - BUILD_PROGRAMS_TRUE='#' - BUILD_PROGRAMS_FALSE= -fi - - if test "x$build_libmpg123" = xyes ; then - BUILD_LIBMPG123_TRUE= - BUILD_LIBMPG123_FALSE='#' -else - BUILD_LIBMPG123_TRUE='#' - BUILD_LIBMPG123_FALSE= -fi - - if test "x$build_libout123" = xyes ; then - BUILD_LIBOUT123_TRUE= - BUILD_LIBOUT123_FALSE='#' -else - BUILD_LIBOUT123_TRUE='#' - BUILD_LIBOUT123_FALSE= -fi - - if test "x$build_libout123_modules" = xyes ; then - BUILD_LIBOUT123_MODULES_TRUE= - BUILD_LIBOUT123_MODULES_FALSE='#' -else - BUILD_LIBOUT123_MODULES_TRUE='#' - BUILD_LIBOUT123_MODULES_FALSE= -fi - - if test "x$build_libsyn123" = xyes ; then - BUILD_LIBSYN123_TRUE= - BUILD_LIBSYN123_FALSE='#' -else - BUILD_LIBSYN123_TRUE='#' - BUILD_LIBSYN123_FALSE= -fi - - if test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libsyn123" = xyes ; then - NEED_FMT123_TRUE= - NEED_FMT123_FALSE='#' -else - NEED_FMT123_TRUE='#' - NEED_FMT123_FALSE= -fi - -# If we install libraries, prompting pkgconfig and include directories. - if test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libout123_modules" = xyes || test "x$build_libsyn123" = xyes ; then - NEED_LIB_TRUE= - NEED_LIB_FALSE='#' -else - NEED_LIB_TRUE='#' - NEED_LIB_FALSE= -fi - - if test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libsyn123" = xyes ; then - NEED_MAINLIB_TRUE= - NEED_MAINLIB_FALSE='#' -else - NEED_MAINLIB_TRUE='#' - NEED_MAINLIB_FALSE= -fi - - - -if test "x$build_libmpg123" = xyes; then - components="$components libmpg123" -fi -if test "x$build_libout123" = xyes; then - components="$components libout123" -fi -if test "x$build_libout123_modules" = xyes; then - components="$components libout123-modules" -fi -if test "x$build_libsyn123" = xyes; then - components="$components libsyn123" -fi -components=$(echo $components) - - PROG_LIBS=$LIBS LIBS= LIBMPG123_LIBS="$LIBM $COMPAT_LIBS" @@ -21834,6 +21616,38 @@ if test -z "${HAVE_MODULES_TRUE}" && test -z "${HAVE_MODULES_FALSE}"; then as_fn_error $? "conditional \"HAVE_MODULES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_PROGRAMS_TRUE}" && test -z "${BUILD_PROGRAMS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_PROGRAMS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LIBMPG123_TRUE}" && test -z "${BUILD_LIBMPG123_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LIBMPG123\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LIBOUT123_TRUE}" && test -z "${BUILD_LIBOUT123_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LIBOUT123\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LIBOUT123_MODULES_TRUE}" && test -z "${BUILD_LIBOUT123_MODULES_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LIBOUT123_MODULES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LIBOUT123_OR_MODULES_TRUE}" && test -z "${BUILD_LIBOUT123_OR_MODULES_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LIBOUT123_OR_MODULES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LIBSYN123_TRUE}" && test -z "${BUILD_LIBSYN123_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LIBSYN123\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${NEED_LIB_TRUE}" && test -z "${NEED_LIB_FALSE}"; then + as_fn_error $? "conditional \"NEED_LIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${NEED_MAINLIB_TRUE}" && test -z "${NEED_MAINLIB_FALSE}"; then + as_fn_error $? "conditional \"NEED_MAINLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${HAVE_STRING_TRUE}" && test -z "${HAVE_STRING_FALSE}"; then as_fn_error $? "conditional \"HAVE_STRING\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -22226,38 +22040,6 @@ if test -z "${TERM_WIN32_TRUE}" && test -z "${TERM_WIN32_FALSE}"; then as_fn_error $? "conditional \"TERM_WIN32\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${BUILD_PROGRAMS_TRUE}" && test -z "${BUILD_PROGRAMS_FALSE}"; then - as_fn_error $? "conditional \"BUILD_PROGRAMS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_LIBMPG123_TRUE}" && test -z "${BUILD_LIBMPG123_FALSE}"; then - as_fn_error $? "conditional \"BUILD_LIBMPG123\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_LIBOUT123_TRUE}" && test -z "${BUILD_LIBOUT123_FALSE}"; then - as_fn_error $? "conditional \"BUILD_LIBOUT123\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_LIBOUT123_MODULES_TRUE}" && test -z "${BUILD_LIBOUT123_MODULES_FALSE}"; then - as_fn_error $? "conditional \"BUILD_LIBOUT123_MODULES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_LIBSYN123_TRUE}" && test -z "${BUILD_LIBSYN123_FALSE}"; then - as_fn_error $? "conditional \"BUILD_LIBSYN123\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NEED_FMT123_TRUE}" && test -z "${NEED_FMT123_FALSE}"; then - as_fn_error $? "conditional \"NEED_FMT123\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NEED_LIB_TRUE}" && test -z "${NEED_LIB_FALSE}"; then - as_fn_error $? "conditional \"NEED_LIB\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NEED_MAINLIB_TRUE}" && test -z "${NEED_MAINLIB_FALSE}"; then - as_fn_error $? "conditional \"NEED_MAINLIB\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -22648,7 +22430,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by mpg123 $as_me 1.32.3, which was +This file was extended by mpg123 $as_me 1.32.4, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22716,7 +22498,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -mpg123 config.status 1.32.3 +mpg123 config.status 1.32.4 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -24508,6 +24290,14 @@ if test x"$cpu_type" = xi486; then echo "only." fi +if test "x$use_extlib" = xyes; then + echo + echo "Warning: You opted to use external builds of the mpg123 libraries. They need to" + echo " match the headers shipped with this source (which are used during build" + echo " regardless)." + echo +fi + echo echo " CPPFLAGS='$CPPFLAGS'" echo " CFLAGS='$CFLAGS'" diff --git a/configure.ac b/configure.ac index 08ba614..234defc 100644 --- a/configure.ac +++ b/configure.ac @@ -32,7 +32,7 @@ m4_undefine([V_HEADER]) AC_INIT([mpg123], V_MAJOR.V_MINOR.V_PATCH[]V_SUFFIX, [maintainer@mpg123.org]) -m4_define([V_HEADER], m4_esyscmd(grep -e _API_VERSION -e _PATCHLEVEL src/libmpg123/mpg123.h src/libout123/out123.h src/libsyn123/syn123.h)) +m4_define([V_HEADER], m4_esyscmd(grep -e _API_VERSION -e _PATCHLEVEL src/include/mpg123.h src/include/out123.h src/include/syn123.h)) dnl libmpg123 m4_define([API_VERSION], m4_bregexp(V_HEADER, @@ -363,6 +363,137 @@ AC_SUBST(LIB_CFLAGS) AC_SUBST(LT_LDFLAGS) AC_SUBST(EXEC_LT_LDFLAGS) +dnl ############## Component selection + +AC_ARG_ENABLE(components, + [AS_HELP_STRING([--disable-components], [(not) build end-user programs with default components, select individual components via --enable-libmpg123 etc.])], + [ + if test "x$enableval" = xyes + then + build_all=yes + else + build_all=no + fi + ], + [ + build_all=yes + ] +) + +AC_ARG_ENABLE(programs, + [AS_HELP_STRING([--enable-programs], [build (only) programs (with --disable-components)])], + [ + if test "x$enableval" = xyes + then + build_programs=yes + else + build_programs=no + fi + ], + [ + build_programs=no + ] +) + +AC_ARG_ENABLE(libmpg123, + [AS_HELP_STRING([--enable-libmpg123], [build (only) libmpg123 (with --disable-components)])], + [ + if test "x$enableval" = xyes + then + build_libmpg123=yes + else + build_libmpg123=no + fi + ], + [ + build_libmpg123=no + ] +) + +AC_ARG_ENABLE(libout123, + [AS_HELP_STRING([--enable-libout123], [build (only) libout123 (with --disable-components)])], + [ + if test "x$enableval" = xyes + then + build_libout123=yes + else + build_libout123=no + fi + ], + [ + build_libout123=no + ] +) + +AC_ARG_ENABLE(libout123-modules, + [AS_HELP_STRING([--enable-libout123-modules], [build (only) libout123 modules (with --disable-components)])], + [ + if test "x$enableval" = xyes + then + build_libout123_modules=yes + else + build_libout123_modules=no + fi + ], + [ + build_libout123_modules=no + ] +) + +AC_ARG_ENABLE(libsyn123, + [AS_HELP_STRING([--enable-libsyn123], [build (only) libsyn123 (with --disable-components)])], + [ + if test "x$enableval" = xyes + then + build_libsyn123=yes + else + build_libsyn123=no + fi + ], + [ + build_libsyn123=no + ] +) + +if test "x$build_all" = xyes; then + build_programs=yes + build_libmpg123=yes + build_libout123=yes + build_libout123_modules=yes + build_libsyn123=yes +fi + +AM_CONDITIONAL([BUILD_PROGRAMS], [ test "x$build_programs" = xyes ]) +AM_CONDITIONAL([BUILD_LIBMPG123], [ test "x$build_libmpg123" = xyes ]) +AM_CONDITIONAL([BUILD_LIBOUT123], [ test "x$build_libout123" = xyes ]) +AM_CONDITIONAL([BUILD_LIBOUT123_MODULES], [ test "x$build_libout123_modules" = xyes ]) +AM_CONDITIONAL([BUILD_LIBOUT123_OR_MODULES], [ test "x$build_libout123" = xyes || test "x$build_libout123_modules" = xyes ]) +AM_CONDITIONAL([BUILD_LIBSYN123], [ test "x$build_libsyn123" = xyes ]) +# If we install libraries, prompting pkgconfig and include directories. +AM_CONDITIONAL([NEED_LIB], [ test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libout123_modules" = xyes || test "x$build_libsyn123" = xyes ]) +AM_CONDITIONAL([NEED_MAINLIB], [ test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libsyn123" = xyes ]) + +components="" + +if test "x$build_programs" = xyes; then + components="$components programs" +fi + +if test "x$build_libmpg123" = xyes; then + components="$components libmpg123" +fi +if test "x$build_libout123" = xyes; then + components="$components libout123" +fi +if test "x$build_libout123_modules" = xyes; then + components="$components libout123-modules" +fi +if test "x$build_libsyn123" = xyes; then + components="$components libsyn123" +fi + +components=$(echo $components) + dnl ############## Configurable Options AC_ARG_ENABLE(debug, @@ -1183,30 +1314,18 @@ AC_SUBST(YASMFLAGS) dnl ############## Really basic headers, needed for other checks. +AC_MSG_CHECKING([for basic C99 features]) +AC_LINK_IFELSE( + [AC_LANG_SOURCE([`cat "$srcdir/test_c99.c"`])], + [have_c99=yes; AC_MSG_RESULT([yes])], + [have_c99=no; AC_MSG_RESULT([no])] +) +if test "x$have_c99" = xno; then + AC_MSG_ERROR([Your toolchain lacks basic C99 features. See test_c99.c for the requirements.]) +fi + dnl Is it too paranoid to specifically check for stdint.h and limits.h? -AC_CHECK_HEADERS([stdio.h stdlib.h string.h unistd.h sched.h sys/ioctl.h sys/types.h stdint.h limits.h inttypes.h sys/time.h sys/wait.h sys/resource.h sys/signal.h signal.h sys/select.h dirent.h sys/stat.h]) - -dnl ############## Types - -# Using the lower level macros instead of AC_TYPE_* for compatibility with not freshest autoconf. -# Re-think this list. Some things just should be a given. We assume C99 now. -# Rather think about assumptions like int64_t >= ptrdiff_t. -AC_CHECK_TYPE(size_t, unsigned long) -AC_CHECK_TYPE(uintptr_t, unsigned long) -AC_CHECK_TYPE(ssize_t, long) -AC_CHECK_TYPE(ptrdiff_t, long) -AC_CHECK_TYPE(int32_t, int) -AC_CHECK_TYPE(int64_t, long long) -AC_CHECK_TYPE(uint32_t, unsigned int) -AC_CHECK_TYPE(int16_t, short) -AC_CHECK_TYPE(uint16_t, unsigned short) -AC_CHECK_SIZEOF(size_t) -AC_CHECK_SIZEOF(ssize_t) -AC_CHECK_SIZEOF(int32_t) -AC_CHECK_SIZEOF(long) - -# We do not need to know if off_t actually changes size using -# _FILE_OFFSET_BITS, only need to know what size it has. +AC_CHECK_HEADERS([unistd.h sched.h sys/ioctl.h sys/types.h sys/time.h sys/wait.h sys/resource.h sys/signal.h signal.h sys/select.h dirent.h sys/stat.h]) dnl ############## LFS stuff @@ -1766,7 +1885,7 @@ fi dnl ############## Output module choice # The full list of supported modules to check, first come, first serve. -check_modules="pulse alsa tinyalsa oss coreaudio sndio sun win32 win32_wasapi os2 esd jack portaudio sdl nas arts openal dummy" +check_modules="pulse alsa tinyalsa oss coreaudio sndio sun win32 win32_wasapi os2 esd jack portaudio sdl nas arts openal" # Only check qsa before all else on QNX. # It would mask ALSA otherwise. case $host in @@ -1782,13 +1901,16 @@ check_forced=no check_failed=no if test "x$with_audio" != "x"; then check_modules=`echo $with_audio|tr , ' '` - if ! echo "$check_modules" | grep -qw dummy; then - check_modules="$check_modules dummy" - fi echo "Limiting outputs to build according to your preference: $check_modules" check_forced=yes fi +# Dummy output module is always built alongside libout123, but not +# when just building the modules. +if test "x$build_libout123" = xyes && ! echo "$check_modules" | grep -qw dummy; then + check_modules="$check_modules dummy" +fi + PKG_PROG_PKG_CONFIG([]) # Now go through the modules to check and do the chores. @@ -2787,119 +2909,6 @@ if test x"$ipv6" = xenabled; then fi fi -dnl ############## Component selection - -AC_ARG_ENABLE(components, - [AS_HELP_STRING([--disable-components], [(not) build end-user programs with default components, select individual components via --enable-libmpg123 etc.])], - [ - if test "x$enableval" = xyes - then - build_all=yes - else - build_all=no - fi - ], - [ - build_all=yes - ] -) - -AC_ARG_ENABLE(libmpg123, - [AS_HELP_STRING([--enable-libmpg123], [build (only) libmpg123 (with --disable-components)])], - [ - if test "x$enableval" = xyes - then - build_libmpg123=yes - else - build_libmpg123=no - fi - ], - [ - build_libmpg123=no - ] -) - -AC_ARG_ENABLE(libout123, - [AS_HELP_STRING([--enable-libout123], [build (only) libout123 (with --disable-components)])], - [ - if test "x$enableval" = xyes - then - build_libout123=yes - else - build_libout123=no - fi - ], - [ - build_libout123=no - ] -) - -AC_ARG_ENABLE(libout123-modules, - [AS_HELP_STRING([--enable-libout123-modules], [build (only) libout123 modules (with --disable-components)])], - [ - if test "x$enableval" = xyes - then - build_libout123_modules=yes - else - build_libout123_modules=no - fi - ], - [ - build_libout123_modules=no - ] -) - -AC_ARG_ENABLE(libsyn123, - [AS_HELP_STRING([--enable-libsyn123], [build (only) libsyn123 (with --disable-components)])], - [ - if test "x$enableval" = xyes - then - build_libsyn123=yes - else - build_libsyn123=no - fi - ], - [ - build_libsyn123=no - ] -) - -if test "x$build_all" = xyes; then - build_programs=yes - build_libmpg123=yes - build_libout123=yes - build_libout123_modules=yes - build_libsyn123=yes - components="programs" -else - build_programs=no -fi - -AM_CONDITIONAL([BUILD_PROGRAMS], [ test "x$build_programs" = xyes ]) -AM_CONDITIONAL([BUILD_LIBMPG123], [ test "x$build_libmpg123" = xyes ]) -AM_CONDITIONAL([BUILD_LIBOUT123], [ test "x$build_libout123" = xyes ]) -AM_CONDITIONAL([BUILD_LIBOUT123_MODULES], [ test "x$build_libout123_modules" = xyes ]) -AM_CONDITIONAL([BUILD_LIBSYN123], [ test "x$build_libsyn123" = xyes ]) -AM_CONDITIONAL([NEED_FMT123], [ test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libsyn123" = xyes ]) -# If we install libraries, prompting pkgconfig and include directories. -AM_CONDITIONAL([NEED_LIB], [ test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libout123_modules" = xyes || test "x$build_libsyn123" = xyes ]) -AM_CONDITIONAL([NEED_MAINLIB], [ test "x$build_libmpg123" = xyes || test "x$build_libout123" = xyes || test "x$build_libsyn123" = xyes ]) - - -if test "x$build_libmpg123" = xyes; then - components="$components libmpg123" -fi -if test "x$build_libout123" = xyes; then - components="$components libout123" -fi -if test "x$build_libout123_modules" = xyes; then - components="$components libout123-modules" -fi -if test "x$build_libsyn123" = xyes; then - components="$components libsyn123" -fi -components=$(echo $components) - dnl ############## Library cleanup PROG_LIBS=$LIBS @@ -3021,6 +3030,14 @@ if test x"$cpu_type" = xi486; then echo "only." fi +if test "x$use_extlib" = xyes; then + echo + echo "Warning: You opted to use external builds of the mpg123 libraries. They need to" + echo " match the headers shipped with this source (which are used during build" + echo " regardless)." + echo +fi + echo echo " CPPFLAGS='$CPPFLAGS'" echo " CFLAGS='$CFLAGS'" diff --git a/doc/doxygen.conf b/doc/doxygen.conf index 40010f3..99f9749 100644 --- a/doc/doxygen.conf +++ b/doc/doxygen.conf @@ -17,10 +17,10 @@ INPUT = \ examples/feedseek.c \ examples/extract_frames.c \ examples/id3dump.c \ - ../src/libmpg123/mpg123.h \ - ../src/libmpg123/fmt123.h \ - ../src/libout123/out123.h \ - ../src/libsyn123/syn123.h \ + ../src/include/mpg123.h \ + ../src/include/fmt123.h \ + ../src/include/out123.h \ + ../src/include/syn123.h \ #OPTIMIZE_OUTPUT_FOR_C = YES EXTRACT_ALL = NO HIDE_UNDOC_MEMBERS = NO diff --git a/mpg123.spec b/mpg123.spec index ca355c2..b340ce2 100644 --- a/mpg123.spec +++ b/mpg123.spec @@ -3,7 +3,7 @@ # - devel packages for alsa, sdl, etc... to build the respective output modules. Summary: The fast console mpeg audio decoder/player. Name: mpg123 -Version: 1.32.3 +Version: 1.32.4 Release: 1 URL: http://www.mpg123.org/ License: GPL diff --git a/ports/cmake/src/CMakeLists.txt b/ports/cmake/src/CMakeLists.txt index b99de95..f86d7f4 100644 --- a/ports/cmake/src/CMakeLists.txt +++ b/ports/cmake/src/CMakeLists.txt @@ -14,18 +14,12 @@ option(PORTABLE_API "Only build portable library API (no off_t, no internal I/O. check_include_file("arpa/inet.h" HAVE_ARPA_INET_H) check_include_file("dirent.h" HAVE_DIRENT_H) check_include_file("dlfcn.h" HAVE_DLFCN_H) -check_include_file("inttypes.h" HAVE_INTTYPES_H) check_include_file("langinfo.h" HAVE_LANGINFO_H) -check_include_file("limits.h" HAVE_LIMITS_H) check_include_file("locale.h" HAVE_LOCALE_H) check_include_file("netdb.h" HAVE_NETDB_H) check_include_file("netinet/in.h" HAVE_NETINET_IN_H) check_include_file("sched.h" HAVE_SCHED_H) check_include_file("signal.h" HAVE_SIGNAL_H) -check_include_file("stdio.h" HAVE_STDIO_H) -check_include_file("stdint.h" HAVE_STDINT_H) -check_include_file("stdlib.h" HAVE_STDLIB_H) -check_include_file("string.h" HAVE_STRING_H) check_include_file("strings.h" HAVE_STRINGS_H) check_include_file("sys/ioctl.h" HAVE_SYS_IOCTL_H) check_include_file("sys/ipc.h" HAVE_SYS_IPC_H) @@ -70,7 +64,6 @@ check_function_exists(execvp HAVE_EXECVP) check_function_exists(ctermid HAVE_CTERMID) check_function_exists(clock_gettime HAVE_CLOCK_GETTIME) -check_type_size(long SIZEOF_LONG) check_type_size(off_t SIZEOF_OFF_T) if(SIZEOF_OFF_T LESS 8) @@ -135,8 +128,6 @@ if(NOT LFS_INSENSITIVE) int main() { return 0; }" LFS_SENSITIVE) endif() -check_type_size(long SIZEOF_LONG) -check_type_size(off_t SIZEOF_OFF_T) if(WIN32 AND HAVE_WINDOWS_H) check_function_exists(GetThreadErrorMode HAVE_GETTHREADERRORMODE) @@ -350,10 +341,7 @@ option(USE_NEW_HUFFTABLE "use new huffman decoding scheme by Taihei (faster on m include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/" "${CMAKE_CURRENT_BINARY_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/compat" - "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/libsyn123" - "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/libout123" - "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/libmpg123") + "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/include") add_compile_definitions( $<$:_CRT_SECURE_NO_WARNINGS> diff --git a/ports/cmake/src/config.cmake.h.in b/ports/cmake/src/config.cmake.h.in index 7176ae4..39aac4c 100644 --- a/ports/cmake/src/config.cmake.h.in +++ b/ports/cmake/src/config.cmake.h.in @@ -33,7 +33,6 @@ #cmakedefine HAVE_DLFCN_H 1 #cmakedefine HAVE_INTTYPES_H 1 #cmakedefine HAVE_LANGINFO_H 1 -#cmakedefine HAVE_LIMITS_H 1 #cmakedefine HAVE_LOCALE_H 1 #cmakedefine HAVE_NL_LANGINFO 1 #cmakedefine HAVE_RANDOM 1 @@ -42,16 +41,12 @@ #cmakedefine HAVE_USELOCALE 1 #cmakedefine HAVE_SETPRIORITY 1 #cmakedefine HAVE_SIGNAL_H 1 -#cmakedefine HAVE_STDIO_H 1 -#cmakedefine HAVE_STDINT_H 1 -#cmakedefine HAVE_STDLIB_H 1 #cmakedefine HAVE_STRERROR 1 #cmakedefine HAVE_STRERROR_L 1 #cmakedefine HAVE_FORK 1 #cmakedefine HAVE_EXECVP 1 #cmakedefine HAVE_CTERMID 1 #cmakedefine HAVE_CLOCK_GETTIME 1 -#cmakedefine HAVE_STRING_H 1 #cmakedefine HAVE_STRINGS_H 1 #cmakedefine HAVE_SYS_IOCTL_H 1 #cmakedefine HAVE_SYS_RESOURCE_H 1 @@ -149,9 +144,7 @@ #define PKGLIBDIR "@CMAKE_INSTALL_LIBDIR@/@PROJECT_NAME@" // CMake leaves it emtpy for non-existing type. Autoconf sets it to 0. -#define SIZEOF_LONG (@SIZEOF_LONG@+0) #define SIZEOF_OFF_T (@SIZEOF_OFF_T@+0) -#define SIZEOF_OFF64_T (@SIZEOF_OFF64_T@+0) #cmakedefine STDERR_FILENO @STDERR_FILENO@ #cmakedefine STDIN_FILENO @STDIN_FILENO@ diff --git a/ports/cmake/src/libmpg123/CMakeLists.txt b/ports/cmake/src/libmpg123/CMakeLists.txt index 64b3754..24271dc 100644 --- a/ports/cmake/src/libmpg123/CMakeLists.txt +++ b/ports/cmake/src/libmpg123/CMakeLists.txt @@ -252,8 +252,8 @@ install(TARGETS ${TARGET} EXPORT targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/") -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/mpg123.h" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/include/mpg123.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/fmt123.h" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/include/fmt123.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/ports/cmake/src/libout123/CMakeLists.txt b/ports/cmake/src/libout123/CMakeLists.txt index cef878d..d0fe358 100644 --- a/ports/cmake/src/libout123/CMakeLists.txt +++ b/ports/cmake/src/libout123/CMakeLists.txt @@ -31,5 +31,5 @@ install(TARGETS ${TARGET} EXPORT targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/") -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/out123.h" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/include/out123.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/ports/cmake/src/libsyn123/CMakeLists.txt b/ports/cmake/src/libsyn123/CMakeLists.txt index 6f9209a..5c0ae0b 100644 --- a/ports/cmake/src/libsyn123/CMakeLists.txt +++ b/ports/cmake/src/libsyn123/CMakeLists.txt @@ -26,5 +26,5 @@ install(TARGETS ${TARGET} EXPORT targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/") -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/syn123.h" +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/include/syn123.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/src/Makemodule.am b/src/Makemodule.am index b894a8a..f8a8ab5 100644 --- a/src/Makemodule.am +++ b/src/Makemodule.am @@ -2,6 +2,7 @@ include src/tests/Makemodule.am include src/compat/Makemodule.am +include src/common/Makemodule.am if NEED_LIB include src/libout123/Makemodule.am if NEED_MAINLIB @@ -20,19 +21,26 @@ bin_PROGRAMS += \ endif endif +if NEED_LIB +if NEED_MAINLIB +# All main libraries need fmt123 header installed. +include_HEADERS += src/include/fmt123.h +endif +endif + src_mpg123_LDADD = \ src/compat/libcompat.la \ - src/libmpg123/libmpg123.la \ - src/libout123/libout123.la \ - src/libsyn123/libsyn123.la \ + $(LIBMPG123) \ + $(LIBOUT123) \ + $(LIBSYN123) \ @PROG_LIBS@ src_mpg123_LDFLAGS = @EXEC_LT_LDFLAGS@ src_out123_LDADD = \ src/compat/libcompat.la \ - src/libsyn123/libsyn123.la \ - src/libout123/libout123.la \ + $(LIBSYN123) \ + $(LIBOUT123) \ @PROG_LIBS@ src_out123_LDFLAGS = @EXEC_LT_LDFLAGS@ @@ -46,12 +54,12 @@ CLEANFILES += src/*.a src_mpg123_id3dump_LDADD = \ src/compat/libcompat.la \ - src/libmpg123/libmpg123.la \ + $(LIBMPG123) \ @PROG_LIBS@ src_mpg123_strip_LDADD = \ src/compat/libcompat.la \ - src/libmpg123/libmpg123.la \ + $(LIBMPG123) \ @PROG_LIBS@ src_mpg123_SOURCES = \ diff --git a/src/audio.c b/src/audio.c index bb4532f..055efeb 100644 --- a/src/audio.c +++ b/src/audio.c @@ -40,7 +40,7 @@ #include #endif -#include "debug.h" +#include "common/debug.h" static syn123_handle *sh = NULL; static struct mpg123_fmt outfmt = { .encoding=0, .rate=0, .channels=0 }; diff --git a/src/audio.h b/src/audio.h index f261013..b37c60e 100644 --- a/src/audio.h +++ b/src/audio.h @@ -16,7 +16,7 @@ #ifndef _MPG123_AUDIO_H_ #define _MPG123_AUDIO_H_ -#include "compat.h" +#include "compat/compat.h" #include "mpg123.h" #include "out123.h" diff --git a/src/common.c b/src/common.c index 89b6680..eea1c33 100644 --- a/src/common.c +++ b/src/common.c @@ -1,7 +1,7 @@ /* common: misc stuff... audio flush, status display... - copyright ?-2022 by the mpg123 project + copyright ?-2023 by the mpg123 project free software under the terms of the LGPL 2.1 see COPYING and AUTHORS files in distribution or http://mpg123.org @@ -18,7 +18,7 @@ #include "terms.h" #include "metaprint.h" -#include "debug.h" +#include "common/debug.h" enum player_state playstate = STATE_PLAYING; const char playsym[STATE_COUNT] = { '>', '_', '=', '?' }; @@ -320,12 +320,12 @@ void print_stat(mpg123_handle *fr, long offset, out123_handle *ao, int draw_bar } /* Taking pains to properly size the frame number fields. */ len = snprintf( framefmt, sizeof(framefmt) - , "%%0%d"OFF_P, (int)log10(frame+rframes)+1 ); + , "%%0%d" PRIiMAX, (int)log10(frame+rframes)+1 ); if(len < 0 || len >= sizeof(framefmt)) - memcpy(framefmt, "%05"OFF_P, sizeof("%05"OFF_P)); - snprintf( framestr[0], sizeof(framestr[0])-1, framefmt, (off_p)frame); + memcpy(framefmt, "%05" PRIiMAX, sizeof("%05" PRIiMAX)); + snprintf( framestr[0], sizeof(framestr[0])-1, framefmt, (intmax_t)frame); framestr[0][sizeof(framestr[0])-1] = 0; - snprintf( framestr[1], sizeof(framestr[1])-1, framefmt, (off_p)rframes); + snprintf( framestr[1], sizeof(framestr[1])-1, framefmt, (intmax_t)rframes); framestr[1][sizeof(framestr[1])-1] = 0; /* Now start with the state line. */ memset(line, 0, linelen+1); /* Always one zero more. */ diff --git a/src/common/Makemodule.am b/src/common/Makemodule.am new file mode 100644 index 0000000..4a31b96 --- /dev/null +++ b/src/common/Makemodule.am @@ -0,0 +1,7 @@ +# common headers shared between subprojects +EXTRA_DIST += \ + src/common/abi_align.h \ + src/common/debug.h \ + src/common/sample.h \ + src/common/swap_bytes_impl.h \ + src/common/true.h diff --git a/src/libmpg123/abi_align.h b/src/common/abi_align.h similarity index 100% rename from src/libmpg123/abi_align.h rename to src/common/abi_align.h diff --git a/src/libmpg123/debug.h b/src/common/debug.h similarity index 100% rename from src/libmpg123/debug.h rename to src/common/debug.h diff --git a/src/libmpg123/sample.h b/src/common/sample.h similarity index 100% rename from src/libmpg123/sample.h rename to src/common/sample.h diff --git a/src/libmpg123/swap_bytes_impl.h b/src/common/swap_bytes_impl.h similarity index 100% rename from src/libmpg123/swap_bytes_impl.h rename to src/common/swap_bytes_impl.h diff --git a/src/libmpg123/true.h b/src/common/true.h similarity index 100% rename from src/libmpg123/true.h rename to src/common/true.h diff --git a/src/compat/compat.c b/src/compat/compat.c index 0cf6498..b66fe7e 100644 --- a/src/compat/compat.c +++ b/src/compat/compat.c @@ -39,7 +39,7 @@ #include #endif -#include "debug.h" +#include "../common/debug.h" #ifndef WINDOWS_UWP diff --git a/src/compat/compat.h b/src/compat/compat.h index 27e820b..dee811f 100644 --- a/src/compat/compat.h +++ b/src/compat/compat.h @@ -21,10 +21,8 @@ #include -#ifdef HAVE_STDLIB_H /* realloc, size_t */ #include -#endif #include @@ -48,16 +46,10 @@ #ifdef HAVE_SYS_TYPES_H #include #endif -#ifdef HAVE_INTTYPES_H #include -#endif -#ifdef HAVE_STDINT_H #include -#endif /* We want SIZE_MAX, etc. */ -#ifdef HAVE_LIMITS_H #include -#endif #ifndef SIZE_MAX #define SIZE_MAX ((size_t)-1) @@ -85,26 +77,11 @@ #define INT32_MIN (-INT32_MAX - 1) #endif -#ifndef OFF_MAX -#undef OFF_MIN -#if SIZEOF_OFF_T == 4 -#define OFF_MAX INT32_MAX -#define OFF_MIN INT32_MIN -#elif SIZEOF_OFF_T == 8 -#define OFF_MAX INT64_MAX -#define OFF_MIN INT64_MIN -#else -#error "Unexpected width of off_t." -#endif -#endif - // Add two values (themselves assumed to be < limit), saturating to given limit. #define SATURATE_ADD(inout, add, limit) inout = (limit-add >= inout) ? inout+add : limit; #define SATURATE_SUB(inout, sub, limit) inout = (limit+sub >= inout) ? inout-sub : limit; -#ifdef HAVE_STRING_H #include -#endif #ifdef HAVE_STRINGS_H #include #endif @@ -150,29 +127,6 @@ const char *INT123_strerror(int errnum); and returns NULL on NULL input instead of crashing. */ char* INT123_compat_strdup(const char *s); -/* If we have the size checks enabled, try to derive some sane printfs. - Simple start: Use max integer type and format if long is not big enough. - I am hesitating to use %ll without making sure that it's there... */ -#if (defined SIZEOF_OFF_T) && (SIZEOF_OFF_T > SIZEOF_LONG) && (defined PRIiMAX) -# define OFF_P PRIiMAX -typedef intmax_t off_p; -#else -# define OFF_P "li" -typedef long off_p; -#endif - -#if (defined SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > SIZEOF_LONG) && (defined PRIuMAX) && (defined PRIiMAX) -# define SIZE_P PRIuMAX -typedef uintmax_t size_p; -# define SSIZE_P PRIiMAX -typedef intmax_t ssize_p; -#else -# define SIZE_P "lu" -typedef unsigned long size_p; -# define SSIZE_P "ld" -typedef long ssize_p; -#endif - /* Get an environment variable, possibly converted to UTF-8 from wide string. The return value is a copy that you shall free. */ char *INT123_compat_getenv(const char* name); @@ -200,7 +154,6 @@ FILE* INT123_compat_fdopen(int fd, const char *mode); int INT123_compat_close(int infd); int INT123_compat_fclose(FILE* stream); - /** * Setting binary mode on a descriptor, where necessary. * We do not bother with errors. This has to work. @@ -326,7 +279,7 @@ size_t INT123_unintr_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *st #define normal mpg123_normal #endif -#include "true.h" +#include "../common/true.h" #if (!defined(WIN32) || defined (__CYGWIN__)) && defined(HAVE_SIGNAL_H) void (*INT123_catchsignal(int signum, void(*handler)(int)))(int); diff --git a/src/compat/compat_dl.c b/src/compat/compat_dl.c index e704d2c..e843316 100644 --- a/src/compat/compat_dl.c +++ b/src/compat/compat_dl.c @@ -47,7 +47,7 @@ # endif #endif -#include "debug.h" +#include "../common/debug.h" #include "wpathconv.h" diff --git a/src/compat/compat_str.c b/src/compat/compat_str.c index 27729f2..7e9797a 100644 --- a/src/compat/compat_str.c +++ b/src/compat/compat_str.c @@ -26,7 +26,7 @@ #include #endif -#include "debug.h" +#include "../common/debug.h" /* A safe realloc also for very old systems where realloc(NULL, size) returns NULL. */ void *INT123_safe_realloc(void *ptr, size_t size) diff --git a/src/config.h.in b/src/config.h.in index 0e95291..a95690b 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -133,9 +133,6 @@ /* Define to 1 if you have the `mx' library (-lmx). */ #undef HAVE_LIBMX -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_SOUNDCARD_H @@ -458,21 +455,9 @@ /* Define for calculating tables at runtime. */ #undef RUNTIME_TABLES -/* The size of `int32_t', as computed by sizeof. */ -#undef SIZEOF_INT32_T - -/* The size of `long', as computed by sizeof. */ -#undef SIZEOF_LONG - /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T -/* The size of `size_t', as computed by sizeof. */ -#undef SIZEOF_SIZE_T - -/* The size of `ssize_t', as computed by sizeof. */ -#undef SIZEOF_SSIZE_T - /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ @@ -534,30 +519,3 @@ #ifndef __cplusplus #undef inline #endif - -/* Define to `short' if does not define. */ -#undef int16_t - -/* Define to `int' if does not define. */ -#undef int32_t - -/* Define to `long long' if does not define. */ -#undef int64_t - -/* Define to `long' if does not define. */ -#undef ptrdiff_t - -/* Define to `unsigned long' if does not define. */ -#undef size_t - -/* Define to `long' if does not define. */ -#undef ssize_t - -/* Define to `unsigned short' if does not define. */ -#undef uint16_t - -/* Define to `unsigned int' if does not define. */ -#undef uint32_t - -/* Define to `unsigned long' if does not define. */ -#undef uintptr_t diff --git a/src/control_generic.c b/src/control_generic.c index abd8f5f..2e3f637 100644 --- a/src/control_generic.c +++ b/src/control_generic.c @@ -21,7 +21,7 @@ #ifndef _BSD_SOURCE #define _BSD_SOURCE #endif -#include "compat.h" +#include "compat/compat.h" #include "mpg123app.h" #include "out123.h" @@ -60,7 +60,7 @@ static int mode = MODE_STOPPED; static int init = 0; static int sendstat_disabled = FALSE; -#include "debug.h" +#include "common/debug.h" void generic_sendmsg (const char *fmt, ...) { @@ -175,7 +175,7 @@ void generic_sendstat (mpg123_handle *fr) double current_seconds, seconds_left; if(!position_info(fr, 0, ao, ¤t_frame, &frames_left, ¤t_seconds, &seconds_left, NULL, NULL)) - generic_sendmsg("F %"OFF_P" %"OFF_P" %3.2f %3.2f", (off_p)current_frame, (off_p)frames_left, current_seconds, seconds_left); + generic_sendmsg("F %" PRIiMAX " %" PRIiMAX " %3.2f %3.2f", (intmax_t)current_frame, (intmax_t)frames_left, current_seconds, seconds_left); else { sendstat_disabled = TRUE; @@ -854,7 +854,7 @@ int control_generic (mpg123_handle *fr) newpos = mpg123_tell(fr); if(newpos <= oldpos) mpg123_meta_free(fr); - generic_sendmsg("K %"OFF_P, (off_p)newpos); + generic_sendmsg("K %" PRIiMAX, (intmax_t)newpos); continue; } /* JUMP */ diff --git a/src/equalizer.c b/src/equalizer.c index 127d232..ee54d9b 100644 --- a/src/equalizer.c +++ b/src/equalizer.c @@ -7,7 +7,7 @@ */ #include "mpg123app.h" -#include "debug.h" +#include "common/debug.h" /* Load the settings from the path in the global variable equalfile. If there is no file, restore equalizer defaults. diff --git a/src/filters.c b/src/filters.c index 7174da8..d65b9df 100644 --- a/src/filters.c +++ b/src/filters.c @@ -9,7 +9,7 @@ #include "filters.h" #include -#include "debug.h" +#include "common/debug.h" // Validate syntax of filter specification, returning the number // of configured filters. diff --git a/src/filters.h b/src/filters.h index 3345718..5e96345 100644 --- a/src/filters.h +++ b/src/filters.h @@ -19,7 +19,7 @@ #ifndef MPG123_FILTERS_H #define MPG123_FILTERS_H -#include "compat.h" +#include "compat/compat.h" struct filter { diff --git a/src/getlopt.c b/src/getlopt.c index c1b077d..572feaf 100644 --- a/src/getlopt.c +++ b/src/getlopt.c @@ -8,9 +8,9 @@ */ #include "config.h" -#include "compat.h" +#include "compat/compat.h" #include "getlopt.h" -#include "debug.h" +#include "common/debug.h" int loptind = 1; /* index in argv[] */ int loptchr = 0; /* index in argv[loptind] */ diff --git a/src/httpget.c b/src/httpget.c index d3b4132..35bd912 100644 --- a/src/httpget.c +++ b/src/httpget.c @@ -34,12 +34,12 @@ #include "resolver.h" #include -#include "true.h" +#include "common/true.h" #endif #include -#include "debug.h" +#include "common/debug.h" void httpdata_init(struct httpdata *e) { diff --git a/src/libmpg123/fmt123.h b/src/include/fmt123.h similarity index 100% rename from src/libmpg123/fmt123.h rename to src/include/fmt123.h diff --git a/src/libmpg123/mpg123.h b/src/include/mpg123.h similarity index 99% rename from src/libmpg123/mpg123.h rename to src/include/mpg123.h index 2eeadcb..90d1c91 100644 --- a/src/libmpg123/mpg123.h +++ b/src/include/mpg123.h @@ -19,7 +19,7 @@ */ #define MPG123_API_VERSION 48 /** library patch level at client build time */ -#define MPG123_PATCHLEVEL 1 +#define MPG123_PATCHLEVEL 2 #ifndef MPG123_EXPORT /** Defines needed for MS Visual Studio(tm) DLL builds. diff --git a/src/libout123/out123.h b/src/include/out123.h similarity index 99% rename from src/libout123/out123.h rename to src/include/out123.h index 681e5dc..b3cc9ff 100644 --- a/src/libout123/out123.h +++ b/src/include/out123.h @@ -20,7 +20,7 @@ */ #define OUT123_API_VERSION 5 /** library patch level at client build time */ -#define OUT123_PATCHLEVEL 0 +#define OUT123_PATCHLEVEL 1 /* We only need size_t definition. */ #include diff --git a/src/libsyn123/syn123.h b/src/include/syn123.h similarity index 99% rename from src/libsyn123/syn123.h rename to src/include/syn123.h index bbdad2e..4810308 100644 --- a/src/libsyn123/syn123.h +++ b/src/include/syn123.h @@ -25,7 +25,7 @@ */ #define SYN123_API_VERSION 2 /** library patch level at client build time */ -#define SYN123_PATCHLEVEL 2 +#define SYN123_PATCHLEVEL 3 #ifndef MPG123_EXPORT /** Defines needed for MS Visual Studio(tm) DLL builds. diff --git a/src/libmpg123/Makemodule.am b/src/libmpg123/Makemodule.am index 48e3820..5d28a12 100644 --- a/src/libmpg123/Makemodule.am +++ b/src/libmpg123/Makemodule.am @@ -20,10 +20,7 @@ src_libmpg123_calctables_LDADD = @LIBM@ if BUILD_LIBMPG123 lib_LTLIBRARIES += src/libmpg123/libmpg123.la -include_HEADERS += src/libmpg123/mpg123.h -endif -if NEED_FMT123 -include_HEADERS += src/libmpg123/fmt123.h +include_HEADERS += src/include/mpg123.h endif src_libmpg123_libmpg123_la_CFLAGS = @LIB_CFLAGS@ @@ -39,18 +36,14 @@ src_libmpg123_libmpg123_la_DEPENDENCIES = \ src/compat/libcompat.la src_libmpg123_libmpg123_la_SOURCES = \ - src/libmpg123/fmt123.h \ src/libmpg123/mpeghead.h \ src/libmpg123/parse.c \ src/libmpg123/parse.h \ src/libmpg123/frame.c \ src/libmpg123/format.c \ - src/libmpg123/swap_bytes_impl.h \ src/libmpg123/frame.h \ src/libmpg123/reader.h \ - src/libmpg123/debug.h \ src/libmpg123/decode.h \ - src/libmpg123/sample.h \ src/libmpg123/dct64.c \ src/libmpg123/synth.h \ src/libmpg123/synth_mono.h \ @@ -63,7 +56,6 @@ src_libmpg123_libmpg123_la_SOURCES = \ src/libmpg123/icy2utf8.h \ src/libmpg123/id3.h \ src/libmpg123/id3.c \ - src/libmpg123/true.h \ src/libmpg123/getbits.h \ src/libmpg123/optimize.h \ src/libmpg123/optimize.c \ @@ -74,7 +66,6 @@ src_libmpg123_libmpg123_la_SOURCES = \ src/libmpg123/libmpg123.c \ src/libmpg123/gapless.h \ src/libmpg123/mpg123lib_intern.h \ - src/libmpg123/abi_align.h \ src/libmpg123/mangle.h \ src/libmpg123/getcpuflags.h \ src/libmpg123/index.h \ diff --git a/src/libmpg123/calctables.c b/src/libmpg123/calctables.c index 9d61d28..371c370 100644 --- a/src/libmpg123/calctables.c +++ b/src/libmpg123/calctables.c @@ -12,7 +12,7 @@ #define CALCTABLES #include "mpg123lib_intern.h" -#include "debug.h" +#include "../common/debug.h" #define ASIZE(a) (sizeof(a)/sizeof(*a)) diff --git a/src/libmpg123/decode.h b/src/libmpg123/decode.h index 9850f10..c40d4d6 100644 --- a/src/libmpg123/decode.h +++ b/src/libmpg123/decode.h @@ -203,16 +203,6 @@ void INT123_dct64_i386 (real *,real *,real *); void INT123_dct64_altivec(real *,real *,real *); void INT123_dct64_i486(int*, int* , real*); /* Yeah, of no use outside of synth_i486.c .*/ -/* This is used by the layer 3 decoder, one generic function and 3DNow variants. */ -void INT123_dct36 (real *,real *,real *,const real *,real *); -void INT123_dct36_3dnow (real *,real *,real *,const real *,real *); -void INT123_dct36_3dnowext(real *,real *,real *,const real *,real *); -void INT123_dct36_x86_64 (real *,real *,real *,const real *,real *); -void INT123_dct36_sse (real *,real *,real *,const real *,real *); -void INT123_dct36_avx (real *,real *,real *,const real *,real *); -void INT123_dct36_neon (real *,real *,real *,const real *,real *); -void INT123_dct36_neon64 (real *,real *,real *,const real *,real *); - /* Tools for NtoM resampling synth, defined in ntom.c . */ int INT123_synth_ntom_set_step(mpg123_handle *fr); /* prepare ntom decoding */ unsigned long INT123_ntom_val(mpg123_handle *fr, int64_t frame); /* compute INT123_ntom_val for frame offset */ @@ -232,6 +222,13 @@ int64_t INT123_ntom_frameoff(mpg123_handle *fr, int64_t soff); /* Initialization of any static data that majy be needed at runtime. Make sure you call these once before it is too late. */ #ifndef NO_LAYER3 + +#ifdef OPT_THE_DCT36 +// Set the current dct36 function choice. The pointers themselves are to static functions. +void INT123_dct36_choose(mpg123_handle *fr); +int INT123_dct36_match(mpg123_handle *fr, enum optdec t); +#endif + #ifdef RUNTIME_TABLES void INT123_init_layer3(void); #endif diff --git a/src/libmpg123/dither_impl.h b/src/libmpg123/dither_impl.h index 87eaad6..4d93baf 100644 --- a/src/libmpg123/dither_impl.h +++ b/src/libmpg123/dither_impl.h @@ -7,7 +7,7 @@ */ #include "config.h" -#include "compat.h" +#include "../compat/compat.h" #include "dither.h" static const uint32_t init_seed = 2463534242UL; diff --git a/src/libmpg123/format.c b/src/libmpg123/format.c index 60936aa..5350ed4 100644 --- a/src/libmpg123/format.c +++ b/src/libmpg123/format.c @@ -26,8 +26,8 @@ */ #include "mpg123lib_intern.h" -#include "sample.h" -#include "debug.h" +#include "../common/sample.h" +#include "../common/debug.h" /* static int chans[NUM_CHANNELS] = { 1 , 2 }; */ static const long my_rates[MPG123_RATES] = /* only the standard rates */ @@ -686,7 +686,7 @@ static void conv_s16_to_s32(struct outbuffer *buf) #endif #endif -#include "swap_bytes_impl.h" +#include "../common/swap_bytes_impl.h" void swap_endian(struct outbuffer *buf, int block) { diff --git a/src/libmpg123/frame.c b/src/libmpg123/frame.c index 9e38ace..45636c1 100644 --- a/src/libmpg123/frame.c +++ b/src/libmpg123/frame.c @@ -9,7 +9,7 @@ #define WANT_GETCPUFLAGS #include "mpg123lib_intern.h" #include "getcpuflags.h" -#include "debug.h" +#include "../common/debug.h" static void frame_fixed_reset(mpg123_handle *fr); @@ -193,13 +193,12 @@ int INT123_frame_outbuffer(mpg123_handle *fr) { fr->err = MPG123_BAD_BUFFER; if(NOQUIET) - merror( "have external buffer of size %"SIZE_P", need %"SIZE_P - , (size_p)fr->buffer.size, (size_p)size ); + merror("have external buffer of size %zu, need %zu", fr->buffer.size, size); return MPG123_ERR; } } - debug1("need frame buffer of %"SIZE_P, (size_p)size); + debug1("need frame buffer of %zu", size); if(fr->buffer.rdata != NULL && fr->buffer.size != size) { free(fr->buffer.rdata); @@ -222,7 +221,7 @@ int INT123_frame_outbuffer(mpg123_handle *fr) int attribute_align_arg mpg123_replace_buffer(mpg123_handle *mh, void *data, size_t size) { - debug2("replace buffer with %p size %"SIZE_P, data, (size_p)size); + debug2("replace buffer with %p size %zu", data, size); if(mh == NULL) return MPG123_BAD_HANDLE; /* Will accept any size, the error comes later... */ if(data == NULL) diff --git a/src/libmpg123/frame.h b/src/libmpg123/frame.h index 07dfec5..a2e72cd 100644 --- a/src/libmpg123/frame.h +++ b/src/libmpg123/frame.h @@ -167,11 +167,9 @@ struct mpg123_handle_struct { #ifdef OPT_MULTI -#ifndef NO_LAYER3 -#if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64) +#ifdef OPT_THE_DCT36 void (*the_dct36)(real *,real *,real *,const real *,real *); #endif -#endif #endif enum optdec type; diff --git a/src/libmpg123/gapless.h b/src/libmpg123/gapless.h index 58e3d66..1896cd8 100644 --- a/src/libmpg123/gapless.h +++ b/src/libmpg123/gapless.h @@ -7,7 +7,7 @@ This is no stand-alone header, precisely to be able to fool it into using fake handle types for testing the math. */ -#include "debug.h" +#include "../common/debug.h" #ifdef GAPLESS /* From internal sample number to external. */ @@ -81,8 +81,8 @@ static void frame_buffercheck(mpg123_handle *fr) } if(VERBOSE3) fprintf(stderr, "\nNote: Cut frame %" PRIi64 " buffer on end of stream to %" - PRIi64 " samples, fill now %"SIZE_P" bytes.\n" - , fr->num, (fr->num == fr->lastframe ? fr->lastoff : 0), (size_p)fr->buffer.fill); + PRIi64 " samples, fill now %zu bytes.\n" + , fr->num, (fr->num == fr->lastframe ? fr->lastoff : 0), fr->buffer.fill); } /* The first interesting frame: Skip some leading samples. */ diff --git a/src/libmpg123/getbits.h b/src/libmpg123/getbits.h index 6d0d548..3572027 100644 --- a/src/libmpg123/getbits.h +++ b/src/libmpg123/getbits.h @@ -13,7 +13,7 @@ #define _MPG123_GETBITS_H_ #include "mpg123lib_intern.h" -#include "debug.h" +#include "../common/debug.h" #define backbits(fr,nob) ((void)( \ fr->bits_avail += nob, \ diff --git a/src/libmpg123/icy.h b/src/libmpg123/icy.h index 104c7ff..c2edb11 100644 --- a/src/libmpg123/icy.h +++ b/src/libmpg123/icy.h @@ -10,7 +10,7 @@ #ifndef NO_ICY -#include "compat.h" +#include "../compat/compat.h" #include "mpg123.h" struct icy_meta diff --git a/src/libmpg123/icy2utf8.c b/src/libmpg123/icy2utf8.c index cfda64e..2ca190d 100644 --- a/src/libmpg123/icy2utf8.c +++ b/src/libmpg123/icy2utf8.c @@ -28,7 +28,7 @@ #include "config.h" /* Includes string and stdlib headers... */ -#include "compat.h" +#include "../compat/compat.h" /* ThOr: too lazy for this type check; also we use char/short all around anyway. Of cource, it would be the proper way to use _these_ kind of types all around. */ diff --git a/src/libmpg123/id3.c b/src/libmpg123/id3.c index ff6ce6b..180f489 100644 --- a/src/libmpg123/id3.c +++ b/src/libmpg123/id3.c @@ -85,7 +85,7 @@ #include "mpg123lib_intern.h" #include "id3.h" -#include "debug.h" +#include "../common/debug.h" #ifndef NO_ID3V2 /* Only the main parsing routine will always be there. */ @@ -352,7 +352,7 @@ static void store_id3_text(mpg123_string *sb, unsigned char *source, size_t sour } memcpy(sb->p, source, source_size); sb->fill = source_size; - debug1("stored undecoded ID3 text of size %"SIZE_P, (size_p)source_size); + debug1("stored undecoded ID3 text of size %zu", source_size); return; } @@ -567,7 +567,7 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha if(realsize < (size_t)(descr-realdata)) { - if(NOQUIET) error1("Invalid frame size of %"SIZE_P" (too small for anything).", (size_p)realsize); + if(NOQUIET) error1("Invalid frame size of %zu (too small for anything).", realsize); return; } if(encoding > mpg123_id3_enc_max) @@ -622,8 +622,8 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha if(VERBOSE4) /* Do _not_ print the verbatim text: The encoding might be funny! */ { - fprintf(stderr, "Note: ID3 comm/uslt desc of length %"SIZE_P".\n", (size_p)xcom->description.fill); - fprintf(stderr, "Note: ID3 comm/uslt text of length %"SIZE_P".\n", (size_p)xcom->text.fill); + fprintf(stderr, "Note: ID3 comm/uslt desc of length %zu.\n", xcom->description.fill); + fprintf(stderr, "Note: ID3 comm/uslt text of length %zu.\n", xcom->text.fill); } /* Look out for RVA info only when we really deal with a straight comment. */ if(tt == comment && localcom.description.fill > 0) diff --git a/src/libmpg123/index.c b/src/libmpg123/index.c index 2f1d0b7..e13cbd1 100644 --- a/src/libmpg123/index.c +++ b/src/libmpg123/index.c @@ -8,7 +8,7 @@ */ #include "index.h" -#include "debug.h" +#include "../common/debug.h" /* The next expected frame offset, one step ahead. */ static int64_t fi_next(struct frame_index *fi) @@ -124,7 +124,7 @@ int INT123_fi_set(struct frame_index *fi, int64_t *offsets, int64_t step, size_t void INT123_fi_reset(struct frame_index *fi) { - debug1("reset with size %"SIZE_P, (size_p)fi->size); + debug1("reset with size %zu", fi->size); fi->fill = 0; fi->step = 1; fi->next = fi_next(fi); diff --git a/src/libmpg123/index.h b/src/libmpg123/index.h index b187259..af12211 100644 --- a/src/libmpg123/index.h +++ b/src/libmpg123/index.h @@ -21,7 +21,7 @@ */ #include "config.h" -#include "compat.h" +#include "../compat/compat.h" struct frame_index { diff --git a/src/libmpg123/layer1.c b/src/libmpg123/layer1.c index 83e0ef4..6126a6e 100644 --- a/src/libmpg123/layer1.c +++ b/src/libmpg123/layer1.c @@ -10,7 +10,7 @@ #include "mpg123lib_intern.h" #include "getbits.h" -#include "debug.h" +#include "../common/debug.h" /* Allocation value is not allowed to be 15. Initially, libmad showed me the diff --git a/src/libmpg123/layer3.c b/src/libmpg123/layer3.c index a9a0702..c49dbba 100644 --- a/src/libmpg123/layer3.c +++ b/src/libmpg123/layer3.c @@ -21,9 +21,17 @@ #include "huffman.h" #endif #include "getbits.h" -#include "debug.h" +#include "../common/debug.h" +/* Predeclare the assembly routines, only called from wrappers here. */ +void INT123_dct36_3dnow (real *,real *,real *,const real *,real *); +void INT123_dct36_3dnowext(real *,real *,real *,const real *,real *); +void INT123_dct36_x86_64 (real *,real *,real *,const real *,real *); +void INT123_dct36_sse (real *,real *,real *,const real *,real *); +void INT123_dct36_avx (real *,real *,real *,const real *,real *); +void INT123_dct36_neon (real *,real *,real *,const real *,real *); +void INT123_dct36_neon64 (real *,real *,real *,const real *,real *); /* define CUT_SFB21 if you want to cut-off the frequency above 16kHz */ #if 0 @@ -1256,10 +1264,7 @@ static void III_antialias(real xr[SBLIMIT][SSLIMIT],struct gr_info_s *gr_info) Mathematics of Computation, Volume 32, Number 141, January 1978, Pages 175-199 */ - -/* Calculation of the inverse MDCT - used to be static without 3dnow - does that really matter? */ -void INT123_dct36(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf) +static void INT123_dct36(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf) { real tmp[18]; @@ -1449,6 +1454,105 @@ void INT123_dct36(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf) } } +// Wrap the assembly routine calls into C functions that serve as jump target to satisfy +// indirect branch protection if the toolchain enables that. Otherwise, we'd need to anticipate +// that in the assembly (and ensure assemblers support endbr64 and friends). +// Loss of efficiency: + +// In the case of one static optimization choice, we do not have that problem. + +#ifdef OPT_THE_DCT36 + +#define DCT36_WRAP(asmfunc) \ +static void asmfunc ## _wrap(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf) \ +{ \ + return asmfunc(inbuf, o1, o2, wintab, tsbuf); \ +} + +#ifdef OPT_SSE +DCT36_WRAP(INT123_dct36_sse) +#endif +#ifdef OPT_3DNOWEXT_VINTAGE +DCT36_WRAP(INT123_dct36_3dnowext) +#endif +#ifdef OPT_3DNOW_VINTAGE +DCT36_WRAP(INT123_dct36_3dnow) +#endif +#ifdef OPT_X86_64 +DCT36_WRAP(INT123_dct36_x86_64) +#endif +#ifdef OPT_AVX +DCT36_WRAP(INT123_dct36_avx) +#endif +#ifdef OPT_NEON +DCT36_WRAP(INT123_dct36_neon) +#endif +#ifdef OPT_NEON64 +DCT36_WRAP(INT123_dct36_neon64) +#endif + +int INT123_dct36_match(mpg123_handle *fr, enum optdec t) +{ +#ifdef OPT_SSE + if(t == sse && fr->cpu_opts.the_dct36 == INT123_dct36_sse_wrap) + return 1; +#endif +#ifdef OPT_3DNOWEXT_VINTAGE + if(t == dreidnowext_vintage && fr->cpu_opts.the_dct36 == INT123_dct36_3dnowext_wrap) + return 1; +#endif +#ifdef OPT_3DNOW_VINTAGE + if(t == dreidnow_vintage && fr->cpu_opts.the_dct36 == INT123_dct36_3dnow_wrap) + return 1; +#endif + return 0; +} + +void INT123_dct36_choose(mpg123_handle *fr) +{ + switch(fr->cpu_opts.type) + { +#ifdef OPT_SSE + case sse: + fr->cpu_opts.the_dct36 = INT123_dct36_sse_wrap; + break; +#endif +#ifdef OPT_3DNOWEXT_VINTAGE + case dreidnowext_vintage: + fr->cpu_opts.the_dct36 = INT123_dct36_3dnowext_wrap; + break; +#endif +#ifdef OPT_3DNOW_VINTAGE + case dreidnow_vintage: + fr->cpu_opts.the_dct36 = INT123_dct36_3dnow_wrap; + break; +#endif +#ifdef OPT_AVX + case avx: + fr->cpu_opts.the_dct36 = INT123_dct36_avx; + break; +#endif +#ifdef OPT_X86_64 + case x86_64: + fr->cpu_opts.the_dct36 = INT123_dct36_x86_64; + break; +#endif +#ifdef OPT_NEON + case neon: + fr->cpu_opts.the_dct36 = INT123_dct36_neon; + break; +#endif +#ifdef OPT_NEON64 + case neon: + fr->cpu_opts.the_dct36 = INT123_dct36_neon64; + break; +#endif + default: + fr->cpu_opts.the_dct36 = INT123_dct36; + } +} + +#endif /* new DCT12 */ static void dct12(real *in,real *rawout1,real *rawout2,register const real *wi,register real *ts) diff --git a/src/libmpg123/lfs_wrap.c b/src/libmpg123/lfs_wrap.c index affb0de..9971422 100644 --- a/src/libmpg123/lfs_wrap.c +++ b/src/libmpg123/lfs_wrap.c @@ -32,7 +32,7 @@ #endif // For correct MPG123_EXPORT. -#include "abi_align.h" +#include "../common/abi_align.h" // Need the full header with non-portable API, for the bare mpg123_open*() // declarations. But no renaming shenanigans. @@ -40,15 +40,28 @@ #include "mpg123.h" #include "lfs_wrap.h" -#include "abi_align.h" -#include "compat.h" +#include "../common/abi_align.h" +#include "../compat/compat.h" #include #include +#ifndef OFF_MAX +#undef OFF_MIN +#if SIZEOF_OFF_T == 4 +#define OFF_MAX INT32_MAX +#define OFF_MIN INT32_MIN +#elif SIZEOF_OFF_T == 8 +#define OFF_MAX INT64_MAX +#define OFF_MIN INT64_MIN +#else +#error "Unexpected width of off_t." +#endif +#endif + // A paranoid check that someone did not define a wrong SIZEOF_OFF_T at configure time. typedef unsigned char MPG123_STATIC_ASSERT[(SIZEOF_OFF_T == sizeof(off_t)) ? 1 : -1]; -#include "debug.h" +#include "../common/debug.h" // We do not want to expose this publicly, but it is cleaner to have it also defined // as portable API to offer the legacy function wrapper over. It's an undocumented diff --git a/src/libmpg123/libmpg123.c b/src/libmpg123/libmpg123.c index 114787e..6792064 100644 --- a/src/libmpg123/libmpg123.c +++ b/src/libmpg123/libmpg123.c @@ -7,19 +7,19 @@ */ #include "mpg123lib_intern.h" -#include "version.h" +#include "../version.h" #include "icy2utf8.h" #include "gapless.h" /* Want accurate rounding function regardless of decoder setup. */ #define FORCE_ACCURATE -#include "sample.h" +#include "../common/sample.h" #include "parse.h" #ifndef PORTABLE_API #include "lfs_wrap.h" #endif -#include "debug.h" +#include "../common/debug.h" #define SEEKFRAME(mh) ((mh)->ignoreframe < 0 ? 0 : (mh)->ignoreframe) @@ -911,7 +911,8 @@ static void decode_the_frame(mpg123_handle *fr) if(fr->buffer.fill < needed_bytes) { if(VERBOSE2) - fprintf(stderr, "Note: broken frame %li, filling up with %"SIZE_P" zeroes, from %"SIZE_P"\n", (long)fr->num, (size_p)(needed_bytes-fr->buffer.fill), (size_p)fr->buffer.fill); + fprintf( stderr, "Note: broken frame %li, filling up with %zu zeroes, from %zu\n" + , (long)fr->num, (needed_bytes-fr->buffer.fill), fr->buffer.fill ); /* One could do a loop with individual samples instead... but zero is zero @@ -931,7 +932,7 @@ static void decode_the_frame(mpg123_handle *fr) else { if(NOQUIET) - error2("I got _more_ bytes than expected (%"SIZE_P" / %"SIZE_P"), that should not be possible!", (size_p)fr->buffer.fill, (size_p)needed_bytes); + error2("I got _more_ bytes than expected (%zu / %zu), that should not be possible!", fr->buffer.fill, needed_bytes); } } #endif diff --git a/src/libmpg123/mpg123lib_intern.h b/src/libmpg123/mpg123lib_intern.h index 8489711..2ca416d 100644 --- a/src/libmpg123/mpg123lib_intern.h +++ b/src/libmpg123/mpg123lib_intern.h @@ -15,9 +15,9 @@ #include "config.h" /* Load this before _anything_ */ -#include "abi_align.h" +#include "../common/abi_align.h" -#include "compat.h" +#include "../compat/compat.h" // Only portable API plays a role in the library itself, outside of lfs_wrap.c. // Also, we need to ensure no suffix renaming for the primary implementations. @@ -230,12 +230,6 @@ static inline int32_t scale_rounded(int32_t x, int shift) #endif -#ifndef REAL_IS_FIXED -# if (defined SIZEOF_INT32_T) && (SIZEOF_INT32_T != 4) -# error "Bad 32bit types!!!" -# endif -#endif - #ifndef DOUBLE_TO_REAL # define DOUBLE_TO_REAL(x) (real)(x) #endif @@ -284,7 +278,7 @@ static inline int32_t scale_rounded(int32_t x, int shift) now: factor on minimum frame buffer size (which takes upsampling into account) */ #define AUDIOBUFSIZE 2 -#include "true.h" +#include "../common/true.h" #define MAX_NAME_SIZE 81 #define SBLIMIT 32 diff --git a/src/libmpg123/ntom.c b/src/libmpg123/ntom.c index 1fb4c01..4d24ec2 100644 --- a/src/libmpg123/ntom.c +++ b/src/libmpg123/ntom.c @@ -8,7 +8,7 @@ #define SAFE_NTOM /* Do not depend on int64_t*int64_t with big values still being in the range... */ #include "mpg123lib_intern.h" -#include "debug.h" +#include "../common/debug.h" int INT123_synth_ntom_set_step(mpg123_handle *fr) { diff --git a/src/libmpg123/optimize.c b/src/libmpg123/optimize.c index 2478bef..00e43c1 100644 --- a/src/libmpg123/optimize.c +++ b/src/libmpg123/optimize.c @@ -12,7 +12,7 @@ #define WANT_GETCPUFLAGS #include "mpg123lib_intern.h" /* includes optimize.h */ #include "getcpuflags.h" -#include "debug.h" +#include "../common/debug.h" /* Ugly macros to build conditional synth function array values. */ @@ -160,8 +160,8 @@ static enum optdec sse_or_vintage(mpg123_handle *fr) enum optdec type; type = sse_vintage; # ifdef OPT_SSE -# ifdef OPT_MULTI - if(fr->cpu_opts.the_dct36 == INT123_dct36_sse) +# ifdef OPT_THE_DCT36 + if(INT123_dct36_match(fr, sse)) # endif type = sse; # endif @@ -192,7 +192,7 @@ static int find_dectype(mpg123_handle *fr) type = dreidnowext; # ifdef OPT_3DNOWEXT_VINTAGE # ifdef OPT_MULTI - if(fr->cpu_opts.the_dct36 == INT123_dct36_3dnowext) + if(INT123_dct36_match(fr, dreidnowext_vintage)) # endif type = dreidnowext_vintage; # endif @@ -210,7 +210,7 @@ static int find_dectype(mpg123_handle *fr) type = dreidnow; # ifdef OPT_3DNOW_VINTAGE # ifdef OPT_MULTI - if(fr->cpu_opts.the_dct36 == INT123_dct36_3dnow) + if(INT123_dct36_match(fr, dreidnow_vintage)) # endif type = dreidnow_vintage; # endif @@ -503,13 +503,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) #endif fr->cpu_opts.type = nodec; -#ifdef OPT_MULTI -#ifndef NO_LAYER3 -#if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64) - fr->cpu_opts.the_dct36 = INT123_dct36; -#endif -#endif -#endif /* covers any i386+ cpu; they actually differ only in the INT123_synth_1to1 function, mostly... */ #ifdef OPT_X86 if(cpu_i586(fr->cpu_flags)) @@ -523,11 +516,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = dn_sse; fr->cpu_opts.type = sse; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - /* if(cpu_fast_sse(fr->cpu_flags)) */ fr->cpu_opts.the_dct36 = INT123_dct36_sse; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_sse; # ifdef ACCURATE_ROUNDING @@ -590,11 +578,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = dn_dreidnowext_vintage; fr->cpu_opts.type = dreidnowext_vintage; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - fr->cpu_opts.the_dct36 = INT123_dct36_3dnowext; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_3dnowext; # endif @@ -619,11 +602,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = dn_dreidnow_vintage; fr->cpu_opts.type = dreidnow_vintage; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - fr->cpu_opts.the_dct36 = INT123_dct36_3dnow; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_3dnow; # endif @@ -723,11 +701,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = "x86-64 (AVX)"; fr->cpu_opts.type = avx; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - fr->cpu_opts.the_dct36 = INT123_dct36_avx; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_avx; fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_avx; @@ -749,11 +722,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = "x86-64 (SSE)"; fr->cpu_opts.type = x86_64; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - fr->cpu_opts.the_dct36 = INT123_dct36_x86_64; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_x86_64; fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_x86_64; @@ -796,11 +764,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = dn_neon; fr->cpu_opts.type = neon; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - fr->cpu_opts.the_dct36 = INT123_dct36_neon; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_neon; fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_neon; @@ -834,11 +797,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) { chosen = dn_neon64; fr->cpu_opts.type = neon64; -#ifdef OPT_MULTI -# ifndef NO_LAYER3 - fr->cpu_opts.the_dct36 = INT123_dct36_neon64; -# endif -#endif # ifndef NO_16BIT fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_neon64; fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_neon64; @@ -897,6 +855,10 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu) # endif # endif +#ifdef OPT_THE_DCT36 + INT123_dct36_choose(fr); +#endif + #ifdef OPT_DITHER if(done && dithered) { diff --git a/src/libmpg123/optimize.h b/src/libmpg123/optimize.h index 25df421..6c0c19c 100644 --- a/src/libmpg123/optimize.h +++ b/src/libmpg123/optimize.h @@ -364,19 +364,16 @@ extern const int INT123_costab_mmxsse[]; #endif #endif -/* - Now come two blocks of standard definitions for multi-decoder mode and single-decoder mode. - Most stuff is so automatic that it's indeed generated by some inline shell script. - Remember to use these scripts when possible, instead of direct repetitive hacking. -*/ - #ifdef OPT_MULTI # define defopt nodec +# ifndef NO_LAYER3 # if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64) +# define OPT_THE_DCT36 # define opt_dct36(fr) ((fr)->cpu_opts.the_dct36) # endif +# endif #endif /* OPT_MULTI else */ diff --git a/src/libmpg123/parse.c b/src/libmpg123/parse.c index 98a49eb..1a9d76c 100644 --- a/src/libmpg123/parse.c +++ b/src/libmpg123/parse.c @@ -30,7 +30,7 @@ #include "mpeghead.h" -#include "debug.h" +#include "../common/debug.h" #define bsbufid(fr) (fr)->bsbuf==(fr)->bsspace[0] ? 0 : ((fr)->bsbuf==fr->bsspace[1] ? 1 : ( (fr)->bsbuf==(fr)->bsspace[0]+512 ? 2 : ((fr)->bsbuf==fr->bsspace[1]+512 ? 3 : -1) ) ) diff --git a/src/libmpg123/readers.c b/src/libmpg123/readers.c index 0cf4aae..9a0831e 100644 --- a/src/libmpg123/readers.c +++ b/src/libmpg123/readers.c @@ -11,7 +11,7 @@ #include "mpg123lib_intern.h" -#include "debug.h" +#include "../common/debug.h" static int stream_init(mpg123_handle *fr); static int64_t get_fileinfo(mpg123_handle *); @@ -526,7 +526,7 @@ static struct buffy* bc_alloc(struct bufferchain *bc, size_t size) buf->next = NULL; /* That shall be set to a sensible value later. */ buf->size = 0; --bc->pool_fill; - debug2("bc_alloc: picked %p from pool (fill now %"SIZE_P")", (void*)buf, (size_p)bc->pool_fill); + debug2("bc_alloc: picked %p from pool (fill now %zu)", (void*)buf, bc->pool_fill); return buf; } else return buffy_new(size, bc->bufblock); diff --git a/src/libmpg123/stringbuf.c b/src/libmpg123/stringbuf.c index cc00878..590ee4a 100644 --- a/src/libmpg123/stringbuf.c +++ b/src/libmpg123/stringbuf.c @@ -10,9 +10,9 @@ #include "mpg123lib_intern.h" #include "config.h" #include "mpg123.h" -#include "compat.h" +#include "../compat/compat.h" #include -#include "debug.h" +#include "../common/debug.h" mpg123_string* attribute_align_arg mpg123_new_string(const char *val) { diff --git a/src/libmpg123/synth.c b/src/libmpg123/synth.c index e681700..2b22bbc 100644 --- a/src/libmpg123/synth.c +++ b/src/libmpg123/synth.c @@ -10,8 +10,8 @@ #ifdef OPT_GENERIC_DITHER #define FORCE_ACCURATE #endif -#include "sample.h" -#include "debug.h" +#include "../common/sample.h" +#include "../common/debug.h" /* Part 1: All synth functions that produce signed short. diff --git a/src/libmpg123/synth_8bit.c b/src/libmpg123/synth_8bit.c index 966aa17..ee7614d 100644 --- a/src/libmpg123/synth_8bit.c +++ b/src/libmpg123/synth_8bit.c @@ -7,8 +7,8 @@ */ #include "mpg123lib_intern.h" -#include "sample.h" -#include "debug.h" +#include "../common/sample.h" +#include "../common/debug.h" /* Part 2: All synth functions that produce 8bit output. diff --git a/src/libmpg123/synth_real.c b/src/libmpg123/synth_real.c index 703e4fa..cc8bd7d 100644 --- a/src/libmpg123/synth_real.c +++ b/src/libmpg123/synth_real.c @@ -7,8 +7,8 @@ */ #include "mpg123lib_intern.h" -#include "sample.h" -#include "debug.h" +#include "../common/sample.h" +#include "../common/debug.h" #ifdef REAL_IS_FIXED #error "Do not build this file with fixed point math!" diff --git a/src/libmpg123/synth_s32.c b/src/libmpg123/synth_s32.c index 4c99847..9380ac3 100644 --- a/src/libmpg123/synth_s32.c +++ b/src/libmpg123/synth_s32.c @@ -7,8 +7,8 @@ */ #include "mpg123lib_intern.h" -#include "sample.h" -#include "debug.h" +#include "../common/sample.h" +#include "../common/debug.h" #ifdef REAL_IS_FIXED #error "Do not build this file with fixed point math!" diff --git a/src/libmpg123/tabinit.c b/src/libmpg123/tabinit.c index 00da7c1..1a31f8a 100644 --- a/src/libmpg123/tabinit.c +++ b/src/libmpg123/tabinit.c @@ -7,7 +7,7 @@ */ #include "mpg123lib_intern.h" -#include "debug.h" +#include "../common/debug.h" // The (normally precomputed) cos tables. #include "costabs.h" diff --git a/src/libout123/Makemodule.am b/src/libout123/Makemodule.am index 09a0901..80b37f8 100644 --- a/src/libout123/Makemodule.am +++ b/src/libout123/Makemodule.am @@ -7,10 +7,8 @@ # For dynamic modules. if HAVE_MODULES -if BUILD_LIBOUT123_MODULES include src/libout123/modules/Makemodule.am endif -endif if NEED_MAINLIB if BUILD_LIBOUT123 @@ -20,7 +18,7 @@ if !HAVE_MODULES include src/libout123/modules/Makemodule.am endif -include_HEADERS += src/libout123/out123.h +include_HEADERS += src/include/out123.h noinst_LTLIBRARIES += src/libout123/libmodule.la @@ -30,7 +28,6 @@ endif endif src_libout123_libout123_la_SOURCES = \ - src/libout123/out123.h \ src/libout123/libout123.c \ src/libout123/stringlists.h \ src/libout123/stringlists.c \ diff --git a/src/libout123/buffer.c b/src/libout123/buffer.c index 7b563ff..f99cd2f 100644 --- a/src/libout123/buffer.c +++ b/src/libout123/buffer.c @@ -1,7 +1,7 @@ /* buffer.c: output buffer - copyright 1997-2015 by the mpg123 project - free software under the terms of the LGPL 2.1 + copyright 1997-2023 by the mpg123 project - free software under the terms of the LGPL 2.1 see COPYING and AUTHORS files in distribution or http://mpg123.org initially written by Oliver Fromme @@ -45,7 +45,7 @@ #endif #endif -#include "debug.h" +#include "../common/debug.h" #define BUF_CMD_OPEN XF_CMD_CUSTOM1 #define BUF_CMD_CLOSE XF_CMD_CUSTOM2 @@ -667,8 +667,8 @@ int buffer_loop(out123_handle *ao) if(mystate == play_live) { size_t bytes = INT123_xfermem_get_usedspace(xf); - debug4( "Play or preload? Got %"SIZE_P" B / %"SIZE_P" B (%i,%i)." - , (size_p)bytes, (size_p)preload_size(ao), preloading, draining ); + debug4( "Play or preload? Got %zu B / %zu B (%i,%i)." + , bytes, preload_size(ao), preloading, draining ); if(preloading) preloading = (bytes < preload_size(ao)); if(!preloading) @@ -860,8 +860,7 @@ int buffer_loop(out123_handle *ao) int success; blocksize = sizeof(*fmtlist)*fmtcount; - debug2("responding with %i formats (block: %"SIZE_P")" - , fmtcount, (size_p)blocksize); + debug2("responding with %i formats (block: %zu)", fmtcount, blocksize); INT123_xfermem_putcmd(my_fd, XF_CMD_OK); success = GOOD_WRITEVAL(my_fd, fmtcount) @@ -977,8 +976,7 @@ int buffer_loop(out123_handle *ao) mystate = ao->state; draining = FALSE; } - debug2( "buffer drained %"SIZE_P" / %"SIZE_P - , oldfill-bytes, limit ); + debug2("buffer drained %zu / %zu", oldfill-bytes, limit); } else debug("drain without playback ... not good"); diff --git a/src/libout123/buffer.h b/src/libout123/buffer.h index 4421593..3be4b71 100644 --- a/src/libout123/buffer.h +++ b/src/libout123/buffer.h @@ -17,7 +17,7 @@ #define _MPG123_BUFFER_H_ #include "out123_int.h" -#include "compat.h" +#include "../compat/compat.h" int INT123_buffer_init(out123_handle *ao, size_t bytes); void INT123_buffer_exit(out123_handle *ao); diff --git a/src/libout123/hextxt.c b/src/libout123/hextxt.c index 74f59e3..de7c58d 100644 --- a/src/libout123/hextxt.c +++ b/src/libout123/hextxt.c @@ -19,7 +19,7 @@ #include "out123_int.h" #include "hextxt.h" -#include "debug.h" +#include "../common/debug.h" int hex_formats(out123_handle *ao) { diff --git a/src/libout123/legacy_module.c b/src/libout123/legacy_module.c index 03354b4..5ae3aa1 100644 --- a/src/libout123/legacy_module.c +++ b/src/libout123/legacy_module.c @@ -7,7 +7,7 @@ */ #include "out123_int.h" -#include "debug.h" +#include "../common/debug.h" /* A single module is staticly compiled in for each type */ extern mpg123_module_t mpg123_output_module_info; diff --git a/src/libout123/libout123.c b/src/libout123/libout123.c index f8e9b19..44dd52b 100644 --- a/src/libout123/libout123.c +++ b/src/libout123/libout123.c @@ -32,7 +32,7 @@ #endif #endif -#include "version.h" +#include "../version.h" #include "wav.h" #include "hextxt.h" #ifndef NOXFERMEM @@ -44,7 +44,7 @@ static int have_buffer(out123_handle *ao) #endif #include "stringlists.h" -#include "debug.h" +#include "../common/debug.h" const char * attribute_align_arg out123_distversion(unsigned int *major, unsigned int *minor, unsigned int *patch) { @@ -234,7 +234,7 @@ static int out123_seterr(out123_handle *ao, enum out123_error errcode) int attribute_align_arg out123_set_buffer(out123_handle *ao, size_t buffer_bytes) { - debug2("out123_set_buffer(%p, %"SIZE_P")", (void*)ao, (size_p)buffer_bytes); + debug2("out123_set_buffer(%p, %zu)", (void*)ao, buffer_bytes); if(!ao) return OUT123_ERR; ao->errcode = 0; @@ -679,8 +679,8 @@ out123_play(out123_handle *ao, void *bytes, size_t count) size_t sum = 0; int written; - debug5( "[%ld]out123_play(%p, %p, %"SIZE_P") (%i)", (long)getpid() - , (void*)ao, bytes, (size_p)count, ao ? (int)ao->state : -1 ); + debug5( "[%ld]out123_play(%p, %p, %zu) (%i)", (long)getpid() + , (void*)ao, bytes, count, ao ? (int)ao->state : -1 ); if(!ao) return 0; ao->errcode = 0; @@ -748,8 +748,8 @@ out123_play(out123_handle *ao, void *bytes, size_t count) } } while(count && ao->flags & OUT123_KEEP_PLAYING); } - debug3( "out123_play(%p, %p, ...) = %"SIZE_P - , (void*)ao, bytes, (size_p)sum ); + debug3( "out123_play(%p, %p, ...) = %zu" + , (void*)ao, bytes, sum ); return sum; } @@ -800,7 +800,7 @@ void attribute_align_arg out123_drain(out123_handle *ao) void attribute_align_arg out123_ndrain(out123_handle *ao, size_t bytes) { - debug3("[%ld]out123_ndrain(%p, %"SIZE_P")", (long)getpid(), (void*)ao, (size_p)bytes); + debug3("[%ld]out123_ndrain(%p, %zu)", (long)getpid(), (void*)ao, bytes); if(!ao) return; ao->errcode = 0; @@ -1507,7 +1507,7 @@ size_t attribute_align_arg out123_buffered(out123_handle *ao) if(have_buffer(ao)) { size_t fill = INT123_buffer_fill(ao); - debug2("out123_buffered(%p) = %"SIZE_P, (void*)ao, (size_p)fill); + debug2("out123_buffered(%p) = %zu", (void*)ao, fill); return fill; } else diff --git a/src/libout123/module.c b/src/libout123/module.c index 7ede2d3..7fae87a 100644 --- a/src/libout123/module.c +++ b/src/libout123/module.c @@ -11,11 +11,11 @@ #define _BSD_SOURCE #include "config.h" #include "stringlists.h" -#include "compat.h" +#include "../compat/compat.h" #include #include "module.h" -#include "debug.h" +#include "../common/debug.h" #ifndef USE_MODULES #error This is a build without modules. Why am I here? diff --git a/src/libout123/modules/Makemodule.am b/src/libout123/modules/Makemodule.am index d0cd902..4d87308 100644 --- a/src/libout123/modules/Makemodule.am +++ b/src/libout123/modules/Makemodule.am @@ -33,10 +33,12 @@ MODULE_CFLAGS= -shared #pulse sdl sndio sun win32 win32_wasapi aix alib arts hp os2 \ #sgi mint openal \ #| tr ' ' '\n' | -#perl -ne 'chomp; $big = uc($_); print < #include @@ -23,7 +23,7 @@ #include #include -#include "debug.h" +#include "../../common/debug.h" /* use AUDIO_BSIZE to set the msec for audio buffering in Ultimedia library */ diff --git a/src/libout123/modules/alib.c b/src/libout123/modules/alib.c index c16872e..63f7395 100644 --- a/src/libout123/modules/alib.c +++ b/src/libout123/modules/alib.c @@ -30,7 +30,7 @@ /**************************************************************************/ -#include "out123_int.h" +#include "../out123_int.h" #include @@ -44,7 +44,7 @@ #include /* /opt/audio/include */ #include /* /opt/audio/include */ -#include "debug.h" +#include "../../common/debug.h" /**************************************************************************/ diff --git a/src/libout123/modules/alsa.c b/src/libout123/modules/alsa.c index b76cada..11d172a 100644 --- a/src/libout123/modules/alsa.c +++ b/src/libout123/modules/alsa.c @@ -17,7 +17,7 @@ /* Things are still missing if _DEFAULT_SOURCE is not defined (for recent glibc, I presume. */ #define _DEFAULT_SOURCE -#include "out123_int.h" +#include "../out123_int.h" #include /* make ALSA 0.9.x compatible to the 1.0.x API */ @@ -27,7 +27,7 @@ #include /* GCC complains about missing declaration of alloca. */ #include -#include "debug.h" +#include "../../common/debug.h" /* Total buffer size in seconds, 0.2 is more true to what ALSA maximally uses here (8192 samples). The earlier default of 0.5 was never true. */ diff --git a/src/libout123/modules/arts.c b/src/libout123/modules/arts.c index 4b5b7e1..3d3b016 100644 --- a/src/libout123/modules/arts.c +++ b/src/libout123/modules/arts.c @@ -8,9 +8,9 @@ */ -#include "out123_int.h" +#include "../out123_int.h" #include -#include "debug.h" +#include "../../common/debug.h" typedef struct { diff --git a/src/libout123/modules/coreaudio.c b/src/libout123/modules/coreaudio.c index 48ab495..a428681 100644 --- a/src/libout123/modules/coreaudio.c +++ b/src/libout123/modules/coreaudio.c @@ -9,7 +9,7 @@ */ -#include "out123_int.h" +#include "../out123_int.h" /* has been around since at least 10.4 */ #include @@ -44,9 +44,9 @@ /* Including the sfifo code locally, to avoid module linkage issues. */ #define SFIFO_STATIC -#include "sfifo.c" +#include "../sfifo.c" -#include "debug.h" +#include "../../common/debug.h" /* Duration of the ring buffer in seconds. Is that all that there is to tunable latency? diff --git a/src/libout123/modules/dummy.c b/src/libout123/modules/dummy.c index a98faa7..8cc3ce5 100644 --- a/src/libout123/modules/dummy.c +++ b/src/libout123/modules/dummy.c @@ -5,8 +5,8 @@ see COPYING and AUTHORS files in distribution or http://mpg123.org */ -#include "out123_int.h" -#include "debug.h" +#include "../out123_int.h" +#include "../../common/debug.h" static int open_dummy(out123_handle *ao) { diff --git a/src/libout123/modules/esd.c b/src/libout123/modules/esd.c index 7ce2102..424a4de 100644 --- a/src/libout123/modules/esd.c +++ b/src/libout123/modules/esd.c @@ -8,7 +8,7 @@ /* First the common header, including config.h ...this is important for stuff like _FILE_OFFSET_BITS */ -#include "out123_int.h" +#include "../out123_int.h" #include #include @@ -22,7 +22,7 @@ #include #include #endif -#include "debug.h" +#include "../../common/debug.h" static unsigned esd_rate = 0, esd_format = 0, esd_channels = 0; @@ -162,7 +162,7 @@ mpg123_module_t mpg123_output_module_info = { /* api_version */ MPG123_MODULE_API_VERSION, /* name */ "esd", /* description */ "Output audio using ESounD (The Enlightened Sound Daemon).", - /* revision */ "$Rev: 3915 $", + /* revision */ "$Rev: 5386 $", /* handle */ NULL, /* init_output */ init_esound, diff --git a/src/libout123/modules/hp.c b/src/libout123/modules/hp.c index 255b198..464dfda 100644 --- a/src/libout123/modules/hp.c +++ b/src/libout123/modules/hp.c @@ -6,10 +6,10 @@ initially written by Michael Hipp */ -#include "out123_int.h" +#include "../out123_int.h" #include #include -#include "debug.h" +#include "../../common/debug.h" static int set_rate(out123_handle *ao) diff --git a/src/libout123/modules/jack.c b/src/libout123/modules/jack.c index 57d51c3..9616cea 100644 --- a/src/libout123/modules/jack.c +++ b/src/libout123/modules/jack.c @@ -1,7 +1,7 @@ /* jack: audio output via JACK Audio Connection Kit - copyright 2006-2016 by the mpg123 project - free software under the terms of the LGPL 2.1 + copyright 2006-2023 by the mpg123 project - free software under the terms of the LGPL 2.1 see COPYING and AUTHORS files in distribution or http://mpg123.org initially written by Nicholas J. Humfrey @@ -14,7 +14,7 @@ There's always a deadlock. --ThOr */ -#include "out123_int.h" +#include "../out123_int.h" #include @@ -26,7 +26,7 @@ #include #include -#include "debug.h" +#include "../../common/debug.h" typedef struct { int alive; @@ -147,8 +147,7 @@ static int process_callback( jack_nframes_t nframes, void *arg ) got_piece = jack_ringbuffer_read( handle->rb , handle->procbuf, (avail_piece > piece ? piece : avail_piece) * handle->framesize ) / handle->framesize; - debug2( "fetched %"SIZE_P" frames from ringbuffer (wanted %"SIZE_P")" - , (size_p)got_piece, (size_p)piece ); + debug2("fetched %zu frames from ringbuffer (wanted %zu)", got_piece, piece); /* If this is the last piece, fill up, not time to wait. */ if(to_read > piece) piece = got_piece; /* We got further loop cycle(s) to get the rest. */ @@ -326,7 +325,7 @@ static int connect_jack_ports(out123_handle *ao for(c=0;calive && handle->rb && jack_ringbuffer_write_space(handle->rb)+1 < handle->rb_size ) { - debug2( "JACK close wait %"SIZE_P" < %"SIZE_P"\n" - , (size_p)jack_ringbuffer_write_space(handle->rb) - , (size_p)handle->rb_size ); + debug2( "JACK close wait %zu < %zu\n" + , jack_ringbuffer_write_space(handle->rb) + , handle->rb_size ); sem_wait(&handle->sem); } } @@ -486,7 +485,7 @@ static int open_jack(out123_handle *ao) handle->procbuf_frames = jack_get_buffer_size(handle->client); if(handle->rb_size < 2*handle->procbuf_frames) handle->rb_size = 2*handle->procbuf_frames; - debug1("JACK ringbuffer for %"SIZE_P" PCM frames", (size_p)handle->rb_size); + debug1("JACK ringbuffer for %zu PCM frames", handle->rb_size); /* Convert to bytes. */ handle->rb_size *= handle->framesize; handle->rb = jack_ringbuffer_create(handle->rb_size); @@ -553,7 +552,7 @@ static int write_jack(out123_handle *ao, unsigned char *buf, int len) debug("writing to ringbuffer"); /* No help: piece1 = jack_ringbuffer_write_space(handle->rb); */ piece = jack_ringbuffer_write(handle->rb, (char*)buf, bytes_left); - debug1("wrote %"SIZE_P" B", (size_p)piece); + debug1("wrote %zu B", piece); buf += piece; bytes_left -= piece; /* Allow nothing being written some times, but not too often. diff --git a/src/libout123/modules/mint.c b/src/libout123/modules/mint.c index dbcf0c4..e8cf191 100644 --- a/src/libout123/modules/mint.c +++ b/src/libout123/modules/mint.c @@ -6,13 +6,13 @@ initially written by Petr Stehlik */ -#include "out123_int.h" +#include "../out123_int.h" /* derived from LINUX, VOXWARE and SUN for MiNT Audio Device by Petr Stehlik */ #include #include #include -#include "debug.h" +#include "../../common/debug.h" /* Globals */ /* extern int outburst; */ diff --git a/src/libout123/modules/nas.c b/src/libout123/modules/nas.c index 2e29723..0b5737c 100644 --- a/src/libout123/modules/nas.c +++ b/src/libout123/modules/nas.c @@ -6,11 +6,11 @@ initially written by Martin Denn */ -#include "out123_int.h" +#include "../out123_int.h" #include #include