configure.ac 9.94 KB
Newer Older
1 2 3 4 5 6 7
dnl Process this file with autoconf to produce a configure script

dnl ------------------------------------------------
dnl Initialization
dnl ------------------------------------------------

AC_INIT(oggenc/encode.c)
8

9 10 11
AC_CANONICAL_HOST
AC_CANONICAL_TARGET

12 13
AC_PREREQ(2.53)

14
AM_INIT_AUTOMAKE([vorbis-tools],[1.1.1])
calc's avatar
calc committed
15
AM_MAINTAINER_MODE
16

17
AM_CONFIG_HEADER([config.h])
18

19 20 21 22 23 24 25 26 27 28
dnl --------------------------------------------------  
dnl Check for programs
dnl --------------------------------------------------  

dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2"
dnl if $CFLAGS is blank
cflags_save="$CFLAGS"
AC_PROG_CC
CFLAGS="$cflags_save"

29
AC_PROG_LIBTOOL
30

31
ALL_LINGUAS="be cs da es fr hr hu nl ro ru sv uk"
32
AM_GNU_GETTEXT
33

34 35
AC_SYS_LARGEFILE

36 37 38 39
dnl --------------------------------------------------
dnl Set build flags based on environment
dnl --------------------------------------------------

Ralph Giles's avatar
Ralph Giles committed
40
cflags_save="$CFLAGS"
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
if test -z "$GCC"; then
        case $host in
        *-*-irix*)
                DEBUG="-g -signed"
                CFLAGS="-O2 -w -signed"
                PROFILE="-p -g3 -O2 -signed"
                ;;
        sparc-sun-solaris*)
                DEBUG="-v -g"
                CFLAGS="-xO4 -fast -w -fsimple -native -xcg92"
                PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc"
                ;;
        *)
                DEBUG="-g"
                CFLAGS="-O"
                PROFILE="-g -p"
                ;;
        esac
else
        case $host in
        *-*-linux*)
                DEBUG="-g -Wall -fsigned-char"
63 64
                CFLAGS="-O2 -Wall -ffast-math -fsigned-char"
                PROFILE="-Wall -W -pg -g -O2 -ffast-math -fsigned-char"
65 66 67 68 69 70 71 72 73 74 75 76 77
                ;;
        sparc-sun-*)
                DEBUG="-g -Wall -fsigned-char -mv8"
                CFLAGS="-O20 -ffast-math -fsigned-char -mv8"
                PROFILE="-pg -g -O20 -fsigned-char -mv8"
                ;;
        *-*-darwin*)
                DEBUG="-fno-common -g -Wall -fsigned-char"
                CFLAGS="-fno-common -O4 -Wall -fsigned-char -ffast-math"
                PROFILE="-fno-common -O4 -Wall -pg -g -fsigned-char -ffast-math"
                ;;
        *)
                DEBUG="-g -Wall -fsigned-char"
78 79
                CFLAGS="-O2 -fsigned-char"
                PROFILE="-O2 -g -pg -fsigned-char"
80 81 82 83 84 85
                ;;
        esac
fi
CFLAGS="$CFLAGS $cflags_save"
DEBUG="$DEBUG $cflags_save"
PROFILE="$PROFILE $cflags_save"
Michael Smith's avatar
 
Michael Smith committed
86

