From 67caeb6e3cda44205ba8fe783274b20dc7ea216e Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 9 Aug 2023 12:00:02 +1000 Subject: Use opusfile instead of working directly with ogg and opus --- lib/opusfile/configure.ac | 210 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 lib/opusfile/configure.ac (limited to 'lib/opusfile/configure.ac') diff --git a/lib/opusfile/configure.ac b/lib/opusfile/configure.ac new file mode 100644 index 00000000..ca47d68a --- /dev/null +++ b/lib/opusfile/configure.ac @@ -0,0 +1,210 @@ +# autoconf source script for generating configure + +dnl The package_version file will be automatically synced to the git revision +dnl by the update_version script when configured in the repository, but will +dnl remain constant in tarball releases unless it is manually edited. +m4_define([CURRENT_VERSION], + m4_esyscmd([ ./update_version 2>/dev/null || true + if test -e package_version; then + . ./package_version + printf "$PACKAGE_VERSION" + else + printf "unknown" + fi ])) + +AC_INIT([opusfile],[CURRENT_VERSION],[opus@xiph.org]) +AC_CONFIG_SRCDIR([src/opusfile.c]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE + +AM_INIT_AUTOMAKE([1.11 foreign no-define dist-zip subdir-objects]) +AM_MAINTAINER_MODE([enable]) +LT_INIT + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +dnl Library versioning for libtool. +dnl Please update these for releases. +dnl CURRENT, REVISION, AGE +dnl - library source changed -> increment REVISION +dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 +dnl - interfaces added -> increment AGE +dnl - interfaces removed -> AGE = 0 + +OP_LT_CURRENT=4 +OP_LT_REVISION=5 +OP_LT_AGE=4 + +AC_SUBST(OP_LT_CURRENT) +AC_SUBST(OP_LT_REVISION) +AC_SUBST(OP_LT_AGE) + +CC_CHECK_CFLAGS_APPEND( + [-std=c89 -pedantic -Wall -Wextra -Wno-parentheses -Wno-long-long]) + +# Platform-specific tweaks +case $host in + *-mingw*) + # -std=c89 causes some warnings under mingw. + CC_CHECK_CFLAGS_APPEND([-U__STRICT_ANSI__]) + # We need WINNT>=0x501 (WindowsXP) for getaddrinfo/freeaddrinfo. + # It's okay to define this even when HTTP support is disabled, as it only + # affects header declarations, not linking (unless we actually use some + # XP-only functions). + AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x501, + [We need at least WindowsXP for getaddrinfo/freeaddrinfo]) + host_mingw=true + ;; +esac +AM_CONDITIONAL(OP_WIN32, [test "$host_mingw" = "true"]) + +AC_ARG_ENABLE([assertions], + AS_HELP_STRING([--enable-assertions], [Enable assertions in code]),, + enable_assertions=no) + +AS_IF([test "$enable_assertions" = "yes"], [ + AC_DEFINE([OP_ENABLE_ASSERTIONS], [1], [Enable assertions in code]) +]) + +AC_ARG_ENABLE([http], + AS_HELP_STRING([--disable-http], [Disable HTTP support]),, + enable_http=yes) + +AM_COND_IF(OP_WIN32, [ + AS_IF([test "$enable_http" != "no"], [ + AC_CHECK_HEADER([winsock2.h],, [ + AC_MSG_WARN([HTTP support requires a Winsock socket library.]) + enable_http=no + ]) + ]) +], [ + AS_IF([test "$enable_http" != "no"], [ + AC_CHECK_HEADER([sys/socket.h],, [ + AC_MSG_WARN([HTTP support requires a POSIX socket library.]) + enable_http=no + ]) + ]) +]) + +# HTTP support requires either clock_gettime or ftime. clock_gettime is +# used only if time.h defines CLOCK_REALTIME and the function is available +# in the standard library; on platforms such as glibc < 2.17 where -lrt +# or another library would be required, ftime will be used. +AS_IF([test "$enable_http" != "no"], [ + AC_MSG_CHECKING([for clock_gettime]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[#include ]], [[ + struct timespec ts; + return clock_gettime(CLOCK_REALTIME, &ts); + ]]) + ], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([OP_HAVE_CLOCK_GETTIME], [1], + [Enable use of clock_gettime function]) + ], [ + AC_MSG_RESULT([no]) + AC_SEARCH_LIBS(ftime, [compat], , [enable_http=no]) + ]) +]) + +m4_ifndef([PKG_PROG_PKG_CONFIG], + [m4_fatal([Could not locate the pkg-config autoconf macros. +Please make sure pkg-config is installed and, if necessary, set the environment +variable ACLOCAL="aclocal -I/path/to/pkg.m4".])]) + +AS_IF([test "$enable_http" != "no"], [ + openssl="openssl" + AC_DEFINE([OP_ENABLE_HTTP], [1], [Enable HTTP support]) + PKG_CHECK_MODULES([URL_DEPS], [openssl]) +]) +AM_CONDITIONAL(OP_ENABLE_HTTP, [test "$enable_http" != "no"]) +AC_SUBST([openssl]) + +PKG_CHECK_MODULES([DEPS], [ogg >= 1.3 opus >= 1.0.1]) + +AC_ARG_ENABLE([fixed-point], + AS_HELP_STRING([--enable-fixed-point], [Enable fixed-point calculation]),, + enable_fixed_point=no) +AC_ARG_ENABLE([float], + AS_HELP_STRING([--disable-float], [Disable floating-point API]),, + enable_float=yes) + +AS_IF([test "$enable_float" = "no"], + [enable_fixed_point=yes + AC_DEFINE([OP_DISABLE_FLOAT_API], [1], [Disable floating-point API]) + ] +) + +AS_IF([test "$enable_fixed_point" = "yes"], + [AC_DEFINE([OP_FIXED_POINT], [1], [Enable fixed-point calculation])], + [dnl This only has to be tested for if float->fixed conversions are required + saved_LIBS="$LIBS" + AC_SEARCH_LIBS([lrintf], [m], [ + AC_DEFINE([OP_HAVE_LRINTF], [1], [Enable use of lrintf function]) + lrintf_notice=" + Library for lrintf() ......... ${ac_cv_search_lrintf}" + ]) + LIBS="$saved_LIBS" + ] +) + +AC_ARG_ENABLE([examples], + AS_HELP_STRING([--disable-examples], [Do not build example applications]),, + enable_examples=yes) +AM_CONDITIONAL([OP_ENABLE_EXAMPLES], [test "$enable_examples" = "yes"]) + +AS_CASE(["$ac_cv_search_lrintf"], + ["no"],[], + ["none required"],[], + [lrintf_lib="$ac_cv_search_lrintf"]) + +AC_SUBST([lrintf_lib]) + +CC_ATTRIBUTE_VISIBILITY([default], [ + CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"]) +]) + +dnl Check for doxygen +AC_ARG_ENABLE([doc], + AS_HELP_STRING([--disable-doc], [Do not build API documentation]),, + [enable_doc=yes] +) + +AS_IF([test "$enable_doc" = "yes"], [ + AC_CHECK_PROG([HAVE_DOXYGEN], [doxygen], [yes], [no]) + AC_CHECK_PROG([HAVE_DOT], [dot], [yes], [no]) +],[ + HAVE_DOXYGEN=no +]) + +AM_CONDITIONAL([HAVE_DOXYGEN], [test "$HAVE_DOXYGEN" = "yes"]) + +AC_CONFIG_FILES([ + Makefile + opusfile.pc + opusurl.pc + opusfile-uninstalled.pc + opusurl-uninstalled.pc + doc/Doxyfile +]) +AC_CONFIG_HEADERS([config.h]) +AC_OUTPUT + +AC_MSG_NOTICE([ +------------------------------------------------------------------------ + $PACKAGE_NAME $PACKAGE_VERSION: Automatic configuration OK. + + Assertions ................... ${enable_assertions} + + HTTP support ................. ${enable_http} + Fixed-point .................. ${enable_fixed_point} + Floating-point API ........... ${enable_float}${lrintf_notice} + + Hidden visibility ............ ${cc_cv_flag_visibility} + + API code examples ............ ${enable_examples} + API documentation ............ ${enable_doc} +------------------------------------------------------------------------ +]) -- cgit v1.2.3