1dnl Process this file with autoconf to produce a configure script. 2AC_INIT([Icecast], [2.4.0-kh15], [karl@kheyes.plus.com]) 3AC_CONFIG_AUX_DIR([build-aux]) 4AM_INIT_AUTOMAKE([foreign]) 5 6AC_PREREQ(2.59) 7AC_CONFIG_SRCDIR([src/main.c]) 8AM_CONFIG_HEADER(config.h) 9AC_CONFIG_MACRO_DIR([m4]) 10 11AM_MAINTAINER_MODE 12m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 13 14LT_INIT 15 16AC_PROG_CXX 17AC_PROG_CC 18AC_CANONICAL_HOST 19AC_SYS_LARGEFILE 20XIPH_C_ATTRIBUTE 21 22dnl Set some options based on environment 23 24DEBUG="-g" 25if test -z "$GCC"; then 26 XIPH_CPPFLAGS="-D_REENTRANT" 27 PROFILE="-g -p" 28else 29 XIPH_CPPFLAGS="-Wall -ffast-math -fsigned-char" 30 PROFILE="-pg -g" 31 AC_DEFINE([_GNU_SOURCE], 1, [Define to include GNU extensions to POSIX]) 32fi 33AM_CONDITIONAL([WIN32], [test x$host_os = xmingw32]) 34if test x$host_os = xmingw32; then 35AC_DEFINE([_POSIX], 1, [Define to use C99 routines on MS]) 36fi 37 38AC_ARG_VAR([ICY_CHARSET], [Character set used for ICY metadata, default is UTF8]) 39if test -n "$ICY_CHARSET"; then 40 AC_DEFINE_UNQUOTED([ICY_DEFAULT_CHARSET], ["$ICY_CHARSET"], ["Character set for ICY metadata"]) 41fi 42 43dnl Checks for programs. 44 45dnl Checks for libraries. 46 47dnl Checks for header files. 48AC_HEADER_STDC 49AC_HEADER_TIME 50 51AC_CHECK_HEADERS([fcntl.h fnmatch.h sys/timeb.h sys/wait.h alloca.h malloc.h glob.h winsock2.h windows.h stdbool.h signal.h]) 52AC_CHECK_HEADERS(pwd.h, AC_DEFINE(CHUID, 1, [Define if you have pwd.h]),,) 53 54dnl Checks for typedefs, structures, and compiler characteristics. 55XIPH_C__FUNC__ 56 57dnl Check for types 58AC_TYPE_OFF_T 59AC_CHECK_TYPES([struct timespec]) 60 61dnl Checks for library functions. 62AC_CHECK_FUNCS([localtime_r gmtime_r FindFirstFile]) 63AC_CHECK_FUNCS([fseeko fnmatch chroot fork poll atoll strtoll strsep strcasecmp strncasecmp]) 64AC_CHECK_FUNCS([getrlimit gettimeofday ftime fsync glob pread pipe2 setresuid setresgid]) 65AC_CHECK_TYPES([struct signalfd_siginfo], 66 [AC_DEFINE(HAVE_SIGNALFD, 1 ,[Define if signalfd exists])], [], 67 [#include <sys/signalfd.h>]) 68AC_CHECK_TYPES([uint32_t], [], [], [ 69#include <inttypes.h> 70#include <stdint.h> 71]) 72AC_CHECK_TYPES([SOCKET*], 73 [AC_DEFINE([FD_t], [SOCKET], [socket type for Windows])], 74 [AC_DEFINE([FD_t], [int], [socket type for the rest])], [ 75#include <winsock2.h> 76]) 77if test "x$ac_cv_func_fnmatch" != "xyes" 78then 79AC_CHECK_LIB(fnmatch, fnmatch, [XIPH_VAR_APPEND([XIPH_LIBS],["-lfnmatch"])], 80 [ AC_CHECK_LIB(iberty, fnmatch, [XIPH_VAR_APPEND([XIPH_LIBS],["-liberty"])], 81 [ICECAST_OPTIONAL="$ICECAST_OPTIONAL fnmatch.o"])]) 82fi 83AC_SEARCH_LIBS(nanosleep, rt posix4, 84 AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if you have nanosleep])) 85AC_SEARCH_LIBS(clock_gettime, rt posix4, 86 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime])) 87XIPH_NET 88 89dnl -- configure options -- 90 91XIPH_PATH_XSLT 92XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$XSLT_CFLAGS]) 93XIPH_VAR_PREPEND([XIPH_LIBS],[$XSLT_LIBS]) 94 95XIPH_PATH_VORBIS([ 96 XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$VORBIS_CFLAGS]) 97 XIPH_VAR_PREPEND([XIPH_LIBS],[$VORBIS_LIBS]) 98 XIPH_VAR_APPEND([XIPH_LDFLAGS],[$VORBIS_LDFLAGS]) 99 ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_vorbis.o" 100 ], 101 [AC_MSG_ERROR([must have Ogg Vorbis v1.0 or above installed]) 102 ]) 103 104XIPH_PATH_THEORA([ 105 XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS]) 106 XIPH_VAR_APPEND([XIPH_LDFLAGS],[$THEORA_LDFLAGS]) 107 XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA_LIBS]) 108 ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_theora.o" 109 ], 110 [ AC_MSG_WARN([Theora disabled!]) 111 ]) 112 113XIPH_PATH_SPEEX( 114 [ XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS]) 115 XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX_LIBS]) 116 XIPH_VAR_APPEND([XIPH_LDFLAGS],[$SPEEX_LDFLAGS]) 117 ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_speex.o" 118 ], 119 [ AC_MSG_WARN([Speex support disabled!]) 120 ]) 121 122AC_CHECK_LIB(kate, kate_decode_init,[have_kate=yes],[have_kate=no], -logg) 123if test "x$have_kate" = "xyes" 124then 125 AC_CHECK_LIB(oggkate, kate_ogg_decode_headerin,[have_kate=yes],[have_kate=no],-lkate -logg) 126 if test "x$have_kate" = "xyes" 127 then 128 KATE_LIBS="-loggkate -lkate -logg" 129 AC_DEFINE([HAVE_KATE],[1],[Define if you have libkate]) 130 fi 131fi 132dnl we still use format_kate as it doesn't need libkate to work 133#ICECAST_OPTIONAL="$ICECAST_OPTIONAL format_kate.o" 134 135ACX_PTHREAD(, AC_MSG_ERROR([POSIX threads missing])) 136XIPH_VAR_APPEND([XIPH_CFLAGS],[$PTHREAD_CFLAGS]) 137XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$PTHREAD_CPPFLAGS]) 138XIPH_VAR_PREPEND([XIPH_LIBS],[$PTHREAD_LIBS]) 139 140XIPH_PATH_CURL([ 141 AC_CHECK_DECL([CURLOPT_NOSIGNAL], 142 [ AC_DEFINE([HAVE_AUTH_URL], 1, [Define to compile in auth URL support code]) 143 AC_CHECK_FUNCS([curl_global_init]) 144 ICECAST_OPTIONAL="$ICECAST_OPTIONAL auth_url.o" 145 enable_curl="yes" 146 XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$CURL_CFLAGS]) 147 XIPH_VAR_PREPEND([XIPH_LIBS],[$CURL_LIBS]) 148 ], [ AC_MSG_NOTICE([Your curl dev files are too old (7.10 or above required)]) 149 ], [#include <curl/curl.h> 150 ]) 151 ],[ AC_MSG_NOTICE([libcurl not found]) 152 ]) 153dnl -- YP support -- 154AC_ARG_ENABLE([yp], 155 AS_HELP_STRING([--disable-yp],[disable YP directory support]), 156 enable_yp="$enableval", 157 enable_yp="yes") 158if test "x$enable_yp" = "xyes" -a "x$enable_curl" = xyes 159then 160 AC_DEFINE([USE_YP], 1, [Define to compile in YP support code]) 161 ICECAST_OPTIONAL="$ICECAST_OPTIONAL yp.o" 162else 163 AC_MSG_NOTICE([YP support disabled]) 164fi 165XIPH_PATH_OPENSSL([ 166 XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$OPENSSL_CFLAGS]) 167 XIPH_VAR_APPEND([XIPH_LDFLAGS],[$OPENSSL_LDFLAGS]) 168 XIPH_VAR_PREPEND([XIPH_LIBS],[$OPENSSL_LIBS]) 169 ], 170 [ AC_MSG_NOTICE([SSL disabled!]) 171 ]) 172 173if test "x$ac_cv_func_fork" = "xyes" 174then 175 ICECAST_OPTIONAL="$ICECAST_OPTIONAL auth_cmd.o" 176fi 177 178dnl Make substitutions 179 180AC_SUBST(XIPH_CPPFLAGS) 181AC_SUBST(XIPH_CFLAGS) 182AC_SUBST(XIPH_LIBS) 183AC_SUBST(XIPH_LDFLAGS) 184AC_SUBST(PTHREAD_CPPFLAGS) 185AC_SUBST(PTHREAD_CFLAGS) 186AC_SUBST(PTHREAD_LIBS) 187AC_SUBST(LIBTOOL_DEPS) 188AC_SUBST(LIBS) 189AC_SUBST(DEBUG) 190AC_SUBST(CFLAGS) 191AC_SUBST(PROFILE) 192AC_SUBST(ICECAST_OPTIONAL) 193AC_SUBST(HAVE_KATE) 194AC_SUBST(KATE_LIBS) 195 196AC_CONFIG_FILES([ 197 Makefile 198 conf/Makefile 199 src/Makefile 200 src/avl/Makefile 201 src/httpp/Makefile 202 src/thread/Makefile 203 src/log/Makefile 204 src/net/Makefile 205 src/timing/Makefile 206 doc/Makefile 207 web/Makefile 208 web/images/Makefile 209 admin/Makefile 210 win32/Makefile 211]) 212AC_OUTPUT 213