Message ID | 31250a9b-0390-c0b9-eec4-a44489eb9cba@googlemail.com |
---|---|
State | Superseded |
Headers | show |
Oh man, I literally just wrote a patch for this today. You beat me by 6 hours. Anyway, thanks for the patch! On Tue, Oct 11, 2016 at 11:37 AM, Andreas Cadhalpun < andreas.cadhalpun@googlemail.com> wrote: > Use check_lib2 to test the header together with the function. This is > necessary, because '-DOPJ_STATIC' changes what the included header does. > > Also add '-DOPJ_STATIC' to CFLAGS, so that it isn't necessary to > hardcode this in libavcodec/libopenjpeg{dec,enc}.c. > > Finally, check for non-static libopenjpeg, too. > > Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> > --- > configure | 9 ++++++--- > libavcodec/libopenjpegdec.c | 2 -- > libavcodec/libopenjpegenc.c | 2 -- > 3 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/configure b/configure > index 8fc71fb..ff743cb 100755 > --- a/configure > +++ b/configure > @@ -5710,9 +5710,12 @@ enabled libopencv && { check_header > opencv2/core/core_c.h && > require opencv opencv2/core/core_c.h > cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || > require_pkg_config opencv opencv/cxcore.h > cvCreateImageHeader; } > enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h > WelsGetCodecVersion > -enabled libopenjpeg && { check_lib openjpeg-2.1/openjpeg.h > opj_version -lopenjp2 -DOPJ_STATIC || > - check_lib openjpeg-2.0/openjpeg.h > opj_version -lopenjp2 -DOPJ_STATIC || > - check_lib openjpeg-1.5/openjpeg.h > opj_version -lopenjpeg -DOPJ_STATIC || > +enabled libopenjpeg && { { check_lib2 openjpeg-2.1/openjpeg.h > opj_version -lopenjp2 -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || > Use add_cppflags instead of add_cflags. The macro isn't needed for linking. > + check_lib2 openjpeg-2.1/openjpeg.h > opj_version -lopenjp2 || > + { check_lib openjpeg-2.0/openjpeg.h > opj_version -lopenjp2 -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || > You can drop the changes for v2.0 and below. Only v2.1 needs the check. The new OPJ_STATIC behavior was introduced in OpenJPEG v2.1.1. > + check_lib2 openjpeg-2.0/openjpeg.h > opj_version -lopenjp2 || > + { check_lib openjpeg-1.5/openjpeg.h > opj_version -lopenjpeg -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || > + check_lib2 openjpeg-1.5/openjpeg.h > opj_version -lopenjpeg || > check_lib openjpeg.h opj_version > -lopenjpeg -DOPJ_STATIC || > die "ERROR: libopenjpeg not found"; } > enabled libopenmpt && require_pkg_config "libopenmpt >= 0.2.6557" > libopenmpt/libopenmpt.h openmpt_module_create > diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c > index 65167e6..b4ce834 100644 > --- a/libavcodec/libopenjpegdec.c > +++ b/libavcodec/libopenjpegdec.c > @@ -24,8 +24,6 @@ > * JPEG 2000 decoder using libopenjpeg > */ > > -#define OPJ_STATIC > - > #include "libavutil/common.h" > #include "libavutil/imgutils.h" > #include "libavutil/intreadwrite.h" > diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c > index 1443551..5042507 100644 > --- a/libavcodec/libopenjpegenc.c > +++ b/libavcodec/libopenjpegenc.c > @@ -24,8 +24,6 @@ > * JPEG 2000 encoder using libopenjpeg > */ > > -#define OPJ_STATIC > - > #include "libavutil/avassert.h" > #include "libavutil/common.h" > #include "libavutil/imgutils.h" > -- > 2.9.3 > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
On Tue, Oct 11, 2016 at 6:35 PM, Michael Bradshaw <mjbshaw@gmail.com> wrote: > > On Tue, Oct 11, 2016 at 11:37 AM, Andreas Cadhalpun < > andreas.cadhalpun@googlemail.com> wrote: >> >> + check_lib2 openjpeg-2.1/openjpeg.h >> opj_version -lopenjp2 || >> + { check_lib openjpeg-2.0/openjpeg.h >> opj_version -lopenjp2 -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || >> > > You can drop the changes for v2.0 and below. Only v2.1 needs the check. > The new OPJ_STATIC behavior was introduced in OpenJPEG v2.1.1. > Gah, this comment wasn't very clear. I mean that all the checks for v2.0 and below should have -DOPJ_STATIC && add_cppflags -DOPJ_STATIC. Only v2.1 needs to worry about possibly not using OPJ_STATIC. > + check_lib2 openjpeg-2.0/openjpeg.h >> opj_version -lopenjp2 || >> + { check_lib openjpeg-1.5/openjpeg.h >> opj_version -lopenjpeg -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || >> + check_lib2 openjpeg-1.5/openjpeg.h >> opj_version -lopenjpeg || > >
diff --git a/configure b/configure index 8fc71fb..ff743cb 100755 --- a/configure +++ b/configure @@ -5710,9 +5710,12 @@ enabled libopencv && { check_header opencv2/core/core_c.h && require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader; } enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion -enabled libopenjpeg && { check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC || - check_lib openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC || - check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC || +enabled libopenjpeg && { { check_lib2 openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || + check_lib2 openjpeg-2.1/openjpeg.h opj_version -lopenjp2 || + { check_lib openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || + check_lib2 openjpeg-2.0/openjpeg.h opj_version -lopenjp2 || + { check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cflags -DOPJ_STATIC; } || + check_lib2 openjpeg-1.5/openjpeg.h opj_version -lopenjpeg || check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC || die "ERROR: libopenjpeg not found"; } enabled libopenmpt && require_pkg_config "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c index 65167e6..b4ce834 100644 --- a/libavcodec/libopenjpegdec.c +++ b/libavcodec/libopenjpegdec.c @@ -24,8 +24,6 @@ * JPEG 2000 decoder using libopenjpeg */ -#define OPJ_STATIC - #include "libavutil/common.h" #include "libavutil/imgutils.h" #include "libavutil/intreadwrite.h" diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 1443551..5042507 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -24,8 +24,6 @@ * JPEG 2000 encoder using libopenjpeg */ -#define OPJ_STATIC - #include "libavutil/avassert.h" #include "libavutil/common.h" #include "libavutil/imgutils.h"
Use check_lib2 to test the header together with the function. This is necessary, because '-DOPJ_STATIC' changes what the included header does. Also add '-DOPJ_STATIC' to CFLAGS, so that it isn't necessary to hardcode this in libavcodec/libopenjpeg{dec,enc}.c. Finally, check for non-static libopenjpeg, too. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> --- configure | 9 ++++++--- libavcodec/libopenjpegdec.c | 2 -- libavcodec/libopenjpegenc.c | 2 -- 3 files changed, 6 insertions(+), 7 deletions(-)