1dnl 2dnl $Header: /cvsroot/xbae/Xbae/ac_find_motif.m4,v 1.2 2004/03/04 21:38:50 dannybackx Exp $ 3dnl 4dnl AC_FIND_MOTIF : find OSF/Motif or LessTif, and provide variables 5dnl to easily use them in a Makefile. 6dnl 7dnl Adapted from a macro by Andreas Zeller. 8dnl 9dnl The variables provided are : 10dnl link_motif (e.g. -L/usr/lesstif/lib -lXm) 11dnl include_motif (e.g. -I/usr/lesstif/lib) 12dnl motif_libraries (e.g. /usr/lesstif/lib) 13dnl motif_includes (e.g. /usr/lesstif/include) 14dnl 15dnl The link_motif and include_motif variables should be fit to put on 16dnl your application's link line in your Makefile. 17dnl 18dnl Oleo CVS Id: motif.m4,v 1.9 1999/04/09 11:46:49 danny 19dnl LessTif CVS $Id: ac_find_motif.m4,v 1.2 2004/03/04 21:38:50 dannybackx Exp $ 20dnl 21AC_DEFUN([AC_FIND_MOTIF], 22[ 23 24AC_REQUIRE([AC_PATH_XTRA]) 25AC_REQUIRE([AC_FIND_LIBXP]) 26 27motif_includes= 28motif_libraries= 29 30dnl AC_ARG_WITH(motif, 31dnl [ --without-motif do not use Motif widgets]) 32dnl Treat --without-motif like 33dnl --without-motif-includes --without-motif-libraries. 34dnl if test "$with_motif" = "no" 35dnl then 36dnl motif_includes=none 37dnl motif_libraries=none 38dnl fi 39 40AC_ARG_WITH(motif-includes, 41[ --with-motif-includes=DIR Motif include files are in DIR], 42motif_includes="$withval") 43 44AC_ARG_WITH(motif-libraries, 45[ --with-motif-libraries=DIR Motif libraries are in DIR], 46motif_libraries="$withval") 47 48AC_MSG_CHECKING(for Motif) 49 50# 51# 52# Search the include files. 53# 54if test "$motif_includes" = ""; then 55AC_CACHE_VAL(ac_cv_motif_includes, 56[ 57ac_motif_save_LIBS="$LIBS" 58ac_motif_save_INCLUDES="$INCLUDES" 59ac_motif_save_CPPFLAGS="$CPPFLAGS" 60ac_motif_save_LDFLAGS="$LDFLAGS" 61# 62LIBS="$X_PRE_LIBS -lXm -lXt -lX11 $X_EXTRA_LIBS $LIBS" 63INCLUDES="$X_CFLAGS $INCLUDES" 64CPPFLAGS="$X_CFLAGS $CPPFLAGS" 65LDFLAGS="$X_LIBS $LDFLAGS" 66# 67ac_cv_motif_includes="none" 68AC_TRY_COMPILE([#include <Xm/Xm.h>],[int a;], 69[ 70# Xm/Xm.h is in the standard search path. 71ac_cv_motif_includes= 72], 73[ 74# Xm/Xm.h is not in the standard search path. 75# Locate it and put its directory in `motif_includes' 76# 77# /usr/include/Motif* are used on HP-UX (Motif). 78# /usr/include/X11* are used on HP-UX (X and Athena). 79# /usr/dt is used on Solaris (Motif). 80# /usr/openwin is used on Solaris (X and Athena). 81# Other directories are just guesses. 82for dir in "$x_includes" "${prefix}/include" /usr/include /usr/local/include \ 83 /usr/include/Motif2.1 /usr/include/Motif2.0 /usr/include/Motif1.2 \ 84 /usr/include/X11 /usr/include/X11R6 /usr/include/X11R5 \ 85 /usr/X11/include /usr/X11R6/include /usr/X11R5/include \ 86 /usr/dt/include /usr/openwin/include \ 87 /usr/dt/*/include /opt/*/include /usr/include/Motif* \ 88 "${prefix}"/*/include /usr/*/include /usr/local/*/include \ 89 "${prefix}"/include/* /usr/include/* /usr/local/include/*; do 90if test -f "$dir/Xm/Xm.h"; then 91ac_cv_motif_includes="$dir" 92break 93fi 94done 95]) 96# 97LIBS="$ac_motif_save_LIBS" 98INCLUDES="$ac_motif_save_INCLUDES" 99CPPFLAGS="$ac_motif_save_CPPFLAGS" 100LDFLAGS="$ac_motif_save_LDFLAGS" 101]) 102motif_includes="$ac_cv_motif_includes" 103fi 104# 105# 106# Now for the libraries. 107# 108if test "$motif_libraries" = ""; then 109AC_CACHE_VAL(ac_cv_motif_libraries, 110[ 111ac_motif_save_LIBS="$LIBS" 112ac_motif_save_INCLUDES="$INCLUDES" 113ac_motif_save_CPPFLAGS="$CPPFLAGS" 114ac_motif_save_LDFLAGS="$LDFLAGS" 115# 116LIBS="$X_PRE_LIBS -lXm -lXt -lX11 $X_EXTRA_LIBS $LIBS" 117INCLUDES="$X_CFLAGS $INCLUDES" 118CPPFLAGS="$X_CFLAGS $CPPFLAGS" 119LDFLAGS="$X_LIBS $LDFLAGS" 120# 121ac_cv_motif_libraries="none" 122AC_TRY_LINK([#include <Xm/Xm.h>],[XtToolkitInitialize();], 123[ 124# libXm.a is in the standard search path. 125ac_cv_motif_libraries= 126], 127[ 128# libXm.a is not in the standard search path. 129# Locate it and put its directory in `motif_libraries' 130# 131# /usr/lib/Motif* are used on HP-UX (Motif). 132# /usr/lib/X11* are used on HP-UX (X and Athena). 133# /usr/dt is used on Solaris (Motif). 134# /usr/lesstif is used on Linux (Lesstif). 135# /usr/openwin is used on Solaris (X and Athena). 136# Other directories are just guesses. 137for dir in "$x_libraries" "${prefix}/lib" /usr/lib /usr/local/lib \ 138 /usr/lib/Motif2.1 /usr/lib/Motif2.0 /usr/lib/Motif1.2 \ 139 /usr/lib/X11 /usr/lib/X11R6 /usr/lib/X11R5 \ 140 /usr/X11/lib /usr/X11R6/lib /usr/X11R5/lib \ 141 /usr/dt/lib /usr/openwin/lib \ 142 /usr/dt/*/lib /opt/*/lib /usr/lib/Motif* \ 143 /usr/lesstif*/lib /usr/lib/Lesstif* \ 144 "${prefix}"/*/lib /usr/*/lib /usr/local/*/lib \ 145 "${prefix}"/lib/* /usr/lib/* /usr/local/lib/*; do 146if test -d "$dir" && test "`ls $dir/libXm.* 2> /dev/null`" != ""; then 147ac_cv_motif_libraries="$dir" 148break 149fi 150done 151]) 152# 153LIBS="$ac_motif_save_LIBS" 154INCLUDES="$ac_motif_save_INCLUDES" 155CPPFLAGS="$ac_motif_save_CPPFLAGS" 156LDFLAGS="$ac_motif_save_LDFLAGS" 157]) 158# 159motif_libraries="$ac_cv_motif_libraries" 160fi 161# 162# Provide an easier way to link 163# 164if test "$motif_includes" = "none" -o "$motif_libraries" = "none"; then 165 with_motif="no" 166else 167 with_motif="yes" 168fi 169 170AC_FIND_LIBXP 171if test "$LT_HAVE_XP" = "yes"; then 172 XPLIB="-lXp -lXext" 173else 174 XPLIB="" 175fi 176 177if test "$with_motif" != "no"; then 178 if test "$motif_libraries" = ""; then 179 link_motif="-lXm $XPLIB" 180 MOTIF_LIBS="-lXm $XPLIB" 181 else 182 link_motif="-L$motif_libraries -lXm $XPLIB" 183 MOTIF_LIBS="-L$motif_libraries -lXm $XPLIB" 184 fi 185 if test "$motif_includes" != ""; then 186 include_motif="-I$motif_includes" 187 MOTIF_CFLAGS="-I$motif_includes" 188 fi 189 AC_DEFINE(HAVE_MOTIF) 190else 191 with_motif="no" 192fi 193# 194AC_SUBST(link_motif) 195AC_SUBST(include_motif) 196AC_SUBST(MOTIF_CFLAGS) 197AC_SUBST(MOTIF_LIBS) 198# 199# 200# 201motif_libraries_result="$motif_libraries" 202motif_includes_result="$motif_includes" 203test "$motif_libraries_result" = "" && motif_libraries_result="in default path" 204test "$motif_includes_result" = "" && motif_includes_result="in default path" 205test "$motif_libraries_result" = "none" && motif_libraries_result="(none)" 206test "$motif_includes_result" = "none" && motif_includes_result="(none)" 207AC_MSG_RESULT( 208 [libraries $motif_libraries_result, headers $motif_includes_result]) 209])dnl 210 211dnl 212dnl Check for libXp 213dnl In fact this check ensures that 214dnl - <X11/extensions/Print.h> and 215dnl - both libXp libXext 216dnl are in place 217dnl Note that a simpler check only for the libraries would not 218dnl be sufficient perhaps. 219dnl If the test succeeds it defines Have_Libxp within our 220dnl Makefiles. Perhaps one should immediately add those libs 221dnl to link commands which include libXm version2.1?! 222dnl 223AC_DEFUN([AC_FIND_LIBXP], 224[AC_REQUIRE([AC_PATH_X]) 225AC_CACHE_CHECK(whether libXp is available, lt_cv_libxp, 226[lt_save_CFLAGS="$CFLAGS" 227lt_save_CPPFLAGS="$CPPFLAGS" 228lt_save_LIBS="$LIBS" 229LIBS="$X_LIBS -lXp -lXext -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" 230CFLAGS="$X_CFLAGS $CFLAGS" 231CPPFLAGS="$X_CFLAGS $CPPFLAGS" 232AC_TRY_LINK([ 233#include <X11/Intrinsic.h> 234#include <X11/extensions/Print.h> 235],[ 236int main() { 237Display *display=NULL; 238short major_version, minor_version; 239Status rc; 240rc=XpQueryVersion(display, &major_version, &minor_version); 241exit(0); 242} 243], 244lt_cv_libxp=yes, 245lt_cv_libxp=no) 246]) 247if test "$lt_cv_libxp" = "yes"; then 248 AC_DEFINE(HAVE_LIB_XP) 249 LT_HAVE_XP="yes" 250else 251 LT_HAVE_XP="no" 252fi 253AM_CONDITIONAL(Have_Libxp, test "$lt_cv_libxp" = "yes") 254AC_SUBST(LT_HAVE_XP) 255CFLAGS="$lt_save_CFLAGS" 256CPPFLAGS="$lt_save_CPPFLAGS" 257LIBS="$lt_save_LIBS" 258]) 259 260