87 88 89 90 91 92 93
dnl --------------------------------------------------
dnl Allow tools to be selectively built
dnl --------------------------------------------------
AC_ARG_ENABLE(ogg123, [  --disable-ogg123   Skip building ogg123], build_ogg123="$enableval", build_ogg123="yes")
AC_ARG_ENABLE(oggdec, [  --disable-oggdec   Skip building oggdec], build_oggdec="$enableval", build_oggdec="yes")
AC_ARG_ENABLE(oggenc, [  --disable-oggenc   Skip building oggenc], build_oggenc="$enableval", build_oggenc="yes")
AC_ARG_ENABLE(ogginfo,[  --disable-ogginfo  Skip building ogginfo], build_ogginfo="$enableval", build_ogginfo="yes")
Michael Smith's avatar
Michael Smith committed
94
AC_ARG_ENABLE(vcut,   [  --disable-vcut     Skip building vcut], build_vcut="$enableval", build_vcut="no")
95
AC_ARG_ENABLE(vorbiscomment, [  --disable-vorbiscomment   Skip building vorbiscomment], build_vorbiscomment="$enableval", build_vorbiscomment="yes")
96 97
AC_ARG_WITH(flac,     [  --without-flac     Do not compile FLAC support], build_flac=no, build_flac="yes")
AC_ARG_WITH(speex,    [  --without-speex    Do not compile Speex support], build_speex=no, build_speex="yes")
98

99
dnl --------------------------------------------------
100
dnl Check for generally needed libraries
101 102
dnl --------------------------------------------------

103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
HAVE_OGG=no
dnl first check through pkg-config
dnl check for pkg-config itself so we don't try the m4 macro without pkg-config
AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
if test "x$HAVE_PKG_CONFIG" = "xyes"
then
  PKG_CHECK_MODULES(OGG, ogg >= 1.0, HAVE_OGG=yes, HAVE_OGG=no)
fi
if test "x$HAVE_OGG" = "xno"
then
  dnl fall back to the old school test
  XIPH_PATH_OGG(,AC_MSG_ERROR(Ogg needed!))
  libs_save=$LIBS
  LIBS="$OGG_LIBS $VORBIS_LIBS"
  AC_CHECK_FUNC(oggpack_writealign, , AC_MSG_ERROR(Ogg >= 1.0 required !))
  LIBS=$libs_save
fi

dnl check for Vorbis
HAVE_VORBIS=no

dnl first check through pkg-config since it's more flexible

if test "x$HAVE_PKG_CONFIG" = "xyes"
then
128
  PKG_CHECK_MODULES(VORBIS, vorbis >= 1.1.1, HAVE_VORBIS=yes, HAVE_VORBIS=no)
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
  dnl also set VORBISENC_LIBS since an examples needs it
  dnl the old .m4 sets this to a value to use on top of VORBIS_LIBS,
  dnl so we do the same here.
  VORBISENC_LIBS="-lvorbisenc"
  VORBISFILE_LIBS="-lvorbisfile"
  AC_SUBST(VORBISENC_LIBS)
  AC_SUBST(VORBISFILE_LIBS)
fi
if test "x$HAVE_VORBIS" = "xno"
then
  dnl fall back to the old school test
  XIPH_PATH_VORBIS(,AC_MSG_ERROR(Vorbis needed!))
fi


144

145 146 147 148 149
SHARE_LIBS='$(top_builddir)/share/libutf8.a $(top_builddir)/share/libgetopt.a'
SHARE_CFLAGS='-I$(top_srcdir)/include'

I18N_CFLAGS='-I$(top_srcdir)/intl'
I18N_LIBS=$INTLLIBS
150

151 152 153
SOCKET_LIBS=
AC_CHECK_LIB(socket, socket, SOCKET_LIBS="-lsocket")
AC_CHECK_LIB(nsl, gethostbyname, SOCKET_LIBS="-lnsl $SOCKET_LIBS")
154

Ralph Giles's avatar
Ralph Giles committed
155

156
dnl --------------------------------------------------
Stan Seibert's avatar
Stan Seibert committed
157
dnl Check for ogg123 critical libraries and other optional libraries
158
dnl --------------------------------------------------
159

160 161 162 163 164
dnl curl is an optional dependancy of ogg123
dnl FIXME: upstream curl has switched to having a curl-config;
dnl maybe that's better than using AM_PATH_CURL from an acinclude.m4 in svn
AM_PATH_CURL(have_curl=yes, have_curl=no; AC_MSG_WARN(libcurl missing))

