mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-09-22 04:15:54 -04:00
1f3c6c2d87
The main changes are listed below but there is a lot of noise from behind the scenes work like quicker stats updates, code re-arranging and infrequent used code like the allocation code which is not usually compiled in. Implement scatter-gather IO, initially for flv wrapping as that will make a lot of use of it and should save a lot of memory copies. The icy metadata should also be a candidate for this. Add better handling to relays with multiple servers and fallbacks. Problem entries can be skipped when restarting. Fixup build system for mingw32 cross compile. VC was getting too annoying but should still be an option if needed later. This now allows us to build with newer dependent libs without much extra work. The GUI component is not built now (VC specific) but it was of limited use and most win32 users configure the service. svn path=/icecast/branches/kh/icecast/; revision=18147
181 lines
5.4 KiB
Plaintext
181 lines
5.4 KiB
Plaintext
AC_INIT([Icecast], [2.3.2-kh31], [karl@xiph.org])
|
|
|
|
LT_INIT
|
|
AC_PREREQ(2.59)
|
|
AC_CONFIG_SRCDIR(src/main.c)
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
AM_INIT_AUTOMAKE
|
|
AM_CONFIG_HEADER(config.h)
|
|
AM_MAINTAINER_MODE
|
|
|
|
AC_PROG_CXX
|
|
AC_PROG_CC
|
|
AC_CANONICAL_HOST
|
|
AC_PROG_LIBTOOL
|
|
AC_SYS_LARGEFILE
|
|
|
|
dnl Set some options based on environment
|
|
|
|
DEBUG="-g"
|
|
if test -z "$GCC"; then
|
|
XIPH_CPPFLAGS="-D_REENTRANT"
|
|
PROFILE="-g -p"
|
|
else
|
|
XIPH_CPPFLAGS="-Wall -ffast-math -fsigned-char"
|
|
PROFILE="-pg -g"
|
|
AC_DEFINE([_GNU_SOURCE], 1, [Define to include GNU extensions to POSIX])
|
|
fi
|
|
AM_CONDITIONAL([WIN32], [test x$host_os = xmingw32])
|
|
|
|
dnl Checks for programs.
|
|
|
|
dnl Checks for libraries.
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_HEADER_TIME
|
|
|
|
AC_CHECK_HEADERS([signal.h fnmatch.h limits.h sys/timeb.h malloc.h])
|
|
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(CHUID, 1, [Define if you have pwd.h]),,)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
XIPH_C__FUNC__
|
|
|
|
dnl Check for types
|
|
AC_TYPE_OFF_T
|
|
AC_CHECK_TYPES([struct timespec])
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_DECLS([localtime_r],,,
|
|
[#include <time.h>
|
|
#include <pthread.h>])
|
|
AC_CHECK_FUNCS([fnmatch chroot fork poll atoll strtoll strcasecmp getrlimit gettimeofday ftime fsync])
|
|
AC_CHECK_TYPES([struct signalfd_siginfo],
|
|
[AC_DEFINE(HAVE_SIGNALFD, 1 ,[Define if signalfd exists])], [],
|
|
[#include <sys/signalfd.h>])
|
|
if test "x$ac_cv_func_fnmatch" != "xyes"
|
|
then
|
|
AC_CHECK_LIB(fnmatch, fnmatch, [XIPH_VAR_APPEND([XIPH_LIBS],["-lfnmatch"])],
|
|
[ AC_CHECK_LIB(iberty, fnmatch, [XIPH_VAR_APPEND([XIPH_LIBS],["-liberty"])])
|
|
])
|
|
fi
|
|
AC_SEARCH_LIBS(nanosleep, rt posix4,
|
|
AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if you have nanosleep]))
|
|
AC_SEARCH_LIBS(clock_gettime, rt posix4,
|
|
AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime]))
|
|
XIPH_NET
|
|
|
|
dnl -- configure options --
|
|
|
|
XIPH_PATH_XSLT
|
|
XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$XSLT_CFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$XSLT_LIBS])
|
|
|
|
XIPH_PATH_VORBIS([
|
|
XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$VORBIS_CFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$VORBIS_LIBS])
|
|
XIPH_VAR_APPEND([XIPH_LDFLAGS],[$VORBIS_LDFLAGS])
|
|
ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_vorbis.o"
|
|
],
|
|
[AC_MSG_ERROR([must have Ogg Vorbis v1.0 or above installed])
|
|
])
|
|
|
|
XIPH_PATH_THEORA([
|
|
XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS])
|
|
XIPH_VAR_APPEND([XIPH_LDFLAGS],[$THEORA_LDFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA_LIBS])
|
|
ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_theora.o"
|
|
],
|
|
[ AC_MSG_WARN([Theora disabled!])
|
|
])
|
|
|
|
XIPH_PATH_SPEEX(
|
|
[ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX_LIBS])
|
|
XIPH_VAR_APPEND([XIPH_LDFLAGS],[$SPEEX_LDFLAGS])
|
|
ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_speex.o"
|
|
],
|
|
[ AC_MSG_WARN([Speex support disabled!])
|
|
])
|
|
|
|
AC_CHECK_LIB(kate, kate_decode_init,[have_kate=yes],[have_kate=no], -logg)
|
|
if test "x$have_kate" = "xyes"
|
|
then
|
|
AC_CHECK_LIB(oggkate, kate_ogg_decode_headerin,[have_kate=yes],[have_kate=no],-lkate -logg)
|
|
if test "x$have_kate" = "xyes"
|
|
then
|
|
KATE_LIBS="-loggkate -lkate -logg"
|
|
AC_DEFINE([HAVE_KATE],[1],[Define if you have libkate])
|
|
fi
|
|
fi
|
|
dnl we still use format_kate as it doesn't need libkate to work
|
|
#ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_kate.o"
|
|
|
|
ACX_PTHREAD(, AC_MSG_ERROR([POSIX threads missing]))
|
|
XIPH_VAR_APPEND([XIPH_CFLAGS],[$PTHREAD_CFLAGS])
|
|
XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$PTHREAD_CPPFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$PTHREAD_LIBS])
|
|
|
|
XIPH_PATH_CURL([
|
|
AC_CHECK_DECL([CURLOPT_NOSIGNAL],
|
|
[ AC_DEFINE([HAVE_AUTH_URL], 1, [Define to compile in auth URL support code])
|
|
AC_CHECK_FUNCS([curl_global_init])
|
|
ICECAST_OPTIONAL="$ICECAST_OPTIONAL auth_url.o"
|
|
enable_curl="yes"
|
|
XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$CURL_CFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$CURL_LIBS])
|
|
], [ AC_MSG_NOTICE([Your curl dev files are too old (7.10 or above required)])
|
|
], [#include <curl/curl.h>
|
|
])
|
|
],[ AC_MSG_NOTICE([libcurl not found])
|
|
])
|
|
dnl -- YP support --
|
|
AC_ARG_ENABLE([yp],
|
|
AC_HELP_STRING([--disable-yp],[disable YP directory support]),
|
|
enable_yp="$enableval",
|
|
enable_yp="yes")
|
|
if test "x$enable_yp" = "xyes" -a "x$enable_curl" = xyes
|
|
then
|
|
AC_DEFINE([USE_YP], 1, [Define to compile in YP support code])
|
|
ICECAST_OPTIONAL="$ICECAST_OPTIONAL yp.o"
|
|
else
|
|
AC_MSG_NOTICE([YP support disabled])
|
|
fi
|
|
XIPH_PATH_OPENSSL([
|
|
XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$OPENSSL_CFLAGS])
|
|
XIPH_VAR_APPEND([XIPH_LDFLAGS],[$OPENSSL_LDFLAGS])
|
|
XIPH_VAR_PREPEND([XIPH_LIBS],[$OPENSSL_LIBS])
|
|
],
|
|
[ AC_MSG_NOTICE([SSL disabled!])
|
|
])
|
|
|
|
if test "x$ac_cv_func_fork" = "xyes"
|
|
then
|
|
ICECAST_OPTIONAL="$ICECAST_OPTIONAL auth_cmd.o"
|
|
fi
|
|
AC_DEFINE([ICECAST_TIME_FMT],["%a, %d %b %Y %H:%M:%S %z"], [time format for strftime])
|
|
|
|
dnl Make substitutions
|
|
|
|
AC_SUBST(XIPH_CPPFLAGS)
|
|
AC_SUBST(XIPH_CFLAGS)
|
|
AC_SUBST(XIPH_LIBS)
|
|
AC_SUBST(XIPH_LDFLAGS)
|
|
AC_SUBST(PTHREAD_CPPFLAGS)
|
|
AC_SUBST(PTHREAD_CFLAGS)
|
|
AC_SUBST(PTHREAD_LIBS)
|
|
AC_SUBST(LIBTOOL_DEPS)
|
|
AC_SUBST(LIBS)
|
|
AC_SUBST(DEBUG)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(PROFILE)
|
|
AC_SUBST(ICECAST_OPTIONAL)
|
|
AC_SUBST(HAVE_KATE)
|
|
AC_SUBST(KATE_LIBS)
|
|
|
|
AC_OUTPUT([Makefile conf/Makefile src/Makefile src/avl/Makefile
|
|
src/httpp/Makefile src/thread/Makefile src/log/Makefile
|
|
src/net/Makefile src/timing/Makefile doc/Makefile web/Makefile web/images/Makefile
|
|
admin/Makefile win32/Makefile win32/res/Makefile])
|