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