Browse code

configure: fix detection of libopenjpeg

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 CPPFLAGS, so that it isn't necessary to
hardcode this in libavcodec/libopenjpeg{dec,enc}.c.

Finally, check for non-static openjpeg 2.1, too.

Reviewed-by: Michael Bradshaw <mjbshaw@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>

Andreas Cadhalpun authored on 2016/10/12 03:28:35
Showing 3 changed files
... ...
@@ -5710,10 +5710,11 @@ enabled libopencv         && { check_header opencv2/core/core_c.h &&
5710 5710
                                  require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
5711 5711
                                require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader; }
5712 5712
 enabled libopenh264       && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion
5713
-enabled libopenjpeg       && { check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC ||
5714
-                               check_lib openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC ||
5715
-                               check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC ||
5716
-                               check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC ||
5713
+enabled libopenjpeg       && { { check_lib2 openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
5714
+                               check_lib2 openjpeg-2.1/openjpeg.h opj_version -lopenjp2 ||
5715
+                               { check_lib2 openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
5716
+                               { check_lib2 openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
5717
+                               { check_lib2 openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
5717 5718
                                die "ERROR: libopenjpeg not found"; }
5718 5719
 enabled libopenmpt        && require_pkg_config "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create
5719 5720
 enabled libopus           && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
... ...
@@ -24,8 +24,6 @@
24 24
  * JPEG 2000 decoder using libopenjpeg
25 25
  */
26 26
 
27
-#define  OPJ_STATIC
28
-
29 27
 #include "libavutil/common.h"
30 28
 #include "libavutil/imgutils.h"
31 29
 #include "libavutil/intreadwrite.h"
... ...
@@ -24,8 +24,6 @@
24 24
  * JPEG 2000 encoder using libopenjpeg
25 25
  */
26 26
 
27
-#define  OPJ_STATIC
28
-
29 27
 #include "libavutil/avassert.h"
30 28
 #include "libavutil/common.h"
31 29
 #include "libavutil/imgutils.h"