diff --git a/ac/bz.m4 b/ac/bz.m4 new file mode 100644 index 000000000..c2d061e00 --- /dev/null +++ b/ac/bz.m4 @@ -0,0 +1,21 @@ +dnl +dnl Check for libbz2 +dnl + AC_ARG_ENABLE([bz2], + AC_HELP_STRING([--enable-bz2],[compile in support for BZ2 compression (auto)])) + if test x"$enable_bz2" = x"yes" -o x"$enable_bz2" = "x"; then + AC_CHECK_LIB(bz2, BZ2_bzCompress, + [ BZ2_LIBS="-lbz2" + bz2_found=yes ], + [ bz2_found=no ],) + if test "$bz2_found" = "yes"; then + AC_CHECK_HEADERS(bzlib.h, , bz2_found=no) + fi + fi + if test x"$bz2_found" = xyes ; then + opt_features_yes="$opt_features_yes\n * BZ2 compression" + else + opt_features_no="$opt_features_no\n * BZ2 compression" + fi + +AC_SUBST(BZ2_LIBS) diff --git a/ac/check_version.m4 b/ac/check_version.m4 new file mode 100644 index 000000000..b5e46159c --- /dev/null +++ b/ac/check_version.m4 @@ -0,0 +1,28 @@ +check_version() { + check_ver_req="$1" + check_ver_real="$2" + + set - `echo $check_ver_req 0 0 0 | sed 's/\./\ /g'` + check_ver_major=$1 + check_ver_minor=$2 + check_ver_micro=$3 + + set - `echo $check_ver_real 0 0 0 | sed 's/\./\ /g'` + check_ver_ok=0 + + if test "x$1" = "x" -o $1 -lt ${check_ver_major} ; then + check_ver_ok=0 + elif test $1 -gt ${check_ver_major} ; then + check_ver_ok=1 + elif test "x$2" = "x" -o $2 -lt ${check_ver_minor} ; then + check_ver_ok=0 + elif test $2 -gt ${check_ver_minor} ; then + check_ver_ok=1 + elif test "x$3" = "x" -o $3 -lt ${check_ver_micro} ; then + check_ver_ok=0 + else + check_ver_ok=1 + fi + + test $check_ver_ok = 1 +} diff --git a/ac/debugging_profiling.m4 b/ac/debugging_profiling.m4 new file mode 100644 index 000000000..aa99dd8b7 --- /dev/null +++ b/ac/debugging_profiling.m4 @@ -0,0 +1,28 @@ +dnl +dnl Debugging and profiling options +dnl +AC_ARG_ENABLE([debug], + AC_HELP_STRING([--enable-debug],[compile with debug information (no)])) + if test x"$enable_debug" = x"yes"; then + dnl debug information + DEBUG_CFLAGS="-g -DDEBUG" + OPTIMIZATION_CFLAGS="" + else + DEBUG_CFLAGS="" + OPTIMIZATION_CFLAGS="-O3" + fi +AC_ARG_ENABLE([profiling], + AC_HELP_STRING([--enable-profiling],[compile with profiling information (no)])) + if test x"$enable_profiling" = x"yes"; then + dnl profiling information + PROFILING_CFLAGS="-pg" + PROFILING_LIBS="-pg" + else + PROFILING_CFLAGS="" + PROFILING_LIBS="" + fi + +AC_SUBST(DEBUG_CFLAGS) +AC_SUBST(PROFILING_CFLAGS) +AC_SUBST(PROFILING_LIBS) +AC_SUBST(OPTIMIZATION_CFLAGS) diff --git a/ac/ebml.m4 b/ac/ebml.m4 new file mode 100644 index 000000000..7186dfa2f --- /dev/null +++ b/ac/ebml.m4 @@ -0,0 +1,112 @@ +dnl +dnl Test for libebml, and define EBML_CFLAGS and EBML_LIBS +dnl + ebml_ver_req_major=0 + ebml_ver_req_minor=7 + ebml_ver_req_micro=7 + + AC_CACHE_CHECK([for libEBML headers version >= ${ebml_ver_req_major}.${ebml_ver_req_minor}.${ebml_ver_req_micro}], + [ac_cv_ebml_found],[ + + EBML_LIBS="-lebml" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + LIBS="$LIBS $EBML_LIBS" + AC_LANG_PUSH(C++) + AC_TRY_COMPILE([ +#include +#include + +using namespace libebml; + +#if LIBEBML_VERSION < ((${ebml_ver_req_major} << 16) + (${ebml_ver_req_minor} << 8) + ${ebml_ver_req_micro}) +# error libebml is too old +#endif + ], + [], + ac_cv_ebml_found=yes, + ac_cv_ebml_found=no) + + if test "${ac_cv_ebml_found}" = "no" ; then + EBML_CFLAGS="-I/usr/local/include" + EBML_LIBS="-L/usr/local/lib $EBML_LIBS" + CXXFLAGS="-I/usr/local/include $CXXFLAGS" + LIBS="-L/usr/local/lib $LIBS" + AC_TRY_COMPILE([ +#include +#include + +using namespace libebml; + +#if LIBEBML_VERSION < ((${ebml_ver_req_major} << 16) + (${ebml_ver_req_minor} << 8) + ${ebml_ver_req_micro}) +# error libebml is too old +#endif + ], + [], + ac_cv_ebml_found=yes, + ac_cv_ebml_found=no) + fi + + AC_LANG_POP + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + ]) + + if test x"${ac_cv_ebml_found}" != "xyes" ; then + echo '*** Your libEBML version is too old. Upgrade to at least version' + echo '*** '${ebml_ver_req_major}.${ebml_ver_req_minor}.${ebml_ver_req_micro}' and re-run configure.' + exit 1 + fi + +dnl +dnl Test if libebml has to be compiled with -DEBML_DLL on Windows. +dnl + ebml_check_msg_nodll="yes, without -DEBML_DLL" + ebml_check_msg_dll="yes, with -DEBML_DLL" + + AC_CACHE_CHECK([if linking against libEBML works and if it requires -DEBML_DLL], + [ac_cv_ebml_dll],[ + AC_LANG_PUSH(C++) + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $EBML_CFLAGS" + LIBS="$LIBS $EBML_LIBS" + AC_TRY_LINK([ +#include +#include + +using namespace libebml; + ], + [EbmlDummy d;], + ac_cv_ebml_dll="${ebml_check_msg_nodll}", + ac_cv_ebml_dll="not found") + + if test x"${ac_cv_mingw32}" = "xyes" ; then + if test x"${ac_cv_ebml_dll}" != "x${ebml_check_msg_nodll}" ; then + CXXFLAGS="$CXXFLAGS -DEBML_DLL" + AC_TRY_LINK([ +#include +#include + +using namespace libebml; + ], + [EbmlDummy d;], + ac_cv_ebml_dll="${ebml_check_msg_dll}") + fi + fi + AC_LANG_POP + CXXFLAGS="${ac_save_CXXFLAGS}" + LIBS="${ac_save_LIBS}" + ]) + + if test x"${ac_cv_ebml_dll}" != "x${ebml_check_msg_dll}" -a x"${ac_cv_ebml_dll}" != "x${ebml_check_msg_nodll}" ; then + echo '*** The libEBML library was not found.' + exit 1 + fi + + if test x"${ac_cv_ebml_dll}" = "x${ebml_check_msg_dll}" ; then + EBML_CFLAGS="$EBML_CFLAGS -DEBML_DLL" + fi + +AC_SUBST(EBML_CFLAGS) +AC_SUBST(EBML_LIBS) diff --git a/ac/endianess.m4 b/ac/endianess.m4 new file mode 100644 index 000000000..f232f8f40 --- /dev/null +++ b/ac/endianess.m4 @@ -0,0 +1,59 @@ +dnl Stolen from VideoLAN Client, http://www.videolan.org/ +dnl +dnl Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling +dnl +dnl We give the user the opportunity to specify +dnl --with-words=big or --with-words=little ; otherwise, try to guess +dnl +AC_ARG_WITH(words, + AC_HELP_STRING([--with-words=endianness],[set endianness (big or little)])) + case "${with_words}" in + big) + ac_cv_c_bigendian=yes + ;; + little) + ac_cv_c_bigendian=no + ;; + *) + dnl Try to guess endianness by matching patterns on a compiled + dnl binary, by looking for an ASCII or EBCDIC string + AC_CACHE_CHECK([whether the byte order is big-endian], + [ac_cv_c_bigendian], + [ac_cv_c_bigendian="unknown" + [cat >conftest.c <>config.log 2>&1 \ + && test -f conftest.o + then + if test "`strings conftest.o | grep BIGenDianSyS`" + then + ac_cv_c_bigendian="yes" + fi + if test "`strings conftest.o | grep LiTTleEnDian`" + then + ac_cv_c_bigendian="no" + fi + fi + fi + ]) + if test "${ac_cv_c_bigendian}" = "unknown" + then + AC_MSG_ERROR([Could not guess endianness, please use --with-words]) + fi + ;; + esac +dnl Now we know what to use for endianness, just put it in the header +if test "${ac_cv_c_bigendian}" = "yes" +then + AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system) +fi diff --git a/ac/expat.m4 b/ac/expat.m4 new file mode 100644 index 000000000..895badd9b --- /dev/null +++ b/ac/expat.m4 @@ -0,0 +1,17 @@ +dnl +dnl Check for libexpat +dnl + AC_CHECK_LIB(expat, XML_ParserCreate, + [ EXPAT_LIBS="-lexpat" + expat_found=yes ], + [ expat_found=no ],) + if test "$expat_found" = "no"; then + AC_MSG_ERROR([Could not find the Expat library]) + fi + AC_CHECK_HEADERS(expat.h, , expat_found=no) + if test "$expat_found" = "no"; then + AC_MSG_ERROR([Could not find expat.h]) + fi + +AC_SUBST(EXPAT_CFLAGS) +AC_SUBST(EXPAT_LIBS) diff --git a/ac/extra_inc_lib.m4 b/ac/extra_inc_lib.m4 new file mode 100644 index 000000000..0d565dc52 --- /dev/null +++ b/ac/extra_inc_lib.m4 @@ -0,0 +1,44 @@ +dnl +dnl Extra include and library dirs that someone would like to specify. +dnl +AC_ARG_WITH(extra-includes, + AC_HELP_STRING([--with-extra-includes=DIR],[Path to other include directories separated by ';']),, + with_extra_include_given=no) +AC_ARG_WITH(extra-libs, + AC_HELP_STRING([--with-extra-libs=DIR],[Path to other library directories separated by ';']),, + with_extra_libs_given=no) + EXTRA_CFLAGS= + + USER_CFLAGS="$CFLAGS" + USER_CPPFLAGS="$CPPFLAGS" + USER_CXXFLAGS="$CXXFLAGS" + USER_LDFLAGS="$LDFLAGS" + + if test "$with_extra_includes" != ""; then + DIRS=`echo $with_extra_includes | cut -d '=' -f 2 | sed 's,;, -I,g'` + EXTRA_CFLAGS="-I$DIRS" + CFLAGS="$CFLAGS -I$DIRS" + CXXFLAGS="$CXXFLAGS -I$DIRS" + CPPFLAGS="$CPPFLAGS -I$DIRS" + fi + + EXTRA_LDFLAGS= + if test "$with_extra_libs" != ""; then + DIRS=`echo $with_extra_libs | cut -d '=' -f 2 | sed 's,;, -L,g'` + EXTRA_LDFLAGS="-L$DIRS" + LDFLAGS="$LDFLAGS -L$DIRS" + fi + + LDFLAGS_RPATHS= + if test "$MINGW" != "1"; then + LDFLAGS_RPATHS=`echo " $LDFLAGS" | sed 's: -L: -Wl,--rpath :g'` + fi + +AC_SUBST(EXTRA_CFLAGS) +AC_SUBST(EXTRA_LDFLAGS) + +AC_SUBST(USER_CFLAGS) +AC_SUBST(USER_CPPFLAGS) +AC_SUBST(USER_CXXFLAGS) +AC_SUBST(USER_LDFLAGS) +AC_SUBST(LDFLAGS_RPATHS) diff --git a/ac/flac.m4 b/ac/flac.m4 new file mode 100644 index 000000000..b8309728b --- /dev/null +++ b/ac/flac.m4 @@ -0,0 +1,47 @@ +dnl +dnl Check for libFLAC +dnl + + dnl FLAC 1.2.1 with mingw needs the winsock library. + flac_winsock= + if test "x$MINGW" = "x1" ; then + flac_winsock="-lwsock32" + fi + + AC_ARG_WITH([flac], + AC_HELP_STRING([--without-flac], [do not build with flac support]), + [ with_flac=${withval} ], [ with_flac=yes ]) + + if test "$with_flac" != "no"; then + AC_CHECK_LIB(FLAC, FLAC__stream_decoder_new, + [ FLAC_LIBS="-lFLAC $OGG_LIBS -lm $flac_winsock" + flac_found=yes ], + [ flac_found=no ], + $OGG_LIBS -lm $flac_winsock) + else + flac_found=no + fi + if test "$flac_found" = "yes"; then + AC_CHECK_MEMBER(FLAC__StreamMetadata_StreamInfo.sample_rate, , + [ flac_found=no ], + [ #include + ]) + fi + if test x"$flac_found" = xyes ; then + AC_CHECK_LIB(FLAC, FLAC__stream_decoder_skip_single_frame, + [ flac_decoder_skip_found=yes ], + [ flac_decoder_skip_found=no ], + $FLAC_LIBS) + if test x"$flac_decoder_skip_found" = xyes; then + opt_features_yes="$opt_features_yes\n * FLAC audio (1.1.1 or newer)" + AC_DEFINE(HAVE_FLAC_DECODER_SKIP, [1], [Define if FLAC__stream_decoder_skip_single_frame exists]) + else + opt_features_yes="$opt_features_yes\n * FLAC audio (1.1.0 or older)" + fi + AC_DEFINE(HAVE_FLAC_FORMAT_H, [1], [Define if the FLAC headers are present]) + else + FLAC_LIBS="" + opt_features_no="$opt_features_no\n * FLAC audio" + fi + +AC_SUBST(FLAC_LIBS) diff --git a/ac/gcc_version.m4 b/ac/gcc_version.m4 new file mode 100644 index 000000000..8509ff1af --- /dev/null +++ b/ac/gcc_version.m4 @@ -0,0 +1,21 @@ +dnl +dnl Check the gcc version for the genreation of dependecy information +dnl +AC_CACHE_CHECK([gcc version], + [ac_cv_gcc_version],[ + ac_cv_gcc_version="`$CXX -dumpversion`" + ]) + +case "$ac_cv_gcc_version" in + 2.*) + GCC_DEP_STYLE=v2 + ;; + 3.*) + GCC_DEP_STYLE=v3 + ;; + *) + GCC_DEP_STYLE=v3 + ;; +esac + +AC_SUBST(GCC_DEP_STYLE) diff --git a/ac/iconv.m4 b/ac/iconv.m4 new file mode 100644 index 000000000..6d37a6561 --- /dev/null +++ b/ac/iconv.m4 @@ -0,0 +1,66 @@ +dnl +dnl Test for libiconv +dnl +dnl This macros shamelessly stolen from +dnl http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg01398.html. +dnl Written by Bruno Haible. +dnl +dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and +dnl those with the standalone portable GNU libiconv installed). +dnl + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS -liconv" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + else + echo '*** The iconv library is needed but could not be found.' + echo '*** Please install it and re-run configure. You can find iconv' + echo '*** at http://www.gnu.org/software/libiconv/' + exit 1 + fi + ICONV_LIBS= + if test "$am_cv_lib_iconv" = yes; then + ICONV_LIBS="-liconv" + fi + +AC_SUBST(ICONV_LIBS) diff --git a/ac/initialization.m4 b/ac/initialization.m4 new file mode 100644 index 000000000..1d520bfaf --- /dev/null +++ b/ac/initialization.m4 @@ -0,0 +1,19 @@ +SAVED_CFLAGS="$CFLAGS" +AC_PROG_CC +CFLAGS="$SAVED_CFLAGS" +AC_PROG_CC_C_O +AC_PROG_CPP +SAVED_CXXFLAGS="$CXXFLAGS" +AC_PROG_CXX +CXXFLAGS="$SAVED_CXXFLAGS" +AC_PROG_MAKE_SET +AC_PROG_INSTALL +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) +AC_CHECK_TOOL(AR, ar, :) +AC_CHECK_TOOL(LD, ld, :) + +dnl Check for headers +AC_HEADER_STDC() +AC_CHECK_HEADERS([inttypes.h stdint.h sys/types.h]) +AC_CHECK_FUNCS(vsscanf,,) diff --git a/ac/inttypes.m4 b/ac/inttypes.m4 new file mode 100644 index 000000000..6c7e659cc --- /dev/null +++ b/ac/inttypes.m4 @@ -0,0 +1,80 @@ +dnl +dnl Test if the 64bit integer types are available, and if not if they +dnl can be typedef'ed manually. +dnl +AC_MSG_CHECKING(for int64_t) +AC_LANG_PUSH(C++) +AC_CACHE_VAL(ac_cv_has_int64_t,[ + AC_TRY_COMPILE([ +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H +# include +#endif +#if HAVE_SYS_TYPES_H +# include +#endif + ], + [int64_t foo;], + ac_cv_has_int64_t=yes, + ac_cv_has_int64_t=no) + ]) +AC_MSG_RESULT($ac_cv_has_int64_t) + +AC_MSG_CHECKING(for uint64_t) +AC_CACHE_VAL(ac_cv_has_uint64_t,[ + AC_TRY_COMPILE([ +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H +# include +#endif +#if HAVE_SYS_TYPES_H +# include +#endif + ], + [int64_t foo;], + ac_cv_has_uint64_t=yes, + ac_cv_has_uint64_t=no) + ]) +AC_MSG_RESULT($ac_cv_has_uint64_t) +AC_LANG_POP + +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(long long) + +if test x$ac_cv_has_int64_t = "xyes" ; then + TYPE64="int64_t" +else + case 8 in + $ac_cv_sizeof_int) TYPE64="int";; + $ac_cv_sizeof_long) TYPE64="long";; + $ac_cv_sizeof_long_long) TYPE64="long long";; + esac + AC_DEFINE(HAVE_NO_INT64_T, 1, [int64_t does not exist]) + AC_DEFINE_UNQUOTED(INT64_TYPE, $TYPE64, + [the type to define int64_t manually]) +fi + +if test x$ac_cv_has_uint64_t = "xyes" ; then + TYPEU64="int64_t" +else + case 8 in + $ac_cv_sizeof_int) TYPEU64="unsigned int";; + $ac_cv_sizeof_long) TYPEU64="unsigned long";; + $ac_cv_sizeof_long_long) TYPEU64="unsigned long long";; + esac + AC_DEFINE(HAVE_NO_UINT64_T, 1, [uint64_t does not exist]) + AC_DEFINE_UNQUOTED(UINT64_TYPE, $TYPEU64, + [the type to define uint64_t manually]) +fi + +if test -z "$TYPE64"; then + AC_MSG_ERROR(No 64 bit type found on this platform!) +fi +if test -z "$TYPEU64"; then + AC_MSG_ERROR(No unsigned 64 bit type found on this platform!) +fi diff --git a/ac/lzo.m4 b/ac/lzo.m4 new file mode 100644 index 000000000..f9405ac4c --- /dev/null +++ b/ac/lzo.m4 @@ -0,0 +1,29 @@ +dnl +dnl Check for liblzo +dnl + AC_ARG_ENABLE([lzo], + AC_HELP_STRING([--enable-lzo],[compile in support for LZO compression (auto)])) + if test "x$enable_lzo" != "xno"; then + AC_CHECK_LIB(lzo2, lzo1x_1_compress, + [ LZO_LIBS="-llzo2" + lzo_found=yes ], + [ AC_CHECK_LIB(lzo, lzo1x_1_compress, + [ LZO_LIBS="-llzo" + lzo_found=yes ], + [ lzo_found=no ],) + ],) + if test "x$lzo_found" = "xyes"; then + AC_CHECK_HEADERS([lzo1x.h lzo/lzo1x.h]) + if test "x$ac_cv_header_lzo1x_h" != "xyes" -a "x$ac_cv_header_lzo_lzo1x_h" != "xyes"; then + lzo_found=no + fi + fi + fi + if test x"$lzo_found" = xyes ; then + opt_features_yes="$opt_features_yes\n * LZO compression" + AC_DEFINE([HAVE_LZO], [1], [Define this if LZO compression is present]) + else + opt_features_no="$opt_features_no\n * LZO compression" + fi + +AC_SUBST(LZO_LIBS) diff --git a/ac/magic.m4 b/ac/magic.m4 new file mode 100644 index 000000000..95f4dbe10 --- /dev/null +++ b/ac/magic.m4 @@ -0,0 +1,19 @@ +dnl +dnl Check for libmagic +dnl +AC_CHECK_LIB(magic, magic_open, + [ MAGIC_LIBS="-lmagic -lz" + magic_found=yes ], + [ magic_found=no ], + -lz) + +if test "x$magic_found" = "xyes" ; then + AC_CHECK_HEADERS([magic.h]) + if test "x$ac_cv_header_magic_h" = "xyes" ; then + opt_features_yes="$opt_features_yes\n * libMagic file type detection" + else + opt_features_no="$opt_features_no\n * libMagic file type detection" + fi +fi + +AC_SUBST(MAGIC_LIBS) diff --git a/ac/matroska.m4 b/ac/matroska.m4 new file mode 100644 index 000000000..bf4346861 --- /dev/null +++ b/ac/matroska.m4 @@ -0,0 +1,118 @@ +dnl +dnl Test for libmatroska, and define MATROSKA_CFLAGS and MATROSKA_LIBS +dnl + kax_ver_req_major=0 + kax_ver_req_minor=8 + kax_ver_req_micro=1 + + AC_CACHE_CHECK([for libMatroska headers version >= ${kax_ver_req_major}.${kax_ver_req_minor}.${kax_ver_req_micro}], + [ac_cv_matroska_found], + [ + + MATROSKA_LIBS="-lmatroska" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CXXFLAGS="$CFLAGS $MATROSKA_CFLAGS" + LIBS="$LIBS $MATROSKA_LIBS $EBML_LIBS" + rm -f conf.matroskatest + AC_LANG_PUSH(C++) + AC_TRY_COMPILE([ +#include +#include +#include + +using namespace libmatroska; + +#if LIBMATROSKA_VERSION < ((${kax_ver_req_major} << 16) + (${kax_ver_req_minor} << 8) + ${kax_ver_req_micro}) +# error libmatroska is too old +#endif + ], + [], + ac_cv_matroska_found=yes, + ac_cv_matroska_found=no) + + if test x"${ac_cv_matroska_found}" != "xyes" ; then + MATROSKA_CFLAGS="-I/usr/local/include" + MATROSKA_LIBS="-L/usr/local/lib $MATROSKA_LIBS" + CXXFLAGS="-I/usr/local/include $CXXFLAGS" + LIBS="-L/usr/local/lib $LIBS" + AC_TRY_COMPILE([ +#include +#include +#include + +using namespace libmatroska; + +#if LIBMATROSKA_VERSION < ((${kax_ver_req_major} << 16) + (${kax_ver_req_minor} << 8) + ${kax_ver_req_micro}) +# error libmatroska is too old +#endif + ], + [], + ac_cv_matroska_found=yes, + ac_cv_matroska_found=no) + fi + + AC_LANG_POP + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + ]) + + if test x"${ac_cv_matroska_found}" != "xyes" ; then + echo '*** Your libMatroska version is too old. Upgrade to at least version' + echo '*** '${kax_ver_req_major}.${kax_ver_req_minor}.${kax_ver_req_micro}' and re-run configure.' + exit 1 + fi + + matroska_check_msg_nodll="yes, without -MATROSKA_DLL" + matroska_check_msg_dll="yes, with -DMATROSKA_DLL" + + AC_CACHE_CHECK([if linking against libMatroska works and if it requires -DMATROSKA_DLL], + [ac_cv_matroska_dll],[ + AC_LANG_PUSH(C++) + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $EBML_CFLAGS $MATROSKA_CFLAGS" + LIBS="$LIBS $MATROSKA_LIBS $EBML_LIBS" + AC_TRY_LINK([ +#include +#include + +using namespace libmatroska; + ], + [KaxSegment s;], + ac_cv_matroska_dll="${matroska_check_msg_nodll}", + ac_cv_matroska_dll="not found") + + if test x"${ac_cv_mingw32}" = "xyes" ; then + if test x"${ac_cv_matroska_dll}" != "x${matroska_check_msg_nodll}" ; then + CXXFLAGS="$CXXFLAGS -DMATROSKA_DLL" + AC_TRY_LINK([ +#include +#include + +using namespace libmatroska; + ], + [KaxSegment s;], + ac_cv_matroska_dll="${matroska_check_msg_dll}") + fi + fi + AC_LANG_POP + CXXFLAGS="${ac_save_CXXFLAGS}" + LIBS="${ac_save_LIBS}" + ]) + + if test x"${ac_cv_matroska_dll}" != "x${matroska_check_msg_nodll}" -a x"${ac_cv_matroska_dll}" != "x${matroska_check_msg_dll}" ; then + echo '*** The libMatroska library was not found.' + exit 1 + fi + + if test x"${ac_cv_matroska_dll}" = "x${matroska_check_msg_dll}" ; then + MATROSKA_CFLAGS="$MATROSKA_CFLAGS -DMATROSKA_DLL" + fi + + if test x"${ac_cv_ebml_dll}" != "xyes" -o x"${ac_cv_matroska_dll}" != "xyes" ; then + LIBMTXCOMMONDLL=0 + fi + +AC_SUBST(MATROSKA_CFLAGS) +AC_SUBST(MATROSKA_LIBS) diff --git a/ac/mingw.m4 b/ac/mingw.m4 new file mode 100644 index 000000000..bc0d2a128 --- /dev/null +++ b/ac/mingw.m4 @@ -0,0 +1,25 @@ +dnl +dnl Check for mingw +dnl +AC_CACHE_CHECK([if being compiled with mingw32], + [ac_cv_mingw32],[ + if test "x`$CXX --version | grep -i mingw`" = "x" ; then + ac_cv_mingw32=no + else + ac_cv_mingw32=yes + fi]) + + if test "x$ac_cv_mingw32" = "xyes"; then + export MINGW=1 + MINGW_GUIAPP=-mwindows + LIBMTXCOMMONDLL=1 + EXEEXT=.exe + else + LIBMTXCOMMONDLL=0 + fi + +AC_SUBST(MINGW) +AC_SUBST(MINGW_LIBS) +AC_SUBST(MINGW_GUIAPP) +AC_SUBST(LIBMTXCOMMONDLL) +AC_SUBST(EXEEXT) diff --git a/ac/nl_langinfo.m4 b/ac/nl_langinfo.m4 new file mode 100644 index 000000000..c1531c37d --- /dev/null +++ b/ac/nl_langinfo.m4 @@ -0,0 +1,37 @@ +dnl +dnl Check for nl_langinfo or at least locale_charset +dnl +if test x"$MINGW" != "x1" ; then + AC_MSG_CHECKING(for nl_langinfo) + AC_CACHE_VAL(ac_cv_has_nl_langinfo,[ + AC_TRY_COMPILE([ +#include + ], + [nl_langinfo(CODESET);], + ac_cv_has_nl_langinfo=yes, + ac_cv_has_nl_langinfo=no) + ]) + AC_MSG_RESULT($ac_cv_has_nl_langinfo) + if test x"$ac_cv_has_nl_langinfo" = "xyes" ; then + AC_DEFINE(HAVE_NL_LANGINFO, 1, [nl_langinfo is available]) + else + AC_MSG_CHECKING(for locale_charset) + AC_CACHE_VAL(ac_cv_has_locale_charset,[ + AC_TRY_COMPILE([ +#include + ], + [locale_charset();], + ac_cv_has_locale_charset=yes, + ac_cv_has_locale_charset=no) + ]) + AC_MSG_RESULT($ac_cv_has_locale_charset) + if test x"$ac_cv_has_locale_charset" = "xyes" ; then + AC_DEFINE(HAVE_LOCALE_CHARSET, 1, [locale_charset is available]) + else + echo '*** Your system has neither nl_langinfo nor locale_charset.' + echo '*** Please install libcharset which is part of libiconv' + echo '*** available at http://www.gnu.org/software/libiconv/' + exit 1 + fi + fi +fi diff --git a/ac/ogg.m4 b/ac/ogg.m4 new file mode 100644 index 000000000..68fff6c83 --- /dev/null +++ b/ac/ogg.m4 @@ -0,0 +1,16 @@ +dnl +dnl Check for libogg +dnl + AC_CHECK_LIB(ogg, ogg_sync_init, + [ OGG_LIBS="-logg" + ogg_found=yes ], + [ ogg_found=no ],) + if test "$ogg_found" = "no"; then + AC_MSG_ERROR([Could not find the Ogg library]) + fi + AC_CHECK_HEADERS(ogg/ogg.h, , ogg_found=no) + if test "$ogg_found" = "no"; then + AC_MSG_ERROR([Could not find the Ogg header files]) + fi + +AC_SUBST(OGG_LIBS) diff --git a/ac/pcrecpp.m4 b/ac/pcrecpp.m4 new file mode 100644 index 000000000..826d82112 --- /dev/null +++ b/ac/pcrecpp.m4 @@ -0,0 +1,37 @@ +dnl +dnl Check for libpcre +dnl +AC_PATH_PROG(PCRE_CONFIG, pcre-config, no, $PATH:/usr/local/bin) +if test x"$PCRE_CONFIG" = "xno" ; then + AC_MSG_ERROR([Cound not find the pcre-config program]) +fi + +PCRE_CFLAGS="`$PCRE_CONFIG --cflags`" +PCRE_LIBS="`$PCRE_CONFIG --libs` -lpcrecpp" + +AC_CACHE_CHECK([for libpcrecpp],[ac_cv_pcre_links],[ + ac_save_LIBS="$LIBS" + ac_save_CXXFLAGS="$CXXFLAGS" + LIBS="$LIBS $PCRE_LIBS" + CXXFLAGS="$CXXFLAGS $PCRE_CFLAGS" + + AC_LANG_PUSH(C++) + AC_TRY_LINK([ +#include + ], + [pcrecpp::RE re("test");], + ac_cv_pcre_links=yes, + ac_cv_pcre_links=no) + AC_LANG_POP + + LIBS="$ac_save_LIBS" + CXXFLAGS="$ac_save_CXXFLAGS" + +]) + +if test x"$ac_cv_pcre_links" = "xno"; then + AC_MSG_ERROR([Could not find the PCRE C++ library]) +fi + +AC_SUBST(PCRE_CFLAGS) +AC_SUBST(PCRE_LIBS) diff --git a/ac/posix_fadvise.m4 b/ac/posix_fadvise.m4 new file mode 100644 index 000000000..bf650d130 --- /dev/null +++ b/ac/posix_fadvise.m4 @@ -0,0 +1,23 @@ +dnl +dnl Check for posix_fadvise and its definitions +dnl +AC_ARG_ENABLE(posix-fadvise, + AC_HELP_STRING([--disable-posix-fadvise],[do not use posix_fadvise (auto)]),, + [enable_posix_fadvise=yes]) + +if test x"$enable_posix_fadvise" != "xno" ; then + AC_CACHE_CHECK([for posix_fadvise], [ac_cv_posix_fadvise],[ + ac_cv_posix_fadvise="no" + AC_LANG_PUSH(C++) + AC_TRY_COMPILE([ +#include + ],[ + posix_fadvise(0, 0, 0, POSIX_FADV_WILLNEED); + posix_fadvise(0, 0, 0, POSIX_FADV_DONTNEED); + ],[ac_cv_posix_fadvise="yes"]) + AC_LANG_POP + ]) + if test x"$ac_cv_posix_fadvise" = "xyes" ; then + AC_DEFINE([HAVE_POSIX_FADVISE], 1, [define if posix_advise and its definitions are available]) + fi +fi diff --git a/ac/pri64d.m4 b/ac/pri64d.m4 new file mode 100644 index 000000000..6a148663a --- /dev/null +++ b/ac/pri64d.m4 @@ -0,0 +1,28 @@ +dnl +dnl Verify that PRId64 and PRIu64 are available +dnl +AC_MSG_CHECKING(for PRId64 and PRIu64) +AC_CACHE_VAL(ac_cv_has_prix64,[ + AC_TRY_COMPILE([ +#define __STDC_FORMAT_MACROS +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H +# include +#endif +#if HAVE_SYS_TYPES_H +# include +#endif + ], + [char *dummy = "text " PRId64 " text " PRIu64;], + ac_cv_has_prix64=yes, + ac_cv_has_prix64=no) + ]) +AC_MSG_RESULT($ac_cv_has_prix64) + +if test x$ac_cv_has_prix64 = "xno" ; then + echo "*** On your system the #define PRId64 and/or PRIu64 was not found." + echo "*** These are required for compilation. Please contact the author." + exit 1 +fi diff --git a/ac/qt4.m4 b/ac/qt4.m4 new file mode 100644 index 000000000..dc65cc802 --- /dev/null +++ b/ac/qt4.m4 @@ -0,0 +1,166 @@ +dnl +dnl Check for Qt 4 or newer +dnl + +AC_ARG_ENABLE([qt], + AC_HELP_STRING([--enable-qt],[compile the Qt version of the GUIs (no)])) + +qt_min_ver=4.0.0 + +if test x"$enable_qt" = "xyes" -a \ + '(' x"$enable_gui" = x"yes" -o x"$enable_gui" = "x" ')'; then + dnl Find moc. + AC_ARG_WITH(moc, + AC_HELP_STRING([--with-moc=prog],[use prog instead of looking for moc]), + [ MOC="$with_moc" ],) + if ! test -z "$MOC"; then + AC_MSG_CHECKING(for moc) + AC_MSG_RESULT(using supplied $MOC) + else + AC_PATH_PROG(MOC, moc-qt4,, $PATH) + if test -z "$MOC"; then + AC_PATH_PROG(MOC, moc,, $PATH) + fi + fi + if test -z "$MOC" -o ! -x "$MOC"; then + echo "*** The 'moc' binary was not found or is not executable." + exit 1 + fi + + dnl Check its version. + AC_MSG_CHECKING(for the Qt version $MOC uses) + moc_ver=`"$MOC" -v 2>&1 | sed -e 's:.*Qt ::' -e 's:[[^0-9\.]]::g'` + if test -z "moc_ver"; then + AC_MSG_RESULT(unknown; please contact the author) + elif ! check_version $qt_min_ver $moc_ver; then + AC_MSG_RESULT(too old: $moc_ver) + else + AC_MSG_RESULT($moc_ver) + moc_found=1 + fi + + AC_ARG_WITH(uic, + AC_HELP_STRING([--with-uic=prog],[use prog instead of looking for uic]), + [ UIC="$with_uic" ],) + + if test x"$moc_found" = "x1"; then + if ! test -z "$UIC"; then + AC_MSG_CHECKING(for uic) + AC_MSG_RESULT(using supplied $UIC) + else + AC_PATH_PROG(UIC, uic-qt4,, $PATH) + if test -z "$UIC"; then + AC_PATH_PROG(UIC, uic,, $PATH) + fi + fi + if test -z "$UIC" -o ! -x "$UIC"; then + echo "*** The 'uic' binary was not found or is not executable." + exit 1 + fi + + dnl Check its version. + AC_MSG_CHECKING(for the Qt version $UIC uses) + uic_ver=`"$UIC" -v 2>&1 | sed -e 's:.*Qt ::' -e 's:[[^0-9\.]]::g'` + if test -z "uic_ver"; then + AC_MSG_RESULT(unknown; please contact the author) + elif ! check_version $qt_min_ver $uic_ver; then + AC_MSG_RESULT(too old: $uic_ver) + else + AC_MSG_RESULT($uic_ver) + uic_found=1 + fi + fi + + AC_MSG_CHECKING(for Qt $qt_min_ver or newer) + if test x"$moc_found" != "x1"; then + AC_MSG_RESULT(no: moc not found) + elif test x"$uic_found" != "x1"; then + AC_MSG_RESULT(no: uic not found) + elif ! pkg-config QtGui --atleast-version=$qt_min_ver || \ + ! pkg-config QtCore --atleast-version=$qt_min_ver ; then + AC_MSG_RESULT(no: pkg-config says "too old") + else + dnl Try compiling and linking an application. + QT_CFLAGS="`pkg-config QtCore --cflags` `pkg-config QtGui --cflags`" + QT_LIBS="`pkg-config QtGui --libs`" + + AC_LANG_PUSH(C++) + AC_CACHE_VAL(am_cv_qt_compilation, [ + run_qt_test=1 + while true; do + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $QT_CFLAGS" + LIBS="$LDFLAGS $QT_LIBS" + unset ac_cv_qt_compilation + + AC_TRY_LINK([ +#include +class Config : public QCoreApplication { +public: +Config(int &argc, char **argv); +}; +Config::Config(int &argc, char **argv) +: QCoreApplication(argc,argv) {setApplicationName("config");} + ], [ +int ai = 0; +char **ac = 0; +Config app(ai,ac); +qWarning(qPrintable(app.applicationName())); +return 0; + ], [ am_cv_qt_compilation=1 ], [ am_cv_qt_compilation=0 ]) + + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + + if test x"$am_cv_qt_compilation" = x1; then + break + + elif test x"$run_qt_test" = "x1"; then + dnl On some systems (notably OpenSuSE 10.0) the pkg-config for the + dnl --cflags don't include the QtCore and QtGui subdirectories. + dnl Add them now. + set - $QT_CFLAGS + while test ! -z "$1" ; do + case "$1" in + -I*) + QT_CFLAGS="$QT_CFLAGS $1/QtCore $1/QtGui" + ;; + esac + shift + done + run_qt_test=2 + + elif test x"$run_qt_test" = "x2"; then + QT_CFLAGS="$QT_CFLAGS -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/local/include/QtCore -I/usr/local/include/QtGui" + run_qt_test=3 + + else + break + + fi + done + ]) + AC_LANG_POP() + + if test x"$am_cv_qt_compilation" = x1; then + AC_DEFINE(HAVE_QT, 1, [Define if Qt is present]) + have_qt=yes + USE_QT=yes + opt_features_yes="$opt_features_yes\n * GUIs (Qt version)" + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no: test program could not be compiled) + fi + fi +fi + +if test x"$have_qt" != "xyes" ; then + opt_features_no="$opt_features_no\n * GUIs (Qt version)" +fi + +AC_SUBST(MOC) +AC_SUBST(UIC) +AC_SUBST(QT_CFLAGS) +AC_SUBST(QT_LIBS) +AC_SUBST(USE_QT) diff --git a/ac/translations.m4 b/ac/translations.m4 new file mode 100644 index 000000000..494588bc3 --- /dev/null +++ b/ac/translations.m4 @@ -0,0 +1,34 @@ +dnl +dnl Which translations should be installed? +dnl +dnl AC_CHECK_FUNCS(gettext, gettext_found=yes, gettext_found=no) +dnl if test x"$gettext_found" != xyes ; then +dnl AC_CHECK_LIB(intl, gettext, +dnl [ LIBINTL_LIBS="-lintl"; +dnl gettext_found=yes ], gettext_found=no) +dnl fi +dnl if test x"$gettext_found" = xyes ; then +dnl AC_CHECK_HEADERS(libintl.h, libintl_h_found=yes, libintl_h_found=no) +dnl if test x"$libintl_h_found" = xyes ; then +dnl AC_MSG_CHECKING(the translations to install) +dnl if test x"$LINGUAS" = x ; then +dnl TRANSLATIONS_POS="`echo po/*.po`" +dnl else +dnl for i in $LINGUAS; do +dnl if test -f "po/$i.po" ; then +dnl TRANSLATIONS_POS="$TRANSLATIONS_POS po/$i.po" +dnl fi +dnl done +dnl fi +dnl TRANSLATIONS="`echo "$TRANSLATIONS_POS" | \ +dnl sed -e 's/po\///g' -e 's/\.po//g'`" +dnl AC_MSG_RESULT($TRANSLATIONS) +dnl fi +dnl opt_features_yes="$opt_features_yes\n * translations (gettext)" +dnl else +dnl opt_features_no="$opt_features_yes\n * translations (gettext)" +dnl fi + +AC_SUBST(LIBINTL_LIBS) +AC_SUBST(TRANSLATIONS_POS) +AC_SUBST(TRANSLATIONS) diff --git a/ac/vorbis.m4 b/ac/vorbis.m4 new file mode 100644 index 000000000..03f200a35 --- /dev/null +++ b/ac/vorbis.m4 @@ -0,0 +1,17 @@ +dnl +dnl Check for libvorbis +dnl + AC_CHECK_LIB(vorbis, vorbis_synthesis_init, + [ VORBIS_LIBS="-lvorbis -lm" + vorbis_found=yes ], + [ vorbis_found=no ], + $OGG_LIBS -lm) + if test "$vorbis_found" = "no"; then + AC_MSG_ERROR([Could not find the Vorbis library]) + fi + AC_CHECK_HEADERS(vorbis/codec.h, , vorbis_found=no) + if test "$vorbis_found" = "no"; then + AC_MSG_ERROR([Could not find the Vorbis header files]) + fi + +AC_SUBST(VORBIS_LIBS) diff --git a/ac/wxwidgets.m4 b/ac/wxwidgets.m4 new file mode 100644 index 000000000..81bac6e36 --- /dev/null +++ b/ac/wxwidgets.m4 @@ -0,0 +1,82 @@ +dnl +dnl Check for wxWidgets +dnl + AC_ARG_ENABLE([gui], + AC_HELP_STRING([--enable-gui],[compile mkvinfo's GUI and mmg (yes)])) + + AC_ARG_ENABLE([wxwidgets], + AC_HELP_STRING([--enable-wxwidgets],[compile the wxWidgets version of the GUIs (yes)])) + + wxw_min_ver=2.6.0 + + if test '(' x"$enable_wxwidgets" = xyes -o x"$enable_wxwidgets" = x ')' -a \ + '(' x"$enable_gui" = xyes -o x"$enable_gui" = x ')'; then + AC_ARG_WITH(wx_config, + AC_HELP_STRING([--with-wx-config=prog], + [use prog instead of looking for wx-config]), + [ WX_CONFIG="$with_wx_config" ],) + AC_PATH_PROG(WX_CONFIG, wx-config, no, $PATH:/usr/local/bin) + if test x"$WX_CONFIG" != "xno" ; then + AC_MSG_CHECKING(for wxWidgets $wxw_min_ver or newer) + + wxwversion=`$WX_CONFIG --version` + if check_version $wxw_min_ver $wxwversion ; then + WXWIDGETS_CFLAGS=`$WX_CONFIG --cxxflags` + WXWIDGETS_LIBS=`$WX_CONFIG --libs | \ + sed -e 's/-Wl,--subsystem,windows//' -e 's/-mwindows//'` + AC_CACHE_VAL(am_cv_wx_compilation, [ + AC_LANG_PUSH(C++) + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $WXWIDGETS_CFLAGS" + LIBS="$LDFLAGS $WXWIDGETS_LIBS" + AC_TRY_LINK([ +#include +#include +], [ +wxDragResult result = wxDragError; +wxTreeItemId id; +], [ am_cv_wx_compilation=1 ], [ am_cv_wx_compilation=0 ]) + AC_LANG_POP() + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + ]) + if test x"$am_cv_wx_compilation" = x1; then + if test "x$MINGW" = "x1" ; then + WXWIDGETS_INCLUDES="" + set - `echo $WXWIDGETS_CFLAGS` + while test "x$1" != "x" ; do + case "$1" in + -I*) + WXWIDGETS_INCLUDES="$WXWIDGETS_INCLUDES $1" + ;; + esac + shift + done + fi + AC_DEFINE(HAVE_WXWIDGETS, 1, [Define if wxWindows is present]) + AC_MSG_RESULT($wxwversion ok) + have_wxwindows=yes + USE_WXWIDGETS=yes + opt_features_yes="$opt_features_yes\n * GUIs (wxWidgets version)" + else + AC_MSG_RESULT(no: test program could not be compiled) + fi + else + AC_MSG_RESULT(no: version $wxwversion is too old) + fi + else + AC_MSG_RESULT(no: wx-config was not found) + fi + else + echo '*** Not checking for wxWidgets: disabled by user request' + fi + + if test x"$have_wxwindows" != "xyes" ; then + opt_features_no="$opt_features_no\n * GUIs (wxWidgets version)" + fi + +AC_SUBST(WXWIDGETS_CFLAGS) +AC_SUBST(WXWIDGETS_INCLUDES) +AC_SUBST(WXWIDGETS_LIBS) +AC_SUBST(USE_WXWIDGETS) diff --git a/ac/zlib.m4 b/ac/zlib.m4 new file mode 100644 index 000000000..e5f3c2f09 --- /dev/null +++ b/ac/zlib.m4 @@ -0,0 +1,13 @@ +dnl +dnl Check for zlib +dnl + AC_CHECK_LIB(z, zlibVersion, + [ ZLIB_LIBS="-lz" + zlib_found=yes ], + [ zlib_found=no ],) + if test "$zlib_found" = "no"; then + AC_MSG_ERROR([Could not find the zlib library]) + fi + AC_CHECK_HEADERS(zlib.h, , zlib_found=no) + +AC_SUBST(ZLIB_LIBS) diff --git a/configure.in b/configure.in index 70097afb9..29470edc6 100644 --- a/configure.in +++ b/configure.in @@ -8,1248 +8,37 @@ VERSION="2.2.0" AC_SUBST(PACKAGE) AC_SUBST(VERSION) -SAVED_CFLAGS="$CFLAGS" -AC_PROG_CC -CFLAGS="$SAVED_CFLAGS" -AC_PROG_CC_C_O -AC_PROG_CPP -SAVED_CXXFLAGS="$CXXFLAGS" -AC_PROG_CXX -CXXFLAGS="$SAVED_CXXFLAGS" -AC_PROG_MAKE_SET -AC_PROG_INSTALL -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) -AC_CHECK_TOOL(AR, ar, :) -AC_CHECK_TOOL(LD, ld, :) - -dnl Check for headers -AC_HEADER_STDC() -AC_CHECK_HEADERS([inttypes.h stdint.h sys/types.h]) -AC_CHECK_FUNCS(vsscanf,,) - dnl Optional features that are built and those that aren't opt_features_yes="" opt_features_no="" +m4_include(ac/initialization.m4) +m4_include(ac/check_version.m4) +m4_include(ac/endianess.m4) +m4_include(ac/mingw.m4) +m4_include(ac/extra_inc_lib.m4) +m4_include(ac/debugging_profiling.m4) +m4_include(ac/gcc_version.m4) +m4_include(ac/inttypes.m4) +m4_include(ac/pri64d.m4) +m4_include(ac/posix_fadvise.m4) +m4_include(ac/iconv.m4) +m4_include(ac/nl_langinfo.m4) +m4_include(ac/ogg.m4) +m4_include(ac/vorbis.m4) +m4_include(ac/flac.m4) +m4_include(ac/pcrecpp.m4) +m4_include(ac/ebml.m4) +m4_include(ac/matroska.m4) +m4_include(ac/expat.m4) +m4_include(ac/zlib.m4) +m4_include(ac/lzo.m4) +m4_include(ac/bz.m4) +m4_include(ac/wxwidgets.m4) +m4_include(ac/qt4.m4) +m4_include(ac/translations.m4) +m4_include(ac/magic.m4) -check_version() { - check_ver_req="$1" - check_ver_real="$2" - - set - `echo $check_ver_req 0 0 0 | sed 's/\./\ /g'` - check_ver_major=$1 - check_ver_minor=$2 - check_ver_micro=$3 - - set - `echo $check_ver_real 0 0 0 | sed 's/\./\ /g'` - check_ver_ok=0 - - if test "x$1" = "x" -o $1 -lt ${check_ver_major} ; then - check_ver_ok=0 - elif test $1 -gt ${check_ver_major} ; then - check_ver_ok=1 - elif test "x$2" = "x" -o $2 -lt ${check_ver_minor} ; then - check_ver_ok=0 - elif test $2 -gt ${check_ver_minor} ; then - check_ver_ok=1 - elif test "x$3" = "x" -o $3 -lt ${check_ver_micro} ; then - check_ver_ok=0 - else - check_ver_ok=1 - fi - - test $check_ver_ok = 1 -} - - -dnl Stolen from VideoLAN Client, http://www.videolan.org/ -dnl -dnl Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling -dnl -dnl We give the user the opportunity to specify -dnl --with-words=big or --with-words=little ; otherwise, try to guess -dnl -AC_ARG_WITH(words, - AC_HELP_STRING([--with-words=endianness],[set endianness (big or little)])) - case "${with_words}" in - big) - ac_cv_c_bigendian=yes - ;; - little) - ac_cv_c_bigendian=no - ;; - *) - dnl Try to guess endianness by matching patterns on a compiled - dnl binary, by looking for an ASCII or EBCDIC string - AC_CACHE_CHECK([whether the byte order is big-endian], - [ac_cv_c_bigendian], - [ac_cv_c_bigendian="unknown" - [cat >conftest.c <>config.log 2>&1 \ - && test -f conftest.o - then - if test "`strings conftest.o | grep BIGenDianSyS`" - then - ac_cv_c_bigendian="yes" - fi - if test "`strings conftest.o | grep LiTTleEnDian`" - then - ac_cv_c_bigendian="no" - fi - fi - fi - ]) - if test "${ac_cv_c_bigendian}" = "unknown" - then - AC_MSG_ERROR([Could not guess endianness, please use --with-words]) - fi - ;; - esac -dnl Now we know what to use for endianness, just put it in the header -if test "${ac_cv_c_bigendian}" = "yes" -then - AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system) -fi - - -dnl -dnl Check for mingw -dnl -AC_CACHE_CHECK([if being compiled with mingw32], - [ac_cv_mingw32],[ - if test "x`$CXX --version | grep -i mingw`" = "x" ; then - ac_cv_mingw32=no - else - ac_cv_mingw32=yes - fi]) - - if test "x$ac_cv_mingw32" = "xyes"; then - export MINGW=1 - MINGW_GUIAPP=-mwindows - LIBMTXCOMMONDLL=1 - EXEEXT=.exe - else - LIBMTXCOMMONDLL=0 - fi - -AC_SUBST(MINGW) -AC_SUBST(MINGW_LIBS) -AC_SUBST(MINGW_GUIAPP) -AC_SUBST(LIBMTXCOMMONDLL) -AC_SUBST(EXEEXT) - - -dnl -dnl Extra include and library dirs that someone would like to specify. -dnl -AC_ARG_WITH(extra-includes, - AC_HELP_STRING([--with-extra-includes=DIR],[Path to other include directories separated by ';']),, - with_extra_include_given=no) -AC_ARG_WITH(extra-libs, - AC_HELP_STRING([--with-extra-libs=DIR],[Path to other library directories separated by ';']),, - with_extra_libs_given=no) - EXTRA_CFLAGS= - - USER_CFLAGS="$CFLAGS" - USER_CPPFLAGS="$CPPFLAGS" - USER_CXXFLAGS="$CXXFLAGS" - USER_LDFLAGS="$LDFLAGS" - - if test "$with_extra_includes" != ""; then - DIRS=`echo $with_extra_includes | cut -d '=' -f 2 | sed 's,;, -I,g'` - EXTRA_CFLAGS="-I$DIRS" - CFLAGS="$CFLAGS -I$DIRS" - CXXFLAGS="$CXXFLAGS -I$DIRS" - CPPFLAGS="$CPPFLAGS -I$DIRS" - fi - - EXTRA_LDFLAGS= - if test "$with_extra_libs" != ""; then - DIRS=`echo $with_extra_libs | cut -d '=' -f 2 | sed 's,;, -L,g'` - EXTRA_LDFLAGS="-L$DIRS" - LDFLAGS="$LDFLAGS -L$DIRS" - fi - - LDFLAGS_RPATHS= - if test "$MINGW" != "1"; then - LDFLAGS_RPATHS=`echo " $LDFLAGS" | sed 's: -L: -Wl,--rpath :g'` - fi - -AC_SUBST(EXTRA_CFLAGS) -AC_SUBST(EXTRA_LDFLAGS) - -AC_SUBST(USER_CFLAGS) -AC_SUBST(USER_CPPFLAGS) -AC_SUBST(USER_CXXFLAGS) -AC_SUBST(USER_LDFLAGS) -AC_SUBST(LDFLAGS_RPATHS) - - -dnl -dnl Debugging and profiling options -dnl -AC_ARG_ENABLE([debug], - AC_HELP_STRING([--enable-debug],[compile with debug information (no)])) - if test x"$enable_debug" = x"yes"; then - dnl debug information - DEBUG_CFLAGS="-g -DDEBUG" - OPTIMIZATION_CFLAGS="" - else - DEBUG_CFLAGS="" - OPTIMIZATION_CFLAGS="-O3" - fi -AC_ARG_ENABLE([profiling], - AC_HELP_STRING([--enable-profiling],[compile with profiling information (no)])) - if test x"$enable_profiling" = x"yes"; then - dnl profiling information - PROFILING_CFLAGS="-pg" - PROFILING_LIBS="-pg" - else - PROFILING_CFLAGS="" - PROFILING_LIBS="" - fi - -AC_SUBST(DEBUG_CFLAGS) -AC_SUBST(PROFILING_CFLAGS) -AC_SUBST(PROFILING_LIBS) -AC_SUBST(OPTIMIZATION_CFLAGS) - - -dnl -dnl Check the gcc version for the genreation of dependecy information -dnl -AC_CACHE_CHECK([gcc version], - [ac_cv_gcc_version],[ - ac_cv_gcc_version="`$CXX -dumpversion`" - ]) - -case "$ac_cv_gcc_version" in - 2.*) - GCC_DEP_STYLE=v2 - ;; - 3.*) - GCC_DEP_STYLE=v3 - ;; - *) - GCC_DEP_STYLE=v3 - ;; -esac - -AC_SUBST(GCC_DEP_STYLE) - - -dnl -dnl Test if the 64bit integer types are available, and if not if they -dnl can be typedef'ed manually. -dnl -AC_MSG_CHECKING(for int64_t) -AC_LANG_PUSH(C++) -AC_CACHE_VAL(ac_cv_has_int64_t,[ - AC_TRY_COMPILE([ -#if HAVE_INTTYPES_H -# include -#endif -#if HAVE_STDINT_H -# include -#endif -#if HAVE_SYS_TYPES_H -# include -#endif - ], - [int64_t foo;], - ac_cv_has_int64_t=yes, - ac_cv_has_int64_t=no) - ]) -AC_MSG_RESULT($ac_cv_has_int64_t) - -AC_MSG_CHECKING(for uint64_t) -AC_CACHE_VAL(ac_cv_has_uint64_t,[ - AC_TRY_COMPILE([ -#if HAVE_INTTYPES_H -# include -#endif -#if HAVE_STDINT_H -# include -#endif -#if HAVE_SYS_TYPES_H -# include -#endif - ], - [int64_t foo;], - ac_cv_has_uint64_t=yes, - ac_cv_has_uint64_t=no) - ]) -AC_MSG_RESULT($ac_cv_has_uint64_t) -AC_LANG_POP - -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(long long) - -if test x$ac_cv_has_int64_t = "xyes" ; then - TYPE64="int64_t" -else - case 8 in - $ac_cv_sizeof_int) TYPE64="int";; - $ac_cv_sizeof_long) TYPE64="long";; - $ac_cv_sizeof_long_long) TYPE64="long long";; - esac - AC_DEFINE(HAVE_NO_INT64_T, 1, [int64_t does not exist]) - AC_DEFINE_UNQUOTED(INT64_TYPE, $TYPE64, - [the type to define int64_t manually]) -fi - -if test x$ac_cv_has_uint64_t = "xyes" ; then - TYPEU64="int64_t" -else - case 8 in - $ac_cv_sizeof_int) TYPEU64="unsigned int";; - $ac_cv_sizeof_long) TYPEU64="unsigned long";; - $ac_cv_sizeof_long_long) TYPEU64="unsigned long long";; - esac - AC_DEFINE(HAVE_NO_UINT64_T, 1, [uint64_t does not exist]) - AC_DEFINE_UNQUOTED(UINT64_TYPE, $TYPEU64, - [the type to define uint64_t manually]) -fi - -if test -z "$TYPE64"; then - AC_MSG_ERROR(No 64 bit type found on this platform!) -fi -if test -z "$TYPEU64"; then - AC_MSG_ERROR(No unsigned 64 bit type found on this platform!) -fi - - -dnl -dnl Verify that PRId64 and PRIu64 are available -dnl -AC_MSG_CHECKING(for PRId64 and PRIu64) -AC_CACHE_VAL(ac_cv_has_prix64,[ - AC_TRY_COMPILE([ -#define __STDC_FORMAT_MACROS -#if HAVE_INTTYPES_H -# include -#endif -#if HAVE_STDINT_H -# include -#endif -#if HAVE_SYS_TYPES_H -# include -#endif - ], - [char *dummy = "text " PRId64 " text " PRIu64;], - ac_cv_has_prix64=yes, - ac_cv_has_prix64=no) - ]) -AC_MSG_RESULT($ac_cv_has_prix64) - -if test x$ac_cv_has_prix64 = "xno" ; then - echo "*** On your system the #define PRId64 and/or PRIu64 was not found." - echo "*** These are required for compilation. Please contact the author." - exit 1 -fi - - -dnl -dnl Check for posix_fadvise and its definitions -dnl -AC_ARG_ENABLE(posix-fadvise, - AC_HELP_STRING([--disable-posix-fadvise],[do not use posix_fadvise (auto)]),, - [enable_posix_fadvise=yes]) - -if test x"$enable_posix_fadvise" != "xno" ; then - AC_CACHE_CHECK([for posix_fadvise], [ac_cv_posix_fadvise],[ - ac_cv_posix_fadvise="no" - AC_LANG_PUSH(C++) - AC_TRY_COMPILE([ -#include - ],[ - posix_fadvise(0, 0, 0, POSIX_FADV_WILLNEED); - posix_fadvise(0, 0, 0, POSIX_FADV_DONTNEED); - ],[ac_cv_posix_fadvise="yes"]) - AC_LANG_POP - ]) - if test x"$ac_cv_posix_fadvise" = "xyes" ; then - AC_DEFINE([HAVE_POSIX_FADVISE], 1, [define if posix_advise and its definitions are available]) - fi -fi - -dnl -dnl Test for libiconv -dnl -dnl This macros shamelessly stolen from -dnl http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg01398.html. -dnl Written by Bruno Haible. -dnl -dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and -dnl those with the standalone portable GNU libiconv installed). -dnl - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS -liconv" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - else - echo '*** The iconv library is needed but could not be found.' - echo '*** Please install it and re-run configure. You can find iconv' - echo '*** at http://www.gnu.org/software/libiconv/' - exit 1 - fi - ICONV_LIBS= - if test "$am_cv_lib_iconv" = yes; then - ICONV_LIBS="-liconv" - fi - -AC_SUBST(ICONV_LIBS) - - -dnl -dnl Check for nl_langinfo or at least locale_charset -dnl -if test x"$MINGW" != "x1" ; then - AC_MSG_CHECKING(for nl_langinfo) - AC_CACHE_VAL(ac_cv_has_nl_langinfo,[ - AC_TRY_COMPILE([ -#include - ], - [nl_langinfo(CODESET);], - ac_cv_has_nl_langinfo=yes, - ac_cv_has_nl_langinfo=no) - ]) - AC_MSG_RESULT($ac_cv_has_nl_langinfo) - if test x"$ac_cv_has_nl_langinfo" = "xyes" ; then - AC_DEFINE(HAVE_NL_LANGINFO, 1, [nl_langinfo is available]) - else - AC_MSG_CHECKING(for locale_charset) - AC_CACHE_VAL(ac_cv_has_locale_charset,[ - AC_TRY_COMPILE([ -#include - ], - [locale_charset();], - ac_cv_has_locale_charset=yes, - ac_cv_has_locale_charset=no) - ]) - AC_MSG_RESULT($ac_cv_has_locale_charset) - if test x"$ac_cv_has_locale_charset" = "xyes" ; then - AC_DEFINE(HAVE_LOCALE_CHARSET, 1, [locale_charset is available]) - else - echo '*** Your system has neither nl_langinfo nor locale_charset.' - echo '*** Please install libcharset which is part of libiconv' - echo '*** available at http://www.gnu.org/software/libiconv/' - exit 1 - fi - fi -fi - -dnl -dnl Check for libogg -dnl - AC_CHECK_LIB(ogg, ogg_sync_init, - [ OGG_LIBS="-logg" - ogg_found=yes ], - [ ogg_found=no ],) - if test "$ogg_found" = "no"; then - AC_MSG_ERROR([Could not find the Ogg library]) - fi - AC_CHECK_HEADERS(ogg/ogg.h, , ogg_found=no) - if test "$ogg_found" = "no"; then - AC_MSG_ERROR([Could not find the Ogg header files]) - fi - -AC_SUBST(OGG_LIBS) - - - -dnl -dnl Check for libvorbis -dnl - AC_CHECK_LIB(vorbis, vorbis_synthesis_init, - [ VORBIS_LIBS="-lvorbis -lm" - vorbis_found=yes ], - [ vorbis_found=no ], - $OGG_LIBS -lm) - if test "$vorbis_found" = "no"; then - AC_MSG_ERROR([Could not find the Vorbis library]) - fi - AC_CHECK_HEADERS(vorbis/codec.h, , vorbis_found=no) - if test "$vorbis_found" = "no"; then - AC_MSG_ERROR([Could not find the Vorbis header files]) - fi - -AC_SUBST(VORBIS_LIBS) - - -dnl -dnl Check for libFLAC -dnl - - dnl FLAC 1.2.1 with mingw needs the winsock library. - flac_winsock= - if test "x$MINGW" = "x1" ; then - flac_winsock="-lwsock32" - fi - - AC_ARG_WITH([flac], - AC_HELP_STRING([--without-flac], [do not build with flac support]), - [ with_flac=${withval} ], [ with_flac=yes ]) - - if test "$with_flac" != "no"; then - AC_CHECK_LIB(FLAC, FLAC__stream_decoder_new, - [ FLAC_LIBS="-lFLAC $OGG_LIBS -lm $flac_winsock" - flac_found=yes ], - [ flac_found=no ], - $OGG_LIBS -lm $flac_winsock) - else - flac_found=no - fi - if test "$flac_found" = "yes"; then - AC_CHECK_MEMBER(FLAC__StreamMetadata_StreamInfo.sample_rate, , - [ flac_found=no ], - [ #include - ]) - fi - if test x"$flac_found" = xyes ; then - AC_CHECK_LIB(FLAC, FLAC__stream_decoder_skip_single_frame, - [ flac_decoder_skip_found=yes ], - [ flac_decoder_skip_found=no ], - $FLAC_LIBS) - if test x"$flac_decoder_skip_found" = xyes; then - opt_features_yes="$opt_features_yes\n * FLAC audio (1.1.1 or newer)" - AC_DEFINE(HAVE_FLAC_DECODER_SKIP, [1], [Define if FLAC__stream_decoder_skip_single_frame exists]) - else - opt_features_yes="$opt_features_yes\n * FLAC audio (1.1.0 or older)" - fi - AC_DEFINE(HAVE_FLAC_FORMAT_H, [1], [Define if the FLAC headers are present]) - else - FLAC_LIBS="" - opt_features_no="$opt_features_no\n * FLAC audio" - fi - -AC_SUBST(FLAC_LIBS) - - -dnl -dnl Check for libpcre -dnl -AC_PATH_PROG(PCRE_CONFIG, pcre-config, no, $PATH:/usr/local/bin) -if test x"$PCRE_CONFIG" = "xno" ; then - AC_MSG_ERROR([Cound not find the pcre-config program]) -fi - -PCRE_CFLAGS="`$PCRE_CONFIG --cflags`" -PCRE_LIBS="`$PCRE_CONFIG --libs` -lpcrecpp" - -AC_CACHE_CHECK([for libpcrecpp],[ac_cv_pcre_links],[ - ac_save_LIBS="$LIBS" - ac_save_CXXFLAGS="$CXXFLAGS" - LIBS="$LIBS $PCRE_LIBS" - CXXFLAGS="$CXXFLAGS $PCRE_CFLAGS" - - AC_LANG_PUSH(C++) - AC_TRY_LINK([ -#include - ], - [pcrecpp::RE re("test");], - ac_cv_pcre_links=yes, - ac_cv_pcre_links=no) - AC_LANG_POP - - LIBS="$ac_save_LIBS" - CXXFLAGS="$ac_save_CXXFLAGS" - -]) - -if test x"$ac_cv_pcre_links" = "xno"; then - AC_MSG_ERROR([Could not find the PCRE C++ library]) -fi - -AC_SUBST(PCRE_CFLAGS) -AC_SUBST(PCRE_LIBS) - -dnl -dnl Test for libebml, and define EBML_CFLAGS and EBML_LIBS -dnl - ebml_ver_req_major=0 - ebml_ver_req_minor=7 - ebml_ver_req_micro=7 - - AC_CACHE_CHECK([for libEBML headers version >= ${ebml_ver_req_major}.${ebml_ver_req_minor}.${ebml_ver_req_micro}], - [ac_cv_ebml_found],[ - - EBML_LIBS="-lebml" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - LIBS="$LIBS $EBML_LIBS" - AC_LANG_PUSH(C++) - AC_TRY_COMPILE([ -#include -#include - -using namespace libebml; - -#if LIBEBML_VERSION < ((${ebml_ver_req_major} << 16) + (${ebml_ver_req_minor} << 8) + ${ebml_ver_req_micro}) -# error libebml is too old -#endif - ], - [], - ac_cv_ebml_found=yes, - ac_cv_ebml_found=no) - - if test "${ac_cv_ebml_found}" = "no" ; then - EBML_CFLAGS="-I/usr/local/include" - EBML_LIBS="-L/usr/local/lib $EBML_LIBS" - CXXFLAGS="-I/usr/local/include $CXXFLAGS" - LIBS="-L/usr/local/lib $LIBS" - AC_TRY_COMPILE([ -#include -#include - -using namespace libebml; - -#if LIBEBML_VERSION < ((${ebml_ver_req_major} << 16) + (${ebml_ver_req_minor} << 8) + ${ebml_ver_req_micro}) -# error libebml is too old -#endif - ], - [], - ac_cv_ebml_found=yes, - ac_cv_ebml_found=no) - fi - - AC_LANG_POP - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - ]) - - if test x"${ac_cv_ebml_found}" != "xyes" ; then - echo '*** Your libEBML version is too old. Upgrade to at least version' - echo '*** '${ebml_ver_req_major}.${ebml_ver_req_minor}.${ebml_ver_req_micro}' and re-run configure.' - exit 1 - fi - -dnl -dnl Test if libebml has to be compiled with -DEBML_DLL on Windows. -dnl - ebml_check_msg_nodll="yes, without -DEBML_DLL" - ebml_check_msg_dll="yes, with -DEBML_DLL" - - AC_CACHE_CHECK([if linking against libEBML works and if it requires -DEBML_DLL], - [ac_cv_ebml_dll],[ - AC_LANG_PUSH(C++) - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CXXFLAGS="$CXXFLAGS $EBML_CFLAGS" - LIBS="$LIBS $EBML_LIBS" - AC_TRY_LINK([ -#include -#include - -using namespace libebml; - ], - [EbmlDummy d;], - ac_cv_ebml_dll="${ebml_check_msg_nodll}", - ac_cv_ebml_dll="not found") - - if test x"${ac_cv_mingw32}" = "xyes" ; then - if test x"${ac_cv_ebml_dll}" != "x${ebml_check_msg_nodll}" ; then - CXXFLAGS="$CXXFLAGS -DEBML_DLL" - AC_TRY_LINK([ -#include -#include - -using namespace libebml; - ], - [EbmlDummy d;], - ac_cv_ebml_dll="${ebml_check_msg_dll}") - fi - fi - AC_LANG_POP - CXXFLAGS="${ac_save_CXXFLAGS}" - LIBS="${ac_save_LIBS}" - ]) - - if test x"${ac_cv_ebml_dll}" != "x${ebml_check_msg_dll}" -a x"${ac_cv_ebml_dll}" != "x${ebml_check_msg_nodll}" ; then - echo '*** The libEBML library was not found.' - exit 1 - fi - - if test x"${ac_cv_ebml_dll}" = "x${ebml_check_msg_dll}" ; then - EBML_CFLAGS="$EBML_CFLAGS -DEBML_DLL" - fi - -AC_SUBST(EBML_CFLAGS) -AC_SUBST(EBML_LIBS) - -dnl -dnl Test for libmatroska, and define MATROSKA_CFLAGS and MATROSKA_LIBS -dnl - kax_ver_req_major=0 - kax_ver_req_minor=8 - kax_ver_req_micro=1 - - AC_CACHE_CHECK([for libMatroska headers version >= ${kax_ver_req_major}.${kax_ver_req_minor}.${kax_ver_req_micro}], - [ac_cv_matroska_found], - [ - - MATROSKA_LIBS="-lmatroska" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CXXFLAGS="$CFLAGS $MATROSKA_CFLAGS" - LIBS="$LIBS $MATROSKA_LIBS $EBML_LIBS" - rm -f conf.matroskatest - AC_LANG_PUSH(C++) - AC_TRY_COMPILE([ -#include -#include -#include - -using namespace libmatroska; - -#if LIBMATROSKA_VERSION < ((${kax_ver_req_major} << 16) + (${kax_ver_req_minor} << 8) + ${kax_ver_req_micro}) -# error libmatroska is too old -#endif - ], - [], - ac_cv_matroska_found=yes, - ac_cv_matroska_found=no) - - if test x"${ac_cv_matroska_found}" != "xyes" ; then - MATROSKA_CFLAGS="-I/usr/local/include" - MATROSKA_LIBS="-L/usr/local/lib $MATROSKA_LIBS" - CXXFLAGS="-I/usr/local/include $CXXFLAGS" - LIBS="-L/usr/local/lib $LIBS" - AC_TRY_COMPILE([ -#include -#include -#include - -using namespace libmatroska; - -#if LIBMATROSKA_VERSION < ((${kax_ver_req_major} << 16) + (${kax_ver_req_minor} << 8) + ${kax_ver_req_micro}) -# error libmatroska is too old -#endif - ], - [], - ac_cv_matroska_found=yes, - ac_cv_matroska_found=no) - fi - - AC_LANG_POP - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - ]) - - if test x"${ac_cv_matroska_found}" != "xyes" ; then - echo '*** Your libMatroska version is too old. Upgrade to at least version' - echo '*** '${kax_ver_req_major}.${kax_ver_req_minor}.${kax_ver_req_micro}' and re-run configure.' - exit 1 - fi - - matroska_check_msg_nodll="yes, without -MATROSKA_DLL" - matroska_check_msg_dll="yes, with -DMATROSKA_DLL" - - AC_CACHE_CHECK([if linking against libMatroska works and if it requires -DMATROSKA_DLL], - [ac_cv_matroska_dll],[ - AC_LANG_PUSH(C++) - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CXXFLAGS="$CXXFLAGS $EBML_CFLAGS $MATROSKA_CFLAGS" - LIBS="$LIBS $MATROSKA_LIBS $EBML_LIBS" - AC_TRY_LINK([ -#include -#include - -using namespace libmatroska; - ], - [KaxSegment s;], - ac_cv_matroska_dll="${matroska_check_msg_nodll}", - ac_cv_matroska_dll="not found") - - if test x"${ac_cv_mingw32}" = "xyes" ; then - if test x"${ac_cv_matroska_dll}" != "x${matroska_check_msg_nodll}" ; then - CXXFLAGS="$CXXFLAGS -DMATROSKA_DLL" - AC_TRY_LINK([ -#include -#include - -using namespace libmatroska; - ], - [KaxSegment s;], - ac_cv_matroska_dll="${matroska_check_msg_dll}") - fi - fi - AC_LANG_POP - CXXFLAGS="${ac_save_CXXFLAGS}" - LIBS="${ac_save_LIBS}" - ]) - - if test x"${ac_cv_matroska_dll}" != "x${matroska_check_msg_nodll}" -a x"${ac_cv_matroska_dll}" != "x${matroska_check_msg_dll}" ; then - echo '*** The libMatroska library was not found.' - exit 1 - fi - - if test x"${ac_cv_matroska_dll}" = "x${matroska_check_msg_dll}" ; then - MATROSKA_CFLAGS="$MATROSKA_CFLAGS -DMATROSKA_DLL" - fi - - if test x"${ac_cv_ebml_dll}" != "xyes" -o x"${ac_cv_matroska_dll}" != "xyes" ; then - LIBMTXCOMMONDLL=0 - fi - -AC_SUBST(MATROSKA_CFLAGS) -AC_SUBST(MATROSKA_LIBS) - - - -dnl -dnl Check for libexpat -dnl - AC_CHECK_LIB(expat, XML_ParserCreate, - [ EXPAT_LIBS="-lexpat" - expat_found=yes ], - [ expat_found=no ],) - if test "$expat_found" = "no"; then - AC_MSG_ERROR([Could not find the Expat library]) - fi - AC_CHECK_HEADERS(expat.h, , expat_found=no) - if test "$expat_found" = "no"; then - AC_MSG_ERROR([Could not find expat.h]) - fi - -AC_SUBST(EXPAT_CFLAGS) -AC_SUBST(EXPAT_LIBS) - - - -dnl -dnl Check for zlib -dnl - AC_CHECK_LIB(z, zlibVersion, - [ ZLIB_LIBS="-lz" - zlib_found=yes ], - [ zlib_found=no ],) - if test "$zlib_found" = "no"; then - AC_MSG_ERROR([Could not find the zlib library]) - fi - AC_CHECK_HEADERS(zlib.h, , zlib_found=no) - -AC_SUBST(ZLIB_LIBS) - - - -dnl -dnl Check for liblzo -dnl - AC_ARG_ENABLE([lzo], - AC_HELP_STRING([--enable-lzo],[compile in support for LZO compression (auto)])) - if test "x$enable_lzo" != "xno"; then - AC_CHECK_LIB(lzo2, lzo1x_1_compress, - [ LZO_LIBS="-llzo2" - lzo_found=yes ], - [ AC_CHECK_LIB(lzo, lzo1x_1_compress, - [ LZO_LIBS="-llzo" - lzo_found=yes ], - [ lzo_found=no ],) - ],) - if test "x$lzo_found" = "xyes"; then - AC_CHECK_HEADERS([lzo1x.h lzo/lzo1x.h]) - if test "x$ac_cv_header_lzo1x_h" != "xyes" -a "x$ac_cv_header_lzo_lzo1x_h" != "xyes"; then - lzo_found=no - fi - fi - fi - if test x"$lzo_found" = xyes ; then - opt_features_yes="$opt_features_yes\n * LZO compression" - AC_DEFINE([HAVE_LZO], [1], [Define this if LZO compression is present]) - else - opt_features_no="$opt_features_no\n * LZO compression" - fi - -AC_SUBST(LZO_LIBS) - - - -dnl -dnl Check for libbz2 -dnl - AC_ARG_ENABLE([bz2], - AC_HELP_STRING([--enable-bz2],[compile in support for BZ2 compression (auto)])) - if test x"$enable_bz2" = x"yes" -o x"$enable_bz2" = "x"; then - AC_CHECK_LIB(bz2, BZ2_bzCompress, - [ BZ2_LIBS="-lbz2" - bz2_found=yes ], - [ bz2_found=no ],) - if test "$bz2_found" = "yes"; then - AC_CHECK_HEADERS(bzlib.h, , bz2_found=no) - fi - fi - if test x"$bz2_found" = xyes ; then - opt_features_yes="$opt_features_yes\n * BZ2 compression" - else - opt_features_no="$opt_features_no\n * BZ2 compression" - fi - -AC_SUBST(BZ2_LIBS) - - - -dnl -dnl Check for wxWidgets -dnl - AC_ARG_ENABLE([gui], - AC_HELP_STRING([--enable-gui],[compile mkvinfo's GUI and mmg (yes)])) - - AC_ARG_ENABLE([wxwidgets], - AC_HELP_STRING([--enable-wxwidgets],[compile the wxWidgets version of the GUIs (yes)])) - - wxw_min_ver=2.6.0 - - if test '(' x"$enable_wxwidgets" = xyes -o x"$enable_wxwidgets" = x ')' -a \ - '(' x"$enable_gui" = xyes -o x"$enable_gui" = x ')'; then - AC_ARG_WITH(wx_config, - AC_HELP_STRING([--with-wx-config=prog], - [use prog instead of looking for wx-config]), - [ WX_CONFIG="$with_wx_config" ],) - AC_PATH_PROG(WX_CONFIG, wx-config, no, $PATH:/usr/local/bin) - if test x"$WX_CONFIG" != "xno" ; then - AC_MSG_CHECKING(for wxWidgets $wxw_min_ver or newer) - - wxwversion=`$WX_CONFIG --version` - if check_version $wxw_min_ver $wxwversion ; then - WXWIDGETS_CFLAGS=`$WX_CONFIG --cxxflags` - WXWIDGETS_LIBS=`$WX_CONFIG --libs | \ - sed -e 's/-Wl,--subsystem,windows//' -e 's/-mwindows//'` - AC_CACHE_VAL(am_cv_wx_compilation, [ - AC_LANG_PUSH(C++) - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CXXFLAGS="$CXXFLAGS $WXWIDGETS_CFLAGS" - LIBS="$LDFLAGS $WXWIDGETS_LIBS" - AC_TRY_LINK([ -#include -#include -], [ -wxDragResult result = wxDragError; -wxTreeItemId id; -], [ am_cv_wx_compilation=1 ], [ am_cv_wx_compilation=0 ]) - AC_LANG_POP() - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - ]) - if test x"$am_cv_wx_compilation" = x1; then - if test "x$MINGW" = "x1" ; then - WXWIDGETS_INCLUDES="" - set - `echo $WXWIDGETS_CFLAGS` - while test "x$1" != "x" ; do - case "$1" in - -I*) - WXWIDGETS_INCLUDES="$WXWIDGETS_INCLUDES $1" - ;; - esac - shift - done - fi - AC_DEFINE(HAVE_WXWIDGETS, 1, [Define if wxWindows is present]) - AC_MSG_RESULT($wxwversion ok) - have_wxwindows=yes - USE_WXWIDGETS=yes - opt_features_yes="$opt_features_yes\n * GUIs (wxWidgets version)" - else - AC_MSG_RESULT(no: test program could not be compiled) - fi - else - AC_MSG_RESULT(no: version $wxwversion is too old) - fi - else - AC_MSG_RESULT(no: wx-config was not found) - fi - else - echo '*** Not checking for wxWidgets: disabled by user request' - fi - - if test x"$have_wxwindows" != "xyes" ; then - opt_features_no="$opt_features_no\n * GUIs (wxWidgets version)" - fi - -AC_SUBST(WXWIDGETS_CFLAGS) -AC_SUBST(WXWIDGETS_INCLUDES) -AC_SUBST(WXWIDGETS_LIBS) -AC_SUBST(USE_WXWIDGETS) - - -dnl -dnl Check for Qt 4 or newer -dnl - -AC_ARG_ENABLE([qt], - AC_HELP_STRING([--enable-qt],[compile the Qt version of the GUIs (no)])) - -qt_min_ver=4.0.0 - -if test x"$enable_qt" = "xyes" -a \ - '(' x"$enable_gui" = x"yes" -o x"$enable_gui" = "x" ')'; then - dnl Find moc. - AC_ARG_WITH(moc, - AC_HELP_STRING([--with-moc=prog],[use prog instead of looking for moc]), - [ MOC="$with_moc" ],) - if ! test -z "$MOC"; then - AC_MSG_CHECKING(for moc) - AC_MSG_RESULT(using supplied $MOC) - else - AC_PATH_PROG(MOC, moc-qt4,, $PATH) - if test -z "$MOC"; then - AC_PATH_PROG(MOC, moc,, $PATH) - fi - fi - if test -z "$MOC" -o ! -x "$MOC"; then - echo "*** The 'moc' binary was not found or is not executable." - exit 1 - fi - - dnl Check its version. - AC_MSG_CHECKING(for the Qt version $MOC uses) - moc_ver=`"$MOC" -v 2>&1 | sed -e 's:.*Qt ::' -e 's:[[^0-9\.]]::g'` - if test -z "moc_ver"; then - AC_MSG_RESULT(unknown; please contact the author) - elif ! check_version $qt_min_ver $moc_ver; then - AC_MSG_RESULT(too old: $moc_ver) - else - AC_MSG_RESULT($moc_ver) - moc_found=1 - fi - - AC_ARG_WITH(uic, - AC_HELP_STRING([--with-uic=prog],[use prog instead of looking for uic]), - [ UIC="$with_uic" ],) - - if test x"$moc_found" = "x1"; then - if ! test -z "$UIC"; then - AC_MSG_CHECKING(for uic) - AC_MSG_RESULT(using supplied $UIC) - else - AC_PATH_PROG(UIC, uic-qt4,, $PATH) - if test -z "$UIC"; then - AC_PATH_PROG(UIC, uic,, $PATH) - fi - fi - if test -z "$UIC" -o ! -x "$UIC"; then - echo "*** The 'uic' binary was not found or is not executable." - exit 1 - fi - - dnl Check its version. - AC_MSG_CHECKING(for the Qt version $UIC uses) - uic_ver=`"$UIC" -v 2>&1 | sed -e 's:.*Qt ::' -e 's:[[^0-9\.]]::g'` - if test -z "uic_ver"; then - AC_MSG_RESULT(unknown; please contact the author) - elif ! check_version $qt_min_ver $uic_ver; then - AC_MSG_RESULT(too old: $uic_ver) - else - AC_MSG_RESULT($uic_ver) - uic_found=1 - fi - fi - - AC_MSG_CHECKING(for Qt $qt_min_ver or newer) - if test x"$moc_found" != "x1"; then - AC_MSG_RESULT(no: moc not found) - elif test x"$uic_found" != "x1"; then - AC_MSG_RESULT(no: uic not found) - elif ! pkg-config QtGui --atleast-version=$qt_min_ver || \ - ! pkg-config QtCore --atleast-version=$qt_min_ver ; then - AC_MSG_RESULT(no: pkg-config says "too old") - else - dnl Try compiling and linking an application. - QT_CFLAGS="`pkg-config QtCore --cflags` `pkg-config QtGui --cflags`" - QT_LIBS="`pkg-config QtGui --libs`" - - AC_LANG_PUSH(C++) - AC_CACHE_VAL(am_cv_qt_compilation, [ - run_qt_test=1 - while true; do - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CXXFLAGS="$CXXFLAGS $QT_CFLAGS" - LIBS="$LDFLAGS $QT_LIBS" - unset ac_cv_qt_compilation - - AC_TRY_LINK([ -#include -class Config : public QCoreApplication { -public: -Config(int &argc, char **argv); -}; -Config::Config(int &argc, char **argv) -: QCoreApplication(argc,argv) {setApplicationName("config");} - ], [ -int ai = 0; -char **ac = 0; -Config app(ai,ac); -qWarning(qPrintable(app.applicationName())); -return 0; - ], [ am_cv_qt_compilation=1 ], [ am_cv_qt_compilation=0 ]) - - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - - if test x"$am_cv_qt_compilation" = x1; then - break - - elif test x"$run_qt_test" = "x1"; then - dnl On some systems (notably OpenSuSE 10.0) the pkg-config for the - dnl --cflags don't include the QtCore and QtGui subdirectories. - dnl Add them now. - set - $QT_CFLAGS - while test ! -z "$1" ; do - case "$1" in - -I*) - QT_CFLAGS="$QT_CFLAGS $1/QtCore $1/QtGui" - ;; - esac - shift - done - run_qt_test=2 - - elif test x"$run_qt_test" = "x2"; then - QT_CFLAGS="$QT_CFLAGS -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/local/include/QtCore -I/usr/local/include/QtGui" - run_qt_test=3 - - else - break - - fi - done - ]) - AC_LANG_POP() - - if test x"$am_cv_qt_compilation" = x1; then - AC_DEFINE(HAVE_QT, 1, [Define if Qt is present]) - have_qt=yes - USE_QT=yes - opt_features_yes="$opt_features_yes\n * GUIs (Qt version)" - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no: test program could not be compiled) - fi - fi -fi - -if test x"$have_qt" != "xyes" ; then - opt_features_no="$opt_features_no\n * GUIs (Qt version)" -fi - - -AC_SUBST(MOC) -AC_SUBST(UIC) -AC_SUBST(QT_CFLAGS) -AC_SUBST(QT_LIBS) -AC_SUBST(USE_QT) - - -dnl -dnl Which translations should be installed? -dnl -dnl AC_CHECK_FUNCS(gettext, gettext_found=yes, gettext_found=no) -dnl if test x"$gettext_found" != xyes ; then -dnl AC_CHECK_LIB(intl, gettext, -dnl [ LIBINTL_LIBS="-lintl"; -dnl gettext_found=yes ], gettext_found=no) -dnl fi -dnl if test x"$gettext_found" = xyes ; then -dnl AC_CHECK_HEADERS(libintl.h, libintl_h_found=yes, libintl_h_found=no) -dnl if test x"$libintl_h_found" = xyes ; then -dnl AC_MSG_CHECKING(the translations to install) -dnl if test x"$LINGUAS" = x ; then -dnl TRANSLATIONS_POS="`echo po/*.po`" -dnl else -dnl for i in $LINGUAS; do -dnl if test -f "po/$i.po" ; then -dnl TRANSLATIONS_POS="$TRANSLATIONS_POS po/$i.po" -dnl fi -dnl done -dnl fi -dnl TRANSLATIONS="`echo "$TRANSLATIONS_POS" | \ -dnl sed -e 's/po\///g' -e 's/\.po//g'`" -dnl AC_MSG_RESULT($TRANSLATIONS) -dnl fi -dnl opt_features_yes="$opt_features_yes\n * translations (gettext)" -dnl else -dnl opt_features_no="$opt_features_yes\n * translations (gettext)" -dnl fi - -AC_SUBST(LIBINTL_LIBS) -AC_SUBST(TRANSLATIONS_POS) -AC_SUBST(TRANSLATIONS) - -dnl -dnl Check for libmagic -dnl -AC_CHECK_LIB(magic, magic_open, - [ MAGIC_LIBS="-lmagic -lz" - magic_found=yes ], - [ magic_found=no ], - -lz) - -if test "x$magic_found" = "xyes" ; then - AC_CHECK_HEADERS([magic.h]) - if test "x$ac_cv_header_magic_h" = "xyes" ; then - opt_features_yes="$opt_features_yes\n * libMagic file type detection" - else - opt_features_no="$opt_features_no\n * libMagic file type detection" - fi -fi - -AC_SUBST(MAGIC_LIBS) AC_OUTPUT(Makefile avilib-0.6.10/Makefile librmff/Makefile src/Makefile src/common/Makefile src/input/Makefile src/output/Makefile src/mpegparser/Makefile src/mmg/Makefile src/extract/Makefile src/merge/Makefile src/info/Makefile)