dnl @(#)$Mu: mgv/acinclude.m4 1.5 1998/08/25 21:34:32 $ dnl dnl acinclude.m4 dnl local automake/autoconf/m4 fun for mgv. dnl dnl Copyright (C) 1998 Eric A. Howe dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. dnl dnl Authors: Eric A. Howe (mu@trends.net) dnl dnl dnl ICE_FIND_XPM dnl --------------- dnl dnl Find Xpm libraries and headers. dnl Put Xpm include directory in xpm_includes, dnl put Xpm library directory in xpm_libraries, dnl and add appropriate flags to X_CFLAGS and X_LIBS. dnl dnl Set @XPM_LIBS@ to -lXpm if appropriate. dnl dnl Borrowed from DDD. dnl AC_DEFUN(ICE_FIND_XPM, [ AC_REQUIRE([AC_PATH_XTRA]) xpm_includes= xpm_libraries= AC_ARG_WITH(xpm, [ --without-xpm do not use the Xpm library], with_xpm=no) dnl Treat --without-xpm like dnl --without-xpm-includes --without-xpm-libraries. if test "$with_xpm" = "no" then xpm_includes=no xpm_libraries=no fi AC_ARG_WITH(xpm-includes, [ --with-xpm-includes=DIR Xpm include files are in DIR], xpm_includes="$withval") AC_ARG_WITH(xpm-libraries, [ --with-xpm-libraries=DIR Xpm libraries are in DIR], xpm_libraries="$withval") AC_MSG_CHECKING(for Xpm) # # # Search the include files. Note that XPM can come in (as # in X11R6) or in if installed locally. # if test "$xpm_includes" = ""; then AC_CACHE_VAL(ice_cv_xpm_includes, [ ice_xpm_save_LIBS="$LIBS" ice_xpm_save_CFLAGS="$CFLAGS" ice_xpm_save_CPPFLAGS="$CPPFLAGS" ice_xpm_save_LDFLAGS="$LDFLAGS" # LIBS="$X_PRE_LIBS -lXpm -lXt -lX11 $X_EXTRA_LIBS $LIBS" CFLAGS="$X_CFLAGS $CFLAGS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LDFLAGS="$X_LIBS $LDFLAGS" # AC_TRY_COMPILE([ #include ],[int a;], [ # X11/xpm.h is in the standard search path. ice_cv_xpm_includes= ], [ # X11/xpm.h is not in the standard search path. # Locate it and put its directory in `xpm_includes' # # /usr/include/Motif* are used on HP-UX (Motif). # /usr/include/X11* are used on HP-UX (X and Xaw). # /usr/dt is used on Solaris (Motif). # /usr/openwin is used on Solaris (X and Xaw). # Other directories are just guesses. ice_cv_xpm_includes=no for dir in "$x_includes" "${prefix}/include" /usr/include /usr/local/include \ /usr/include/Motif2.0 /usr/include/Motif1.2 /usr/include/Motif1.1 \ /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 \ /usr/dt/include /usr/openwin/include \ /usr/dt/*/include /opt/*/include /usr/include/Motif* \ "${prefix}"/*/include /usr/*/include /usr/local/*/include \ "${prefix}"/include/* /usr/include/* /usr/local/include/*; do if test -f "$dir/X11/xpm.h" || test -f "$dir/xpm.h"; then ice_cv_xpm_includes="$dir" echo "found xpm.h from $dir" 1>&5 break fi done ]) # LIBS="$ice_xpm_save_LIBS" CFLAGS="$ice_xpm_save_CFLAGS" CPPFLAGS="$ice_xpm_save_CPPFLAGS" LDFLAGS="$ice_xpm_save_LDFLAGS" ]) xpm_includes="$ice_cv_xpm_includes" fi # # # Now for the libraries. # if test "$xpm_libraries" = ""; then AC_CACHE_VAL(ice_cv_xpm_libraries, [ ice_xpm_save_LIBS="$LIBS" ice_xpm_save_CFLAGS="$CFLAGS" ice_xpm_save_CPPFLAGS="$CPPFLAGS" ice_xpm_save_LDFLAGS="$LDFLAGS" # LIBS="$X_PRE_LIBS -lXpm -lXt -lX11 $X_EXTRA_LIBS $LIBS" CFLAGS="$X_CFLAGS $CFLAGS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LDFLAGS="$X_LIBS $LDFLAGS" # # # We use XtToolkitInitialize() here since it takes no arguments # and thus also works with a C++ compiler. AC_TRY_LINK([ #include #include ],[XtToolkitInitialize();], [ # libxpm.a is in the standard search path. ice_cv_xpm_libraries= ], [ # libXpm.a is not in the standard search path. # Locate it and put its directory in `xpm_libraries' # # # /usr/lib/Motif* are used on HP-UX (Motif). # /usr/lib/X11* are used on HP-UX (X and Xpm). # /usr/dt is used on Solaris (Motif). # /usr/openwin is used on Solaris (X and Xpm). # Other directories are just guesses. ice_cv_xpm_libraries=no for dir in "$x_libraries" "${prefix}/lib" /usr/lib /usr/local/lib \ /usr/lib/Motif2.1 /usr/lib/Motif2.0 /usr/lib/Motif1.2 \ /usr/lib/Motif1.1 /usr/lib/X11R6 /usr/lib/X11R5 /usr/lib/X11R4 \ /usr/lib/X11 /usr/dt/lib /usr/openwin/lib \ /usr/dt/*/lib /opt/*/lib /usr/lib/Motif* \ "${prefix}"/*/lib /usr/*/lib /usr/local/*/lib \ "${prefix}"/lib/* /usr/lib/* /usr/local/lib/*; do if test -d "$dir" && test "`ls $dir/libXpm.* 2> /dev/null`" != ""; then ice_cv_xpm_libraries="$dir" echo "found libXpm from $dir" 1>&5 break fi done ]) # LIBS="$ice_xpm_save_LIBS" CFLAGS="$ice_xpm_save_CFLAGS" CPPFLAGS="$ice_xpm_save_CPPFLAGS" LDFLAGS="$ice_xpm_save_LDFLAGS" ]) # xpm_libraries="$ice_cv_xpm_libraries" fi # # Define XPM in config.h or disable XPM completely of either the header # or the library was not found. # if test "$xpm_libraries" != "no" && test "$xpm_includes" != "no"; then AC_DEFINE(XPM,1) else xpm_libraries=no xpm_includes=no fi # # Add Xpm definitions to X flags # if test "$xpm_includes" != "" && test "$xpm_includes" != "$x_includes" && test "$xpm_includes" != "no" then X_CFLAGS="-I$xpm_includes $X_CFLAGS" fi if test "$xpm_libraries" != "" && test "$xpm_libraries" != "$x_libraries" && test "$xpm_libraries" != "no" then case "$X_LIBS" in *-R\ *) X_LIBS="-L$xpm_libraries -R $xpm_libraries $X_LIBS";; *-R*) X_LIBS="-L$xpm_libraries -R$xpm_libraries $X_LIBS";; *) X_LIBS="-L$xpm_libraries $X_LIBS";; esac fi # # xpm_libraries_result="$xpm_libraries" xpm_includes_result="$xpm_includes" test "$xpm_libraries_result" = "" && xpm_libraries_result="in default path" test "$xpm_includes_result" = "" && xpm_includes_result="in default path" test "$xpm_libraries_result" = "no" && xpm_libraries_result="(none)" test "$xpm_includes_result" = "no" && xpm_includes_result="(none)" AC_MSG_RESULT( [libraries $xpm_libraries_result, headers $xpm_includes_result]) # # Export @XPM_LIBS@ to Makefile.am # if test "$xpm_libraries" != "no"; then XPM_LIBS="-lXpm" else XPM_LIBS="" fi AC_SUBST(XPM_LIBS) ])dnl dnl dnl ICE_FIND_MOTIF dnl -------------- dnl dnl Find Motif libraries and headers dnl Put Motif include directory in motif_includes, dnl put Motif library directory in motif_libraries, dnl and add appropriate flags to X_CFLAGS and X_LIBS. dnl dnl Borrowed from DDD. dnl AC_DEFUN(ICE_FIND_MOTIF, [ AC_REQUIRE([AC_PATH_XTRA]) motif_includes= motif_libraries= AC_ARG_WITH(motif-includes, [ --with-motif-includes=DIR Motif include files are in DIR], motif_includes="$withval") AC_ARG_WITH(motif-libraries, [ --with-motif-libraries=DIR Motif libraries are in DIR], motif_libraries="$withval") AC_MSG_CHECKING(for Motif) # # # Search the include files. # if test "$motif_includes" = ""; then AC_CACHE_VAL(ice_cv_motif_includes, [ ice_motif_save_LIBS="$LIBS" ice_motif_save_CFLAGS="$CFLAGS" ice_motif_save_CPPFLAGS="$CPPFLAGS" ice_motif_save_LDFLAGS="$LDFLAGS" # LIBS="$X_PRE_LIBS -lXm -lXt -lX11 $X_EXTRA_LIBS $LIBS" CFLAGS="$X_CFLAGS $CFLAGS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LDFLAGS="$X_LIBS $LDFLAGS" # AC_TRY_COMPILE([#include ],[int a;], [ # Xm/Xm.h is in the standard search path. ice_cv_motif_includes= ], [ # Xm/Xm.h is not in the standard search path. # Locate it and put its directory in `motif_includes' # # /usr/include/Motif* are used on HP-UX (Motif). # /usr/include/X11* are used on HP-UX (X and Athena). # /usr/dt is used on Solaris (Motif). # /usr/openwin is used on Solaris (X and Athena). # Other directories are just guesses. for dir in "$x_includes" "${prefix}/include" /usr/include /usr/local/include \ /usr/include/Motif2.0 /usr/include/Motif1.2 /usr/include/Motif1.1 \ /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 \ /usr/dt/include /usr/openwin/include \ /usr/dt/*/include /opt/*/include /usr/include/Motif* \ "${prefix}"/*/include /usr/*/include /usr/local/*/include \ "${prefix}"/include/* /usr/include/* /usr/local/include/*; do if test -f "$dir/Xm/Xm.h"; then ice_cv_motif_includes="$dir" break fi done if test "$ice_cv_motif_includes" = ""; then ice_cv_motif_includes=no fi ]) # LIBS="$ice_motif_save_LIBS" CFLAGS="$ice_motif_save_CFLAGS" CPPFLAGS="$ice_motif_save_CPPFLAGS" LDFLAGS="$ice_motif_save_LDFLAGS" ]) motif_includes="$ice_cv_motif_includes" fi # # # Now for the libraries. # if test "$motif_libraries" = ""; then AC_CACHE_VAL(ice_cv_motif_libraries, [ ice_motif_save_LIBS="$LIBS" ice_motif_save_CFLAGS="$CFLAGS" ice_motif_save_CPPFLAGS="$CPPFLAGS" ice_motif_save_LDFLAGS="$LDFLAGS" # LIBS="$X_PRE_LIBS -lXm -lXt -lX11 $X_EXTRA_LIBS $LIBS" CFLAGS="$X_CFLAGS $CFLAGS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LDFLAGS="$X_LIBS $LDFLAGS" # # We use XtToolkitInitialize() here since it takes no arguments # and thus also works with a C++ compiler. AC_TRY_LINK([ #include #include ],[XtToolkitInitialize();], [ # libXm.a is in the standard search path. ice_cv_motif_libraries= ], [ # libXm.a is not in the standard search path. # Locate it and put its directory in `motif_libraries' # # /usr/lib/Motif* are used on HP-UX (Motif). # /usr/lib/X11* are used on HP-UX (X and Athena). # /usr/dt is used on Solaris (Motif). # /usr/lesstif is used on Linux (Lesstif). # /usr/openwin is used on Solaris (X and Athena). # Other directories are just guesses. for dir in "$x_libraries" "${prefix}/lib" /usr/lib /usr/local/lib \ /usr/lib/Motif2.0 /usr/lib/Motif1.2 /usr/lib/Motif1.1 \ /usr/lib/X11R6 /usr/lib/X11R5 /usr/lib/X11R4 /usr/lib/X11 \ /usr/dt/lib /usr/openwin/lib \ /usr/dt/*/lib /opt/*/lib /usr/lib/Motif* \ /usr/lesstif*/lib /usr/lib/Lesstif* \ "${prefix}"/*/lib /usr/*/lib /usr/local/*/lib \ "${prefix}"/lib/* /usr/lib/* /usr/local/lib/*; do if test -d "$dir" && test "`ls $dir/libXm.* 2> /dev/null`" != ""; then ice_cv_motif_libraries="$dir" break fi done if test "$ice_cv_motif_libraries" = ""; then ice_cv_motif_libraries=no fi ]) # LIBS="$ice_motif_save_LIBS" CFLAGS="$ice_motif_save_CFLAGS" CPPFLAGS="$ice_motif_save_CPPFLAGS" LDFLAGS="$ice_motif_save_LDFLAGS" ]) # motif_libraries="$ice_cv_motif_libraries" fi # Add Motif definitions to X flags # if test "$motif_includes" != "" && test "$motif_includes" != "$x_includes" && test "$motif_includes" != "no" then X_CFLAGS="-I$motif_includes $X_CFLAGS" fi if test "$motif_libraries" != "" && test "$motif_libraries" != "$x_libraries" && test "$motif_libraries" != "no" then case "$X_LIBS" in *-R\ *) X_LIBS="-L$motif_libraries -R $motif_libraries $X_LIBS";; *-R*) X_LIBS="-L$motif_libraries -R$motif_libraries $X_LIBS";; *) X_LIBS="-L$motif_libraries $X_LIBS";; esac fi # # motif_libraries_result="$motif_libraries" motif_includes_result="$motif_includes" test "$motif_libraries_result" = "" && motif_libraries_result="in default path" test "$motif_includes_result" = "" && motif_includes_result="in default path" test "$motif_libraries_result" = "no" && motif_libraries_result="(none)" test "$motif_includes_result" = "no" && motif_includes_result="(none)" AC_MSG_RESULT( [libraries $motif_libraries_result, headers $motif_includes_result]) ])dnl ############################################################################ # Usage: # SIM_AC_CHECK_PTHREAD([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) # # Try to find the PTHREAD development system. If it is found, these # shell variables are set: # # $sim_ac_pthread_cppflags (extra flags the compiler needs for pthread) # $sim_ac_pthread_ldflags (extra flags the linker needs for pthread) # $sim_ac_pthread_libs (link libraries the linker needs for pthread) # # The CPPFLAGS, LDFLAGS and LIBS flags will also be modified accordingly. # In addition, the variable $sim_ac_pthread_avail is set to "yes" if the # pthread development system is found. # # # Author: Morten Eriksen, . AC_DEFUN([SIM_AC_CHECK_PTHREAD], [ AC_ARG_WITH( [pthread], [ --with-pthread pthread installation directory], [],[with_pthread=yes]) sim_ac_pthread_avail=no if test x"$with_pthread" != xno; then if test x"$with_pthread" != xyes; then sim_ac_pthread_cppflags="-I${with_pthread}/include" sim_ac_pthread_ldflags="-L${with_pthread}/lib" fi sim_ac_pthread_libs_first="-lpthread" sim_ac_pthread_libs_second="-pthread" sim_ac_pthread_libs_third="-lc_r" sim_ac_pthread_libs="" # FreeBSD 4.x use "-pthread" or "-lc_r" sim_ac_save_cppflags=$CPPFLAGS sim_ac_save_ldflags=$LDFLAGS sim_ac_save_libs=$LIBS AC_CACHE_CHECK( [whether the pthread development system is available], sim_cv_lib_pthread_avail, [ for sim_pthread_libs in $sim_ac_pthread_libs_first \ $sim_ac_pthread_libs_second $sim_ac_pthread_libs_third ; do if test x"$sim_cv_lib_pthread_avail" != x"yes" ; then CPPFLAGS="$CPPFLAGS $sim_ac_pthread_cppflags" LDFLAGS="$LDFLAGS $sim_ac_pthread_ldflags" LIBS="$sim_pthread_libs $LIBS" AC_TRY_LINK([#include ], [(void)pthread_create(0L, 0L, 0L, 0L);], [sim_cv_lib_pthread_avail=yes sim_ac_pthread_libs="$sim_pthread_libs" ], [sim_cv_lib_pthread_avail=no]) fi if test x"$sim_cv_lib_pthread_avail" != x"yes"; then CPPFLAGS=$sim_ac_save_cppflags LDFLAGS=$sim_ac_save_ldflags LIBS=$sim_ac_save_libs fi done ] ) if test x"$sim_cv_lib_pthread_avail" = xyes; then sim_ac_pthread_avail=yes $1 else CPPFLAGS=$sim_ac_save_cppflags LDFLAGS=$sim_ac_save_ldflags LIBS=$sim_ac_save_libs $2 fi fi ]) ############################################################################ # Usage: # SIM_AC_CHECK_OPENGL([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) # # Try to find an OpenGL development system, either a native # implementation or the OpenGL-compatible Mesa library. If # it is found, these shell variables are set: # # $sim_ac_gl_cppflags (extra flags the compiler needs for OpenGL/Mesa) # $sim_ac_gl_ldflags (extra flags the linker needs for OpenGL/Mesa) # $sim_ac_gl_libs (link libraries the linker needs for OpenGL/Mesa) # # The CPPFLAGS, LDFLAGS and LIBS flags will also be modified accordingly. # In addition, the variable $sim_ac_gl_avail is set to "yes" if an # OpenGL-compatible development system is found. # # # Author: Morten Eriksen, . AC_DEFUN(SIM_AC_CHECK_OPENGL, [ unset sim_ac_gl_cppflags unset sim_ac_gl_ldflags unset sim_ac_gl_libs sim_ac_gl_avail=no AC_ARG_WITH( [mesa], [ --with-mesa prefer MesaGL (if found) over OpenGL [[default=yes]]], [],[with_mesa=yes]) # It's usually libGL.so on UNIX systems and opengl32.lib on MSWindows. sim_ac_gl_glnames="-lGL -lopengl32" sim_ac_gl_mesaglnames=-lMesaGL GL_LIBS="" if test "x$with_mesa" = "xyes"; then sim_ac_gl_first=$sim_ac_gl_mesaglnames sim_ac_gl_second=$sim_ac_gl_glnames else sim_ac_gl_first=$sim_ac_gl_glnames sim_ac_gl_second=$sim_ac_gl_mesaglnames fi AC_ARG_WITH( [opengl], [ --with-opengl OpenGL/Mesa installation directory],[],[with_opengl=yes]) if test x"$with_opengl" != xno; then if test x"$with_opengl" != xyes; then sim_ac_gl_cppflags="-I${with_opengl}/include" sim_ac_gl_ldflags="-L${with_opengl}/lib" else # This is a common location for the OpenGL library on HPUX. sim_ac_gl_hpux=/opt/graphics/OpenGL if test -d $sim_ac_gl_hpux; then sim_ac_gl_cppflags=-I$sim_ac_gl_hpux/include sim_ac_gl_ldflags=-L$sim_ac_gl_hpux/lib fi fi sim_ac_save_cppflags=$CPPFLAGS sim_ac_save_ldflags=$LDFLAGS sim_ac_save_libs=$LIBS CPPFLAGS="$CPPFLAGS $sim_ac_gl_cppflags" LDFLAGS="$LDFLAGS $sim_ac_gl_ldflags" AC_CACHE_CHECK( [whether OpenGL library is available], sim_cv_lib_gl, [sim_cv_lib_gl=UNRESOLVED for sim_ac_gl_libcheck in $sim_ac_gl_first $sim_ac_gl_second; do if test "x$sim_cv_lib_gl" = "xUNRESOLVED"; then LIBS="$sim_ac_gl_libcheck $sim_ac_save_libs -lm" AC_TRY_LINK([ #if HAVE_WINDOWS_H #include #endif /* HAVE_WINDOWS_H */ #include ], [glPointSize(1.0f);], [sim_cv_lib_gl="$sim_ac_gl_libcheck"], ) fi done ]) LIBS="$sim_ac_save_libs" if test "x$sim_cv_lib_gl" != "xUNRESOLVED"; then sim_ac_gl_libs="$sim_cv_lib_gl" else AC_MSG_WARN([couldn't compile or link with OpenGL library -- trying with pthread library in place...]) SIM_AC_CHECK_PTHREAD([ sim_ac_gl_cppflags="$sim_ac_gl_cppflags $sim_ac_pthread_cppflags" sim_ac_gl_ldflags="$sim_ac_gl_ldflags $sim_ac_pthread_ldflags"], [AC_MSG_WARN([couldn't compile or link with pthread library])]) if test "x$sim_ac_pthread_avail" = "xyes"; then AC_CACHE_CHECK( [whether OpenGL library can be linked with pthread library], sim_cv_lib_gl_pthread, [sim_cv_lib_gl_pthread=UNRESOLVED for sim_ac_gl_libcheck in $sim_ac_gl_first $sim_ac_gl_second; do if test "x$sim_cv_lib_gl_pthread" = "xUNRESOLVED"; then LIBS="$sim_ac_gl_libcheck $sim_ac_pthread_libs $sim_ac_save_libs" AC_TRY_LINK([ #if HAVE_WINDOWS_H #include #endif /* HAVE_WINDOWS_H */ #include ], [ glPointSize(1.0f); ], [sim_cv_lib_gl_pthread="$sim_ac_gl_libcheck"]) fi done ]) if test "x$sim_cv_lib_gl_pthread" != "xUNRESOLVED"; then sim_ac_gl_libs="$sim_cv_lib_gl_pthread $sim_ac_pthread_libs" fi fi fi if test "x$sim_ac_gl_libs" != "x"; then LIBS="$sim_ac_save_libs" GL_LIBS="$sim_ac_gl_libs" sim_ac_gl_avail=yes $1 else CPPFLAGS=$sim_ac_save_cppflags LDFLAGS=$sim_ac_save_ldflags LIBS=$sim_ac_save_libs $2 fi fi ]) ############################################################################ # Usage: # SIM_AC_CHECK_GLU([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) # # Try to use the OpenGL utility library; GLU. If it is found, # these shell variables are set: # # $sim_ac_glu_cppflags (extra flags the compiler needs for GLU) # $sim_ac_glu_ldflags (extra flags the linker needs for GLU) # $sim_ac_glu_libs (link libraries the linker needs for GLU) # # The CPPFLAGS, LDFLAGS and LIBS flags will also be modified accordingly. # In addition, the variable $sim_ac_gly_avail is set to "yes" if GLU # is found. # # # Author: Morten Eriksen, . AC_DEFUN(SIM_AC_CHECK_GLU, [ unset sim_ac_glu_cppflags unset sim_ac_glu_ldflags unset sim_ac_glu_libs sim_ac_glu_avail=no # It's usually libGLU.so on UNIX systems and glu32.lib on MSWindows. sim_ac_glu_names="-lGLU -lglu32" sim_ac_glu_mesanames=-lMesaGLU # with_mesa is set from the SIM_AC_CHECK_OPENGL macro. if test "x$with_mesa" = "xyes"; then sim_ac_glu_first=$sim_ac_glu_mesanames sim_ac_glu_second=$sim_ac_glu_names else sim_ac_glu_first=$sim_ac_glu_names sim_ac_glu_second=$sim_ac_glu_mesanames fi AC_ARG_WITH( [glu],[ --with-glu use the OpenGL utility library [[default=yes]]],[],[with_glu=yes]) if test x"$with_glu" != xno; then if test x"$with_glu" != xyes; then sim_ac_glu_cppflags="-I${with_glu}/include" sim_ac_glu_ldflags="-L${with_glu}/lib" fi sim_ac_save_cppflags=$CPPFLAGS sim_ac_save_ldflags=$LDFLAGS sim_ac_save_libs=$LIBS CPPFLAGS="$CPPFLAGS $sim_ac_glu_cppflags" LDFLAGS="$LDFLAGS $sim_ac_glu_ldflags" AC_CACHE_CHECK( [whether GLU is available], sim_cv_lib_glu, [sim_cv_lib_glu=UNRESOLVED # Some platforms (like BeOS) have the GLU functionality in the GL # library (and no GLU library present). for sim_ac_glu_libcheck in "" $sim_ac_glu_first $sim_ac_glu_second; do if test "x$sim_cv_lib_glu" = "xUNRESOLVED"; then LIBS="$sim_ac_glu_libcheck $sim_ac_save_libs $GL_LIBS" AC_TRY_LINK([ #if HAVE_WINDOWS_H #include #endif /* HAVE_WINDOWS_H */ #include #include ], [ gluSphere(0L, 1.0, 1, 1); ], [sim_cv_lib_glu="$sim_ac_glu_libcheck"]) fi done ]) LIBS="$sim_ac_save_libs" if test "x$sim_cv_lib_glu" != "xUNRESOLVED"; then sim_ac_glu_libs="$sim_cv_lib_glu" LIBS="$sim_ac_save_libs" GL_LIBS="$GL_LIBS $sim_ac_glu_libs" sim_ac_glu_avail=yes $1 else CPPFLAGS=$sim_ac_save_cppflags LDFLAGS=$sim_ac_save_ldflags LIBS=$sim_ac_save_libs $2 fi fi ]) # ************************************************************************** # SIM_AC_GLU_READY_IFELSE( [ACTION-IF-TRUE], [ACTION-IF-FALSE] ) AC_DEFUN([SIM_AC_GLU_READY_IFELSE], [AC_CACHE_CHECK( [if GLU is available as part of GL library], [sim_cv_glu_ready], [AC_TRY_LINK( [ #if HAVE_WINDOWS_H #include #endif /* HAVE_WINDOWS_H */ #include #include ], [ gluSphere(0L, 1.0, 1, 1); ], [sim_cv_glu_ready=true], [sim_cv_glu_ready=false])]) if ${sim_cv_glu_ready}; then ifelse([$1], , :, [$1]) else ifelse([$2], , :, [$2]) fi ]) # SIM_AC_GLU_READY_IFELSE() ############################################################################ # Usage: # SIM_AC_GLU_NURBSOBJECT([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) # # Try to find out whether the interface struct against the GLU # library NURBS functions is called "GLUnurbs" or "GLUnurbsObj". # (This seems to have changed somewhere between release 1.1 and # release 1.3 of GLU). # # The variable $sim_ac_glu_nurbsobject is set to the correct name # if the nurbs structure is found. # # Author: Morten Eriksen, . AC_DEFUN(SIM_AC_GLU_NURBSOBJECT, [ AC_CACHE_CHECK( [what structure to use in the GLU NURBS interface], sim_cv_func_glu_nurbsobject, [sim_cv_func_glu_nurbsobject=NONE for sim_ac_glu_structname in GLUnurbs GLUnurbsObj; do if test "$sim_cv_func_glu_nurbsobject" = NONE; then AC_TRY_LINK([ #if HAVE_WINDOWS_H #include #endif /* HAVE_WINDOWS_H */ #include #include ], [$sim_ac_glu_structname * hepp = gluNewNurbsRenderer(); gluDeleteNurbsRenderer(hepp)], [sim_cv_func_glu_nurbsobject=$sim_ac_glu_structname]) fi done ]) if test $sim_cv_func_glu_nurbsobject = NONE; then sim_ac_glu_nurbsobject= $2 else sim_ac_glu_nurbsobject=$sim_cv_func_glu_nurbsobject $1 fi ]) # ************************************************************************** # SIM_AC_HAVE_GLX_IFELSE( IF-FOUND, IF-NOT-FOUND ) # # Check whether GLX is on the system. AC_DEFUN([SIM_AC_HAVE_GLX_IFELSE], [ AC_CACHE_CHECK( [whether GLX is on the system], sim_cv_have_glx, AC_TRY_LINK( [#include ], [(void)glXChooseVisual(0L, 0, 0L);], [sim_cv_have_glx=true], [sim_cv_have_glx=false])) if ${sim_cv_have_glx=false}; then ifelse([$1], , :, [$1]) else ifelse([$2], , :, [$2]) fi ]) # SIM_AC_HAVE_GLX_IFELSE() ############################################################################ # Usage: # SIM_CHECK_MOTIF_GLWIDGET([ ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]) # # Description: # This macro checks for a GL widget that can be used with Xt/Motif. # # Variables: # $sim_cv_motif_glwidget (cached) class + header + library # $sim_cv_motif_glwidget_hdrloc (cached) GL | X11/GLw # # $sim_ac_motif_glwidget_class glwMDrawingAreaWidgetClass | # glwDrawingAreaWidgetClass # $sim_ac_motif_glwidget_header GLwDrawA.h | GLwMDrawA.h # $sim_ac_motif_glwidget_library GLwM | GLw | MesaGLwM | MesaGLw # # $LIBS = -l$sim_ac_motif_glwidget_library $LIBS # # Defines: # XT_GLWIDGET $sim_ac_motif_glwidget_class # HAVE_GL_GLWDRAWA_H #include # HAVE_GL_GLWMDRAWA_H #include # HAVE_X11_GWL_GLWDRAWA_H #include # HAVE_X11_GWL_GLWMDRAWA_H #include # # Authors: # Lars J. Aas , # Loring Holden , # Morten Eriksen # AC_DEFUN([SIM_CHECK_MOTIF_GLWIDGET], [ AC_ARG_WITH( [glw],[ --with-glw use the OpenGL widget Library [[default=yes]]], [], [with_glw=yes]) if test x"$with_glw" != x"no" ; then if test x"$with_glw" != x"yes" ; then sim_ac_glw_cppflags="-I${with_glw}/include" sim_ac_glw_ldflags="-L${with_glw}/lib" fi SAVECPPFLAGS="$CPPFLAGS" SAVELDFLAGS="$LDFLAGS" SAVELIBS="$LIBS" CPPFLAGS="$SAVECPPFLAGS $sim_ac_glw_cppflags" LDFLAGS="$SAVELDFLAGS $sim_ac_glw_ldflags" AC_CACHE_CHECK( [for a GL widget], sim_cv_motif_glwidget, [ XWIDGETLIBS="$X_LIBS $X11_LIBS $XT_LIBS $X_LIBS $X_PRE_LIBS $XM_LIBS" sim_cv_motif_glwidget=UNKNOWN for lib in GLwM GLw MesaGLwM MesaGLw; do if test x"$sim_cv_motif_glwidget" = x"UNKNOWN"; then LIBS="-l$lib $SAVELIBS $XWIDGETLIBS $GL_LIBS -lm" AC_TRY_LINK( [#include #include extern WidgetClass glwMDrawingAreaWidgetClass;], [Widget glxManager = NULL; Widget glxWidget = XtVaCreateManagedWidget("GLWidget", glwMDrawingAreaWidgetClass, glxManager, NULL);], [sim_cv_motif_glwidget="glwMDrawingAreaWidgetClass GLwMDrawA.h $lib"], [sim_cv_motif_glwidget=UNKNOWN]) fi done LIBS=$SAVELIBS ]) if test "x$sim_cv_motif_glwidget" = "xUNKNOWN"; then ifelse([$2], , :, [$2]) else sim_ac_motif_glwidget_class=`echo $sim_cv_motif_glwidget | cut -d" " -f1` sim_ac_motif_glwidget_header=`echo $sim_cv_motif_glwidget | cut -d" " -f2` sim_ac_motif_glwidget_library=`echo $sim_cv_motif_glwidget | cut -d" " -f3` AC_CACHE_CHECK( [the $sim_ac_motif_glwidget_header header location], sim_cv_motif_glwidget_hdrloc, [sim_cv_motif_glwidget_hdrloc=UNKNOWN for location in X11/GLw GL; do if test "x$sim_cv_motif_glwidget_hdrloc" = "xUNKNOWN"; then AC_TRY_CPP( [#include #include <$location/$sim_ac_motif_glwidget_header>], [sim_cv_motif_glwidget_hdrloc=$location], [sim_cv_motif_glwidget_hdrloc=UNKNOWN]) fi done]) if test "x$sim_cv_motif_glwidget_hdrloc" = "xUNKNOWN"; then ifelse([$2], , :, [$2]) else if test "x$sim_ac_motif_glwidget_header" = "xGLwDrawA.h"; then if test "x$sim_cv_motif_glwidget_hdrloc" = "xGL"; then AC_DEFINE(HAVE_GL_GLWDRAWA_H, 1, [Define this to use OpenGL widget from ]) else AC_DEFINE(HAVE_X11_GLW_GLWDRAWA_H, 1, [Define this to use OpenGL widget from ]) fi else if test "x$sim_cv_motif_glwidget_hdrloc" = "xGL"; then AC_DEFINE(HAVE_GL_GLWMDRAWA_H, 1, [Define this to use OpenGL widget from ]) else AC_DEFINE(HAVE_X11_GLW_GLWMDRAWA_H, 1, [Define this to use OpenGL widget from ]) fi fi AC_DEFINE_UNQUOTED(XT_GLWIDGET, $sim_ac_motif_glwidget_class, [Define this to the Xt/Motif OpenGL widget class to use]) LIBS="$LIBS" GL_LIBS="$GL_LIBS -l$sim_ac_motif_glwidget_library" $1 fi fi fi ]) dnl dnl XMAKEMOL_GLUT_CHECK([ ACTION-IF-FOUND ]) dnl dnl Checks if GLUT is found. If it is, $ac_cv_lib_glut is set to "yes". AC_DEFUN([XMAKEMOL_GLUT_CHECK], [ AC_ARG_WITH(glut-prefix, [ --with-glut-includes=DIR Prefix for GLUT],[ glut_prefix="$withval"]) dnl Check for GLUT includes if test ".$glut_prefix" != . ; then GLUT_INCLUDES="-I$glut_prefix/include" fi save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$GLUT_INCLUDES $CPPFLAGS" AC_CHECK_HEADER(GL/glut.h,:,no_glut=yes) CPPFLAGS="$save_CPPFLAGS" if test ".$glut_prefix" != . ; then CON_LIBS="-L$glut_prefix/lib" fi if test ".$no_glut" != . ; then ac_cv_lib_glut=no GL_LIBS="" else AC_DEFINE(GL,1) ac_cv_lib_glut=yes LDFLAGS="$LDFLAGS $CON_LIBS" GL_LIBS="$GL_LIBS -lglut" fi ])