[FFmpeg-devel] [RFC][PATCH] configure: libfreetype check

Alexander Strasser eclipse7 at gmx.net
Sat Dec 7 01:12:42 CET 2013


On 2013-12-06 23:25 +0100, Clément Bœsch wrote:
> On Fri, Dec 06, 2013 at 10:55:04PM +0100, Alexander Strasser wrote:
[two other variants skipped]
> > From 8696dd58570deb0f7e9dfef6327d11c3c73525c7 Mon Sep 17 00:00:00 2001
> > Message-Id: <8696dd58570deb0f7e9dfef6327d11c3c73525c7.1386365701.git.eclipse7 at gmx.net>
> > From: Alexander Strasser <eclipse7 at gmx.net>
> > Date: Fri, 6 Dec 2013 21:20:46 +0100
> > Subject: [PATCH] configure: libfreetype: Check for different header paths
> > 
> > Some distributions have it below freetype/ directory and
> > others not.
> > 
> > The official libfreetype way to handle this is to use
> > a macros instead of a string literal. That is how it is
> > done in the drawtext filter and the reason this commit
> > only affects configure detection.
> > 
> > Signed-off-by: Alexander Strasser <eclipse7 at gmx.net>
> > ---
> >  configure | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/configure b/configure
> > index 5881e6a..d7eaa4b 100755
> > --- a/configure
> > +++ b/configure
> > @@ -4316,7 +4316,12 @@ enabled libfaac           && require2 libfaac "stdint.h faac.h" faacEncGetVersio
> >  enabled libfdk_aac        && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
> >  flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite"
> >  enabled libflite          && require2 libflite "flite/flite.h" flite_init $flite_libs
> > -enabled libfreetype       && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType
> > +enabled libfreetype       && {    check_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType \
> > +                               || check_pkg_config freetype2 "ft2build.h freetype.h"          FT_Init_FreeType \
> > +                               || die      "ERROR: freetype2 not found"; } \
> > +                          && { add_cflags    $(get_safe ${pkg}_cflags)
> > +                               add_extralibs $(get_safe ${pkg}_libs);  }
> > +
> 
> I don't like this one.
> 
> >  enabled libgme            && require  libgme gme/gme.h gme_new_emu -lgme -lstdc++
> >  enabled libgsm            && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
> >                                     check_lib "${gsm_hdr}" gsm_create -lgsm && break;
> > -- 
> 
> > From 7da78bc381d02fbf328d251843be11f32fb04ae3 Mon Sep 17 00:00:00 2001
> > Message-Id: <7da78bc381d02fbf328d251843be11f32fb04ae3.1386364728.git.eclipse7 at gmx.net>
> > From: Alexander Strasser <eclipse7 at gmx.net>
> > Date: Fri, 6 Dec 2013 17:20:26 +0100
> > Subject: [PATCH] configure: Special case libfreetype test
> > 
> > Include the freetype header, in-directly through a macro, like it
> > is done in the drawtext filter. Do not break if the header is moved,
> > like it was done in at least distribution.
> > 
> > Signed-off-by: Alexander Strasser <eclipse7 at gmx.net>
> > ---
> >  configure | 21 ++++++++++++++++++++-
> >  1 file changed, 20 insertions(+), 1 deletion(-)
> > 
> > diff --git a/configure b/configure
> > index 5881e6a..5606426 100755
> > --- a/configure
> > +++ b/configure
> > @@ -1127,6 +1127,25 @@ require_pkg_config(){
> >      add_extralibs $(get_safe ${pkg}_libs)
> >  }
> >  
> > +require_libfreetype(){
> > +    log check_libfreetype "$@"
> > +    pkg="freetype2"
> > +    shift 3
> > +    check_cmd $pkg_config --exists --print-errors $pkg || return
> > +    pkg_cflags=$($pkg_config --cflags $pkg)
> > +    pkg_libs=$($pkg_config --libs $pkg)
> > +    {
> > +        echo "#include <ft2build.h>"
> > +        echo "#include FT_FREETYPE_H"
> > +        echo "long check_func(void) { return (long) FT_Init_FreeType; }"
> > +        echo "int main(void) { return 0; }"
> > +    } | check_ld "cc" $pkg_cflags $pkg_libs && enable $funcs &&
> > +        set_safe ${pkg}_cflags $pkg_cflags   &&
> > +        set_safe ${pkg}_libs   $pkg_libs
> > +    add_cflags    $(get_safe ${pkg}_cflags)
> > +    add_extralibs $(get_safe ${pkg}_libs)
> > +}
> > +
> 
> This approach looks the saner.
> 
> Also note that you need to remove one #include in the drawtext filter to
> make the compilation works.

  Yeah, I got a notice about that. The inlcude can just be deleted,
I think it was wrong to begin with. But to be sure I will check the
history of that file.

Thanks for looking the patches,
  Alexander
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20131207/1b64088e/attachment.asc>


More information about the ffmpeg-devel mailing list