From 21dae611a48cc23c3d093877148b82591596f6b3 Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Tue, 9 Nov 2021 09:55:56 +0000 Subject: [PATCH 1/2] Backward compatible support for PA15 - config.h is now search for under PULSE_DIR - Location of config.h can be specified explicitly with PULSE_CONFIG_DIR - Extra warning if PULSE_DIR appears to be invalid --- configure.ac | 36 ++++++++++++++++++++++++++++++++++++ src/Makefile.am | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f4bf72d..78793cf 100644 --- a/configure.ac +++ b/configure.ac @@ -20,6 +20,16 @@ fi m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +dnl ------------------------------------------------------------------ +dnl FIND_CONFIG_H(TOP_DIRECTORY) +dnl Find the config.h file under TOP_DIRECTORY +dnl +dnl Outputs the enclosing directory. Only the first match is returned. +dnl ------------------------------------------------------------------ +m4_define([FIND_CONFIG_H], + [find $1 -type f -maxdepth 3 -type f -name config.h | \ + sed -e 's#/config.h##' -e '2,$d']) + # get system's pulseaudio version m4_define([pa_major], [`$PKG_CONFIG --modversion libpulse | cut -d. -f1`]) m4_define([pa_minor], [`$PKG_CONFIG --modversion libpulse | cut -d. -f2`]) @@ -52,6 +62,7 @@ PKG_CHECK_MODULES([LIBPULSE], [libpulse]) m4_define([PULSE_MSG], [PULSE_DIR not specified. Follow the instructions in README.md.]) +# Check PULSE_DIR is specified AC_ARG_VAR([PULSE_DIR], [pulseaudio source code directory]) AS_IF([test x"$PULSE_DIR" == x""], cat <<__MSG__ @@ -60,6 +71,31 @@ __MSG__ AC_MSG_ERROR([PULSE_DIR not specified]) ) +# Does PULSE_DIR appear to be valid? +AS_IF([test -e "$PULSE_DIR/src/pulsecore/macro.h"],, + AC_MSG_WARN([PULSE_DIR may not be valid - can't find expected file])) + +# Look for config.h, using PULSE_CONFIG_DIR if specified +AC_ARG_VAR([PULSE_CONFIG_DIR], [pulseaudio config.h source code directory (optional)]) +AS_IF([test x"$PULSE_CONFIG_DIR" == x""], + AC_MSG_NOTICE([PULSE_CONFIG_DIR not defined]) + AC_MSG_CHECKING([Searching for config.h under PULSE_DIR]) + PULSE_CONFIG_DIR="`FIND_CONFIG_H(\"$PULSE_DIR\")`" + [AS_IF([test -e "$PULSE_CONFIG_DIR/config.h" ], + AC_MSG_RESULT([$PULSE_CONFIG_DIR/config.h]) + , + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Can't find config.h under PULSE_DIR. Define PULSE_CONFIG_DIR?]))] + , + AC_MSG_NOTICE([PULSE_CONFIG_DIR is defined]) + AC_MSG_CHECKING([Looking for config.h in PULSE_CONFIG_DIR]) + [AS_IF([test -e "$PULSE_CONFIG_DIR/config.h"], + AC_MSG_RESULT([$PULSE_CONFIG_DIR/config.h]) + , + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Can't find config.h in PULSE_CONFIG_DIR.]))]) + + # use the prefix as same as pulseaudio AC_PREFIX_PROGRAM(pulseaudio) diff --git a/src/Makefile.am b/src/Makefile.am index 9a82e18..b3692b9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,6 @@ AM_CFLAGS = -O2 \ -fPIC \ - -I $(PULSE_DIR) \ + -I $(PULSE_CONFIG_DIR) \ -I $(PULSE_DIR)/src \ $(XRDP_CFLAGS) From c4a4e89be24fb351d71bef758a92e04178989c53 Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Wed, 10 Nov 2021 11:21:07 +0000 Subject: [PATCH 2/2] Support Meson in Ubuntu build scripts --- scripts/install_pulseaudio_sources_apt.sh | 40 ++++++++++++++++------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/scripts/install_pulseaudio_sources_apt.sh b/scripts/install_pulseaudio_sources_apt.sh index c5cf024..8daef48 100755 --- a/scripts/install_pulseaudio_sources_apt.sh +++ b/scripts/install_pulseaudio_sources_apt.sh @@ -50,7 +50,7 @@ while [ $# -gt 0 ]; do esac done -if [ ! -d $PULSE_DIR ]; then +if [ ! -d "$PULSE_DIR" ]; then # Operating system release ? RELEASE="$(lsb_release -si)-$(lsb_release -sr)" echo "Building for : $RELEASE" @@ -70,25 +70,41 @@ if [ ! -d $PULSE_DIR ]; then ;; esac - cd $(dirname $PULSE_DIR) + cd "$(dirname $PULSE_DIR)" apt-get source pulseaudio - pulse_dir=$(find . -maxdepth 1 -name pulseaudio-[0-9]\*) - if [[ -z $pulse_dir ]]; then - echo "** Can't find pulse dir in $(ls)" >&2 + build_dir="$(find . -maxdepth 1 -name pulseaudio-[0-9]\*)" + if [ -z "$build_dir" ]; then + echo "** Can't find build directory in $(ls)" >&2 exit 1 fi - cd $pulse_dir - ./configure + cd "$build_dir" + if [ -x ./configure ]; then + # This version of PA uses autotools to build + # This command creates ./config.h + ./configure + elif [ -f ./meson.build ]; then + # Meson only + rm -rf build + # This command creates ./build/config.h + meson build + else + echo "** Unable to configure pulseaudio from files in $(pwd)" >&2 + false + fi - # We only need the src/ directory and config.h echo "- Removing unnecessary files" - find . -mindepth 1 -maxdepth 1 -name src -o -name config.h -o -exec rm -rf {} + - - echo "- Renaming $(pwd)/$pulse_dir as $PULSE_DIR" + # We only need .h files... + find . -type f \! -name \*.h -delete + # .. in src/ and /build directories + find . -mindepth 1 -maxdepth 1 \ + -name src -o -name build -o -name config.h \ + -o -exec rm -rf {} + + + echo "- Renaming $(pwd)/$build_dir as $PULSE_DIR" cd .. - mv $pulse_dir $PULSE_DIR + mv "$build_dir" "$PULSE_DIR" fi exit 0