1dnl -------------------------------------------------------------------------- 2dnl GStreamer OpenGL library checks (gst-libs/gst/gl) 3dnl -------------------------------------------------------------------------- 4AC_DEFUN([AG_GST_GL_CHECKS], 5[ 6dnl define an ERROR_OBJCFLAGS Makefile variable 7dnl FIXME: make check conditional on Apple OS? 8AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [ 9 -Wmissing-declarations -Wredundant-decls 10 -Wwrite-strings -Wformat-nonliteral -Wformat-security 11 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS]) 12 13AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-]) 14 15AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes") 16if test "x$HAVE_IOS" = "xyes"; then 17 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS]) 18fi 19 20dnl *** opengl *** 21AC_ARG_ENABLE([opengl], 22 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@], 23 [case "${enableval}" in 24 yes) NEED_GL=yes ;; 25 no) NEED_GL=no ;; 26 auto) NEED_GL=auto ;; 27 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;; 28 esac],[NEED_GL=auto]) 29 30AC_ARG_WITH([opengl-module-name], 31 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)])) 32if test x$with_opengl_module_name != x; then 33 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name]) 34fi 35 36AC_ARG_ENABLE([gles2], 37 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@], 38 [case "${enableval}" in 39 yes) NEED_GLES2=yes ;; 40 no) NEED_GLES2=no ;; 41 auto) NEED_GLES2=auto ;; 42 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;; 43 esac],[NEED_GLES2=auto]) 44 45AC_ARG_WITH([gles2-module-name], 46 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)])) 47if test x$with_gles2_module_name != x; then 48 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name]) 49fi 50 51AC_ARG_ENABLE([egl], 52 [ --enable-egl Enable EGL support @<:@default=auto@:>@], 53 [case "${enableval}" in 54 yes) NEED_EGL=yes ;; 55 no) NEED_EGL=no ;; 56 auto) NEED_EGL=auto ;; 57 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;; 58 esac],[NEED_EGL=auto]) 59 60AC_ARG_WITH([egl-module-name], 61 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)])) 62if test x$with_egl_module_name != x; then 63 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name]) 64fi 65 66AC_ARG_ENABLE([wgl], 67 [ --enable-wgl Enable WGL support @<:@default=auto@:>@], 68 [case "${enableval}" in 69 yes) NEED_WGL=yes ;; 70 no) NEED_WGL=no ;; 71 auto) NEED_WGL=auto ;; 72 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;; 73 esac],[NEED_WGL=auto]) 74 75AC_ARG_ENABLE([glx], 76 [ --enable-glx Enable GLX support @<:@default=auto@:>@], 77 [case "${enableval}" in 78 yes) NEED_GLX=yes ;; 79 no) NEED_GLX=no ;; 80 auto) NEED_GLX=auto ;; 81 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;; 82 esac],[NEED_GLX=auto]) 83 84AC_ARG_ENABLE([cocoa], 85 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@], 86 [case "${enableval}" in 87 yes) NEED_COCOA=yes ;; 88 no) NEED_COCOA=no ;; 89 auto) NEED_COCOA=auto ;; 90 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;; 91 esac],[NEED_COCOA=auto]) 92 93AC_ARG_ENABLE([x11], 94 [ --enable-x11 Enable x11 support @<:@default=auto@:>@], 95 [case "${enableval}" in 96 yes) NEED_X11=yes ;; 97 no) NEED_X11=no ;; 98 auto) NEED_X11=auto ;; 99 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;; 100 esac],[NEED_X11=auto]) 101 102AC_ARG_ENABLE([wayland], 103 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@], 104 [case "${enableval}" in 105 yes) NEED_WAYLAND_EGL=yes ;; 106 no) NEED_WAYLAND_EGL=no ;; 107 auto) NEED_WAYLAND_EGL=auto ;; 108 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;; 109 esac],[NEED_WAYLAND_EGL=auto]) 110 111AC_ARG_ENABLE([dispmanx], 112 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@], 113 [case "${enableval}" in 114 yes) NEED_DISPMANX=yes ;; 115 no) NEED_DISPMANX=no ;; 116 auto) NEED_DISPMANX=auto ;; 117 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;; 118 esac],[NEED_DISPMANX=auto]) 119 120AC_ARG_ENABLE([gbm], 121 [ --enable-gbm Enable Mesa3D GBM support (requires EGL) @<:@default=auto@:>@], 122 [case "${enableval}" in 123 yes) NEED_GBM=yes ;; 124 no) NEED_GBM=no ;; 125 auto) NEED_GBM=auto ;; 126 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gbm]) ;; 127 esac],[NEED_GBM=auto]) 128 129AC_ARG_ENABLE([png], 130 [ --enable-png Enable libpng support @<:@default=auto@:>@], 131 [case "${enableval}" in 132 yes) NEED_PNG=yes ;; 133 no) NEED_PNG=no ;; 134 auto) NEED_PNG=auto ;; 135 *) AC_MSG_ERROR([bad value ${enableval} for --enable-png]) ;; 136 esac],[NEED_PNG=auto]) 137 138AC_ARG_ENABLE([jpeg], 139 [ --enable-jpeg Enable libjpeg support @<:@default=auto@:>@], 140 [case "${enableval}" in 141 yes) NEED_JPEG=yes ;; 142 no) NEED_JPEG=no ;; 143 auto) NEED_JPEG=auto ;; 144 *) AC_MSG_ERROR([bad value ${enableval} for --enable-jpeg]) ;; 145 esac],[NEED_JPEG=auto]) 146 147AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb) 148save_CPPFLAGS="$CPPFLAGS" 149save_LIBS="$LIBS" 150 151HAVE_GL=no 152HAVE_GLES2=no 153HAVE_GLES3_H=no 154HAVE_WAYLAND_EGL=no 155HAVE_VIV_FB_EGL=no 156HAVE_GBM_EGL=no 157HAVE_EGL_RPI=no 158 159case $host in 160 *-mingw32* ) 161 LIBS="$LIBS -lgdi32" 162 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h) 163 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>]) 164 if test "x$HAVE_WGLEXT" = "xyes"; then 165 HAVE_WGL=yes 166 HAVE_GL=yes 167 fi 168 ;; 169 *) 170 if test "x$NEED_GL" != "xno"; then 171 AG_GST_PKG_CHECK_MODULES(GL, gl) 172 if test "x$HAVE_GL" != "xyes"; then 173 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h) 174 fi 175 fi 176 if test "x$NEED_GLES2" != "xno"; then 177 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2) 178 if test "x$HAVE_GLES2" != "xyes"; then 179 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h) 180 fi 181 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes]) 182 AS_IF([test "x$HAVE_GLES3_H" == "xyes"], 183 [ 184 AC_CHECK_HEADER([GLES3/gl3ext.h], [HAVE_GLES3EXT3_H=yes], [HAVE_GLES3EXT3_H=no], [#include <GLES3/gl3.h>]) 185 ]) 186 fi 187 if test "x$NEED_EGL" != "xno"; then 188 AG_GST_PKG_CHECK_MODULES(EGL, egl) 189 if test "x$HAVE_EGL" != "xyes"; then 190 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h) 191 fi 192 fi 193 194 old_LIBS=$LIBS 195 old_CFLAGS=$CFLAGS 196 197 dnl imx6 / Vivante specifics 198 if test "x$HAVE_EGL" = "xyes"; then 199 AC_CHECK_LIB([EGL], [fbGetDisplay], [HAVE_VIV_FB_EGL=yes]) 200 fi 201 202 if test "x$NEED_GBM" != "xno"; then 203 if test "x$HAVE_EGL" = "xyes"; then 204 PKG_CHECK_MODULES(DRM, libdrm >= 2.4.55, HAVE_DRM=yes, HAVE_DRM=no) 205 AC_SUBST(DRM_CFLAGS) 206 AC_SUBST(DRM_LIBS) 207 if test "x$NEED_GBM" = "xyes"; then 208 if test "x$HAVE_DRM" = "xno"; then 209 AC_MSG_ERROR([GBM support requested but libdrm is not available]) 210 fi 211 if test "x$HAVE_GUDEV" = "xno"; then 212 AC_MSG_ERROR([GBM support requested but gudev is not available]) 213 fi 214 fi 215 if test "x$HAVE_DRM" = "xyes" -a "x$HAVE_GUDEV" = "xyes"; then 216 PKG_CHECK_MODULES(GBM, gbm, HAVE_GBM_EGL=yes, HAVE_GBM_EGL=no) 217 if test "x$HAVE_GBM_EGL" = "xno" -a "x$NEED_GBM" = "xyes"; then 218 AC_MSG_ERROR([GBM support requested but gbm library is not available]) 219 fi 220 AC_SUBST(GBM_CFLAGS) 221 AC_SUBST(GBM_LIBS) 222 fi 223 elif test "x$NEED_GBM" = "xyes"; then 224 AC_MSG_ERROR([GBM support requested but EGL is not available]) 225 else 226 AC_MSG_NOTICE([GBM support requested but EGL is not available; not enabling GBM support]) 227 fi 228 fi 229 230 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2 231 AC_CHECK_HEADER([EGL/fbdev_window.h], 232 [ 233 LIBS="$LIBS -lUMP" 234 AC_CHECK_LIB([Mali], [mali_image_create], 235 [ 236 LIBS="$LIBS -lMali" 237 AC_CHECK_LIB([GLESv2], [glEnable], 238 [ 239 AC_CHECK_HEADER([GLES2/gl2.h], 240 [ 241 AC_CHECK_LIB([EGL], [eglGetProcAddress], 242 [ 243 AC_CHECK_HEADER([EGL/egl.h], 244 [ 245 HAVE_EGL=yes 246 HAVE_GLES2=yes 247 EGL_LIBS="-lMali -lUMP" 248 EGL_CFLAGS="" 249 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform]) 250 ]) 251 ]) 252 ]) 253 ]) 254 ]) 255 ]) 256 257 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2 258 dnl FIXME: GLESv2 of RPi depends on EGL... WTF! 259 LIBS="$LIBS -lvcos -lvchiq_arm" 260 AC_CHECK_LIB([bcm_host], [bcm_host_init], 261 [ 262 LIBS="$LIBS -lbcm_host" 263 AC_CHECK_HEADER(bcm_host.h, 264 [ 265 LIBS="$LIBS -lGLESv2" 266 AC_CHECK_LIB([EGL], [eglGetProcAddress], 267 [ 268 LIBS="$LIBS -lEGL" 269 AC_CHECK_HEADER([EGL/egl.h], 270 [ 271 AC_CHECK_LIB([GLESv2], [glEnable], 272 [ 273 AC_CHECK_HEADER([GLES2/gl2.h], 274 [ 275 HAVE_EGL=yes 276 HAVE_GLES2=yes 277 HAVE_EGL_RPI=yes 278 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm" 279 EGL_CFLAGS="" 280 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform]) 281 ]) 282 ]) 283 ]) 284 ]) 285 ]) 286 ]) 287 288 LIBS=$old_LIBS 289 CFLAGS=$old_CFLAGS 290 291 PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0 wayland-protocols >= 1.15, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no) 292 AC_CHECK_PROGS(WAYLAND_SCANNER, wayland-scanner) 293 if test x"$HAVE_WAYLAND_EGL" == xyes ; then 294 if test x"$WAYLAND_SCANNER" == x ; then 295 AC_MSG_ERROR([Found Wayland libraries, but couldn't find wayland-scanner binary.]) 296 fi 297 298 WAYLAND_PROTOCOLS_DATADIR="`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`" 299 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $WAYLAND_PROTOCOLS_DATADIR) 300 fi 301 302 # OS X and iOS always have GL available 303 case $host in 304 *-darwin*) 305 if test "x$HAVE_IOS" = "xyes"; then 306 HAVE_GLES2=yes 307 else 308 HAVE_GL=yes 309 fi 310 ;; 311 esac 312 ;; 313esac 314 315CPPFLAGS="$save_CPPFLAGS" 316LIBS="$save_LIBS" 317 318USE_OPENGL=no 319USE_GLES2=no 320USE_GLX=no 321USE_COCOA=no 322USE_WGL=no 323USE_X11=no 324USE_EAGL=no 325GL_LIBS= 326GL_CFLAGS= 327GL_OBJCFLAGS= 328 329dnl Check for what the user asked for and what we could find 330if test "x$HAVE_EGL" = "xno"; then 331 if test "x$NEED_EGL" = "xyes"; then 332 AC_MSG_ERROR([Could not find the required EGL libraries]) 333 fi 334fi 335 336if test "x$HAVE_GL" = "xno"; then 337 if test "x$NEED_GL" = "xyes"; then 338 AC_MSG_ERROR([Could not find the required OpenGL libraries]) 339 fi 340fi 341 342if test "x$HAVE_GLES2" = "xno"; then 343 if test "x$NEED_GLES2" = "xyes"; then 344 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries]) 345 fi 346fi 347 348dnl X, GLX and OpenGL 349if test "x$HAVE_X11_XCB" = "xno"; then 350 if test "x$NEED_GLX" = "xyes"; then 351 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported]) 352 fi 353 if test "x$NEED_X11" = "xyes"; then 354 AC_MSG_ERROR([Could not find X11 development libraries]) 355 fi 356else 357 if test "x$NEED_GL" != "xno"; then 358 if test "x$HAVE_GL" = "xno"; then 359 if test "x$NEED_GLX" = "xyes"; then 360 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported]) 361 fi 362 else dnl HAVE_GL=yes 363 USE_OPENGL=yes 364 if test "x$NEED_GLX" != "xno"; then 365 USE_GLX=yes 366 fi 367 fi 368 fi 369fi 370 371dnl check for DMABUF support 372HAVE_DRM_FOURCC_HEADER=no 373AC_CHECK_HEADER(libdrm/drm_fourcc.h, 374 HAVE_DRM_FOURCC_HEADER=yes, ) 375 376GST_GL_HAVE_DMABUF=0 377if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \ 378 "x$HAVE_EGL" = "xyes"; then 379 GST_GL_HAVE_DMABUF=1 380fi 381 382dnl check for Vivante DirectVIV support 383AC_CHECK_LIB(GLESv2, glTexDirectVIV, [HAVE_VIV_DIRECTVIV=yes], [HAVE_VIV_DIRECTVIV=no]) 384 385GST_GL_HAVE_VIV_DIRECTVIV=0 386if test "x$HAVE_VIV_DIRECTVIV" = "xyes"; then 387 GST_GL_HAVE_VIV_DIRECTVIV=1 388fi 389 390dnl check if we can include both GL and GLES2 at the same time 391if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then 392 GLES3_H_DEFINE=0 393 GLES3EXT3_H_DEFINE=0 394 if test "x$HAVE_GLES3_H" == "xyes"; then 395 GLES3_H_DEFINE=1 396 fi 397 if test "x$HAVE_GLES3EXT3_H" == "xyes"; then 398 GLES3EXT3_H_DEFINE=1 399 fi 400 GL_INCLUDES=" 401#ifdef __GNUC__ 402# pragma GCC diagnostic push 403# pragma GCC diagnostic ignored \"-Wredundant-decls\" 404#endif 405#ifndef GL_GLEXT_PROTOTYPES 406#define GL_GLEXT_PROTOTYPES 1 407#endif 408# ifdef HAVE_IOS 409# include <OpenGLES/ES2/gl.h> 410# include <OpenGLES/ES2/glext.h> 411# else 412# if $GLES3_H_DEFINE 413# include <GLES3/gl3.h> 414# if $GLES3EXT3_H_DEFINE 415# include <GLES3/gl3ext.h> 416# endif 417# include <GLES2/gl2ext.h> 418# else 419# include <GLES2/gl2.h> 420# include <GLES2/gl2ext.h> 421# endif 422# endif 423# ifdef __APPLE__ 424# include <OpenGL/OpenGL.h> 425# include <OpenGL/gl.h> 426# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 427# define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED 428# include <OpenGL/gl3.h> 429# endif 430# else 431# include <GL/gl.h> 432# if __WIN32__ || _WIN32 433# include <GL/glext.h> 434# endif 435# endif 436int main (int argc, char **argv) { return 0; } 437" 438 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers]) 439 save_CFLAGS="$CFLAGS" 440 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS" 441 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[ 442 #if !defined(GL_FALSE) 443 #error Failed to include GL headers 444 #endif 445 ]])],[ AC_MSG_RESULT(yes) 446 ],[AC_MSG_RESULT(no) 447 if test "x$NEED_GLES2" = "xyes"; then 448 if test "x$NEED_GL" = "xyes"; then 449 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API]) 450 fi 451 AC_MSG_WARN([Disabling Desktop GL support]) 452 HAVE_GL=no 453 USE_OPENGL=no 454 else 455 AC_MSG_WARN([Disabling GL|ES 2.0 support]) 456 HAVE_GLES2=no 457 HAVE_GLES3_H=no 458 fi 459 ]) 460 CFLAGS="$save_CFLAGS" 461fi 462 463#dnl Check for OpenGL 464echo host is $host 465case $host in 466 *-android*) 467 if test "x$NEED_WGL" = "xyes"; then 468 AC_MSG_ERROR([WGL is not available on Android]) 469 fi 470 if test "x$NEED_GLX" = "xyes"; then 471 AC_MSG_ERROR([GLX is not available on Android]) 472 fi 473 if test "x$NEED_GL" = "xyes"; then 474 AC_MSG_ERROR([GL is not available on Android]) 475 fi 476 if test "x$NEED_X11" = "xyes"; then 477 AC_MSG_ERROR([X11 is not available on Android]) 478 fi 479 if test "x$NEED_COCOA" = "xyes"; then 480 AC_MSG_ERROR([Cocoa is not available on Android]) 481 fi 482 483 dnl OpenGL|ES 2.0 484 if test "x$HAVE_GLES2" = "xyes"; then 485 if test "x$NEED_GLES2" != "xno"; then 486 GL_LIBS="$GL_LIBS -lGLESv2" 487 USE_GLES2=yes 488 fi 489 fi 490 491 dnl EGL 492 if test "x$HAVE_EGL" = "xyes"; then 493 if test "x$NEED_EGL" != "xno"; then 494 GL_LIBS="$GL_LIBS -lEGL" 495 USE_EGL=yes 496 fi 497 fi 498 499 if test "x$USE_EGL" != "xyes"; then 500 AC_MSG_ERROR([Need EGL on Android]) 501 fi 502 503 if test "x$USE_GLES2" != "xyes"; then 504 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android]) 505 fi 506 507 HAVE_WINDOW_ANDROID=yes 508 ;; 509 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* ) 510 if test "x$NEED_WGL" = "xyes"; then 511 AC_MSG_ERROR([WGL is not available on unix]) 512 fi 513 514 if test "x$HAVE_X11_XCB" = "xno"; then 515 if test "x$HAVE_WAYLAND_EGL" = "xno"; then 516 AC_MSG_WARN([X or Wayland is required for OpenGL support]) 517 fi 518 fi 519 520 dnl check Desktop OpenGL 521 if test "x$HAVE_GL" = "xyes"; then 522 if test "x$NEED_GL" != "xno"; then 523 GL_LIBS="$GL_LIBS -lGL" 524 fi 525 fi 526 527 dnl OpenGL|ES 2.0 528 if test "x$HAVE_GLES2" = "xyes"; then 529 if test "x$NEED_GLES2" != "xno"; then 530 GL_LIBS="$GL_LIBS -lGLESv2" 531 USE_GLES2=yes 532 fi 533 fi 534 535 if test "x$HAVE_GBM_EGL" = "xyes"; then 536 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then 537 AC_MSG_WARN([EGL is required by the Mesa GBM EGL backend]) 538 else 539 HAVE_WINDOW_GBM=yes 540 GL_CFLAGS="$GL_CFLAGS $DRM_CFLAGS $GBM_CFLAGS" 541 fi 542 fi 543 544 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then 545 if test "x$NEED_X11" != "xno"; then 546 GL_LIBS="$GL_LIBS $X11_XCB_LIBS" 547 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS" 548 HAVE_WINDOW_X11=yes 549 fi 550 fi 551 552 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then 553 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then 554 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support]) 555 else 556 if test "x$NEED_WAYLAND_EGL" != "xno"; then 557 HAVE_WINDOW_WAYLAND=yes 558 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS" 559 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS" 560 fi 561 fi 562 fi 563 564 if test "x$HAVE_VIV_FB_EGL" = "xyes"; then 565 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then 566 AC_MSG_WARN([EGL is required by the Vivante EGL FB backend]) 567 else 568 HAVE_WINDOW_VIV_FB=yes 569 GL_LIBS="$GL_LIBS" 570 GL_CFLAGS="$GL_CFLAGS" 571 fi 572 fi 573 574 if test "x$HAVE_EGL_RPI" = "xyes"; then 575 if test "x$NEED_DISPMANX" != "xno"; then 576 HAVE_WINDOW_DISPMANX=yes 577 USE_EGL=yes 578 fi 579 fi 580 581 dnl EGL 582 if test "x$HAVE_EGL" = "xno"; then 583 if test "x$HAVE_GL" = "xno"; then 584 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support]) 585 fi 586 else 587 if test "x$NEED_EGL" != "xno"; then 588 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = "xyes" -o "x$HAVE_WINDOW_GBM" = "xyes"; then 589 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" 590 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" 591 USE_EGL=yes 592 fi 593 fi 594 fi 595 ;; 596 *-darwin*) 597 if test "x$HAVE_IOS" = "xyes"; then 598 if test "x$NEED_WGL" = "xyes"; then 599 AC_MSG_ERROR([WGL is not available on iOS]) 600 fi 601 if test "x$NEED_GLX" = "xyes"; then 602 AC_MSG_ERROR([GLX is not available on iOS]) 603 fi 604 if test "x$NEED_GL" = "xyes"; then 605 AC_MSG_ERROR([GL is not available on iOS]) 606 fi 607 if test "x$NEED_X11" = "xyes"; then 608 AC_MSG_ERROR([X11 is not available on iOS]) 609 fi 610 if test "x$NEED_COCOA" = "xyes"; then 611 AC_MSG_ERROR([Cocoa is not available on iOS]) 612 fi 613 if test "x$NEED_EGL" = "xyes"; then 614 AC_MSG_ERROR([EGL is not available on iOS]) 615 fi 616 617 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation" 618 GL_CFLAGS="$GL_CFLAGS" 619 USE_GLES2=yes 620 USE_EAGL=yes 621 HAVE_WINDOW_EAGL=yes 622 623 ac_cv_type_GLsizeiptr=yes 624 ac_cv_type_GLintptr=yes 625 ac_cv_type_GLchar=yes 626 else 627 dnl Only osx supports cocoa. 628 if test "x$NEED_WGL" = "xyes"; then 629 AC_MSG_ERROR([WGL is not available on Mac OS X]) 630 fi 631 632 if test "x$NEED_COCOA" != "xno"; then 633 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation" 634 GL_CFLAGS="$GL_CFLAGS" 635 USE_COCOA=yes 636 HAVE_WINDOW_COCOA=yes 637 USE_OPENGL=yes 638 fi 639 640 if test "x$USE_GLX" = "xyes"; then 641 if test "x$HAVE_X11_XCB" = "xyes"; then 642 if test "x$NEED_X11" != "xno"; then 643 GL_LIBS="$GL_LIBS $X11_XCB_LIBS" 644 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS" 645 HAVE_WINDOW_X11=yes 646 fi 647 fi 648 649 if test "x$HAVE_GL" = "xyes"; then 650 if test "x$NEED_GL" != "xno"; then 651 GL_LIBS="$GL_LIBS -lGL" 652 fi 653 USE_OPENGL=yes 654 fi 655 fi 656 657 if test "x$HAVE_EGL" = "xyes"; then 658 if test "x$NEED_EGL" != "xno"; then 659 if test "x$HAVE_WINDOW_X11" = "xyes"; then 660 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" 661 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" 662 USE_EGL=yes 663 fi 664 fi 665 fi 666 667 dnl OpenGL|ES 2.0 668 if test "x$HAVE_GLES2" = "xyes"; then 669 if test "x$NEED_GLES2" != "xno"; then 670 GL_LIBS="$GL_LIBS -lGLESv2" 671 USE_GLES2=yes 672 fi 673 fi 674 fi 675 ;; 676 *-mingw32*) 677 if test "x$NEED_GLX" = "xyes"; then 678 AC_MSG_ERROR([GLX is not available on Windows]) 679 fi 680 if test "x$NEED_GLES2" = "xyes"; then 681 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet]) 682 fi 683 684 if test "x$HAVE_GL" = "xyes"; then 685 if test "x$NEED_GL" != "xno"; then 686 if test "x$HAVE_WGL" = "xyes"; then 687 if test "$NEED_WGL" != "xno"; then 688 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32" 689 HAVE_WINDOW_WIN32=yes 690 USE_OPENGL=yes 691 USE_WGL=yes 692 fi 693 fi 694 fi 695 fi 696 ;; 697 *) 698 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.]) 699 ;; 700esac 701 702GL_PLATFORMS= 703GL_WINDOWS= 704GL_APIS= 705GL_CONFIG_DEFINES= 706 707dnl APIs 708 709GST_GL_HAVE_OPENGL=0 710GST_GL_HAVE_GLES2=0 711GST_GL_HAVE_GLES3=0 712GST_GL_HAVE_GLES3EXT3_H=0 713 714if test "x$USE_OPENGL" = "xyes"; then 715 GL_APIS="gl $GL_APIS" 716 GST_GL_HAVE_OPENGL=1 717fi 718if test "x$USE_GLES2" = "xyes"; then 719 GL_APIS="gles2 $GL_APIS" 720 GST_GL_HAVE_GLES2=1 721 if test "x$HAVE_GLES3_H" = "xyes"; then 722 GST_GL_HAVE_GLES3=1 723 if test "x$HAVE_GLES3EXT3_H" = "xyes"; then 724 GST_GL_HAVE_GLES3EXT3_H=1 725 fi 726 fi 727fi 728 729GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES 730#define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL 731#define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2 732#define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3 733#define GST_GL_HAVE_GLES3EXT3_H $GST_GL_HAVE_GLES3EXT3_H 734" 735 736dnl WINDOW's 737 738GST_GL_HAVE_WINDOW_X11=0 739GST_GL_HAVE_WINDOW_COCOA=0 740GST_GL_HAVE_WINDOW_WIN32=0 741GST_GL_HAVE_WINDOW_WAYLAND=0 742GST_GL_HAVE_WINDOW_ANDROID=0 743GST_GL_HAVE_WINDOW_DISPMANX=0 744GST_GL_HAVE_WINDOW_EAGL=0 745GST_GL_HAVE_WINDOW_VIV_FB=0 746GST_GL_HAVE_WINDOW_GBM=0 747 748if test "x$HAVE_WINDOW_X11" = "xyes"; then 749 GL_WINDOWS="x11 $GL_WINDOWS" 750 GST_GL_HAVE_WINDOW_X11=1 751fi 752if test "x$HAVE_WINDOW_COCOA" = "xyes"; then 753 GL_WINDOWS="cocoa $GL_WINDOWS" 754 GST_GL_HAVE_WINDOW_COCOA=1 755fi 756if test "x$HAVE_WINDOW_WIN32" = "xyes"; then 757 GL_WINDOWS="win32 $GL_WINDOWS" 758 GST_GL_HAVE_WINDOW_WIN32=1 759fi 760if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then 761 GL_WINDOWS="wayland $GL_WINDOWS" 762 GST_GL_HAVE_WINDOW_WAYLAND=1 763fi 764if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then 765 GL_WINDOWS="android $GL_WINDOWS" 766 GST_GL_HAVE_WINDOW_ANDROID=1 767fi 768if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then 769 GL_WINDOWS="dispmanx $GL_WINDOWS" 770 GST_GL_HAVE_WINDOW_DISPMANX=1 771fi 772if test "x$HAVE_WINDOW_EAGL" = "xyes"; then 773 GL_WINDOWS="eagl $GL_WINDOWS" 774 GST_GL_HAVE_WINDOW_EAGL=1 775fi 776if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then 777 GL_WINDOWS="viv-fb $GL_WINDOWS" 778 GST_GL_HAVE_WINDOW_VIV_FB=1 779fi 780if test "x$HAVE_WINDOW_GBM" = "xyes"; then 781 GL_WINDOWS="gbm $GL_WINDOWS" 782 GST_GL_HAVE_WINDOW_GBM=1 783fi 784 785GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES 786#define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11 787#define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA 788#define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32 789#define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND 790#define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID 791#define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX 792#define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL 793#define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB 794#define GST_GL_HAVE_WINDOW_GBM $GST_GL_HAVE_WINDOW_GBM 795" 796 797dnl PLATFORM's 798 799GST_GL_HAVE_PLATFORM_EGL=0 800GST_GL_HAVE_PLATFORM_GLX=0 801GST_GL_HAVE_PLATFORM_WGL=0 802GST_GL_HAVE_PLATFORM_CGL=0 803GST_GL_HAVE_PLATFORM_EAGL=0 804 805if test "x$USE_EGL" = "xyes"; then 806 GL_PLATFORMS="egl $GL_PLATFORMS" 807 GST_GL_HAVE_PLATFORM_EGL=1 808fi 809if test "x$USE_GLX" = "xyes"; then 810 GL_PLATFORMS="glx $GL_PLATFORMS" 811 GST_GL_HAVE_PLATFORM_GLX=1 812fi 813if test "x$USE_WGL" = "xyes"; then 814 GL_PLATFORMS="wgl $GL_PLATFORMS" 815 GST_GL_HAVE_PLATFORM_WGL=1 816fi 817if test "x$USE_COCOA" = "xyes"; then 818 GL_PLATFORMS="cgl $GL_PLATFORMS" 819 GST_GL_HAVE_PLATFORM_CGL=1 820fi 821if test "x$USE_EAGL" = "xyes"; then 822 GL_PLATFORMS="eagl $GL_PLATFORMS" 823 GST_GL_HAVE_PLATFORM_EAGL=1 824fi 825 826GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES 827#define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL 828#define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX 829#define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL 830#define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL 831#define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL 832" 833 834GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES 835#define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF 836#define GST_GL_HAVE_VIV_DIRECTVIV $GST_GL_HAVE_VIV_DIRECTVIV 837" 838 839dnl Check for no platforms/window systems 840if test "x$GL_APIS" = "x"; then 841 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support]) 842fi 843if test "x$GL_PLATFORMS" = "x"; then 844 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX]) 845fi 846if test "x$GL_WINDOWS" = "x"; then 847 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11]) 848fi 849 850if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then 851 GL_LIBS= 852 GL_CFLAGS= 853 GL_OBJCFLAGS= 854 USE_OPENGL=no 855 USE_GLES2=no 856 USE_GLX=no 857 USE_EGL=no 858 USE_WGL=no 859 USE_COCOA=no 860 USE_EGL_MALI=no 861 USE_EGL_RPI=no 862 USE_EAGL=no 863 864 HAVE_WINDOW_X11=no 865 HAVE_WINDOW_WIN32=no 866 HAVE_WINDOW_DISPMANX=no 867 HAVE_WINDOW_WAYLAND=no 868 HAVE_WINDOW_ANDROID=no 869 HAVE_WINDOW_COCOA=no 870 HAVE_WINDOW_EAGL=no 871 HAVE_WINDOW_VIV_FB=no 872 HAVE_WINDOW_GBM=no 873fi 874 875AC_SUBST(GL_APIS) 876AC_SUBST(GL_PLATFORMS) 877AC_SUBST(GL_WINDOWS) 878AC_SUBST(GL_LIBS) 879AC_SUBST(GL_CFLAGS) 880AC_SUBST(GL_OBJCFLAGS) 881AC_SUBST(USE_OPENGL) 882AC_SUBST(USE_GLES2) 883 884AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes") 885AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes") 886AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes") 887AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes") 888AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes") 889AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes") 890AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes") 891AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes") 892AM_CONDITIONAL(HAVE_WINDOW_GBM, test "x$HAVE_WINDOW_GBM" = "xyes") 893 894AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes") 895AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes") 896AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes") 897AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes") 898AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes") 899AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes") 900AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes") 901AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes") 902AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes") 903 904AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes") 905 906dnl Check for some types that are not always present 907GL_INCLUDES="" 908if test "x$USE_GLES2" = "xyes"; then 909 GL_INCLUDES="$GL_INCLUDES 910#ifndef GL_GLEXT_PROTOTYPES 911#define GL_GLEXT_PROTOTYPES 1 912#endif 913# ifdef HAVE_IOS 914# include <OpenGLES/ES2/gl.h> 915# include <OpenGLES/ES2/glext.h> 916# else 917# if $GST_GL_HAVE_GLES3 918# include <GLES3/gl3.h> 919# if $GST_GL_HAVE_GLES3EXT3_H 920# include <GLES3/gl3ext.h> 921# endif 922# include <GLES2/gl2ext.h> 923# else 924# include <GLES2/gl2.h> 925# include <GLES2/gl2ext.h> 926# endif 927# endif 928" 929fi 930 931if test "x$USE_OPENGL" = "xyes"; then 932 GL_INCLUDES="$GL_INCLUDES 933# ifdef __APPLE__ 934# include <OpenGL/OpenGL.h> 935# include <OpenGL/gl.h> 936# else 937# include <GL/gl.h> 938# if __WIN32__ || _WIN32 939# include <GL/glext.h> 940# endif 941# endif 942" 943fi 944 945GST_GL_HAVE_GLEGLIMAGEOES=0 946GST_GL_HAVE_GLCHAR=0 947GST_GL_HAVE_GLSIZEIPTR=0 948GST_GL_HAVE_GLINTPTR=0 949GST_GL_HAVE_GLSYNC=0 950GST_GL_HAVE_GLUINT64=0 951GST_GL_HAVE_GLINT64=0 952GST_GL_HAVE_EGLATTRIB=0 953GST_GL_HAVE_EGLUINT64KHR=0 954 955old_CFLAGS=$CFLAGS 956CFLAGS="$GL_CFLAGS $CFLAGS" 957 958AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]]) 959if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then 960 GST_GL_HAVE_GLEGLIMAGEOES=1 961fi 962 963AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]]) 964if test "x$ac_cv_type_GLchar" = "xyes"; then 965 GST_GL_HAVE_GLCHAR=1 966fi 967 968AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]]) 969if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then 970 GST_GL_HAVE_GLSIZEIPTR=1 971fi 972 973AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]]) 974if test "x$ac_cv_type_GLintptr" = "xyes"; then 975 GST_GL_HAVE_GLINTPTR=1 976fi 977 978AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]]) 979if test "x$ac_cv_type_GLsync" = "xyes"; then 980 GST_GL_HAVE_GLSYNC=1 981fi 982 983AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]]) 984if test "x$ac_cv_type_GLuint64" = "xyes"; then 985 GST_GL_HAVE_GLUINT64=1 986fi 987 988AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]]) 989if test "x$ac_cv_type_GLint64" = "xyes"; then 990 GST_GL_HAVE_GLINT64=1 991fi 992 993if test "x$USE_EGL" = "xyes"; then 994 EGL_INCLUDES="$GL_INCLUDES 995 #include <EGL/egl.h> 996 #include <EGL/eglext.h> 997 " 998 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]]) 999 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then 1000 GST_GL_HAVE_EGLATTRIB=1 1001 fi 1002 1003 AC_CHECK_TYPES(EGLuint64KHR, [], [], [[$EGL_INCLUDES]]) 1004 if test "x$ac_cv_type_EGLuint64KHR" = "xyes"; then 1005 GST_GL_HAVE_EGLUINT64KHR=1 1006 fi 1007fi 1008 1009CFLAGS=$old_CFLAGS 1010 1011GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES 1012#define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES 1013#define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR 1014#define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR 1015#define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR 1016#define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC 1017#define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64 1018#define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64 1019#define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB 1020#define GST_GL_HAVE_EGLUINT64KHR $GST_GL_HAVE_EGLUINT64KHR 1021" 1022 1023AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [ 1024 outfile=gstglconfig.h-tmp 1025 cat > $outfile <<\_______EOF 1026/* gstglconfig.h 1027 * 1028 * This is a generated file. Please modify `configure.ac' 1029 */ 1030 1031#ifndef __GST_GL_CONFIG_H__ 1032#define __GST_GL_CONFIG_H__ 1033 1034#include <gst/gst.h> 1035 1036G_BEGIN_DECLS 1037 1038_______EOF 1039 1040 cat >>$outfile <<_______EOF 1041$gl_config_defines 1042_______EOF 1043 1044 cat >>$outfile <<_______EOF 1045 1046G_END_DECLS 1047 1048#endif /* __GST_GL_CONFIG_H__ */ 1049_______EOF 1050 1051 1052 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then 1053 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged]) 1054 rm -f $outfile 1055 else 1056 mv $outfile gst-libs/gst/gl/gstglconfig.h 1057 fi 1058],[ 1059gl_config_defines='$GL_CONFIG_DEFINES' 1060]) 1061 1062]) 1063 1064dnl -------------------------------------------------------------------------- 1065dnl GStreamer OpenGL plugin-related checks (ext/opengl) 1066dnl -------------------------------------------------------------------------- 1067dnl FIXME: make these checks conditional to the opengl plugin being enabled 1068 1069AC_DEFUN([AG_GST_GL_PLUGIN_CHECKS], 1070[ 1071 1072dnl graphene-1.0 is optional and used in gltransformation 1073HAVE_GRAPHENE=NO 1074PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no) 1075if test "x$HAVE_GRAPHENE" = "xyes"; then 1076 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene]) 1077fi 1078AC_SUBST(HAVE_GRAPHENE) 1079AC_SUBST(GRAPHENE_LIBS) 1080AC_SUBST(GRAPHENE_CFLAGS) 1081 1082dnl Needed by plugins that use g_module_*() API 1083PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0) 1084 1085dnl libpng is optional 1086if test "x$NEED_PNG" != "xno"; then 1087 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no) 1088 if test "x$HAVE_PNG" = "xyes"; then 1089 AC_DEFINE(HAVE_PNG, [1] , [Use libpng]) 1090 elif test "x$NEED_PNG" = "xyes"; then 1091 AC_MSG_ERROR([libpng support requested but libpng is not available]) 1092 fi 1093fi 1094AC_SUBST(HAVE_PNG) 1095AC_SUBST(LIBPNG_LIBS) 1096AC_SUBST(LIBPNG_CFLAGS) 1097 1098dnl libjpeg is optional 1099AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library]) 1100if test "x$NEED_JPEG" != "xno"; then 1101 OLD_LIBS="$LIBS" 1102 if test x$with_jpeg_mmx != x; then 1103 LIBS="$LIBS -L$with_jpeg_mmx" 1104 fi 1105 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") 1106 JPEG_LIBS="$LIBS -ljpeg-mmx" 1107 LIBS="$OLD_LIBS" 1108 if test x$HAVE_JPEG != xyes; then 1109 JPEG_LIBS="-ljpeg" 1110 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") 1111 fi 1112 1113 if test x$HAVE_JPEG = xyes; then 1114 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg]) 1115 elif test "x$NEED_JPEG" = "xyes"; then 1116 AC_MSG_ERROR([libjpeg support requested but libjpeg is not available]) 1117 else 1118 JPEG_LIBS= 1119 fi 1120 AC_SUBST(JPEG_LIBS) 1121 AC_SUBST(HAVE_JPEG) 1122fi 1123]) 1124 1125dnl -------------------------------------------------------------------------- 1126dnl GStreamer OpenGL examples-related checks (tests/examples/gl) 1127dnl -------------------------------------------------------------------------- 1128 1129AC_DEFUN([AG_GST_GL_EXAMPLES_CHECKS], 1130[ 1131 1132dnl sdl is optional and used in examples 1133HAVE_SDL=NO 1134if test "x$BUILD_EXAMPLES" = "xyes"; then 1135 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no) 1136 AC_SUBST(SDL_LIBS) 1137 AC_SUBST(SDL_CFLAGS) 1138fi 1139AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes") 1140 1141]) 1142