1dnl ########### 2dnl ## SETUP ########################################################### 3dnl ########### 4 5AC_INIT([ezstream], [0.5.6], 6 [https://trac.xiph.org/newticket?component=ezstream]) 7AC_REVISION([$Id: configure.in 16529 2009-08-30 12:49:06Z moritz $]) 8AC_PREREQ([2.61]) 9AC_CONFIG_SRCDIR([src/ezstream.c]) 10AC_CONFIG_AUX_DIR([build-aux]) 11AM_INIT_AUTOMAKE 12AC_CONFIG_HEADERS([src/config.h]) 13AC_CONFIG_LIBOBJ_DIR([src]) 14AM_MAINTAINER_MODE 15AC_USE_SYSTEM_EXTENSIONS 16AC_PROG_CC_STDC 17AC_PROG_FGREP 18AC_CANONICAL_HOST 19 20BUILD_DATE=$(date '+%B %d, %Y') 21AC_SUBST([BUILD_DATE]) 22 23EXAMPLES_DIR="\$(datadir)/examples/${PACKAGE_TARNAME}" 24AC_ARG_ENABLE([examplesdir], 25 [AS_HELP_STRING([--enable-examplesdir=DIR], 26 [examples installation directory (default: DATADIR/examples/ezstream)])], 27[case "$enableval" in 28 yes) ;; 29 no) AC_MSG_ERROR([Must have an install directory for the examples.]) ;; 30 *) EXAMPLES_DIR="$enableval" ;; 31esac], []) 32AC_SUBST([EXAMPLES_DIR]) 33 34ez_enable_debug=no 35AC_ARG_ENABLE([debug], 36 [AS_HELP_STRING([--enable-debug], 37 [enable memory debugging (default: no)])], 38[case "$enableval" in 39 no) ;; 40 *) ez_enable_debug=yes ;; 41esac], []) 42AC_MSG_CHECKING([whether to enable debugging]) 43if test x"${ez_enable_debug}" = "xyes"; then 44 AC_DEFINE([XALLOC_DEBUG], [1], 45 [Define whether to build with XALLOC debugging]) 46fi 47AC_MSG_RESULT([$ez_enable_debug]) 48 49EZ_CFLAGS="" 50EZ_CPPFLAGS="" 51EZ_LDFLAGS="" 52EZ_LIBS="" 53 54 55dnl ############## 56dnl ## COMPILER ######################################################## 57dnl ############## 58 59if test -n "${GCC}"; then 60 for _flag in fstack-protector fstrict-aliasing Wall W Wstrict-aliasing \ 61 Wwrite-strings Wpointer-arith Wshadow Wconversion Wcast-qual \ 62 Wcast-align Wbounded Wmissing-declarations Wmissing-prototypes \ 63 Wstrict-prototypes 64 do 65 AX_CHECK_CFLAG([${_flag}], 66 [AX_UNIQVAR_APPEND([EZ_CFLAGS], [-${_flag}])], []) 67 done 68 AX_CHECK_CFLAG([Wformat=2], 69 [AX_UNIQVAR_APPEND([EZ_CFLAGS], [-Wformat=2])], 70 [ 71 AX_CHECK_CFLAG([Wformat], 72 [AX_UNIQVAR_APPEND([EZ_CFLAGS], [-Wformat])], []) 73 ]) 74else 75 case "${host}" in 76 *-irix*) 77 EZ_CFLAGS="-fullwarn" 78 ;; 79 *-solaris*) 80 EZ_CFLAGS="-v" 81 ;; 82 *) 83 ;; 84 esac 85fi 86 87AC_C_CONST 88AC_C_VOLATILE 89 90 91dnl ############# 92dnl ## HEADERS ######################################################### 93dnl ############# 94 95AC_CHECK_HEADERS([ \ 96 sys/time.h signal.h langinfo.h libgen.h locale.h paths.h \ 97], [], [], 98[ 99#ifdef HAVE_SYS_TYPES_H 100# include <sys/types.h> 101#endif 102]) 103 104COMPAT_INCLUDES="" 105if test x"${ez_enable_debug}" = "xyes"; then 106 AX_HEADER_TREE([RB_FOREACH], [], 107 [ 108 COMPAT_INCLUDES="-I\$(top_srcdir)/compat" 109 ]) 110fi 111AC_SUBST([COMPAT_INCLUDES]) 112 113 114dnl ########### 115dnl ## TYPES ########################################################### 116dnl ########### 117 118AC_TYPE_SIZE_T 119AC_TYPE_SSIZE_T 120 121 122dnl ############### 123dnl ## LIBRARIES ####################################################### 124dnl ############### 125 126AC_CHECK_LIB([gen], [basename], 127 [ AX_UNIQVAR_PREPEND([EZ_LIBS], [-lgen]) ]) 128 129AX_CHECK_LIBSHOUT([], [], 130 [AC_MSG_ERROR([libshout 2.2.x is required.], [1])]) 131AX_UNIQVAR_APPEND([EZ_CPPFLAGS], [${LIBSHOUT_CPPFLAGS}]) 132AX_UNIQVAR_APPEND([EZ_CFLAGS], [${LIBSHOUT_CFLAGS}]) 133AX_UNIQVAR_APPEND([EZ_LDFLAGS], [${LIBSHOUT_LDFLAGS}]) 134AX_UNIQVAR_PREPEND([EZ_LIBS], [${LIBSHOUT_LIBS}]) 135 136AX_CHECK_LIBXML2([], [], 137 [AC_MSG_ERROR([libxml 2.x is required.], [1])]) 138AX_UNIQVAR_APPEND([EZ_CPPFLAGS], [${LIBXML2_CPPFLAGS}]) 139AX_UNIQVAR_APPEND([EZ_CFLAGS], [${LIBXML2_CFLAGS}]) 140AX_UNIQVAR_APPEND([EZ_LDFLAGS], [${LIBXML2_LDFLAGS}]) 141AX_UNIQVAR_PREPEND([EZ_LIBS], [${LIBXML2_LIBS}]) 142 143use_metadata="No" 144AX_CHECK_TAGLIB_C([], [ 145 AC_DEFINE([HAVE_TAGLIB], [1], 146 [Define to 1 if you have the libtag_c library.] 147 ) 148 AX_UNIQVAR_APPEND([EZ_CFLAGS], [${TAGLIB_CFLAGS}]) 149 AX_UNIQVAR_APPEND([EZ_CPPFLAGS], [${TAGLIB_CPPFLAGS}]) 150 AX_UNIQVAR_APPEND([EZ_LDFLAGS], [${TAGLIB_LDFLAGS}]) 151 AX_UNIQVAR_PREPEND([EZ_LIBS], [${TAGLIB_C_LIBS}]) 152 use_metadata="TagLib" 153], [ 154 AX_CHECK_LIBVORBISFILE([], [ 155 AC_DEFINE([HAVE_VORBISFILE], [1], 156 [Define to 1 if you have the libvorbisfile library.]) 157 AX_UNIQVAR_APPEND([EZ_CPPFLAGS], [${VORBIS_CPPFLAGS}]) 158 AX_UNIQVAR_APPEND([EZ_CFLAGS], [${VORBIS_CFLAGS}]) 159 AX_UNIQVAR_APPEND([EZ_LDFLAGS], [${VORBIS_LDFLAGS}]) 160 AX_UNIQVAR_PREPEND([EZ_LIBS], [${LIBVORBISFILE_LIBS}]) 161 use_metadata="libvorbis" 162 ], []) 163]) 164 165# Not using AM_ICONV to check for iconv(), with or without libiconv(), 166# is not a viable option. Something in the past went horribly wrong; 167# the whole topic is extremely complex and not worth rewriting. 168# Instead, work around the buggy no-op that is --with-libiconv-prefix, 169# and at least try to find it in --prefix. Thankfully, it is and will 170# remain optional in ezstream. 171 172INCICONV="" 173LDICONV="" 174LIBICONV="" 175LTLIBICONV="" 176EZ_LIBICONV="" 177AM_ICONV 178if test x"${am_cv_func_iconv}" != "xyes"; then 179 unset am_cv_func_iconv 180 unset am_cv_lib_iconv 181 if test x"${prefix}" = "xNONE"; then 182 libiconv_prefix="/usr/local" 183 else 184 libiconv_prefix="${prefix}" 185 fi 186 AC_MSG_NOTICE([Looking for libiconv in ${libiconv_prefix} ...]) 187 libiconv_save_CPPFLAGS="${CPPFLAGS}" 188 libiconv_save_LDFLAGS="${LDFLAGS}" 189 libiconv_save_LIBS="${LIBS}" 190 CPPFLAGS="${CPPFLAGS} -I${libiconv_prefix}/include" 191 LDFLAGS="${LDFLAGS} -L${libiconv_prefix}/lib" 192 LIBS="-liconv" 193 AM_ICONV 194 if test x"${am_cv_func_iconv}" = "xyes"; then 195 INCICONV="-I${libiconv_prefix}/include" 196 LDICONV="-L${libiconv_prefix}/lib" 197 LIBICONV="-liconv" 198 fi 199 CPPFLAGS="${libiconv_save_CPPFLAGS}" 200 LDFLAGS="${libiconv_save_LDFLAGS}" 201 LIBS="${libiconv_save_LIBS}" 202fi 203if test -n "${LTLIBICONV}"; then 204 EZ_LIBICONV="${LTLIBICONV}" 205else 206 EZ_LIBICONV="${LIBICONV}" 207fi 208AX_UNIQVAR_APPEND([EZ_CPPFLAGS], [$INCICONV]) 209AX_UNIQVAR_APPEND([EZ_LDFLAGS], [$LDICONV]) 210AX_UNIQVAR_PREPEND([EZ_LIBS], [$EZ_LIBICONV]) 211use_iconv="No" 212if test x"${am_cv_func_iconv}" = "xyes"; then 213 use_iconv="Yes" 214fi 215 216 217dnl ####################### 218dnl ## FUNCTIONS / MACROS ############################################## 219dnl ####################### 220 221AC_CHECK_FUNCS([ \ 222 arc4random \ 223 basename \ 224 getopt \ 225 gettimeofday \ 226 nl_langinfo \ 227 pclose \ 228 _pclose \ 229 popen \ 230 _popen \ 231 random \ 232 setlocale \ 233 snprintf \ 234 _snprintf \ 235 srandomdev \ 236 stat \ 237 _stat \ 238 strncasecmp \ 239 strnicmp \ 240 strtoll \ 241 _strtoi64 \ 242]) 243 244AC_REPLACE_FUNCS([ \ 245 strlcat \ 246 strlcpy \ 247 strtonum \ 248]) 249 250AX_FUNC_VA_COPY 251 252AC_CHECK_FUNCS([sigaction], [ 253 AC_DEFINE([HAVE_SIGNALS], [1], 254 [Define to 1 if we have BSD signals.]) 255 ], [], [ 256 #ifdef HAVE_SIGNAL_H 257 # include <signal.h> 258 #endif 259 ]) 260 261 262dnl ################## 263dnl ## MISCELLANEOUS ################################################### 264dnl ################## 265 266AX_CHECK___PROGNAME 267 268 269dnl ############ 270dnl ## OUTPUT ########################################################## 271dnl ############ 272 273AC_SUBST([EZ_CPPFLAGS]) 274AC_SUBST([EZ_CFLAGS]) 275AC_SUBST([EZ_LDFLAGS]) 276AC_SUBST([EZ_LIBS]) 277 278AC_CONFIG_FILES([ 279 Makefile 280 build-aux/Makefile 281 compat/Makefile 282 compat/sys/Makefile 283 doc/Makefile 284 doc/ezstream-file.sh.1.in 285 doc/ezstream.1.in 286 examples/Makefile 287 m4/Makefile 288 src/Makefile 289 src/ezstream-file.sh 290 win32/Makefile 291 win32/shout/Makefile 292]) 293 294AC_OUTPUT 295 296cat << __EOT 297 298${PACKAGE_STRING} has been configured successfully. 299 300Configuration: 301 Ogg Vorbis metadata support ... : ${use_metadata} 302 Charset conversion support .... : ${use_iconv} 303 Prefix ........................ : ${prefix} 304 305__EOT 306