[Python-checkins] bpo-45573: check for ossaudiodev in configure (GH-29614)

tiran webhook-mailer at python.org
Thu Nov 18 04:56:46 EST 2021


https://github.com/python/cpython/commit/5275e59c0c1b26226608e6c7c2548c26192d6575
commit: 5275e59c0c1b26226608e6c7c2548c26192d6575
branch: main
author: Christian Heimes <christian at python.org>
committer: tiran <christian at python.org>
date: 2021-11-18T10:56:26+01:00
summary:

bpo-45573: check for ossaudiodev in configure (GH-29614)

files:
M configure
M configure.ac
M pyconfig.h.in
M setup.py

diff --git a/configure b/configure
index ab5afbf0b8aef..f8987128a01cf 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 43c8f768c18f8..78b22d531b943 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 cbab59b739f31..b8f63955e3139 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -679,6 +679,9 @@
 /* Define to 1 if you have the <linux/random.h> header file. */
 #undef HAVE_LINUX_RANDOM_H
 
+/* Define to 1 if you have the <linux/soundcard.h> header file. */
+#undef HAVE_LINUX_SOUNDCARD_H
+
 /* Define to 1 if you have the <linux/tipc.h> header file. */
 #undef HAVE_LINUX_TIPC_H
 
@@ -1217,6 +1220,9 @@
 /* Define to 1 if you have the <sys/socket.h> header file. */
 #undef HAVE_SYS_SOCKET_H
 
+/* Define to 1 if you have the <sys/soundcard.h> header file. */
+#undef HAVE_SYS_SOUNDCARD_H
+
 /* Define to 1 if you have the <sys/statvfs.h> header file. */
 #undef HAVE_SYS_STATVFS_H
 
diff --git a/setup.py b/setup.py
index 8b9566e26bffd..a09cf18213f98 100644
--- a/setup.py
+++ b/setup.py
@@ -1485,11 +1485,8 @@ def detect_platform_specific_exts(self):
         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'],



More information about the Python-checkins mailing list