Imported Upstream version 3.2.2
[debian/gnuradio] / config / gr_qwt.m4
1 dnl
2 dnl Copyright 2007,2008 Free Software Foundation, Inc.
3 dnl 
4 dnl This file is part of GNU Radio
5 dnl 
6 dnl GNU Radio is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 3, or (at your option)
9 dnl any later version.
10 dnl 
11 dnl GNU Radio is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 dnl GNU General Public License for more details.
15 dnl 
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with GNU Radio; see the file COPYING.  If not, write to
18 dnl the Free Software Foundation, Inc., 51 Franklin Street,
19 dnl Boston, MA 02110-1301, USA.
20 dnl
21
22 dnl Configure paths for library qwt.
23 dnl
24 dnl GR_QWT([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
25 dnl
26 dnl Test for library qwt, set QWT_CFLAGS and QWT_LIBS if found. Assumes 
27 dnl QT_CFLAGS and QT_LIBS have already been correctly set.
28 dnl
29
30 AC_DEFUN([GR_QWT],
31 [
32     dnl QWT Library Version
33     QWT_LIBRARY1=-lqwt-qt4
34     QWT_LIBRARY2=-lqwt
35
36     dnl Save the environment
37     AC_LANG_PUSH(C++)
38     qwt_save_CPPFLAGS="$CPPFLAGS"
39     qwt_save_LIBS="$LIBS"
40     libqwt_ok=yes
41
42     dnl QWT Info
43     dnl Allow user to specify where QWT files are
44     AC_ARG_WITH([qwt-libdir],
45                 [  --with-qwt-libdir=path  Prefix where QWT library is installed (optional)],
46                 [qwt_libdir="$withval"], [qwt_libdir=""])
47
48     AC_ARG_WITH([qwt-incdir],
49                 [  --with-qwt-incdir=path  Prefix where QWT include files are (optional)],
50                 [qwt_incdir="$withval"], [qwt_incdir=""])
51     AC_ARG_WITH([qwt-lib],
52                 [  --with-qwt-lib=library  QWT library name (optional)],
53                 [qwt_lib="$withval"], [qwt_lib=""])
54
55     dnl Check for presence of header files
56     dnl if not user-specified, try the first include dir (Ubuntu), then
57     dnl try the second include dir (Fedora)
58     CPPFLAGS="$CPPFLAGS $QTCORE_CFLAGS"
59
60     dnl if not set by user
61     if test "$qwt_incdir" = "" ; then
62         dnl check qwt/qwt.h (as in Fedora)
63         AC_CHECK_HEADER(
64             [qwt/qwt.h],
65             [qwt_qwt_h=yes],
66             [qwt_qwt_h=no]
67         )
68         dnl If it was found, set the flags and move on
69         if test "$qwt_qwt_h" = "yes" ; then
70             QWT_CFLAGS="$QWT_CFLAGS -I/usr/include/qwt"
71         else
72             dnl otherwise, check qwt-qt4/qwt.h (as in Ubuntu)
73             AC_CHECK_HEADER(
74                 [qwt-qt4/qwt.h],
75                 [qwt_qt4_qwt_h=yes],
76                 [qwt_qt4_qwt_h=no]
77             )
78             dnl if it was found, set the flags and move on
79             if test "$qwt_qt4_qwt_h" = "yes" ; then
80                 QWT_CFLAGS="$QWT_CFLAGS -I/usr/include/qwt-qt4"
81             else
82                 dnl otherwise, qwt.h wasn't found, so set the flag to no
83                 libqwt_ok=no
84             fi
85         fi
86     else
87         dnl Using the user-specified include directory
88         QWT_CFLAGS="$QWT_CFLAGS -I$qwt_incdir"
89         AC_CHECK_HEADER(
90             [$qwt_incdir/qwt.h],
91             [],
92             [libqwt_ok=no])
93     fi
94
95     dnl Don't bother going on if we can't find the headers
96     if test "$libqwt_ok" = "yes" ; then
97
98         dnl Check for QWT library (qwt or qwt-qt4)
99
100         dnl User-defined QWT library path
101         if test "$qwt_libdir" != "" ; then
102             QWT_LIBS="-L$qwt_libdir $QWT_LIBS"
103         fi
104
105         dnl temporarily set these so the AC_CHECK_LIB works
106         CPPFLAGS="$CPPFLAGS $QWT_CFLAGS"
107         LIBS="$qwt_save_LIBS $QT_LIBS $QWT_LIBS -lqwt"
108
109         dnl If the user specified a qwt library name, use it here
110         if test "$qwt_lib" != "" ; then
111             AC_CHECK_LIB([$qwt_lib], [main], [libqwt_ok=yes], [libqwt_ok=no])
112
113         else            
114             dnl Check for 'main' in libqwt (Fedora)
115             AC_CHECK_LIB([qwt], [main], [libqwt_ok=yes], [libqwt_ok=no])
116
117             dnl If library found properly, set the flag and move on
118             if test "$libqwt_ok" = "yes" ; then
119                 QWT_LIBS="$QWT_LIBS -lqwt"
120             else
121                 dnl Otherwise, check for 'main' in libqwt-qt4 (Ubuntu)
122                 LIBS="$qwt_save_LIBS $QT_LIBS $QWT_LIBS -lqwt-qt4"
123                 AC_CHECK_LIB([qwt-qt4], [main], [libqwt_ok=yes], [libqwt_ok=no])
124                 if test "$libqwt_ok" = "yes" ; then
125                     QWT_LIBS="$QWT_LIBS -lqwt-qt4"
126                 else
127                     AC_MSG_RESULT([Could not link to libqwt.so])
128                 fi
129             fi
130         fi
131     else
132         AC_MSG_RESULT([Could not find qwt headers])
133     fi
134
135     dnl Restore saved variables
136     LIBS="$qwt_save_LIBS"
137     CPPFLAGS="$qwt_save_CPPFLAGS"
138     AC_LANG_POP
139
140     dnl Execute user actions
141     if test "x$libqwt_ok" = "xyes" ; then
142         ifelse([$1], , :, [$1])
143     else
144         QWT_CFLAGS=""
145         QWT_LIBDIRS=""
146         ifelse([$2], , :, [$2])
147     fi
148
149     dnl Export our variables
150     AC_SUBST(QWT_CFLAGS)
151     AC_SUBST(QWT_LIBS)
152 ])