165 166
if test "x$build_ogg123" = xyes; then
  AC_MSG_RESULT([checking for ogg123 requirements])
167
  XIPH_PATH_AO(,build_ogg123=no; AC_MSG_WARN(libao missing))
168 169 170

  ACX_PTHREAD(,build_ogg123=no; AC_MSG_WARN(POSIX threads missing))
fi
Stan Seibert's avatar
Stan Seibert committed
171

172 173
dnl -------------------- FLAC ----------------------

Ralph Giles's avatar
Ralph Giles committed
174
FLAC_LIBS=""
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
if test "x$build_flac" = xyes; then
  AC_CHECK_LIB(m,log,FLAC_LIBS="-lm")
  AC_CHECK_LIB(FLAC, [FLAC__stream_decoder_process_single],
    [have_libFLAC=yes; FLAC_LIBS="-lFLAC $FLAC_LIBS"],
    AC_MSG_WARN([libFLAC missing])
    have_libFLAC=no, [$FLAC_LIBS]
  )
  AC_CHECK_LIB(OggFLAC, [OggFLAC__stream_decoder_new],
    [FLAC_LIBS="-lOggFLAC $FLAC_LIBS $OGG_LIBS"],
    AC_MSG_WARN([libOggFLAC missing])
    have_libFLAC=no, [$FLAC_LIBS $OGG_LIBS]
  )
  AC_CHECK_HEADER(FLAC/stream_decoder.h,,
    AC_MSG_WARN(libFLAC headers missing)
    have_libFLAC=no,[ ])

  if test "x$have_libFLAC" = xyes; then
     AC_DEFINE(HAVE_LIBFLAC, 1, [Defined if we have libFLAC])
  else
     build_flac="no"
     FLAC_LIBS=""
  fi
Stan Seibert's avatar
Stan Seibert committed
197
fi
198
AM_CONDITIONAL(HAVE_LIBFLAC, test "x$have_libFLAC" = "xyes")
Stan Seibert's avatar
Stan Seibert committed
199 200
AC_SUBST(FLAC_LIBS)

201 202
dnl ------------------- Speex ------------------------

Ralph Giles's avatar
Ralph Giles committed
203
SPEEX_LIBS=""
204 205 206 207 208 209 210
if test "x$build_speex" = xyes; then
  AC_CHECK_LIB(m,log,SPEEX_LIBS="-lm")
  AC_CHECK_LIB(speex, [speex_decoder_init],
    [have_libspeex=yes; SPEEX_LIBS="-lspeex $SPEEX_LIBS"],
    AC_MSG_WARN(libspeex missing)
    have_libspeex=no, [$SPEEX_LIBS]
  )
211
  AC_CHECK_HEADER(speex/speex.h,,
212 213 214 215 216 217 218 219 220
    AC_MSG_WARN(libspeex headers missing)
    have_libspeex=no,[ ])

  if test "x$have_libspeex" = xyes; then
    AC_DEFINE(HAVE_LIBSPEEX, 1, [Defined if we have libspeex])
  else
    build_speex="no"
    SPEEX_LIBS=""
  fi
221
fi
222
AM_CONDITIONAL(HAVE_LIBSPEEX, test "x$have_libspeex" = "xyes")
223 224
AC_SUBST(SPEEX_LIBS)

225 226 227 228 229 230
dnl --------------------------------------------------
dnl Check for headers
dnl --------------------------------------------------

AC_CHECK_HEADERS([fcntl.h unistd.h])

231 232 233 234
dnl --------------------------------------------------
dnl Check for library functions
dnl --------------------------------------------------

235
AC_FUNC_ALLOCA
236
AM_ICONV
237
AC_CHECK_FUNCS(atexit on_exit fcntl)
238
AM_LANGINFO_CODESET
239

