1# required autoconf version 2AC_PREREQ([2.54]) 3 4# 5# Making releases: 6# gtkglext_micro_version += 1; 7# gtkglext_interface_age += 1; 8# gtkglext_binary_age += 1; 9# if any functions have been added, set gtkglext_interface_age to 0. 10# if backwards compatibility has been broken, 11# set gtkglext_binary_age and gtkglext_interface_age to 0. 12# 13m4_define([gtkglext_major_version], [1]) 14m4_define([gtkglext_minor_version], [2]) 15m4_define([gtkglext_micro_version], [0]) 16m4_define([gtkglext_interface_age], [0]) 17m4_define([gtkglext_binary_age], [0]) 18m4_define([gtkglext_version], 19 [gtkglext_major_version.gtkglext_minor_version.gtkglext_micro_version]) 20 21# This is the X.Y used in -lgtkglext-FOO-X.Y 22m4_define([gtkglext_api_major_version], [1]) 23m4_define([gtkglext_api_minor_version], [0]) 24m4_define([gtkglext_api_version], 25 [gtkglext_api_major_version.gtkglext_api_minor_version]) 26 27# libtool version related macros 28m4_define([gtkglext_lt_release], 29 [gtkglext_major_version.gtkglext_minor_version]) 30m4_define([gtkglext_lt_current], 31 [m4_eval(gtkglext_micro_version - gtkglext_interface_age)]) 32m4_define([gtkglext_lt_revision], 33 [gtkglext_interface_age]) 34m4_define([gtkglext_lt_age], 35 [m4_eval(gtkglext_binary_age - gtkglext_interface_age)]) 36m4_define([gtkglext_lt_current_minus_age], 37 [m4_eval(gtkglext_lt_current - gtkglext_lt_age)]) 38 39# if the minor version number is odd, then we want debugging. Otherwise 40# we only want minimal debugging support. 41m4_define([gtkglext_debug_default], 42 [m4_if(m4_eval(gtkglext_minor_version % 2), [1], [yes], [minimum])])dnl 43 44# Versions of dependencies 45 46# Glib 47m4_define([glib_pkg], [glib-2.0]) 48m4_define([glib_required_version], [2.0.0]) 49 50# GObject 51m4_define([gobject_pkg], [gobject-2.0]) 52m4_define([gobject_required_version], [2.0.0]) 53 54# GModule 55m4_define([gmodule_pkg], [gmodule-2.0]) 56m4_define([gmodule_required_version], [2.0.0]) 57 58# Pango 59m4_define([pango_pkg], [pango]) 60m4_define([pango_required_version], [1.0.0]) 61 62# Pangox 63m4_define([pangox_pkg], [pangox]) 64m4_define([pangox_required_version], [1.0.0]) 65 66# PangoFT2 67m4_define([pangoft2_pkg], [pangoft2]) 68m4_define([pangoft2_required_version], [1.0.0]) 69 70# GDK 71m4_define([gdk_pkg], [gdk-2.0]) 72m4_define([gdk_required_version], [2.0.0]) 73 74# GTK+ 75m4_define([gtk_pkg], [gtk+-2.0]) 76m4_define([gtk_required_version], [2.0.0]) 77 78 79# Process this file with autoconf to produce a configure script. 80AC_INIT([gtkglext], [gtkglext_version], 81 [gtkglext-list@gnome.org]) 82 83AC_CONFIG_SRCDIR([gdk/gdkgl.h]) 84 85# Save this value here, since automake will set cflags later 86cflags_set=${CFLAGS+set} 87 88# Initialize automake stuff 89AM_INIT_AUTOMAKE([1.7 no-define dist-bzip2 dist-zip]) 90 91# Specify a configuration file 92AM_CONFIG_HEADER([config.h]) 93 94dnl Initialize maintainer mode 95AM_MAINTAINER_MODE 96 97AC_CANONICAL_HOST 98 99# GtkGLExt version 100GTKGLEXT_MAJOR_VERSION=gtkglext_major_version 101GTKGLEXT_MINOR_VERSION=gtkglext_minor_version 102GTKGLEXT_MICRO_VERSION=gtkglext_micro_version 103GTKGLEXT_INTERFACE_AGE=gtkglext_interface_age 104GTKGLEXT_BINARY_AGE=gtkglext_binary_age 105GTKGLEXT_VERSION=gtkglext_version 106# This is the X.Y used in -lgtkglext-FOO-X.Y 107GTKGLEXT_API_MAJOR_VERSION=gtkglext_api_major_version 108GTKGLEXT_API_MINOR_VERSION=gtkglext_api_minor_version 109GTKGLEXT_API_VERSION=gtkglext_api_version 110API_MJ=$GTKGLEXT_API_MAJOR_VERSION 111API_MI=$GTKGLEXT_API_MINOR_VERSION 112AC_SUBST([GTKGLEXT_MAJOR_VERSION]) 113AC_SUBST([GTKGLEXT_MINOR_VERSION]) 114AC_SUBST([GTKGLEXT_MICRO_VERSION]) 115AC_SUBST([GTKGLEXT_INTERFACE_AGE]) 116AC_SUBST([GTKGLEXT_BINARY_AGE]) 117AC_SUBST([GTKGLEXT_VERSION]) 118AC_SUBST([GTKGLEXT_API_MAJOR_VERSION]) 119AC_SUBST([GTKGLEXT_API_MINOR_VERSION]) 120AC_SUBST([GTKGLEXT_API_VERSION]) 121AC_SUBST([API_MJ]) 122AC_SUBST([API_MI]) 123 124# libtool versioning 125LT_RELEASE=gtkglext_lt_release 126LT_CURRENT=gtkglext_lt_current 127LT_REVISION=gtkglext_lt_revision 128LT_AGE=gtkglext_lt_age 129LT_CURRENT_MINUS_AGE=gtkglext_lt_current_minus_age 130AC_SUBST([LT_RELEASE]) 131AC_SUBST([LT_CURRENT]) 132AC_SUBST([LT_REVISION]) 133AC_SUBST([LT_AGE]) 134AC_SUBST([LT_CURRENT_MINUS_AGE]) 135 136dnl Initialize libtool 137AC_PROG_CC 138AC_PROG_CPP 139AC_ISC_POSIX 140#AM_DISABLE_STATIC 141AC_LIBTOOL_WIN32_DLL 142AC_PROG_LIBTOOL 143 144platform_win32=no 145AC_MSG_CHECKING([for some Win32 platform]) 146case "$host_os" in 147 *mingw*|*cygwin*) 148 platform_win32=yes 149 ;; 150 *) 151 ;; 152esac 153AC_MSG_RESULT([$platform_win32]) 154AM_CONDITIONAL([PLATFORM_WIN32], [test "x$platform_win32" = "xyes"]) 155 156os_win32=no 157MATH_LIB=-lm 158AC_MSG_CHECKING([for native Win32]) 159case "$host_os" in 160 *mingw*) 161 os_win32=yes 162 MATH_LIB= 163 ;; 164 *) 165 ;; 166esac 167AC_MSG_RESULT([$os_win32]) 168AM_CONDITIONAL([OS_WIN32], [test "x$os_win32" = "xyes"]) 169AC_SUBST([MATH_LIB]) 170 171if test "x$os_win32" = "xyes"; then 172 AC_CHECK_PROG([ms_librarian], [lib.exe], [yes], [no]) 173fi 174AM_CONDITIONAL([MS_LIB_AVAILABLE], [test "x$ms_librarian" = "xyes"]) 175 176if test "x$platform_win32" = "xyes"; then 177 gdktarget=win32 178else 179 gdktarget=x11 180fi 181 182AC_ARG_WITH([gdktarget], 183 [AC_HELP_STRING([--with-gdktarget=@<:@x11/win32@:>@], 184 [select GDK target])], 185 [gdktarget=$with_gdktarget]) 186 187AC_SUBST([gdktarget]) 188case $gdktarget in 189 x11|win32) ;; 190 *) AC_MSG_ERROR([Invalid target for GDK: use x11 or win32.]);; 191esac 192 193gdkglext_targetlib=libgdkglext-$gdktarget-$GTKGLEXT_API_VERSION.la 194gtkglext_targetlib=libgtkglext-$gdktarget-$GTKGLEXT_API_VERSION.la 195 196AC_SUBST([gdkglext_targetlib]) 197AC_SUBST([gtkglext_targetlib]) 198 199 200# Build time sanity check... 201AM_SANITY_CHECK 202 203# Checks for programs. 204AM_PROG_CC_STDC 205AC_PROG_INSTALL 206AC_PROG_MAKE_SET 207AC_PROG_LN_S 208AC_PROG_AWK 209 210# Debug option 211AC_ARG_ENABLE([debug], 212 AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@], 213 [turn on debugging @<:@default=gtkglext_debug_default@:>@]), , 214 [enable_debug=gtkglext_debug_default]) 215 216# Strict ansi 217AC_ARG_ENABLE([ansi], 218 [AC_HELP_STRING([--enable-ansi], 219 [turn on strict ansi [default=no]])], , 220 [enable_ansi=no]) 221 222changequote(,)dnl 223if test "x$GCC" = "xyes"; then 224 case " $CFLAGS " in 225 *[\ \ ]-Wall[\ \ ]*) ;; 226 *) CFLAGS="$CFLAGS -Wall" ;; 227 esac 228 229 if test "x$enable_ansi" = "xyes"; then 230 case " $CFLAGS " in 231 *[\ \ ]-ansi[\ \ ]*) ;; 232 *) CFLAGS="$CFLAGS -ansi" ;; 233 esac 234 235 case " $CFLAGS " in 236 *[\ \ ]-pedantic[\ \ ]*) ;; 237 *) CFLAGS="$CFLAGS -pedantic" ;; 238 esac 239 fi 240fi 241 242if test "x$enable_debug" = "xyes"; then 243 if test x$cflags_set != xset ; then 244 case " $CFLAGS " in 245 *[[\ \ ]]-g[[\ \ ]]*) ;; 246 *) CFLAGS="$CFLAGS -g" ;; 247 esac 248 fi 249 GTKGLEXT_DEBUG_FLAGS="-DG_ENABLE_DEBUG" 250else 251 if test "x$enable_debug" = "xno"; then 252 GTKGLEXT_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" 253 else 254 GTKGLEXT_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS" 255 fi 256fi 257changequote([,])dnl 258 259AC_SUBST([GTKGLEXT_DEBUG_FLAGS]) 260 261# Platform-specific compiler options 262case "$host_os" in 263 irix5* | irix6*) 264 # Suppress linker warnings 265 if test "x$with_gnu_ld" = "xno"; then 266 LDFLAGS="$LDFLAGS -Wl,-woff,84 -Wl,-woff,127" 267 fi 268 ;; 269 *) 270 ;; 271esac 272 273# Ensure MSVC-compatible struct packing convention is used when 274# compiling for Win32 with gcc. 275# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while 276# gcc2 uses "-fnative-struct". 277if test "x$os_win32" = "xyes"; then 278 if test "x$GCC" = "xyes"; then 279 msnative_struct='' 280 AC_MSG_CHECKING([how to get MSVC-compatible struct packing]) 281 if test -z "$ac_cv_prog_CC"; then 282 our_gcc="$CC" 283 else 284 our_gcc="$ac_cv_prog_CC" 285 fi 286 case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in 287 2.) 288 if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then 289 msnative_struct='-fnative-struct' 290 fi 291 ;; 292 *) 293 if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then 294 msnative_struct='-mms-bitfields' 295 fi 296 ;; 297 esac 298 if test x"$msnative_struct" = x ; then 299 AC_MSG_RESULT([no way]) 300 AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code]) 301 else 302 CFLAGS="$CFLAGS $msnative_struct" 303 AC_MSG_RESULT([${msnative_struct}]) 304 fi 305 fi 306fi 307 308if test "x$os_win32" != "xyes"; then 309 # libtool option to control which symbols are exported 310 # right now, symbols starting with _ are not exported 311 LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' 312else 313 # We currently use .def files on Windows 314 LIBTOOL_EXPORT_OPTIONS= 315fi 316AC_SUBST([LIBTOOL_EXPORT_OPTIONS]) 317 318# define a MAINT-like variable REBUILD which is set if Perl 319# and awk are found, so autogenerated sources can be rebuilt 320 321AC_ARG_ENABLE([rebuilds], 322 [AC_HELP_STRING([--disable-rebuilds], 323 [disable all source autogeneration rules])], , 324 [enable_rebuilds=yes]) 325 326AC_PATH_PROGS([PERL], [perl5 perl]) 327 328# We would like indent, but don't require it. 329AC_CHECK_PROG([INDENT], [indent], [indent]) 330 331REBUILD=\# 332if test "x$enable_rebuilds" = "xyes" && \ 333 test -n "$PERL" && \ 334 $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then 335 REBUILD= 336fi 337AC_SUBST([REBUILD]) 338 339# Honor aclocal flags 340ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS -I $srcdir/m4macros" 341 342## Initial sanity check, done here so that users get told they 343## have the wrong dependencies as early in the process as possible. 344## Later on we actually use the cflags/libs from separate pkg-config 345## calls. Oh, also the later pkg-config calls don't include 346## the version requirements since those make the module lists 347## annoying to construct 348PKG_CHECK_MODULES([BASE_DEPENDENCIES], [\ 349gtk_pkg >= gtk_required_version \ 350gdk_pkg >= gdk_required_version \ 351pango_pkg >= pango_required_version \ 352pangox_pkg >= pangox_required_version \ 353gmodule_pkg >= gmodule_required_version \ 354]) 355 356# Check for GLib 357AM_PATH_GLIB_2_0([glib_required_version], , 358 [AC_MSG_ERROR([GLib 2.0 not found])]) 359 360# Check for GTK+ 361AM_PATH_GTK_2_0([gtk_required_version], , 362 [AC_MSG_ERROR([GTK+ 2.0 not found])]) 363 364# Checks for libraries. 365 366# Checks for header files. 367AC_HEADER_STDC 368AC_CHECK_HEADERS([inttypes.h stdlib.h string.h]) 369 370# Checks for typedefs, structures, and compiler characteristics. 371AC_C_CONST 372 373# Checks for library functions. 374save_LIBS="$LIBS" 375LIBS="$LIBS $MATH_LIB" 376 377AC_FUNC_MALLOC 378AC_CHECK_FUNCS([memset sqrt strchr strrchr strstr]) 379 380LIBS="$save_LIBS" 381 382 383################################################## 384# Checks for GDK multihead support 385################################################## 386 387GDKGLEXT_MULTIHEAD_SUPPORT=no 388 389save_CPPFLAGS="$CPPFLAGS" 390CPPFLAGS="$CPPFLAGS $BASE_DEPENDENCIES_CFLAGS" 391save_LIBS="$LIBS" 392LIBS="$LIBS $BASE_DEPENDENCIES_LIBS" 393 394AC_CHECK_HEADERS([gdk/gdkdisplay.h gdk/gdkscreen.h], 395 [GDKGLEXT_MULTIHEAD_SUPPORT=yes], 396 [GDKGLEXT_MULTIHEAD_SUPPORT=no]) 397 398if test "x$GDKGLEXT_MULTIHEAD_SUPPORT" = "xyes"; then 399 AC_MSG_CHECKING([for gdk_display_get_default in GDK library]) 400 AC_TRY_LINK([#include <gdk/gdk.h>], 401 [gdk_display_get_default();], 402 [GDKGLEXT_MULTIHEAD_SUPPORT=yes], 403 [GDKGLEXT_MULTIHEAD_SUPPORT=no]) 404 AC_MSG_RESULT([$GDKGLEXT_MULTIHEAD_SUPPORT]) 405fi 406 407CPPFLAGS="$save_CPPFLAGS" 408LIBS="$save_LIBS" 409 410if test "x$GDKGLEXT_MULTIHEAD_SUPPORT" = "xyes"; then 411 AC_MSG_NOTICE([GDK supports multihead]) 412else 413 AC_MSG_NOTICE([GDK doesn't support multihead]) 414fi 415 416AC_SUBST([GDKGLEXT_MULTIHEAD_SUPPORT]) 417AM_CONDITIONAL([MULTIHEAD_SUPPORT], 418 [test "x$GDKGLEXT_MULTIHEAD_SUPPORT" = "xyes"]) 419 420 421################################################## 422# Checks for GDK functions 423################################################## 424 425save_LIBS="$LIBS" 426LIBS="$LIBS $BASE_DEPENDENCIES_LIBS" 427 428if test "x$gdktarget" = "xx11"; then 429 AC_CHECK_FUNCS([gdk_x11_colormap_foreign_new]) 430fi 431 432LIBS="$save_LIBS" 433 434 435################################################## 436# Checks for Window System 437################################################## 438 439WINDOWING_CFLAGS="" 440WINDOWING_LIBS="" 441 442GDKGLEXT_WIN_CFLAGS="" 443GDKGLEXT_WIN_LIBS="" 444 445GDKGLEXT_WIN_EXTRA_DEFS="" 446 447if test "x$gdktarget" = "xx11"; then 448 AC_PATH_XTRA 449 450 if test "x$no_x" = "xyes" ; then 451 AC_MSG_ERROR([X development libraries not found]) 452 fi 453 454 save_CPPFLAGS="$CPPFLAGS" 455 CPPFLAGS="$CPPFLAGS $X_CFLAGS" 456 save_LIBS="$LIBS" 457 LIBS="$LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS" 458 459 AC_CHECK_HEADERS([X11/Xmu/StdCmap.h Xmu/StdCmap.h], , , 460 [#include <X11/Xlib.h> 461 #include <X11/Xutil.h>]) 462 463 XMU_LIBS="" 464 AC_CHECK_LIB([Xmu], [XmuLookupStandardColormap], , , 465 [-lXt $X_PRE_LIBS]) 466 if test "x$ac_cv_lib_Xmu_XmuLookupStandardColormap" = "xyes" ; then 467 XMU_LIBS="-lXmu -lXt $X_PRE_LIBS" 468 fi 469 470 WINDOWING_CFLAGS="$X_CFLAGS" 471 WINDOWING_LIBS="$X_LIBS $XMU_LIBS -lXext -lX11 $X_EXTRA_LIBS" 472 473 GDKGLEXT_WIN_CFLAGS="$X_CFLAGS" 474 GDKGLEXT_WIN_LIBS="$X_LIBS $XMU_LIBS" 475 476 CPPFLAGS="$save_CPPFLAGS" 477 LIBS="$save_LIBS" 478 479 AM_CONDITIONAL([USE_X11], [true]) 480else 481 AM_CONDITIONAL([USE_X11], [false]) 482fi 483 484if test "x$gdktarget" = "xwin32"; then 485 WINDOWING_LIBS="-lgdi32 -luser32 -lkernel32" 486 GDKGLEXT_WIN_LIBS="-lgdi32 -luser32 -lkernel32" 487 AM_CONDITIONAL([USE_WIN32], [true]) 488else 489 AM_CONDITIONAL([USE_WIN32], [false]) 490fi 491 492AC_SUBST([WINDOWING_CFLAGS]) 493AC_SUBST([WINDOWING_LIBS]) 494 495AC_SUBST([GDKGLEXT_WIN_CFLAGS]) 496AC_SUBST([GDKGLEXT_WIN_LIBS]) 497 498AC_SUBST([GDKGLEXT_WIN_EXTRA_DEFS]) 499 500 501################################################## 502# Checks for OpenGL 503################################################## 504 505GL_CFLAGS="" 506GL_LDFLAGS="" 507GL_LIBS="" 508 509AC_ARG_WITH([gl-prefix], 510 [AC_HELP_STRING([--with-gl-prefix=DIR], 511 [OpenGL (Mesa) is installed in DIR [default=auto]])], , 512 [with_gl_prefix=auto]) 513 514AC_ARG_WITH([gl-includedir], 515 [AC_HELP_STRING([--with-gl-includedir=DIR], 516 [OpenGL (Mesa) headers are in DIR [default=auto]])], , 517 [with_gl_includedir=auto]) 518 519AC_ARG_WITH([gl-libdir], 520 [AC_HELP_STRING([--with-gl-libdir=DIR], 521 [OpenGL (Mesa) libraries are in DIR [default=auto]])], , 522 [with_gl_libdir=auto]) 523 524if test "x$with_gl_includedir" != "xauto"; then 525 GL_CFLAGS="-I$with_gl_includedir" 526elif test "x$with_gl_prefix" != "xauto"; then 527 GL_CFLAGS="-I$with_gl_prefix/include" 528fi 529 530if test "x$with_gl_libdir" != "xauto"; then 531 GL_LDFLAGS="-L$with_gl_libdir" 532elif test "x$with_gl_prefix" != "xauto"; then 533 GL_LDFLAGS="-L$with_gl_prefix/lib" 534fi 535 536save_CPPFLAGS="$CPPFLAGS" 537CPPFLAGS="$CPPFLAGS $GL_CFLAGS $WINDOWING_CFLAGS" 538save_LIBS="$LIBS" 539LIBS="$LIBS $GL_LDFLAGS $WINDOWING_LIBS $MATH_LIB" 540 541if test "x$gdktarget" = "xx11"; then 542 AC_CHECK_HEADERS([GL/glx.h], , 543 [AC_MSG_ERROR([Cannot find GLX header])]) 544fi 545 546AC_CHECK_HEADERS([GL/gl.h GL/glu.h], , 547 [AC_MSG_ERROR([Cannot find OpenGL headers])]) 548 549if test "x$gdktarget" = "xx11"; then 550 551 # for X11 552 553 THREAD_LIB="-lpthread" 554 STDCXX_LIB="-lstdc++" 555 556 have_GL=no 557 GL_LIB_NAME=GL 558 559 # GLcore and GL (SGI) 560 AC_CHECK_LIB([GLcore], [glVertex3d], 561 [GL_LIBS="-lGLcore"]) 562 if test "x$ac_cv_lib_GLcore_glVertex3d" = "xyes" ; then 563 # if GLcore found, then also check for GL 564 AC_CHECK_LIB([GL], [glXCreateContext], 565 [GL_LIBS="-lGL $GL_LIBS" 566 have_GL=yes]) 567 fi 568 569 # GL 570 if test "x$have_GL" = "xno" ; then 571 # if no GLcore and GL, check for GL 572 AC_CHECK_LIB([GL], [glVertex3d], 573 [GL_LIBS="-lGL" 574 have_GL=yes]) 575 if test "x$ac_cv_lib_GL_glVertex3d" = "xno" ; then 576 # GL may need to be linked with the thread library explicitly 577 AC_CHECK_LIB([GL], [glVertex3f], 578 [GL_LIBS="-lGL $THREAD_LIB" 579 have_GL=yes], , 580 [$THREAD_LIB]) 581 if test "x$ac_cv_lib_GL_glVertex3f" = "xno" ; then 582 # GL may need to be linked with std C++ library explicitly 583 AC_CHECK_LIB([GL], [glVertex3i], 584 [GL_LIBS="-lGL $STDCXX_LIB" 585 have_GL=yes], , 586 [$STDCXX_LIB]) 587 if test "x$ac_cv_lib_GL_glVertex3i" = "xno" ; then 588 # GL may need to be linked with std C++ and thread libraries explicitly 589 AC_CHECK_LIB([GL], [glVertex3s], 590 [GL_LIBS="-lGL $STDCXX_LIB $THREAD_LIB" 591 have_GL=yes], , 592 [$STDCXX_LIB $THREAD_LIB]) 593 fi 594 fi 595 fi 596 fi 597 598 # MesaGL 599 if test "x$have_GL" = "xno" ; then 600 # if no GL, check for MesaGL 601 AC_CHECK_LIB([MesaGL], [glVertex3d], 602 [GL_LIBS="-lMesaGL" 603 have_GL=yes 604 GL_LIB_NAME=MesaGL]) 605 fi 606 607 if test "x$have_GL" = "xno" ; then 608 # no GL found 609 AC_MSG_ERROR([Cannot find GL library]) 610 fi 611 612 # GLU 613 614 have_GLU=no 615 have_SGI_GLU=no 616 617 AC_CHECK_LIB([GLU], [gluSphere], 618 [GL_LIBS="-lGLU $GL_LIBS" 619 have_GLU=yes], , 620 [$GL_LIBS]) 621 if test "x$ac_cv_lib_GLU_gluSphere" = "xno" ; then 622 # GLU may need to be linked with the thread library explicitly 623 AC_CHECK_LIB([GLU], [gluCylinder], 624 [GL_LIBS="-lGLU $GL_LIBS $THREAD_LIB" 625 have_GLU=yes], , 626 [$GL_LIBS $THREAD_LIB]) 627 if test "x$ac_cv_lib_GLU_gluCylinder" = "xno" ; then 628 # GLU may need to be linked with std C++ library explicitly 629 AC_CHECK_LIB([GLU], [gluDisk], 630 [GL_LIBS="-lGLU $GL_LIBS $STDCXX_LIB" 631 have_GLU=yes 632 have_SGI_GLU=yes], , 633 [$GL_LIBS $STDCXX_LIB]) 634 if test "x$ac_cv_lib_GLU_gluDisk" = "xno" ; then 635 # GLU may need to be linked with std C++ and thread libraries explicitly 636 AC_CHECK_LIB([GLU], [gluPartialDisk], 637 [GL_LIBS="-lGLU $GL_LIBS $STDCXX_LIB $THREAD_LIB" 638 have_GLU=yes 639 have_SGI_GLU=yes], , 640 [$GL_LIBS $STDCXX_LIB $THREAD_LIB]) 641 fi 642 fi 643 fi 644 645 if test "x$have_GLU" = "xno" ; then 646 # if no GLU, check for MesaGLU 647 AC_CHECK_LIB([MesaGLU], [gluSphere], 648 [GL_LIBS="-lMesaGLU $GL_LIBS" 649 have_GLU=yes], , 650 [$GL_LIBS]) 651 fi 652 653 if test "x$have_GLU" = "xno" ; then 654 # no GLU found 655 AC_MSG_ERROR([Cannot find GLU library]) 656 fi 657 658 # Checks for SGI's GLU library 659 if test "x$have_SGI_GLU" = "xno" ; then 660 # Try static linking 661 save_LDFLAGS="$LDFLAGS" 662 LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" 663 664 AC_CHECK_LIB([GLU], [gluBeginCurve], 665 [have_SGI_GLU=no], , 666 [$GL_LIBS]) 667 if test "x$ac_cv_lib_GLU_gluBeginCurve" = "xno" ; then 668 AC_CHECK_LIB([GLU], [gluBeginPolygon], 669 [GL_LIBS="$GL_LIBS $STDCXX_LIB" 670 have_SGI_GLU=yes], , 671 [$GL_LIBS $STDCXX_LIB]) 672 fi 673 674 LDFLAGS="$save_LDFLAGS" 675 fi 676 677 AC_MSG_CHECKING([whether libGLU needs to be linked with the std C++ library]) 678 AC_MSG_RESULT([$have_SGI_GLU]) 679 680 # Checks for some types in gdk/GL/glxext.h 681 682 # GLXFBConfigSGIX 683 GDKGLEXT_NEED_GLXFBCONFIGSGIX_TYPEDEF=no 684 AC_CHECK_TYPES([GLXFBConfigSGIX], , , 685 [#include <GL/glx.h>]) 686 if test "x$ac_cv_type_GLXFBConfigSGIX" = "xno" ; then 687 GDKGLEXT_NEED_GLXFBCONFIGSGIX_TYPEDEF=yes 688 fi 689 690 # GLXFBConfigIDSGIX 691 GDKGLEXT_NEED_GLXFBCONFIGIDSGIX_TYPEDEF=no 692 AC_CHECK_TYPES([GLXFBConfigIDSGIX], , , 693 [#include <GL/glx.h>]) 694 if test "x$ac_cv_type_GLXFBConfigIDSGIX" = "xno" ; then 695 GDKGLEXT_NEED_GLXFBCONFIGIDSGIX_TYPEDEF=yes 696 fi 697 698 # GLXPbufferSGIX 699 GDKGLEXT_NEED_GLXPBUFFERSGIX_TYPEDEF=no 700 AC_CHECK_TYPES([GLXPbufferSGIX], , , 701 [#include <GL/glx.h>]) 702 if test "x$ac_cv_type_GLXPbufferSGIX" = "xno" ; then 703 GDKGLEXT_NEED_GLXPBUFFERSGIX_TYPEDEF=yes 704 fi 705 706 # GLXVideoSourceSGIX 707 GDKGLEXT_NEED_GLXVIDEOSOURCESGIX_TYPEDEF=no 708 AC_CHECK_TYPES([GLXVideoSourceSGIX], , , 709 [#include <GL/glx.h>]) 710 if test "x$ac_cv_type_GLXVideoSourceSGIX" = "xno" ; then 711 GDKGLEXT_NEED_GLXVIDEOSOURCESGIX_TYPEDEF=yes 712 fi 713 714 # __GLXextFuncPtr 715 GDKGLEXT_NEED_GLXEXTFUNCPTR_TYPEDEF=no 716 AC_CHECK_TYPES([__GLXextFuncPtr], , , 717 [#include <GL/glx.h>]) 718 if test "x$ac_cv_type___GLXextFuncPtr" = "xno" ; then 719 GDKGLEXT_NEED_GLXEXTFUNCPTR_TYPEDEF=yes 720 fi 721 722else 723 724 # for Win32 725 726 AC_MSG_CHECKING([for glNewList in -lopengl32]) 727 have_opengl32=no 728 LIBS="-lopengl32 $LIBS" 729 AC_TRY_LINK([#include <windows.h> 730 #include <GL/gl.h>], 731 [glVertex3d(0.0, 0.0, 0.0);], 732 [GL_LIBS="-lopengl32" 733 have_opengl32=yes]) 734 AC_MSG_RESULT([$have_opengl32]) 735 if test "x$have_opengl32" = "xno" ; then 736 AC_MSG_ERROR([Cannot find GL library]) 737 fi 738 739 AC_MSG_CHECKING([for gluNewQuadric in -lglu32]) 740 have_glu32=no 741 LIBS="-lglu32 $LIBS" 742 AC_TRY_LINK([#include <windows.h> 743 #include <GL/gl.h> 744 #include <GL/glu.h>], 745 [gluNewQuadric();], 746 [GL_LIBS="-lglu32 $GL_LIBS" 747 have_glu32=yes]) 748 AC_MSG_RESULT([$have_glu32]) 749 if test "x$have_glu32" = "xno" ; then 750 AC_MSG_ERROR([Cannot find GLU library]) 751 fi 752 753dnl AC_CHECK_LIB(opengl32, glNewList, 754dnl GL_LIBS="-lopengl32", 755dnl AC_MSG_ERROR(Cannot find GL library)) 756 757dnl AC_CHECK_LIB(glu32, gluNewQuadric, 758dnl GL_LIBS="-lglu32 $GL_LIBS", 759dnl AC_MSG_ERROR(Cannot find GLU library), 760dnl $GL_LIBS) 761 762fi 763 764dnl # if using mesa, check for xmesa.h 765dnl if test "x$ac_cv_lib_MesaGL_glNewList" = "xyes" ; then 766dnl AC_CHECK_HEADERS([GL/xmesa.h]) 767dnl AM_CONDITIONAL(ENABLE_XMESA_FX, \ 768dnl test "x$ac_cv_header_GL_xmesa_h" = "xyes") 769dnl else 770dnl # force a failed check 771dnl AM_CONDITIONAL(ENABLE_XMESA_FX, test "no" = "yes") 772dnl fi 773 774# Checks for typedefs in gdk/GL/glext.h 775 776# GLhalfNV 777GDKGLEXT_NEED_GLHALFNV_TYPEDEF=no 778AC_CHECK_TYPES([GLhalfNV], , , 779 [#include <GL/gl.h>]) 780if test "x$ac_cv_type_GLhalfNV" = "xno" ; then 781 GDKGLEXT_NEED_GLHALFNV_TYPEDEF=yes 782fi 783 784GL_LIBS="$GL_LDFLAGS $GL_LIBS" 785 786AC_SUBST([GL_CFLAGS]) 787AC_SUBST([GL_LIBS]) 788 789CPPFLAGS="$save_CPPFLAGS" 790LIBS="$save_LIBS" 791 792 793################################################## 794# CFLAGS and LIBS 795################################################## 796 797GDKGLEXT_PACKAGES="gdk_pkg pango_pkg pangox_pkg gmodule_pkg" 798GDKGLEXT_EXTRA_CFLAGS="$GL_CFLAGS $GDKGLEXT_WIN_CFLAGS" 799GDKGLEXT_EXTRA_LIBS="$GL_LIBS $GDKGLEXT_WIN_LIBS" 800GDKGLEXT_DEP_CFLAGS="$GDKGLEXT_EXTRA_CFLAGS `$PKG_CONFIG --cflags $GDKGLEXT_PACKAGES`" 801GDKGLEXT_DEP_LIBS="$GDKGLEXT_EXTRA_LIBS `$PKG_CONFIG --libs $GDKGLEXT_PACKAGES` $MATH_LIB" 802AC_SUBST([GDKGLEXT_PACKAGES]) 803AC_SUBST([GDKGLEXT_EXTRA_CFLAGS]) 804AC_SUBST([GDKGLEXT_EXTRA_LIBS]) 805AC_SUBST([GDKGLEXT_DEP_CFLAGS]) 806AC_SUBST([GDKGLEXT_DEP_LIBS]) 807 808GTKGLEXT_PACKAGES="gtk_pkg" 809GTKGLEXT_EXTRA_CFLAGS="" 810GTKGLEXT_EXTRA_LIBS="" 811GTKGLEXT_DEP_CFLAGS="$GTKGLEXT_EXTRA_CFLAGS $GDKGLEXT_EXTRA_CFLAGS `$PKG_CONFIG --cflags $GDKGLEXT_PACKAGES $GTKGLEXT_PACKAGES`" 812GTKGLEXT_DEP_LIBS="$GTKGLEXT_EXTRA_LIBS $GDKGLEXT_EXTRA_LIBS `$PKG_CONFIG --libs $GDKGLEXT_PACKAGES $GTKGLEXT_PACKAGES` $MATH_LIB" 813AC_SUBST([GTKGLEXT_PACKAGES]) 814AC_SUBST([GTKGLEXT_EXTRA_CFLAGS]) 815AC_SUBST([GTKGLEXT_EXTRA_LIBS]) 816AC_SUBST([GTKGLEXT_DEP_CFLAGS]) 817AC_SUBST([GTKGLEXT_DEP_LIBS]) 818 819# CFLAGS for examples 820EXAMPLES_DEP_CFLAGS="$GTKGLEXT_EXTRA_CFLAGS $GDKGLEXT_EXTRA_CFLAGS `$PKG_CONFIG --cflags $GDKGLEXT_PACKAGES $GTKGLEXT_PACKAGES pangoft2_pkg`" 821AC_SUBST([EXAMPLES_DEP_CFLAGS]) 822 823# GtkGLExt dep libs + PangoFT2 824GTKGLEXT_DEP_LIBS_WITH_PANGOFT2="$GTKGLEXT_EXTRA_LIBS $GDKGLEXT_EXTRA_LIBS `$PKG_CONFIG --libs $GDKGLEXT_PACKAGES $GTKGLEXT_PACKAGES pangoft2_pkg` $MATH_LIB" 825AC_SUBST([GTKGLEXT_DEP_LIBS_WITH_PANGOFT2]) 826 827 828################################################## 829# Checks for gtk-doc and docbook-tools 830################################################## 831 832AC_ARG_WITH([html-dir], 833 [AC_HELP_STRING([--with-html-dir=PATH], 834 [path to installed docs])]) 835 836if test "x$with_html_dir" = "x" ; then 837 HTML_DIR='${datadir}/gtk-doc/html' 838else 839 HTML_DIR=$with_html_dir 840fi 841 842AC_SUBST([HTML_DIR]) 843 844dnl Make people enable the gtk-doc stuff explicitely. 845AC_ARG_ENABLE([gtk-doc], 846 [AC_HELP_STRING([--enable-gtk-doc], 847 [use gtk-doc to build documentation [default=no]])], , 848 [enable_gtk_doc=no]) 849 850if test "x$enable_gtk_doc" = "xyes" ; then 851 852 gtk_doc_min_version=0.10 853 854 AC_CHECK_PROG([GTKDOC], [gtkdoc-mkdb], [true], [false]) 855 856 if $GTKDOC ; then 857 gtk_doc_version=`gtkdoc-mkdb --version` 858 AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version]) 859 860 IFS="${IFS= }"; gtk_save_IFS="$IFS"; IFS="." 861 set $gtk_doc_version 862 for min in $gtk_doc_min_version ; do 863 cur=$1; shift 864 if test -z $min ; then break; fi 865 if test -z $cur ; then GTKDOC=false; break; fi 866 if test $cur -gt $min ; then break ; fi 867 if test $cur -lt $min ; then GTKDOC=false; break ; fi 868 done 869 IFS="$gtk_save_IFS" 870 871 if $GTKDOC ; then 872 AC_MSG_RESULT([yes]) 873 else 874 AC_MSG_RESULT([no]) 875 fi 876 fi 877 878 if test x$GTKDOC != xtrue ; then 879 enable_gtk_doc=no 880 fi 881 882fi 883 884AM_CONDITIONAL([ENABLE_GTK_DOC], [test "x$enable_gtk_doc" = "xyes"]) 885 886 887################################################## 888# Output configuration header 889################################################## 890 891dnl this section will only be run if config.status is invoked with no 892dnl arguments, or with "gdk/gdkglext-config.h" as an argument. 893AC_CONFIG_COMMANDS([gdk/gdkglext-config.h], 894[ 895 outfile=gdkglext-config.h-tmp 896 cat > $outfile <<\_______EOF 897/* gdkglext-config.h 898 * 899 * This is a generated file. Please modify `configure.in' 900 */ 901 902#ifndef GDKGLEXT_CONFIG_H 903#define GDKGLEXT_CONFIG_H 904 905#ifdef __cplusplus 906extern "C" { 907#endif /* __cplusplus */ 908 909_______EOF 910 911 cat >>$outfile <<_______EOF 912$gdkglext_windowing 913$gdkglext_multihead_support 914_______EOF 915 916 cat >>$outfile <<_______EOF 917 918#if !defined(GDKGLEXT_MULTIHEAD_SUPPORT) && defined(GDK_MULTIHEAD_SAFE) 919#error "Installed GdkGLExt library doesn't have multihead support." 920#endif 921 922_______EOF 923 924 cat >>$outfile <<_______EOF 925$gdkglext_need_glxfbconfigsgix_typedef 926$gdkglext_need_glxfbconfigidsgix_typedef 927$gdkglext_need_glxpbuffersgix_typedef 928$gdkglext_need_glxvideosourcesgix_typedef 929$gdkglext_need_glxextfuncptr_typedef 930$gdkglext_need_glhalfnv_typedef 931_______EOF 932 933 cat >>$outfile <<_______EOF 934 935#ifdef __cplusplus 936} 937#endif /* __cplusplus */ 938 939#endif /* GDKGLEXT_CONFIG_H */ 940_______EOF 941 942 943 if cmp -s $outfile gdk/gdkglext-config.h; then 944 AC_MSG_NOTICE([gdk/gdkglext-config.h is unchanged]) 945 rm -f $outfile 946 else 947 mv $outfile gdk/gdkglext-config.h 948 fi 949 950],[ 951 952if test "x$gdktarget" = "xx11" ; then 953 gdkglext_windowing=' 954#define GDKGLEXT_WINDOWING_X11' 955elif test "x$gdktarget" = "xwin32" ; then 956 gdkglext_windowing=' 957#define GDKGLEXT_WINDOWING_WIN32' 958fi 959 960if test "x$GDKGLEXT_MULTIHEAD_SUPPORT" = "xyes"; then 961 gdkglext_multihead_support=' 962#define GDKGLEXT_MULTIHEAD_SUPPORT' 963fi 964 965if test "x$GDKGLEXT_NEED_GLXFBCONFIGSGIX_TYPEDEF" = "xyes"; then 966 gdkglext_need_glxfbconfigsgix_typedef=' 967#define GDKGLEXT_NEED_GLXFBCONFIGSGIX_TYPEDEF' 968fi 969 970if test "x$GDKGLEXT_NEED_GLXFBCONFIGIDSGIX_TYPEDEF" = "xyes"; then 971 gdkglext_need_glxfbconfigidsgix_typedef=' 972#define GDKGLEXT_NEED_GLXFBCONFIGIDSGIX_TYPEDEF' 973fi 974 975if test "x$GDKGLEXT_NEED_GLXPBUFFERSGIX_TYPEDEF" = "xyes"; then 976 gdkglext_need_glxpbuffersgix_typedef=' 977#define GDKGLEXT_NEED_GLXPBUFFERSGIX_TYPEDEF' 978fi 979 980if test "x$GDKGLEXT_NEED_GLXVIDEOSOURCESGIX_TYPEDEF" = "xyes"; then 981 gdkglext_need_glxvideosourcesgix_typedef=' 982#define GDKGLEXT_NEED_GLXVIDEOSOURCESGIX_TYPEDEF' 983fi 984 985if test "x$GDKGLEXT_NEED_GLXEXTFUNCPTR_TYPEDEF" = "xyes"; then 986 gdkglext_need_glxextfuncptr_typedef=' 987#define GDKGLEXT_NEED_GLXEXTFUNCPTR_TYPEDEF' 988fi 989 990if test "x$GDKGLEXT_NEED_GLHALFNV_TYPEDEF" = "xyes"; then 991 gdkglext_need_glhalfnv_typedef=' 992#define GDKGLEXT_NEED_GLHALFNV_TYPEDEF' 993fi 994 995]) 996 997 998################################################## 999# Config files 1000################################################## 1001 1002AC_CONFIG_FILES([ 1003gdkglext.pc 1004gtkglext.pc 1005gdkglext-uninstalled.pc 1006gtkglext-uninstalled.pc 1007gtkglext.spec 1008gtkglext.nsi 1009Makefile 1010gdk/Makefile 1011gdk/gdkglversion.h 1012gdk/glext/Makefile 1013gdk/x11/Makefile 1014gdk/win32/Makefile 1015gtk/Makefile 1016gtk/gtkglversion.h 1017m4macros/Makefile 1018docs/Makefile 1019docs/reference/Makefile 1020docs/reference/gtkglext/Makefile 1021docs/reference/gtkglext/version.xml 1022examples/Makefile 1023examples/glade/Makefile 1024]) 1025 1026AC_OUTPUT 1027 1028 1029################################################## 1030# Print configuration 1031################################################## 1032 1033echo " 1034configuration: 1035 OpenGL CFLAGS: $GL_CFLAGS 1036 OpenGL LIBS: $GL_LIBS 1037 multihead support: $GDKGLEXT_MULTIHEAD_SUPPORT 1038 debug: $enable_debug 1039 extra defs: $GDKGLEXT_WIN_EXTRA_DEFS 1040" 1041