diff --git a/configure b/configure index ab5afbf0b8a..f8987128a01 100755 --- a/configure +++ b/configure @@ -630,6 +630,8 @@ MODULE__ELEMENTTREE_FALSE MODULE__ELEMENTTREE_TRUE MODULE_PYEXPAT_FALSE MODULE_PYEXPAT_TRUE +MODULE_OSSAUDIODEV_FALSE +MODULE_OSSAUDIODEV_TRUE TEST_MODULES LIBRARY_DEPS STATIC_LIBPYTHON @@ -8150,7 +8152,7 @@ sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \ linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \ sys/endian.h sys/sysmacros.h linux/memfd.h linux/wait.h sys/memfd.h \ -sys/mman.h sys/eventfd.h +sys/mman.h sys/eventfd.h linux/soundcard.h sys/soundcard.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -19227,6 +19229,57 @@ MODULE_BLOCK= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module ossaudiodev" >&5 +$as_echo_n "checking for stdlib extension module ossaudiodev... " >&6; } + case $py_stdlib_not_available in #( + *ossaudiodev*) : + py_cv_module_ossaudiodev=n/a ;; #( + *) : + + if true; then : + if test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes; then : + py_cv_module_ossaudiodev=yes +else + py_cv_module_ossaudiodev=missing +fi +else + py_cv_module_ossaudiodev=disabled + +fi + + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV=$py_cv_module_ossaudiodev$as_nl" + if test "x$py_cv_module_ossaudiodev" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_LDFLAGS=$as_nl" + if true; then + MODULE_OSSAUDIODEV_TRUE= + MODULE_OSSAUDIODEV_FALSE='#' +else + MODULE_OSSAUDIODEV_TRUE='#' + MODULE_OSSAUDIODEV_FALSE= +fi + + +else + + if false; then + MODULE_OSSAUDIODEV_TRUE= + MODULE_OSSAUDIODEV_FALSE='#' +else + MODULE_OSSAUDIODEV_TRUE='#' + MODULE_OSSAUDIODEV_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_ossaudiodev" >&5 +$as_echo "$py_cv_module_ossaudiodev" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module pyexpat" >&5 $as_echo_n "checking for stdlib extension module pyexpat... " >&6; } case $py_stdlib_not_available in #( @@ -19496,6 +19549,14 @@ LTLIBOBJS=$ac_ltlibobjs +if test -z "${MODULE_OSSAUDIODEV_TRUE}" && test -z "${MODULE_OSSAUDIODEV_FALSE}"; then + as_fn_error $? "conditional \"MODULE_OSSAUDIODEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_OSSAUDIODEV_TRUE}" && test -z "${MODULE_OSSAUDIODEV_FALSE}"; then + as_fn_error $? "conditional \"MODULE_OSSAUDIODEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MODULE_PYEXPAT_TRUE}" && test -z "${MODULE_PYEXPAT_FALSE}"; then as_fn_error $? "conditional \"MODULE_PYEXPAT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/configure.ac b/configure.ac index 43c8f768c18..78b22d531b9 100644 --- a/configure.ac +++ b/configure.ac @@ -2162,7 +2162,7 @@ sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \ linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \ sys/endian.h sys/sysmacros.h linux/memfd.h linux/wait.h sys/memfd.h \ -sys/mman.h sys/eventfd.h) +sys/mman.h sys/eventfd.h linux/soundcard.h sys/soundcard.h) AC_HEADER_DIRENT AC_HEADER_MAJOR @@ -5990,6 +5990,10 @@ AC_DEFUN([PY_STDLIB_MOD], [ m4_popdef([modstate])dnl ]) +dnl platform specific extensions +PY_STDLIB_MOD([ossaudiodev], + [], [test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes]) + dnl _elementtree loads libexpat via CAPI hook in pyexpat PY_STDLIB_MOD([pyexpat], [], [], [$LIBEXPAT_CFLAGS], [$LIBEXPAT_LDFLAGS]) PY_STDLIB_MOD([_elementtree], [], [], [$LIBEXPAT_CFLAGS], []) diff --git a/pyconfig.h.in b/pyconfig.h.in index cbab59b739f..b8f63955e31 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -679,6 +679,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_RANDOM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_SOUNDCARD_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_TIPC_H @@ -1217,6 +1220,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOUNDCARD_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATVFS_H diff --git a/setup.py b/setup.py index 8b9566e26bf..a09cf18213f 100644 --- a/setup.py +++ b/setup.py @@ -1485,11 +1485,8 @@ class PyBuildExt(build_ext): else: self.missing.extend(['resource', 'termios']) - # Platform-specific libraries - if HOST_PLATFORM.startswith(('linux', 'freebsd', 'gnukfreebsd')): - self.add(Extension('ossaudiodev', ['ossaudiodev.c'])) - elif not AIX: - self.missing.append('ossaudiodev') + # linux/soundcard.h or sys/soundcard.h + self.addext(Extension('ossaudiodev', ['ossaudiodev.c'])) if MACOS: self.add(Extension('_scproxy', ['_scproxy.c'],