1AC_INIT(src/main.cc)
2AC_PREREQ(2.52)
3AM_INIT_AUTOMAKE(fbdesk,1.4.1,no-define)
4
5
6AC_LANG_CPLUSPLUS
7
8dnl Locate required external software
9AC_PROG_CC
10AC_PROG_CXX
11AC_PROG_INSTALL
12AM_PROG_LIBTOOL
13
14
15dnl Check for system header files
16AC_HEADER_STDC
17AC_CHECK_HEADERS(fcntl.h signal.h sys/select.h sys/signal.h sys/stat.h sys/time.h sys/types.h sys/wait.h)
18AC_CHECK_HEADERS(sstream, ,
19        [ AC_CHECK_HEADERS(strstream,,
20            [AC_MSG_ERROR([Your libstdc++ doesn't have the sstream or strstream classes])]
21        )]
22)
23
24AC_HEADER_TIME
25dnl Determine the return type of signal handlers
26AC_TYPE_SIGNAL
27
28AC_CHECK_FUNCS(sigaction strcasestr)
29
30dnl Check for X headers and libraries
31AC_PATH_X
32AC_PATH_XTRA
33
34
35test x$no_x = "xyes" && AC_MSG_ERROR([fbdesk requires the X Window System libraries and headers.])
36
37test x$x_includes = "x" && x_includes="/usr/include"
38test x$x_libraries = "x" && x_libraries="/usr/lib"
39
40CFLAGS="$CFLAGS $X_CFLAGS"
41CXXFLAGS="$CXXFLAGS $X_CFLAGS"
42LIBS="$LIBS $X_LIBS"
43LDFLAGS="$LDFLAGS $LIBS $X_PRE_LIBS"
44
45dnl Check for required functions in -lX11
46AC_CHECK_LIB(X11, XOpenDisplay,
47  LIBS="$LIBS -lX11",
48  AC_MSG_ERROR([Could not find XOpenDisplay in -lX11.])
49)
50
51LIBS="$LIBS $X_EXTRA_LIBS"
52
53Xext_lib=""
54
55dnl Check for XShape extension support and proper library files.
56SHAPE=""
57AC_MSG_CHECKING([whether to build support for the XShape extension])
58AC_ARG_ENABLE(
59  shape, [  --enable-shape          enable support of the XShape extension [default=yes]])
60
61: ${enableval="yes"}
62if test x$enableval = "xyes"; then
63  AC_MSG_RESULT([yes])
64  AC_CHECK_LIB(Xext, XShapeCombineShape,
65    AC_MSG_CHECKING([for X11/extensions/shape.h])
66    AC_TRY_LINK(
67#include <X11/Xlib.h>
68#include <X11/Xutil.h>
69#include <X11/extensions/shape.h>
70, long foo = ShapeSet,
71      AC_MSG_RESULT([yes])
72	  AC_DEFINE(HAVE_SHAPE, 1, "Shape extension support")
73      Xext_lib="-lXext",
74      AC_MSG_RESULT([no])
75    )
76  )
77else
78  AC_MSG_RESULT([no])
79fi
80AC_SUBST(SHAPE)
81CXXFLAGS="$CXXFLAGS $SHAPE"
82LIBS="$LIBS $Xext_lib"
83
84XPM=false
85AC_MSG_CHECKING([whether to have Xpm (pixmap themes) support])
86AC_ARG_ENABLE(
87  xpm,
88[  --enable-xpm            Xpm (pixmap themes) support [default=yes]],
89  if test x$enableval = "xyes"; then
90	AC_MSG_RESULT([yes])
91	AC_CHECK_LIB(Xpm, XpmReadFileToPixmap,
92		AC_DEFINE(HAVE_XPM, 1, "Xpm support")
93		XPM=true
94		LIBS="$LIBS -lXpm")
95  else
96    AC_MSG_RESULT([no])
97  fi,
98  AC_MSG_RESULT([yes])
99  AC_CHECK_LIB(Xpm, XpmReadFileToPixmap,
100	AC_DEFINE(HAVE_XPM, 1, "Xpm support")
101	XPM=true
102	LIBS="$LIBS -lXpm")
103)
104
105AM_CONDITIONAL(XPM, test x$XPM = xtrue)
106
107dnl Check whether to include debugging code
108DEBUG=""
109AC_MSG_CHECKING([whether to include verbose debugging code])
110AC_ARG_ENABLE(debug,
111  [  --enable-debug          include verbose debugging code [default=no]],
112  if test x$enableval = "xyes"; then
113    AC_MSG_RESULT([yes])
114    DEBUG="-DDEBUG -fno-inline"
115  else
116    AC_MSG_RESULT([no])
117  fi,
118  AC_MSG_RESULT([no])
119)
120AC_SUBST(DEBUG)
121CXXFLAGS="$CXXFLAGS $DEBUG"
122
123AC_MSG_CHECKING([whether to have Xrender (transparent) support])
124AC_ARG_ENABLE(
125  xrender,
126[  --enable-xrender        Xrender (transparent) support [default=yes]],
127  if test x$enableval = "xyes"; then
128	AC_MSG_RESULT([yes])
129	AC_CHECK_LIB(Xrender, XRenderCreatePicture,
130		AC_DEFINE(HAVE_XRENDER, 1, "Xrender support")
131		LIBS="$LIBS -lXrender")
132  else
133    AC_MSG_RESULT([no])
134  fi,
135  AC_MSG_RESULT([yes])
136  AC_CHECK_LIB(Xrender, XRenderCreatePicture,
137	AC_DEFINE(HAVE_XRENDER, 1, "Xrender support")
138	LIBS="$LIBS -lXrender")
139)
140
141
142AC_MSG_CHECKING([whether to have Xft support])
143AM_PATH_XFT(yes,
144	XFT=true,
145	XFT=false
146)
147if test "x$XFT" = "xtrue" ; then
148	AC_DEFINE(USE_XFT, 1, "antialias support")
149	AC_MSG_CHECKING([Xft UTF-8 support])
150	AC_TRY_LINK([
151			#include <X11/Xft/Xft.h>
152		], [ XftDrawStringUtf8(0, 0, 0, 0, 0, 0, 0); return 0; ],
153		AC_DEFINE(HAVE_XFT_UTF8_STRING, 1, "Xft UTF8 support")
154		AC_MSG_RESULT(yes),
155		AC_MSG_RESULT(no)
156		)
157fi
158
159AM_CONDITIONAL(XFT, test x$XFT = xtrue)
160
161
162AC_MSG_CHECKING([whether to have Xmb (multibyte font, utf-8) support])
163AC_ARG_ENABLE(
164  xmb,
165[  --enable-xmb            Xmb (multibyte font, utf-8) support [default=yes]],
166  if test x$enableval = "xyes"; then
167	AC_MSG_RESULT([yes])
168	AC_DEFINE(USE_XMB, 1, "multibyte support")
169	MULTIBYTE=true
170  else
171    AC_MSG_RESULT([no])
172	MULTIBYTE=false
173  fi,
174  AC_MSG_RESULT([yes])
175  AC_DEFINE(USE_XMB, 1, "multibyte support")
176  MULTIBYTE=true
177)
178AM_CONDITIONAL(MULTIBYTE, test x$MULTIBYTE = xtrue)
179
180AC_ARG_ENABLE(png,--enable-png            support loading PNG images [default=yes],
181              , enable_png=yes)
182
183if test x$enable_png = xyes; then
184   AC_PATH_PROG(LIBPNG_CONFIG, libpng-config, no)
185   if test "x$LIBPNG_CONFIG" = "xno"; then
186        AC_CHECK_LIB(png, png_create_read_struct, have_libpng=yes, , -lz)
187        if test x$have_libpng != xyes; then
188            AC_MSG_WARN([Unable to find PNG library (http://www.libpng.org/pub/png/libpng.html)])
189        fi
190        dnl libpng requires libz
191        AC_CHECK_LIB(z, uncompress, have_libz=yes)
192        if test x$have_libz != xyes; then
193            AC_MSG_WARN([Unable to find Zlib library (http://www.gzip.org/zlib/)])
194        fi
195
196        if test x$have_libpng = xyes -a x$have_libz = xyes; then
197            LIBS="$LIBS -lpng -lz"
198            AC_DEFINE(HAVE_PNG, 1, "Png support")
199        else
200            AC_MSG_WARN(PNG image loading disabled)
201        fi
202
203    else dnl try with libpng-config
204        CXXFLAGS="$CXXFLAGS `libpng-config --cflags`"
205        LIBS="$LIBS `libpng-config --libs`"
206        have_libpng="yes"
207        AC_DEFINE(HAVE_PNG, 1, "Png support")
208    fi
209fi
210AM_CONDITIONAL(PNG, test x$have_libpng = xyes)
211
212dnl Check whether to use imlib2
213IMLIB2=true
214AC_MSG_CHECKING([whether to have Imlib2 (pixmap themes) support])
215AC_ARG_ENABLE(imlib2,
216    [AC_HELP_STRING([--enable-imlib2],
217                   [Imlib2 (pixmap themes) support [default=yes]])], ,
218                   [enable_imlib2=yes])
219if test x$enable_imlib2 = "xyes"; then
220    AC_MSG_RESULT([yes])
221    AC_PATH_GENERIC(imlib2, 1.0.0,
222      [
223         IMLIB2=true
224         AC_DEFINE(HAVE_IMLIB2, [], [Imlib2 support])
225         IMLIB2_LIBS=`imlib2-config --libs`
226         IMLIB2_CFLAGS=`imlib2-config --cflags`
227         LIBS="$LIBS $IMLIB2_LIBS"
228         CXXFLAGS="$CXXFLAGS $IMLIB2_CFLAGS"
229       ], [ AC_MSG_RESULT(no)]
230    )
231else
232    AC_MSG_RESULT([no])
233fi
234
235AM_CONDITIONAL(IMLIB2, test x$IMLIB2 = xtrue)
236
237
238
239dnl Print results
240AC_MSG_RESULT([])
241AC_MSG_RESULT([	$PACKAGE version $VERSION configured successfully.])
242AC_MSG_RESULT([])
243AC_MSG_RESULT([Using '$prefix' for installation.])
244AC_MSG_RESULT([Using '$CXX' for C++ compiler.])
245AC_MSG_RESULT([Building with '$CXXFLAGS' for C++ compiler flags.])
246AC_MSG_RESULT([Building with '$LIBS' for linker flags.])
247AC_MSG_RESULT([])
248
249dnl Output files
250AM_CONFIG_HEADER(config.h)
251
252AC_OUTPUT(
253Makefile
254version.h
255src/Makefile
256src/FbTk/Makefile
257)
258