1# HOA_FIND_QT(VARIABLE-PREFIX, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
2#
3# Check whether the Qt libraries are available.  Adapted from Poppler qt.m4 which was adapted from
4# OpenOffice.org configure.in
5#
6# --------------------------------------------------------------
7AC_DEFUN([HOA_FIND_QT],
8[
9dnl Search paths for Qt
10qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt3/include /usr/lib/qt/include /usr/share/qt3/include"
11qt_libdirs="$QTLIB /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib"
12if test -n "$QTDIR" ; then
13    qt_incdirs="$QTDIR/include $qt_incdirs"
14    qt_libdirs="$QTDIR/lib $qt_libdirs"
15fi
16
17dnl What to test
18qt_test_include="qstyle.h"
19qt_test_la_library="libqt-mt.la"
20qt_test_library="libqt-mt.so"
21
22dnl Check for Qt headers
23AC_MSG_CHECKING([for Qt headers])
24qt_incdir="no"
25for it in $qt_incdirs ; do
26    if test -r "$it/$qt_test_include" ; then
27        qt_incdir="$it"
28        break
29    fi
30done
31AC_MSG_RESULT([$qt_incdir])
32
33dnl Check for Qt libraries
34AC_MSG_CHECKING([for Qt libraries])
35qt_libdir="no"
36for qt_check in $qt_libdirs ; do
37    if test -r "$qt_check/$qt_test_la_library" ; then
38        qt_libdir="$qt_check"
39        break
40    fi
41
42    if test -r "$qt_check/$qt_test_library" ; then
43        qt_libdir="$qt_check"
44        break
45    fi
46done
47AC_MSG_RESULT([$qt_libdir])
48
49if test "x$qt_libdir" != "xno" ; then
50    if test "x$qt_incdir" != "xno" ; then
51        have_qt=yes
52    fi
53fi
54
55if test "x$have_qt" == "xyes"; then
56    AC_LANG_PUSH([C++])
57    pthread_needed=no
58
59    save_LDFLAGS=$LDFLAGS
60    save_CXXFLAGS=$CXXFLAGS
61    save_LIBS=$LIBS
62    CXXFLAGS="$CXXFLAGS -I$qt_incdir"
63    LIBS="$LIBS $qt_libdir/$qt_test_library"
64    AC_MSG_CHECKING([if Qt needs -pthread])
65    AC_TRY_LINK([#include <qt.h>], [QString s;], [pthread_needed=no], [pthread_needed=yes])
66    if test "x$pthread_needed" = "xyes"; then
67        LDFLAGS="$LDFLAGS -pthread"
68        AC_TRY_LINK([#include <qt.h>], [QString s;], [pthread_needed=yes], [pthread_needed=no])
69    fi
70    AC_MSG_RESULT([$pthread_needed])
71    LDFLAGS=$save_LDFLAGS
72    CXXFLAGS=$save_CXXFLAGS
73    LIBS=$save_LIBS
74
75    AC_LANG_POP
76
77    qtpthread=''
78    if test "x$pthread_needed" = "xyes"; then
79        qtpthread="-pthread"
80    fi
81
82    $1[]_CXXFLAGS="-I$qt_incdir"
83    $1[]_LIBS="$qtpthread $qt_libdir/$qt_test_library"
84    ifelse([$2], , :, [$2])
85else
86    ifelse([$3], , [AC_MSG_FAILURE(dnl
87[Qt development libraries not found])],
88  	   [$3])
89fi
90])
91
92
93# HOA_FIND_QT4(VARIABLE-PREFIX, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
94#
95# Check whether the Qt4 libraries are available. Adapted from Poppler qt.m4.
96#
97# --------------------------------------------------------------
98AC_DEFUN([HOA_FIND_QT4],
99[
100have_qt4=no
101dnl Search paths for Qt4 - not much real experience with this yet.
102qt4_incdirs="/usr/local/qt/include /usr/include/qt4 /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt/include /usr/lib/qt4/include"
103qt4_libdirs="/usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt/lib /usr/lib/qt4/lib /usr/lib/qt4"
104
105if test -n "$QTDIR" ; then
106    qt4_incdirs="$QTDIR/include $qt4_incdirs"
107    qt4_libdirs="$QTDIR/lib $qt4_libdirs"
108fi
109
110dnl What to test
111if test "x$1" == "xQtOpenGL" ; then
112    qt4_test_include="QtOpenGL/QGLWidget"
113    qt4_test_la_library="libQtOpenGL.la"
114    qt4_test_library="libQtOpenGL.so"
115    qt4_windows_test_library="QtOpenGL4.dll"
116else
117    qt4_test_include="QtCore/QCoreApplication"
118    qt4_test_la_library="libQtCore.la"
119    qt4_test_library="libQtCore.so"
120    qt4_windows_test_library="QtCore4.dll"
121fi
122
123dnl Check for Qt4 headers
124AC_MSG_CHECKING([for $1 headers])
125qt4_incdir="no"
126for it in $qt4_incdirs ; do
127    if test -r "$it/$qt4_test_include" ; then
128        qt4_incdir="$it"
129        break
130    fi
131done
132AC_MSG_RESULT([$qt4_incdir])
133
134dnl Check for Qt4 libraries
135AC_MSG_CHECKING([for $1 libraries])
136qt4_libdir="no"
137for qt4_check in $qt4_libdirs ; do
138    if test -r "$qt4_check/$qt4_test_la_library" ; then
139        qt4_libdir="$qt4_check"
140        break
141    fi
142
143    if test -r "$qt4_check/$qt4_test_library" ; then
144        qt4_libdir="$qt4_check"
145        break
146    fi
147
148    if test -r "$qt4_check/$qt4_windows_test_library" ; then
149        qt4_libdir="$qt4_check"
150        windows_qt="yes"
151        break
152    fi
153done
154AC_MSG_RESULT([$qt4_libdir])
155
156if test "x$qt4_libdir" != "xno" ; then
157    if test "x$qt4_incdir" != "xno" ; then
158        have_qt4=yes;
159    fi
160fi
161
162if test "x$have_qt4" == "xyes"; then
163    QT_CXXFLAGS="-I$qt4_incdir -I$qt4_incdir/QtGui -I$qt4_incdir/QtCore -I$qt4_incdir/QtOpenGL -I$qt4_incdir/Qt3Support"
164    if test x$windows_qt = xyes; then
165	QT_LDADD="-L$qt4_libdir -lQtCore4 -lQtGui4 -lQtOpenGL4 -lQt3Support4"
166    else
167	QT_LDADD="-L$qt4_libdir -lQtCore -lQtGui -lQtOpenGL -lQt3Support"
168    fi
169	AC_SUBST(QT_CXXFLAGS)
170	AC_SUBST(QT_LDADD)
171    ifelse([$2], , :, [$2])
172else
173    ifelse([$3], , [AC_MSG_FAILURE(dnl
174[$1 development libraries not found])],
175  	   [$3])
176fi
177
178dnl Check that moc is in path
179AC_CHECK_PROG(MOC, moc-qt4, moc-qt4)
180if test x$MOC = x ; then
181	AC_CHECK_PROG(MOC, moc, moc)
182	if test x$MOC = x ; then
183		AC_MSG_ERROR([*** moc must be in path])
184	fi
185fi
186])
187
188
189# HOA_FIND_QT4TEST(VARIABLE-PREFIX,
190#                  [ACTION-IF-FOUND],
191#                  [ACTION-IF-NOT-FOUND])
192#
193# Check whether the Qt4 libraries are available. Adapted from Poppler qt.m4.
194#
195# --------------------------------------------------------------
196AC_DEFUN([HOA_FIND_QT4TEST],
197[
198have_qt4testlib=no
199
200qt4_incdirs="/usr/local/qt/include /usr/include/qt4 /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt/include"
201qt4_libdirs="/usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt/lib"
202
203if test -n "$QTDIR" ; then
204    qt4_incdirs="$QTDIR/include $qt4_incdirs"
205    qt4_libdirs="$QTDIR/lib $qt4_libdirs"
206fi
207
208dnl What to test
209qt4test_test_include="QtTest/QtTest"
210qt4test_test_la_library="libQtTest.la"
211qt4test_test_library="libQtTest.so"
212
213dnl Check for QtTestLib headers
214AC_MSG_CHECKING([for QtTestLib headers])
215qt4test_incdir="no"
216for it in $qt4_incdirs ; do
217    if test -r "$it/$qt4test_test_include" ; then
218        qt4test_incdir="$it"
219        break
220    fi
221done
222AC_MSG_RESULT([$qt4test_incdir])
223
224dnl Check for Qt4 libraries
225AC_MSG_CHECKING([for QtTestLib libraries])
226qt4test_libdir="no"
227for qt4test_check in $qt4_libdirs ; do
228    if test -r "$qt4test_check/$qt4test_test_la_library" ; then
229        qt4test_libdir="$qt4test_check"
230        break
231    fi
232
233    if test -r "$qt4test_check/$qt4test_test_library" ; then
234        qt4test_libdir="$qt4test_check"
235        break
236    fi
237done
238AC_MSG_RESULT([$qt4test_libdir])
239
240if test "x$qt4test_libdir" != "xno" ; then
241    if test "x$qt4test_incdir" != "xno" ; then
242        have_qt4testlib=yes;
243    fi
244fi
245
246if test "x$have_qt4testlib" == "xyes"; then
247    $1[]_CXXFLAGS="-I$qt4test_incdir"
248    $1[]_LIBS="-L$qt4test_libdir -lQtTest"
249    ifelse([$2], , :, [$2])
250else
251    ifelse([$3], , [AC_MSG_FAILURE(dnl
252[Qt4 test libraries not found])],
253  	   [$3])
254fi
255])
256