mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2025-02-26 08:22:31 +00:00
build system: use libEBML/libMatroska via pkg-config
This commit is contained in:
parent
d0d9b96aa9
commit
b47ae1ee4b
@ -1,3 +1,10 @@
|
||||
2014-12-21 Moritz Bunkus <moritz@bunkus.org>
|
||||
|
||||
* build system: libEBML and libMatroska have been changed to
|
||||
provide pkg-config configuration files. Therefore MKVToolNix'
|
||||
build system has been switched to look for both libraries via
|
||||
pkg-config.
|
||||
|
||||
2014-12-20 Moritz Bunkus <moritz@bunkus.org>
|
||||
|
||||
* all: bug fix: several fixes have gone into libEBML and
|
||||
|
2
Rakefile
2
Rakefile
@ -104,7 +104,7 @@ def setup_globals
|
||||
:cflags => "#{cflags_common} #{c(:USER_CFLAGS)}",
|
||||
:cxxflags => "#{cflags_common} #{c(:STD_CXX11)} -Wnon-virtual-dtor -Woverloaded-virtual -Wextra -Wno-missing-field-initializers #{c(:WXWIDGETS_CFLAGS)} #{c(:QT_CFLAGS)} #{c(:BOOST_CPPFLAGS)} #{c(:CURL_CFLAGS)} #{c(:USER_CXXFLAGS)}",
|
||||
:cppflags => "#{c(:USER_CPPFLAGS)}",
|
||||
:ldflags => "#{c(:EBML_LDFLAGS)} #{c(:MATROSKA_LDFLAGS)} #{c(:EXTRA_LDFLAGS)} #{c(:PROFILING_LIBS)} #{c(:USER_LDFLAGS)} #{c(:LDFLAGS_RPATHS)} #{c(:BOOST_LDFLAGS)}",
|
||||
:ldflags => "#{c(:EXTRA_LDFLAGS)} #{c(:PROFILING_LIBS)} #{c(:USER_LDFLAGS)} #{c(:LDFLAGS_RPATHS)} #{c(:BOOST_LDFLAGS)}",
|
||||
:windres => (c(:MINGW_PROCESSOR_ARCH) == 'amd64' ? '-DMINGW_PROCESSOR_ARCH_AMD64=1 ' : '') + (c?(:USE_WXWIDGETS) ? c(:WXWIDGETS_INCLUDES) : '-DNOWXWIDGETS'),
|
||||
}
|
||||
|
||||
|
126
ac/ebml.m4
126
ac/ebml.m4
@ -1,126 +0,0 @@
|
||||
dnl
|
||||
dnl Test for libebml, and define EBML_CFLAGS and EBML_LDFLAGS
|
||||
dnl
|
||||
ebml_ver_req_major=1
|
||||
ebml_ver_req_minor=3
|
||||
ebml_ver_req_micro=1
|
||||
|
||||
AC_CACHE_CHECK([for libEBML headers version >= ${ebml_ver_req_major}.${ebml_ver_req_minor}.${ebml_ver_req_micro}],
|
||||
[ac_cv_ebml_found],[
|
||||
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lebml"
|
||||
AC_LANG_PUSH(C++)
|
||||
AC_TRY_COMPILE([
|
||||
#include <ebml/EbmlVersion.h>
|
||||
#include <ebml/EbmlDummy.h>
|
||||
|
||||
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_LDFLAGS="-L/usr/local/lib"
|
||||
CXXFLAGS="-I/usr/local/include $CXXFLAGS"
|
||||
LIBS="-L/usr/local/lib $LIBS"
|
||||
AC_TRY_COMPILE([
|
||||
#include <ebml/EbmlVersion.h>
|
||||
#include <ebml/EbmlDummy.h>
|
||||
|
||||
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
|
||||
ac_cv_ebml_found=internal
|
||||
fi
|
||||
])
|
||||
|
||||
if test x"${ac_cv_ebml_found}" = "xinternal" ; then
|
||||
if ! test -f lib/libebml/ebml/EbmlVersion.h ; then
|
||||
echo '*** The internal version of the libEBML library is supposed to be used,'
|
||||
echo '*** but it was not found in "lib/libebml". If this is a clone from the'
|
||||
echo '*** git repository then submodules have to be initialized with the'
|
||||
echo '*** following two commands:'
|
||||
echo '***'
|
||||
echo '*** git submodule init'
|
||||
echo '*** git submodule update'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
EBML_CFLAGS="-Ilib/libebml"
|
||||
EBML_LDFLAGS="-Llib/libebml/src"
|
||||
|
||||
else
|
||||
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_LDFLAGS -lebml"
|
||||
AC_TRY_LINK([
|
||||
#include <ebml/EbmlVersion.h>
|
||||
#include <ebml/EbmlDummy.h>
|
||||
|
||||
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 <ebml/EbmlVersion.h>
|
||||
#include <ebml/EbmlDummy.h>
|
||||
|
||||
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
|
||||
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_LDFLAGS)
|
@ -1,18 +0,0 @@
|
||||
dnl
|
||||
dnl Define variables for the internal versions of libEBML and libMatroska
|
||||
dnl
|
||||
EBML_CFLAGS="-Ilib/libebml"
|
||||
EBML_LDFLAGS="-Llib/libebml/src"
|
||||
EBML_LIBS="-lebml"
|
||||
EBML_MATROSKA_INTERNAL=yes
|
||||
MATROSKA_CFLAGS="-Ilib/libmatroska"
|
||||
MATROSKA_LDFLAGS="-Llib/libmatroska/src"
|
||||
MATROSKA_LIBS="-lmatroska"
|
||||
|
||||
AC_SUBST(EBML_CFLAGS)
|
||||
AC_SUBST(EBML_LDFLAGS)
|
||||
AC_SUBST(EBML_LIBS)
|
||||
AC_SUBST(EBML_MATROSKA_INTERNAL)
|
||||
AC_SUBST(MATROSKA_CFLAGS)
|
||||
AC_SUBST(MATROSKA_LDFLAGS)
|
||||
AC_SUBST(MATROSKA_LIBS)
|
140
ac/matroska.m4
140
ac/matroska.m4
@ -1,134 +1,20 @@
|
||||
dnl
|
||||
dnl Test for libmatroska, and define MATROSKA_CFLAGS and MATROSKA_LDFLAGS
|
||||
dnl Test for libEBML and libMatroska, and define MATROSKA_CFLAGS and MATROSKA_LIBS
|
||||
dnl
|
||||
kax_ver_req_major=1
|
||||
kax_ver_req_minor=4
|
||||
kax_ver_req_micro=2
|
||||
|
||||
AC_CACHE_CHECK([for libMatroska headers version >= ${kax_ver_req_major}.${kax_ver_req_minor}.${kax_ver_req_micro}],
|
||||
[ac_cv_matroska_found],
|
||||
[
|
||||
EBML_MATROSKA_INTERNAL=no
|
||||
PKG_CHECK_MODULES([EBML],[libebml >= 1.3.1],[],[EBML_MATROSKA_INTERNAL=yes])
|
||||
PKG_CHECK_MODULES([MATROSKA],[libmatroska >= 1.4.2],[],[EBML_MATROSKA_INTERNAL=yes])
|
||||
|
||||
if test x"${ac_cv_ebml_found}" = "xyes" ; then
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CXXFLAGS="$CFLAGS $MATROSKA_CFLAGS"
|
||||
LIBS="$LIBS -lmatroska -lebml"
|
||||
rm -f conf.matroskatest
|
||||
AC_LANG_PUSH(C++)
|
||||
AC_TRY_COMPILE([
|
||||
#include <ebml/EbmlConfig.h>
|
||||
#include <matroska/KaxVersion.h>
|
||||
#include <matroska/KaxTracks.h>
|
||||
|
||||
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_LDFLAGS="-L/usr/local/lib"
|
||||
CXXFLAGS="-I/usr/local/include $CXXFLAGS"
|
||||
LIBS="-L/usr/local/lib $LIBS"
|
||||
AC_TRY_COMPILE([
|
||||
#include <ebml/EbmlConfig.h>
|
||||
#include <matroska/KaxVersion.h>
|
||||
#include <matroska/KaxTracks.h>
|
||||
|
||||
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"
|
||||
fi
|
||||
|
||||
if test x"${ac_cv_matroska_found}" != "xyes" ; then
|
||||
ac_cv_matroska_found=internal
|
||||
fi
|
||||
])
|
||||
|
||||
if test x"${ac_cv_matroska_found}" = "xinternal" -o x"${ac_cv_ebml_found}" = "xinternal" ; then
|
||||
if ! test -f lib/libmatroska/matroska/KaxVersion.h ; then
|
||||
echo '*** The internal version of the libMatroska library is supposed to be used,'
|
||||
echo '*** but it was not found in "lib/libmatroska". If this is a clone from the'
|
||||
echo '*** git repository then submodules have to be initialized with the'
|
||||
echo '*** following two commands:'
|
||||
echo '***'
|
||||
echo '*** git submodule init'
|
||||
echo '*** git submodule update'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
EBML_CFLAGS="-Ilib/libebml"
|
||||
EBML_LDFLAGS="-Llib/libebml/src"
|
||||
MATROSKA_CFLAGS="-Ilib/libmatroska"
|
||||
MATROSKA_LDFLAGS="-Llib/libmatroska/src"
|
||||
EBML_MATROSKA_INTERNAL=yes
|
||||
|
||||
else
|
||||
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_LDFLAGS -lmatroska -lebml"
|
||||
AC_TRY_LINK([
|
||||
#include <matroska/KaxVersion.h>
|
||||
#include <matroska/KaxSegment.h>
|
||||
|
||||
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 <matroska/KaxVersion.h>
|
||||
#include <matroska/KaxSegment.h>
|
||||
|
||||
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
|
||||
fi
|
||||
if test x"$EBML_MATROSKA_INTERNAL" = xyes; then
|
||||
EBML_CFLAGS="-Ilib/libebml"
|
||||
EBML_LIBS="-Llib/libebml/src -lebml"
|
||||
MATROSKA_CFLAGS="-Ilib/libmatroska"
|
||||
MATROSKA_LIBS="-Llib/libmatroska/src -lmatroska"
|
||||
fi
|
||||
|
||||
AC_SUBST(EBML_CFLAGS)
|
||||
AC_SUBST(EBML_LIBS)
|
||||
AC_SUBST(MATROSKA_CFLAGS)
|
||||
AC_SUBST(MATROSKA_LDFLAGS)
|
||||
AC_SUBST(MATROSKA_LIBS)
|
||||
AC_SUBST(EBML_MATROSKA_INTERNAL)
|
||||
|
@ -77,7 +77,7 @@ DEBUG_CFLAGS = @DEBUG_CFLAGS@
|
||||
DOCBOOK_MANPAGES_STYLESHEET = @DOCBOOK_MANPAGES_STYLESHEET@
|
||||
DOCBOOK_ROOT = @DOCBOOK_ROOT@
|
||||
EBML_CFLAGS = @EBML_CFLAGS@
|
||||
EBML_LDFLAGS = @EBML_LDFLAGS@
|
||||
EBML_LIBS = @EBML_LIBS@
|
||||
EBML_MATROSKA_INTERNAL = @EBML_MATROSKA_INTERNAL@
|
||||
EGREP = @EGREP@
|
||||
EXTRA_CFLAGS = @EXTRA_CFLAGS@
|
||||
@ -89,7 +89,7 @@ ICONV_LIBS = @ICONV_LIBS@
|
||||
LIBINTL_LIBS = @LIBINTL_LIBS@
|
||||
MAGIC_LIBS = @MAGIC_LIBS@
|
||||
MATROSKA_CFLAGS = @MATROSKA_CFLAGS@
|
||||
MATROSKA_LDFLAGS = @MATROSKA_LDFLAGS@
|
||||
MATROSKA_LIBS = @MATROSKA_LIBS@
|
||||
MINGW_GUIAPP = @MINGW_GUIAPP@
|
||||
MINGW_LIBS = @MINGW_LIBS@
|
||||
MINGW_PROCESSOR_ARCH = @MINGW_PROCESSOR_ARCH@
|
||||
|
@ -32,10 +32,8 @@ m4_include(ac/nl_langinfo.m4)
|
||||
m4_include(ac/ogg.m4)
|
||||
m4_include(ac/vorbis.m4)
|
||||
m4_include(ac/flac.m4)
|
||||
m4_include(ac/ebml.m4)
|
||||
m4_include(ac/matroska.m4)
|
||||
m4_include(ac/pugixml.m4)
|
||||
dnl m4_include(ac/ebml_matroska_internal.m4)
|
||||
m4_include(ac/zlib.m4)
|
||||
m4_include(ac/wxwidgets.m4)
|
||||
m4_include(ac/qt5.m4)
|
||||
|
@ -153,6 +153,8 @@ class Target
|
||||
when :mtxextract then [ '-Lsrc/extract', '-lmtxextract' ]
|
||||
when :mtxpropedit then [ '-Lsrc/propedit', '-lmtxpropedit' ]
|
||||
when :mtxunittest then [ '-Ltests/unit', '-lmtxunittest' ]
|
||||
when :ebml then c(:EBML_LIBS)
|
||||
when :matroska then c(:MATROSKA_LIBS)
|
||||
when String then entry
|
||||
else "-l#{entry}"
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user