diff --git a/config.h.in b/config.h.in index dd3b02c..a062b23 100644 --- a/config.h.in +++ b/config.h.in @@ -21,5 +21,11 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Define to 1 to enable pulseaudio support */ +#undef USE_PULSEAUDIO + +/* Define to 1 to enable sndfile support */ +#undef USE_SNDFILE + /* Version number of package */ #undef VERSION diff --git a/configure b/configure index 9c4e720..d81d446 100755 --- a/configure +++ b/configure @@ -656,6 +656,8 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking +with_pulseaudio +with_sndfile ' ac_precious_vars='build_alias host_alias @@ -1289,6 +1291,12 @@ Optional Features: --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --without-pulseaudio build without pulseaudio support + --without-sndfile build without sndfile support + Some influential environment variables: CC C compiler command CFLAGS C compiler flags @@ -3276,6 +3284,54 @@ fi # AC_PROG_RANLIB + +# Configure dependency libs + +# fftw3f +deps_packages+=" fftw3f" + +# pulseaudio + +# Check whether --with-pulseaudio was given. +if test "${with_pulseaudio+set}" = set; then : + withval=$with_pulseaudio; +fi + +if test "x$with_pulseaudio" == "xno"; then : + # then + use_pulseaudio=0 +else + # else + use_pulseaudio=1 + deps_packages+=" libpulse-simple" +fi + +cat >>confdefs.h <<_ACEOF +#define USE_PULSEAUDIO $use_pulseaudio +_ACEOF + + +# sndfile + +# Check whether --with-sndfile was given. +if test "${with_sndfile+set}" = set; then : + withval=$with_sndfile; +fi + +if test "x$with_sndfile" == "xno"; then : + # then + use_sndfile=0 +else + # else + use_sndfile=1 + deps_packages+=" sndfile" +fi + +cat >>confdefs.h <<_ACEOF +#define USE_SNDFILE $use_sndfile +_ACEOF + + # Checks for libraries. @@ -3406,24 +3462,12 @@ if test -n "$DEPS_CFLAGS"; then pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" - libpulse-simple - sndfile - fftw3f - \""; } >&5 - ($PKG_CONFIG --exists --print-errors " - libpulse-simple - sndfile - fftw3f - ") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" \$deps_packages \""; } >&5 + ($PKG_CONFIG --exists --print-errors " $deps_packages ") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags " - libpulse-simple - sndfile - fftw3f - " 2>/dev/null` + pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags " $deps_packages " 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -3435,24 +3479,12 @@ if test -n "$DEPS_LIBS"; then pkg_cv_DEPS_LIBS="$DEPS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" - libpulse-simple - sndfile - fftw3f - \""; } >&5 - ($PKG_CONFIG --exists --print-errors " - libpulse-simple - sndfile - fftw3f - ") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" \$deps_packages \""; } >&5 + ($PKG_CONFIG --exists --print-errors " $deps_packages ") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs " - libpulse-simple - sndfile - fftw3f - " 2>/dev/null` + pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs " $deps_packages " 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -3473,26 +3505,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " - libpulse-simple - sndfile - fftw3f - " 2>&1` + DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " $deps_packages " 2>&1` else - DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " - libpulse-simple - sndfile - fftw3f - " 2>&1` + DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " $deps_packages " 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DEPS_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements ( - libpulse-simple - sndfile - fftw3f - ) were not met: + as_fn_error $? "Package requirements ( $deps_packages ) were not met: $DEPS_PKG_ERRORS @@ -3527,6 +3547,7 @@ fi + # Checks for header files. # AC_CHECK_HEADERS([stdlib.h string.h unistd.h]) @@ -5002,3 +5023,14 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: minimodem 0.8.1 configuration summary: + --with-pulseaudio $with_pulseaudio ($use_pulseaudio) + --with-sndfile $with_sndfile ($use_sndfile) + deps_packages: $deps_packages +" >&5 +$as_echo "minimodem 0.8.1 configuration summary: + --with-pulseaudio $with_pulseaudio ($use_pulseaudio) + --with-sndfile $with_sndfile ($use_sndfile) + deps_packages: $deps_packages +" >&6; } diff --git a/configure.ac b/configure.ac index 85eb431..20a1a18 100644 --- a/configure.ac +++ b/configure.ac @@ -27,12 +27,39 @@ AC_CONFIG_MACRO_DIR([m4]) AC_PROG_CC # AC_PROG_RANLIB + +# Configure dependency libs + +# fftw3f +deps_packages+=" fftw3f" + +# pulseaudio +AC_ARG_WITH([pulseaudio], + AS_HELP_STRING([--without-pulseaudio], [build without pulseaudio support])) +AS_IF([test "x$with_pulseaudio" == "xno"], + # then + use_pulseaudio=0, + # else + use_pulseaudio=1 + deps_packages+=" libpulse-simple") +AC_DEFINE_UNQUOTED(USE_PULSEAUDIO, $use_pulseaudio, + [Define to 1 to enable pulseaudio support]) + +# sndfile +AC_ARG_WITH([sndfile], + AS_HELP_STRING([--without-sndfile], [build without sndfile support])) +AS_IF([test "x$with_sndfile" == "xno"], + # then + use_sndfile=0, + # else + use_sndfile=1 + deps_packages+=" sndfile") +AC_DEFINE_UNQUOTED(USE_SNDFILE, $use_sndfile, + [Define to 1 to enable sndfile support]) + # Checks for libraries. -PKG_CHECK_MODULES(DEPS, [ - libpulse-simple - sndfile - fftw3f - ]) +PKG_CHECK_MODULES(DEPS, [ $deps_packages ]) + AC_SUBST(DEPS_CFLAGS) AC_SUBST(DEPS_LIBS) @@ -53,3 +80,9 @@ AC_CONFIG_FILES([ ]) # testdata/Makefile AC_OUTPUT + +AC_MSG_RESULT([PKG_NAME PKG_VERSION configuration summary: + --with-pulseaudio $with_pulseaudio ($use_pulseaudio) + --with-sndfile $with_sndfile ($use_sndfile) + deps_packages: $deps_packages +]) diff --git a/src/minimodem.c b/src/minimodem.c index 9bf8ec9..9a7964b 100644 --- a/src/minimodem.c +++ b/src/minimodem.c @@ -372,6 +372,21 @@ main( int argc, char*argv[] ) if ( TX_mode == -1 ) TX_mode = 0; +#if !(USE_PULSEAUDIO || USE_SNDFILE) +#error At least one of {USE_PULSEAUDIO,USE_SNDFILE} must be enabled +#endif + if ( filename ) { +#if !USE_SNDFILE + fprintf(stderr, "E: This build of minimodem was configured without sndfile,\nE: so the --file flag is not supported.\n"); + exit(1); +#endif + } else { +#if !USE_PULSEAUDIO + fprintf(stderr, "E: this build of minimodem was configured without pulseaudio,\nE: so only the --file mode is supported.\n"); + exit(1); +#endif + } + #if 0 if (optind < argc) { printf("non-option ARGV-elements: "); @@ -474,14 +489,18 @@ main( int argc, char*argv[] ) if ( filename ) { tx_interactive = 0; +#if USE_SNDFILE sa_out = simpleaudio_open_stream_sndfile(SA_STREAM_PLAYBACK, filename); +#endif if ( ! sa_out ) return 1; } +#if USE_PULSEAUDIO if ( ! sa_out ) sa_out = simpleaudio_open_stream_pulseaudio(SA_STREAM_PLAYBACK, program_name, "output audio"); +#endif if ( ! sa_out ) return 1; @@ -501,13 +520,17 @@ main( int argc, char*argv[] ) */ simpleaudio *sa = NULL; if ( filename ) { +#if USE_SNDFILE sa = simpleaudio_open_stream_sndfile(SA_STREAM_RECORD, filename); +#endif if ( ! sa ) return 1; } +#if USE_PULSEAUDIO if ( ! sa ) sa = simpleaudio_open_stream_pulseaudio(SA_STREAM_RECORD, program_name, "input audio"); +#endif if ( !sa ) return 1; diff --git a/src/simpleaudio-pulse.c b/src/simpleaudio-pulse.c index 243cb4f..00d9cf4 100644 --- a/src/simpleaudio-pulse.c +++ b/src/simpleaudio-pulse.c @@ -17,6 +17,11 @@ * along with this program. If not, see . */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#if USE_PULSEAUDIO #include #include @@ -142,3 +147,4 @@ simpleaudio_open_stream_pulseaudio( return sa; } +#endif /* USE_PULSEAUDIO */ diff --git a/src/simpleaudio-sndfile.c b/src/simpleaudio-sndfile.c index 7316ebf..c9487ad 100644 --- a/src/simpleaudio-sndfile.c +++ b/src/simpleaudio-sndfile.c @@ -17,6 +17,11 @@ * along with this program. If not, see . */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#if USE_SNDFILE #include #include @@ -168,3 +173,4 @@ simpleaudio_open_stream_sndfile( return sa; } +#endif /* USE_SNDFILE */