From 04e9ff224f89c7a657e773b379f02bca90c09a5a Mon Sep 17 00:00:00 2001 From: Amar Takhar Date: Fri, 21 Mar 2008 21:01:03 +0000 Subject: [PATCH] Add support for an 'internal' libass, with this we can chase changes to the libass in MPlayer which is more up-to-date than the external library that's available. Originally committed to SVN as r2096. --- Makefile.am | 5 +++ aegisub/Makefile.am | 8 +++- configure.in | 92 ++++++++++++++++++++++++++--------------- libass/Makefile.am | 6 +-- libass/ass_fontconfig.c | 2 +- 5 files changed, 74 insertions(+), 39 deletions(-) diff --git a/Makefile.am b/Makefile.am index 85c06046c..f836ee659 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,10 +9,15 @@ if HAVE_AUTO3_LUA auto3 = auto3 endif +if WITH_INTERNAL_LIBASS +libass = libass +endif + SUBDIRS = \ $(univchardet) \ $(auto3) \ + $(libass) \ aegisub \ automation \ po \ diff --git a/aegisub/Makefile.am b/aegisub/Makefile.am index cbc80bbe2..8b90d722f 100644 --- a/aegisub/Makefile.am +++ b/aegisub/Makefile.am @@ -9,8 +9,12 @@ AM_CXXFLAGS = -DAEGISUB -Iposix -include posix/defines.h -Iinclude @WX_CPPFLAGS@ bin_PROGRAMS = aegisub aegisub_LDADD = posix/libposix.a aegisub_CPPFLAGS = @FREETYPE_CFLAGS@ -aegisub_LDFLAGS = @GL_LIBS@ @FREETYPE_LIBS@ @PTHREAD_LIBS@ @WX_LIBS@ +aegisub_LDFLAGS = @GL_LIBS@ @PTHREAD_LIBS@ @WX_LIBS@ +LIBS += @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ +if WITH_INTERNAL_LIBASS +aegisub_LDFLAGS += @FONTCONFIG_LIBS@ +endif #XXX: fix this so it's generated by configure and put into acconf.h #BUILDINFO := -DBUILD_CREDIT=verm -DBUILD_SVN_REVISION=0 @@ -57,7 +61,7 @@ if HAVE_LIBASS noinst_LIBRARIES += libsubtitle_ass.a libsubtitle_ass_a_SOURCES = subtitles_provider_libass.cpp libsubtitle_ass_a_CPPFLAGS = @LIBASS_CFLAGS@ -aegisub_LDFLAGS += @LIBASS_LIBS@ +LIBS += @LIBASS_LIBS@ aegisub_LDADD += libsubtitle_ass.a endif diff --git a/configure.in b/configure.in index 6c7b7a64a..c13606e90 100644 --- a/configure.in +++ b/configure.in @@ -135,6 +135,31 @@ AM_CONDITIONAL([HAVE_OPENMP], [test "$with_openmp" != "no"]) AC_SUBST(OPENMP_CXXFLAGS) + +############################## +# Program Support and Features +############################## +AC_CHECK_HEADER([wchar.h],,[AC_MSG_FAILURE([aegisub requires wide character support])]) + +AX_CHECK_GL +if test ! "$GL_LIBS"; then + AC_MSG_FAILURE([aegisub requires GL support.]) +fi +AC_SUBST(GL_CFLAGS) +AC_SUBST(GL_LIBS) + +PKG_CHECK_MODULES(FREETYPE, freetype2 >= 9.7.0, + AC_DEFINE(WITH_FREETYPE2, 1, [Enable FreeType 2 support.]), + [AC_MSG_FAILURE([aegisub requires >= FreeType2 2.1.9])]) + +PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.4, + AC_DEFINE(WITH_FONTCONFIG, 1, [Enable FontConfig support.]), + [AC_MSG_FAILURE([aegisub requires >= fontconfig >= 2.4])]) +AC_SUBST(FONTCONFIG_CFLAGS) +AC_SUBST(FONTCONFIG_LIBS) + + + ################# # Audio Providers ################# @@ -250,54 +275,54 @@ AM_CONDITIONAL([HAVE_FFMPEG], [test "$with_ffmpeg" != "no"]) # Subtitle Provider ################### -AC_ARG_WITH(libass, [ --without-libass disable libass (default=autodetect)],libass_disabled="(disabled)") +AC_ARG_WITH(libass, [ --without-libass disable libass (default=enable)],libass_disabled="(disabled)") +AC_ARG_ENABLE(libass, [ --disable-libass disable internal libass support (default=enabled)],libass_internal_disabled="(disabled)") -if test "x$with_libass" != xno; then - PKG_CHECK_MODULES(LIBASS, libass >= 0.9.1) +AC_ARG_VAR([ICONV_CFLAGS], [CFLAGS to use for iconv (default: CPPFLAGS)]) +AC_ARG_VAR([ICONV_LDFLAGS], [LDFLAGS to use for iconv (default: LDFLAGS)]) - aegisub_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LIBASS_LIBS" - AC_CHECK_LIB([ass], [ass_read_styles],[LIBASS_LIBS="$LIBASS_LIBS]", with_libass=no) - LDFLAGS="$aegisub_save_LDFLAGS" +if test "$with_libass" != "no"; then + if test "$enable_libass" = "no"; then + PKG_CHECK_MODULES(LIBASS, libass >= 0.9.1) - aegisub_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$LIBASS_CFLAGS" - AC_CHECK_HEADER([ass/ass.h],[LIBASS_CFLAGS="$LIBASS_CFLAGS"],with_libass="no") - CPPFLAGS="$aegisub_save_CPPFLAGS" + aegisub_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LIBASS_LIBS" + AC_CHECK_LIB([ass], [ass_read_styles],[LIBASS_LIBS="$LIBASS_LIBS"; with_libass="yes"], with_libass=no) + LDFLAGS="$aegisub_save_LDFLAGS" + + aegisub_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$LIBASS_CFLAGS" + AC_CHECK_HEADER([ass/ass.h], [LIBASS_CFLAGS="$LIBASS_CFLAGS"; with_libass="yes"], with_libass="no") + CPPFLAGS="$aegisub_save_CPPFLAGS" + with_internal_libass="no" + else + AC_CHECK_HEADER(iconv.h, [ICONV_CFLAGS="$ICONV_CFLAGS"; with_iconv="yes"], with_iconv="no") + AC_CHECK_LIB([iconv], [iconv_open],[ICONV_LDFLAGS="ICONV_LIBS"; with_iconv="yes"], with_iconv="no") + + if test "$with_iconv" = "yes"; then + LIBASS_LIBS="-L../libass -lass_aegisub" + LIBASS_CFLAGS="-I../libass" + with_internal_libass="yes" + else + with_internal_libass="no" + fi + fi fi if test "$with_libass" != "no"; then AC_DEFINE(WITH_LIBASS, 1, [Enable libass Subtitle Provider]) with_libass="yes" +else + with_internal_libass="no" fi AC_SUBST(LIBASS_LIBS) AC_SUBST(LIBASS_CFLAGS) +AM_CONDITIONAL([WITH_INTERNAL_LIBASS], [test "$with_libass" != "no" ]) AM_CONDITIONAL([HAVE_LIBASS], [test "$with_libass" != "no" ]) -############################## -# Program Support and Features -############################## -AC_CHECK_HEADER([wchar.h],,[AC_MSG_FAILURE([aegisub requires wide character support])]) - -AX_CHECK_GL -if test ! "$GL_LIBS"; then - AC_MSG_FAILURE([aegisub requires GL support.]) -fi -AC_SUBST(GL_CFLAGS) -AC_SUBST(GL_LIBS) - -PKG_CHECK_MODULES(FREETYPE, freetype2 >= 9.7.0, - AC_DEFINE(WITH_FREETYPE2, 1, [Enable FreeType 2 support.]), - [AC_MSG_FAILURE([aegisub requires >= FreeType2 2.1.9])]) - -PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.4, - AC_DEFINE(WITH_FONTCONFIG, 1, [Enable FontConfig support.]), - [AC_MSG_FAILURE([aegisub requires >= fontconfig >= 2.4])]) - - ########### ## Hunspell @@ -621,6 +646,7 @@ aegisub/bitmaps/Makefile aegisub/posix/Makefile universalchardet/Makefile auto3/Makefile +libass/Makefile automation/Makefile po/Makefile.in m4macros/Makefile @@ -680,7 +706,7 @@ Video Providers Subtitle Providers: asa: $with_asa - libass: $with_libass + libass: $with_libass $libass_disabled (internal: $with_internal_libass) Misc Packages: hunspell: $with_hunspell $hunspell_disabled diff --git a/libass/Makefile.am b/libass/Makefile.am index 2b884f022..df7e6db38 100644 --- a/libass/Makefile.am +++ b/libass/Makefile.am @@ -1,7 +1,7 @@ -noinst_LIBRARIES = libass.a +noinst_LIBRARIES = libass_aegisub.a -libass_a_CPPFLAGS = @FREETYPE_CFLAGS@ -DHAVE_FONTCONFIG -DUSE_ICONV @FONTCONFIG_CFLAGS@ -libass_a_SOURCES = ass.c ass_cache.c ass_font.c ass_fontconfig.c ass_render.c \ +libass_aegisub_a_CPPFLAGS = @FREETYPE_CFLAGS@ -DHAVE_FONTCONFIG -DUSE_ICONV @FONTCONFIG_CFLAGS@ +libass_aegisub_a_SOURCES = ass.c ass_cache.c ass_font.c ass_fontconfig.c ass_render.c \ ass_utils.c ass_bitmap.c ass_library.c mputils.c \ ass_bitmap.h ass_cache.h ass_fontconfig.h ass_font.h ass.h \ ass_library.h ass_types.h ass_utils.h help_mp.h mputils.h diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index addcc8264..5b01cb899 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -40,7 +40,7 @@ #include #endif -extern int font_fontconfig; +int font_fontconfig = 1; struct fc_instance_s { #ifdef HAVE_FONTCONFIG