VS2008 project files.
[xiph/unicode.git] / ezstream / configure.in
blob209b0b28eb7a41b2ce28b880cff9e63c4f436f48
1 dnl INITIALIZATION
3 AC_INIT([ezstream], [0.5.4], [https://trac.xiph.org/newticket?component=ezstream])
4 AC_PREREQ(2.61)
5 AC_CONFIG_SRCDIR(src/ezstream.c)
6 AC_CONFIG_AUX_DIR(build-aux)
7 AM_INIT_AUTOMAKE
8 AC_CONFIG_HEADERS(src/config.h)
9 AC_CONFIG_LIBOBJ_DIR(src)
10 AM_MAINTAINER_MODE
11 AC_USE_SYSTEM_EXTENSIONS
12 AC_PROG_CC_STDC
15 dnl SETUP
17 EXAMPLES_DIR="\$(datadir)/examples/${PACKAGE_TARNAME}"
18 AC_ARG_ENABLE(examplesdir,
19         AS_HELP_STRING([--enable-examplesdir=DIR],
20                 [example configuration files installation directory (default: DATADIR/examples/ezstream)]),
21 [case "$enableval" in
22         yes) ;;
23         no) AC_MSG_ERROR([Must have an example configuration files install dir.]) ;;
24         *) EXAMPLES_DIR="$enableval" ;;
25 esac], [])
26 AC_SUBST(EXAMPLES_DIR)
28 AC_CANONICAL_HOST
30 if test -z "$GCC"; then
31         case $host in 
32         *-irix*)
33                 XIPH_CPPFLAGS="-fullwarn"
34                 ;;
35         *-solaris*)
36                 XIPH_CPPFLAGS="-v"
37                 ;;
38         *)
39                 ;;
40         esac
41 else
42         XIPH_CPPFLAGS="-fstrict-aliasing -Wall -Wwrite-strings -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
45 ez_enable_debug=no
46 AC_ARG_ENABLE(debug,
47         AS_HELP_STRING([--enable-debug],
48                 [enable memory debugging (default: no)]),
49 [case "$enableval" in
50         no) ;;
51         *) ez_enable_debug=yes ;;
52 esac], [])
53 AC_MSG_CHECKING([whether to enable debugging])
54 if test x"$ez_enable_debug" = "xyes"; then
55         AC_DEFINE(XALLOC_DEBUG, 1, [Define whether to build with XALLOC debugging])
57 AC_MSG_RESULT([$ez_enable_debug])
60 dnl USEFUL HEADERS
62 AC_CHECK_HEADERS(sys/time.h paths.h signal.h langinfo.h libgen.h locale.h)
64 COMPAT_INCLUDES=""
65 if test x"$ez_enable_debug" = "xyes"; then
66         AC_CHECK_HEADERS(sys/tree.h)
67         if test x"$ac_cv_header_sys_tree_h" = "xyes"; then
68                 AC_MSG_CHECKING([for RB_FOREACH and RB_INSERT in sys/tree.h])
69                 AC_EGREP_CPP([yes], [
70 #include <sys/tree.h>
71 #if defined(RB_FOREACH) && defined(RB_INSERT)
72  yes
73 #endif
74                 ], [
75                         AC_MSG_RESULT([yes])
76                         AC_DEFINE(HAVE_WORKING_SYS_TREE_H, 1,
77                                 [Define whether RB_FOREACH is defined in <sys/tree.h>])
78                 ], [
79                         AC_MSG_RESULT([no])
80                         COMPAT_INCLUDES="-I\$(top_srcdir)/compat"
81                 ])
82         else
83                 COMPAT_INCLUDES="-I\$(top_srcdir)/compat"
84         fi
86 AC_SUBST(COMPAT_INCLUDES)
89 dnl MISC SYSTEM CHARACTERISTICS
91 dnl __progname check adapted from OpenNTPd-portable configure.ac
92 AC_MSG_CHECKING([whether libc defines __progname])
93 AC_LINK_IFELSE(
94         [AC_LANG_PROGRAM([[#include <stdio.h>]],
95                 [[extern char *__progname; printf("%s\n", __progname); ]])],
96         [ac_cv_libc_defines___progname="yes"],
97         [ac_cv_libc_defines___progname="no"]
99 if test x"$ac_cv_libc_defines___progname" = "xyes"; then
100         AC_MSG_RESULT([yes])
101         AC_DEFINE(HAVE___PROGNAME, 1, [Define whether libc defines __progname])
102 else
103         AC_MSG_RESULT([no])
106 AC_C_CONST
107 AC_C_VOLATILE
108 AC_TYPE_SIZE_T
109 AC_TYPE_SSIZE_T
110 AC_CHECK_TYPES(struct timeval, , ,
112 #ifdef HAVE_SYS_TIME_H
113 # include <sys/time.h>
114 #endif
118 dnl LIBRARY FUNCTIONS
120 AC_CHECK_LIB(gen, basename)
121 AC_CHECK_FUNCS(arc4random gettimeofday nl_langinfo random setlocale srandomdev stat)
122 AC_REPLACE_FUNCS(getopt strlcat strlcpy strtonum)
123 if test x"$ac_cv_header_signal_h" = "xyes"; then
124         AC_CHECK_FUNCS([sigaction], [
125                 AC_DEFINE(HAVE_SIGNALS, 1, [Define whether we have BSD signals])
126                 ], [], [#include <signal.h>])
129 LIBICONV=""
130 LTLIBICONV=""
131 INCICONV=""
132 AM_ICONV
133 EZ_LIBICONV=""
134 if test -n "$LTLIBICONV"; then
135         EZ_LIBICONV="$LTLIBICONV"
136 else
137         EZ_LIBICONV="$LIBICONV"
139 XIPH_VAR_PREPEND([XIPH_LIBS], [$EZ_LIBICONV])
140 XIPH_VAR_APPEND([XIPH_CPPFLAGS], [$INCICONV])
143 dnl CONFIGURE OPTIONS
145 dnl Optional: TagLib support
146 AC_ARG_VAR([TAGLIB_PREFIX], [path to TagLib installation])
147 if test -n "${TAGLIB_PREFIX}"; then
148         taglib_prefix="${TAGLIB_PREFIX}"
149 else
150         taglib_prefix=""
152 use_taglib=yes
153 require_taglib=no
154 AC_ARG_WITH(taglib,
155         [AS_HELP_STRING([--with-taglib=PREFIX],
156                 [Prefix where TagLib is installed (default: autodetect)])],
157 [case "$withval" in
158         yes) require_taglib=yes
159              if test -z "$taglib_prefix"; then
160                 taglib_prefix=/usr/local
161              fi
162              ;;
163         no)  use_taglib=no ;;
164         *)   require_taglib=yes
165              taglib_prefix="$withval"
166              ;;
167 esac], [])
169 have_taglib=no
170 AC_MSG_CHECKING([for TagLib option])
171 if test x"$use_taglib" != "xno"; then
172         if test x"$require_taglib" = "xyes"; then
173                 AC_MSG_RESULT([enabled])
174         else
175                 AC_MSG_RESULT([autodetect])
176         fi
178         TAGLIB_CFLAGS=""
179         TAGLIB_CPPFLAGS=""
180         TAGLIB_LIBS="-ltag_c"
181         if test -n "$taglib_prefix"; then
182                 TAGLIB_CPPFLAGS="-I${taglib_prefix}/include"
183                 TAGLIB_LIBS="-L${taglib_prefix}/lib ${TAGLIB_LIBS}"
184         fi
186         ac_taglib_save_CFLAGS="$CFLAGS"
187         ac_taglib_save_CPPFLAGS="$CPPFLAGS"
188         ac_taglib_save_LIBS="$LIBS"
190         CFLAGS="${TAGLIB_CFLAGS}"
191         CPPFLAGS="${TAGLIB_CPPFLAGS}"
192         LIBS="${TAGLIB_LIBS}"
194         AC_CHECK_HEADERS([taglib/tag_c.h], [
195                         AC_MSG_CHECKING([whether libtag_c works])
196                         AC_LINK_IFELSE(
197                                 [AC_LANG_PROGRAM([[#include <taglib/tag_c.h>]],
198                                         [[ taglib_set_string_management_enabled(0); ]])],
199                                 [
200                                 AC_MSG_RESULT([yes])
201                                 have_taglib=yes
202                                 ], [AC_MSG_RESULT([no])]
203                         )
204                 ], [
205                         if test x"$require_taglib" = "xyes"; then
206                                 AC_MSG_ERROR([Cannot find taglib/tag_c.h in ${taglib_prefix}/include])
207                         else
208                                 AC_MSG_NOTICE([No TagLib C header found on this system])
209                         fi
210                 ])
212         dnl For static-only archs:
213         if test x"$have_taglib" = "xno" -a x"$ac_cv_header_taglib_tag_c_h" = "xyes"; then
214                 AC_MSG_CHECKING([whether libtag_c works with -ltag -lstdc++ -lz (static arch)])
215                 TAGLIB_LIBS="${TAGLIB_LIBS} -ltag -lstdc++ -lz"
216                 LIBS="${TAGLIB_LIBS}"
217                 AC_LINK_IFELSE(
218                         [AC_LANG_PROGRAM([[#include <taglib/tag_c.h>]],
219                                 [[ taglib_set_string_management_enabled(0); ]])],
220                         [
221                          AC_MSG_RESULT([yes])
222                          have_taglib=yes
223                         ], [
224                          if test x"$require_taglib" = "xyes"; then
225                                 AC_MSG_RESULT([no])
226                                 AC_MSG_ERROR([Cannot link against libtag_c in ${taglib_prefix}/lib])
227                          else
228                                 AC_MSG_RESULT([no])
229                                 AC_MSG_WARN([Error while linking against libtag_c in ${taglib_prefix}/lib, disabling support])
230                          fi
231                         ]
232                 )
233         fi
235         CFLAGS="$ac_taglib_save_CFLAGS"
236         CPPFLAGS="$ac_taglib_save_CPPFLAGS"
237         LIBS="$ac_taglib_save_LIBS"
238 else
239         AC_MSG_RESULT([disabled])
242 if test x"$have_taglib" = "xyes"; then
243         AC_DEFINE(HAVE_TAGLIB, 1, [Define whether we're using TagLib])
244 else
245         TAGLIB_CFLAGS=""
246         TAGLIB_CPPFLAGS=""
247         TAGLIB_LIBS=""
249 AC_SUBST(TAGLIB_CFLAGS)
250 AC_SUBST(TAGLIB_CPPFLAGS)
251 AC_SUBST(TAGLIB_LIBS)
253 dnl Check for Ogg Vorbis
254 XIPH_PATH_OGG(, AC_MSG_ERROR([Must have libogg 1.x installed.]))
255 XIPH_PATH_VORBIS(, AC_MSG_ERROR([Must have libvorbis 1.x installed.]))
257 dnl Check for libshout.
258 XIPH_PATH_SHOUT(, AC_MSG_ERROR([Must have libshout 2.x installed.]))
260 dnl Check for libxml
261 XIPH_PATH_XML(, AC_MSG_ERROR([Must have libxml 2.x installed.]))
263 dnl Assemble *FLAGS and *LIBS in the proper order.
264 XIPH_VAR_APPEND([XIPH_CFLAGS], [$OGG_CFLAGS])
265 XIPH_VAR_PREPEND([XIPH_LIBS], [$OGG_LIBS])
266 XIPH_VAR_APPEND([XIPH_CFLAGS], [$VORBIS_CFLAGS])
267 XIPH_VAR_PREPEND([XIPH_LIBS], [$VORBIS_LIBS])
268 XIPH_VAR_APPEND([XIPH_CFLAGS], [$VORBISFILE_CFLAGS])
269 XIPH_VAR_PREPEND([XIPH_LIBS], [$VORBISFILE_LIBS])
270 XIPH_VAR_APPEND([XIPH_CFLAGS], [$SHOUT_CFLAGS])
271 XIPH_VAR_APPEND([XIPH_CPPFLAGS], [$SHOUT_CPPFLAGS])
272 XIPH_VAR_PREPEND([XIPH_LIBS], [$SHOUT_LIBS])
273 XIPH_VAR_APPEND([XIPH_CFLAGS], [$XML_CFLAGS])
274 XIPH_VAR_PREPEND([XIPH_LIBS], [$XML_LIBS])
277 dnl OUTPUT
279 AC_CONFIG_FILES(Makefile \
280                 build-aux/Makefile \
281                 compat/Makefile \
282                 compat/sys/Makefile \
283                 doc/Makefile \
284                 examples/Makefile \
285                 m4/Makefile \
286                 src/Makefile \
287                 win32/Makefile)
289 AC_SUBST(XIPH_CPPFLAGS)
290 AC_SUBST(XIPH_CFLAGS)
291 AC_SUBST(XIPH_LIBS)
292 AC_SUBST(LIBS)
293 AC_SUBST(CFLAGS)
295 AC_OUTPUT