240 241 242 243
dnl --------------------------------------------------
dnl Work around FHS stupidity
dnl --------------------------------------------------

244 245 246 247 248 249
if test -z "$mandir"; then
    if test "$prefix" = "/usr"; then
        MANDIR='$(datadir)/man'
    else
        MANDIR='$(prefix)/man'
    fi
250
else
251
    MANDIR=$mandir
252 253
fi
AC_SUBST(MANDIR)
254

255

256 257 258 259
dnl --------------------------------------------------
dnl Do substitutions
dnl --------------------------------------------------

Ralph Giles's avatar
Ralph Giles committed
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
# add optional subdirs to the build
OPT_SUBDIRS=""
if test "x$build_ogg123" = xyes; then
  OPT_SUBDIRS="$OPT_SUBDIRS ogg123"
fi
if test "x$build_oggenc" = xyes; then
  OPT_SUBDIRS="$OPT_SUBDIRS oggenc"
fi
if test "x$build_oggdec" = xyes; then
  OPT_SUBDIRS="$OPT_SUBDIRS oggdec"
fi
if test "x$build_ogginfo" = xyes; then
  OPT_SUBDIRS="$OPT_SUBDIRS ogginfo"
fi
if test "x$build_vcut" = xyes; then
  OPT_SUBDIRS="$OPT_SUBDIRS vcut"
fi
if test "x$build_vorbiscomment" = xyes; then
  OPT_SUBDIRS="$OPT_SUBDIRS vorbiscomment"
fi
AC_SUBST(OPT_SUBDIRS)
281

282 283
AC_SUBST(DEBUG)
AC_SUBST(PROFILE)
284
AC_SUBST(SOCKET_LIBS)
285
AC_SUBST(SHARE_CFLAGS)
286
AC_SUBST(SHARE_LIBS)
287 288
AC_SUBST(CURL_CFLAGS)
AC_SUBST(CURL_LIBS)
Segher Boessenkool's avatar
Grrr.  
Segher Boessenkool committed
289 290
AC_SUBST(I18N_CFLAGS)
AC_SUBST(I18N_LIBS)
291

292 293
AC_OUTPUT([
Makefile
294
m4/Makefile
295
po/Makefile.in
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
296
intl/Makefile
297 298 299 300 301 302 303 304 305 306 307 308
include/Makefile
share/Makefile
win32/Makefile
oggdec/Makefile
oggenc/Makefile
oggenc/man/Makefile
ogg123/Makefile
vorbiscomment/Makefile
vcut/Makefile
ogginfo/Makefile
debian/Makefile
])
309

310
if test "x$build_oggenc" = xyes -a "x$have_libFLAC" != xyes; then
Ralph Giles's avatar
Ralph Giles committed
311
    AC_MSG_WARN([FLAC and/on OggFLAC libraries or headers missing, oggenc 
312 313 314
will NOT be built with FLAC read support.])
fi

315 316
if test "x$build_ogg123" != xyes; then
    AC_MSG_WARN([Prerequisites for ogg123 not met, ogg123 will be skipped.
317 318
Please ensure that you have POSIX threads, libao, and (optionally) libcurl
libraries and headers present if you would like to build ogg123.])
319 320
else
    if test "x$have_libFLAC" != xyes; then
Ralph Giles's avatar
Ralph Giles committed
321
        AC_MSG_WARN([FLAC and/or OggFLAC libraries or headers missing, ogg123 
322 323 324
will NOT be built with FLAC read support.])
    fi
    if test "x$have_libspeex" != xyes; then
Ralph Giles's avatar
Ralph Giles committed
325
        AC_MSG_WARN([Speex libraries and/or headers missing, ogg123 
326
will NOT be built with Speex read support.])
327
    fi         
328 329 330 331
    if test "x$have_curl" != xyes; then
        AC_MSG_WARN([curl libraries and/or headers missing, ogg123 
will NOT be built with http support.])
    fi         
332
fi