2 # This file is part of maemo-mapper
4 # Copyright (C) 2006 John Costigan.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along
17 # with this program; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 AM_INIT_AUTOMAKE(mapper, 1.0.3.95)
23 AC_CONFIG_MACRO_DIR(m4)
27 AC_CONFIG_HEADERS(src/config.h)
31 # ^That should do it but for some reason it won't so hack it:
32 # CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
34 AC_DEFINE(_FILE_OFFSET_BITS, 64, [Enable LFS])
35 AC_DEFINE(_GNU_SOURCE, 1, [Enable GNU Extensions])
37 dnl PKG_PROG_PKG_CONFIG
39 dnl Debugging options to enable debug macros
41 AC_ARG_ENABLE(debug, [ --enable-debug compile with DEBUG],,enable_debug=no)
43 if test "x$enable_debug" = "xyes"; then
44 DEBUG_FLAGS="$DEBUG_FLAGS -DDEBUG -g -fno-omit-frame-pointer"
46 DEBUG_FLAGS="$DEBUG_FLAGS -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT"
49 CFLAGS="$CFLAGS $DEBUG_FLAGS -Wall -Wmissing-prototypes -Wmissing-declarations"
51 PKG_CHECK_MODULES(GLIBGTK, glib-2.0 gconf-2.0 dbus-glib-1 gtk+-2.0)
52 AC_SUBST(GLIBGTK_LIBS)
53 AC_SUBST(GLIBGTK_CFLAGS)
55 AC_PATH_PROG(GCONFTOOL, gconftool-2)
58 dnl Maemo has 3.8, but prefer new version in case it's available
59 PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.14, HAVE_GTKHTML=yes, HAVE_GTKHTML=no)
60 if test "x$HAVE_GTKHTML" = "xno"; then
61 PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8)
63 AC_SUBST(GTKHTML_LIBS)
64 AC_SUBST(GTKHTML_CFLAGS)
66 PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0 >= 2.8.4.11 gnome-vfs-module-2.0 >= 2.8.4.11)
67 AC_SUBST(GNOME_VFS_LIBS)
68 AC_SUBST(GNOME_VFS_CFLAGS)
70 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.6.16)
71 AC_SUBST(LIBXML2_LIBS)
72 AC_SUBST(LIBXML2_CFLAGS)
74 PKG_CHECK_MODULES(LIBCURL, libcurl)
75 AC_SUBST(LIBCURL_LIBS)
76 AC_SUBST(LIBCURL_CFLAGS)
78 PKG_CHECK_MODULES(SQLITE, sqlite3)
80 AC_SUBST(SQLITE_CFLAGS)
82 AC_ARG_ENABLE([770],AS_HELP_STRING([--enable-770],[Build for Nokia 770/N800]),
83 [enable_770=$enableval], [enable_770=no])
85 AC_ARG_ENABLE([gst],AS_HELP_STRING([--enable-gst],[Enable support for gstreamer]),
86 [enable_gst=$enableval], [enable_gst=no])
88 AC_ARG_ENABLE([hildon],AS_HELP_STRING([--enable-hildon],[Build for Hildon]),
89 [enable_hildon=$enableval], [enable_hildon=no])
91 AC_ARG_ENABLE([itbtdbus],AS_HELP_STRING([--enable-itbtdbus],[Use IT D-Bus Bluetooth interface]),
92 [enable_itbtdbus=$enableval], [enable_itbtdbus=no])
94 AC_ARG_ENABLE([btdbus],AS_HELP_STRING([--enable-btdbus],[Use D-Bus bluez interface]),
95 [enable_btdbus=$enableval], [enable_btdbus=no])
97 AC_ARG_ENABLE([bluez],AS_HELP_STRING([--enable-bluez],[Use bluez libbluetooth]),
98 [enable_bluez=$enableval], [enable_bluez=no])
100 AC_ARG_ENABLE([gpsd],AS_HELP_STRING([--enable-gpsd],[Use gpsd]),
101 [enable_gpsd=$enableval], [enable_gpsd=no])
103 AC_ARG_ENABLE([gypsy],AS_HELP_STRING([--enable-gypsy],[Use gypsy]),
104 [enable_gypsy=$enableval], [enable_gypsy=no])
106 AC_ARG_ENABLE([geoclue],AS_HELP_STRING([--enable-geoclue],[Use geoclue]),
107 [enable_geoclue=$enableval], [enable_geoclue=no])
109 AC_ARG_ENABLE([hal],AS_HELP_STRING([--enable-hal],[Use HAL for special hardware keys]),
110 [enable_hal=$enableval], [enable_hal=no])
112 AC_ARG_ENABLE([cairo],AS_HELP_STRING([--enable-cairo],[Use cairo]),
113 [enable_cairo=$enableval], [enable_cairo=no])
115 AC_ARG_ENABLE([opengl],AS_HELP_STRING([--enable-opengl],[Use OpenGL (gtkglext]),
116 [enable_opengl=$enableval], [enable_opengl=no])
120 if test "x$enable_cairo" = "xyes" ; then
121 PKG_CHECK_MODULES(CAIRO, cairo)
123 AC_SUBST(CAIRO_CFLAGS)
124 AC_DEFINE([WITH_CAIRO], 1, [Draw using cairo])
127 if test "x$enable_opengl" = "xyes" ; then
128 PKG_CHECK_MODULES(GTKGLEXT, gtkglext-x11-1.0)
129 AC_SUBST(GTKGLEXT_LIBS)
130 AC_SUBST(GTKGLEXT_CFLAGS)
131 AC_DEFINE([WITH_GL], 1, [Draw using OpenGL])
134 if test "x$enable_770" = "xno" ; then
139 AC_DEFINE([WITH_DEVICE_770], 1, [With 770/N800 specific code])
142 if test "x$enable_hal" = "xyes" ; then
143 PKG_CHECK_MODULES(HAL, hal, HAVE_HAL=yes, HAVE_HAL=no)
144 if test "x$HAVE_HAL" = "xyes"; then
147 AC_DEFINE([WITH_HAL], 1, [Listen to special events using HAL])
149 AC_MSG_NOTICE([HAL support requested but not found, disabling])
153 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
155 if test "x$enable_itbtdbus" = "xno" ; then
156 WITH_HILDON_DBUS_BT=no
159 WITH_HILDON_DBUS_BT=yes
160 AC_CHECK_HEADERS([bt-dbus.h], [ac_cv_btdbus_h=yes])
161 AC_DEFINE([WITH_HILDON_DBUS_BT], 1, [IT D-Bus bluetooth])
164 if test "x$enable_bluez" = "xno" ; then
167 PKG_CHECK_MODULES(BLUEZ, bluez, HAVE_BLUEZ=yes, HAVE_BLUEZ=no)
168 if test "x$HAVE_BLUEZ" = "xyes"; then
170 AC_SUBST(BLUEZ_CFLAGS)
172 AC_DEFINE([WITH_BLUEZ], 1, [Bluez RFCOMM])
176 if test "x$enable_btdbus" = "xno" ; then
177 WITH_BLUEZ_DBUS_BT=no
179 WITH_BLUEZ_DBUS_BT=yes
180 AC_DEFINE([WITH_BLUEZ_DBUS_BT], 1, [bluez D-Bus bluetooth])
183 AM_CONDITIONAL(HAVE_BLUEZ, [test "$enable_bluez" = "yes"])
184 AM_CONDITIONAL(HAVE_HILDON_DBUS_BT, [test "$enable_itbtdbus" = "yes"])
185 AM_CONDITIONAL(HAVE_BLUEZ_DBUS_BT, [test "$enable_btdbus" = "yes"])
187 if test "x$enable_hildon" = "xyes" ; then
188 dnl Ckeck for hildon-libs
189 PKG_CHECK_MODULES(HILDON, hildon-libs, HAVE_HILDON=yes, HAVE_HILDON=no)
191 if test "x$HAVE_HILDON" = "xno"; then
192 PKG_CHECK_MODULES(HILDON, hildon-1, HAVE_HILDON1=yes, HAVE_HILDON1=no)
195 if test "x$HAVE_HILDON" = "xyes"; then
196 AC_DEFINE(WITH_HILDON, 1, [build with Maemo/Hildon user interface])
205 if test "x$HAVE_HILDON1" = "xyes"; then
206 AC_DEFINE(WITH_HILDON, 1, [build with Maemo/Hildon user interface])
207 AC_DEFINE(WITH_HILDON_NEW, 1, [build with new Hildon libs])
213 dnl make HILDON_CFLAGS and HILDON_LIBS available
214 if test "x$HAVE_HILDON" = "xyes"; then
215 AC_SUBST(HILDON_CFLAGS)
216 AC_SUBST(HILDON_LIBS)
218 PKG_CHECK_MODULES(OSSO, libosso >= 1, HAVE_OSSO=yes, HAVE_OSSO=no)
219 if test "x$HAVE_OSSO" = "xyes"; then
220 AC_DEFINE(WITH_OSSO, 1, [build with Nokia osso])
222 AC_SUBST(OSSO_CFLAGS)
227 if test "x$HAVE_OSSO" = "xyes"; then
229 PKG_CHECK_MODULES(CONIC, conic, CONIC=yes, CONIC=no)
230 if test "x$CONIC" = "xyes"; then
231 AC_DEFINE(WITH_CONIC, 1, [build with Nokia Internet Connectivity library])
233 AC_SUBST(CONIC_CFLAGS)
236 PKG_CHECK_MODULES(OSSO_IC, osso-ic, HAVE_OSSO_IC=yes, HAVE_OSSO_IC=no)
237 if test "x$HAVE_OSSO_IC" = "xyes"; then
238 AC_DEFINE(WITH_OSSO_IC, 1, [build with Nokia osso ic])
239 AC_SUBST(OSSO_IC_LIBS)
240 AC_SUBST(OSSO_IC_CFLAGS)
246 PKG_CHECK_MODULES(HILDON_HELP, hildon-help, HAVE_HILDON_HELP=yes, HAVE_HILDON_HELP=no)
247 if test "x$HAVE_HILDON_HELP" = "xyes"; then
248 AC_DEFINE(WITH_HILDON_HELP, 1, [build with Nokia hildon help (new)])
249 AC_SUBST(HILDON_HELP_LIBS)
250 AC_SUBST(HILDON_HELP_CFLAGS)
253 PKG_CHECK_MODULES(OSSO_HELP, libossohelp, HAVE_OSSO_HELP=yes, HAVE_OSSO_HELP=no)
254 if test "x$HAVE_OSSO_HELP" = "xyes"; then
255 AC_DEFINE(WITH_OSSO_HELP, 1, [build with Nokia osso help (old)])
256 AC_SUBST(OSSO_HELP_LIBS)
257 AC_SUBST(OSSO_HELP_CFLAGS)
266 PKG_CHECK_MODULES(HILDONFM, hildon-fm, HAVE_HILDONFM=yes, HAVE_HILDONFM=no)
267 if test "x$HAVE_HILDONFM" = "xyes"; then
268 AC_DEFINE(WITH_HILDONFM, 1, [build with Hildon Filemanager 1])
269 AC_SUBST(HILDONFM_LIBS)
270 AC_SUBST(HILDONFM_CFLAGS)
273 PKG_CHECK_MODULES(HILDONFM, hildon-fm-2, HAVE_HILDONFM=yes, HAVE_HILDONFM=no)
274 if test "x$HAVE_HILDONFM" = "xyes"; then
275 AC_DEFINE(WITH_HILDONFM, 1, [build with Hildon Filemanager 2])
276 AC_SUBST(HILDONFM_LIBS)
277 AC_SUBST(HILDONFM_CFLAGS)
285 AM_CONDITIONAL(WITH_HILDON, test "x$HAVE_HILDON" = "xyes")
286 AM_CONDITIONAL(WITH_OSSO, test "x$HAVE_OSSO" = "xyes")
288 if test "x$enable_gpsd" = "xyes" ; then
289 AC_CHECK_HEADERS([gps.h], [ac_cv_gps_h=yes])
290 AC_CHECK_LIB(gps, gps_open,[ac_cv_libgps=yes] )
292 PKG_CHECK_MODULES(LIBGPSBT, gpsbt, HAVE_GPSBT=yes, HAVE_GPSBT=no)
293 if test "x$HAVE_GPSBT" = "xyes"; then
294 AC_DEFINE(WITH_GPSBT, 1, [Support gpsbt])
295 AC_SUBST(LIBGPSBT_CFLAGS)
296 AC_SUBST(LIBGPSBT_LIBS)
299 PKG_CHECK_MODULES(LIBGPSMGR, gpsmgr, HAVE_GPSMGR=yes, HAVE_GPSMGR=no)
300 if test "x$HAVE_GPSMGR" = "xyes"; then
301 AC_DEFINE(WITH_GPSMGR, 1, [Support gpsmgr])
302 AC_SUBST(LIBGPSMGR_CFLAGS)
303 AC_SUBST(LIBGPSMGR_LIBS)
306 if test "x$ac_cv_libgps" = xyes; then
307 AC_DEFINE(WITH_LIBGPS, 1, [build with gpsd])
310 AM_CONDITIONAL(HAVE_GPSD, [test "$enable_gpsd" = "yes"])
312 if test "x$enable_gypsy" = "xyes" ; then
313 PKG_CHECK_MODULES(GYPSY, gypsy, HAVE_GYPSY=yes, HAVE_GYPSY=no)
314 if test "x$HAVE_GEOCLUE" = "xyes"; then
315 AC_DEFINE(WITH_GYPSY, 1, [build with gypsy])
316 AC_SUBST(GYPSY_CFLAGS)
320 AM_CONDITIONAL(HAVE_GYPSY, [test "$enable_gypsy" = "yes"])
322 if test "x$enable_geoclue" = "xyes" ; then
323 PKG_CHECK_MODULES(GEOCLUE, geoclue, HAVE_GEOCLUE=yes, HAVE_GEOCLUE=no)
324 if test "x$HAVE_GEOCLUE" = "xyes"; then
325 AC_DEFINE(WITH_GEOCLUE, 1, [build with Geoclue])
326 AC_SUBST(GEOCLUE_CFLAGS)
327 AC_SUBST(GEOCLUE_LIBS)
330 AM_CONDITIONAL(HAVE_GEOCLUE, [test "$enable_geoclue" = "yes"])
332 if test "x$enable_gst" = "xyes" ; then
333 PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.10, HAVE_GST=yes, HAVE_GST=no)
334 if test "x$HAVE_GST" = "xyes"; then
335 AC_DEFINE(WITH_GST, 1, [build with Gstreamer])
336 GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstapp-0.10"
337 AC_SUBST(GSTREAMER_LIBS)
338 AC_SUBST(GSTREAMER_CFLAGS)
340 AC_MSG_ERROR([Gstreamer requested but can not be found.])
343 AM_CONDITIONAL(HAVE_GST, [test "$enable_gst" = "yes"])
345 AC_CHECK_HEADERS(bzlib.h,
346 BZ2_LIBS="$BZ2_LIBS -lbz2",
347 AC_MSG_ERROR([Mapper requires libbz2.])
351 AC_CHECK_LIB([expat], [XML_ParserCreate],
352 AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
356 AC_CHECK_HEADERS(expat.h,
357 EXPAT_LIBS="-lexpat",
358 AC_MSG_ERROR([Mapper requires libexpat.])
362 if test "x$HAVE_GST" = "xyes"; then
363 AC_CHECK_HEADER(espeak/speak_lib.h, HAVE_ESPEAK=yes, HAVE_ESPEAK=no)
364 if test "x$HAVE_ESPEAK" = "xyes"; then
365 ESPEAK_LIBS="-lespeak"
366 ESPEAK_CFLAGS="-I/usr/include/espeak"
367 AC_CHECK_LIB([espeak], [espeak_Initialize],
368 AC_DEFINE(WITH_ESPEAK, 1, [Defined if you have espeak])
369 AC_SUBST(ESPEAK_CFLAGS)
370 AC_SUBST(ESPEAK_LIBS))
372 AC_MSG_ERROR([Speech output requires espeak.])
377 if test "x$HAVE_HILDON" = "xyes"; then
378 localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`
382 AC_PROG_INTLTOOL([0.23])
383 GETTEXT_PACKAGE=$PACKAGE
384 AC_SUBST(GETTEXT_PACKAGE)
385 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "${GETTEXT_PACKAGE}", [Name of gettext package])
386 ALL_LINGUAS="en_US en_GB nl_NL it_IT bg_BG fi_FI"
389 if test "x$HAVE_HILDON" = "xyes"; then
390 # To make application visible in maemo Task Navigator it needs a Desktop
391 # file for the application.
392 # D-BUS service file is needed to be able to launch the maemo application
393 # and connect it to D-BUS services.
394 # The following line defines install directories for these files.
395 desktopentrydir=`$PKG_CONFIG osso-af-settings --variable=desktopentrydir`
396 serviceentrydir=`$PKG_CONFIG osso-af-settings --variable=dbusservicedir`
398 # Application pixmaps install directory
399 pixmapdir=`$PKG_CONFIG osso-af-settings --variable=hildonpixmapdir`
401 # Help file install directory
402 helpfile_engbdir=$datadir/osso-help/en_US
404 # Hildon control panel plugin install directories
405 pluginlibdir=`$PKG_CONFIG hildon-control-panel --variable=plugindir`
406 plugindesktopentrydir=`$PKG_CONFIG hildon-control-panel --variable=plugindesktopentrydir`
408 # Application icon install directories
409 icon_26x26dir=$datadir/icons/hicolor/26x26/hildon
410 icon_34x34dir=$datadir/icons/hicolor/34x34/hildon
411 icon_40x40dir=$datadir/icons/hicolor/40x40/hildon
412 icon_50x50dir=$datadir/icons/hicolor/50x50/hildon
413 icon_scalabledir=$datadir/icons/hicolor/scalable/hildon
415 # Help file install directory
416 helpfile_enusdir=$datadir/osso-help/en_US
417 helpfile_engbdir=$datadir/osso-help/en_GB
419 AC_SUBST(helpfile_enusdir)
420 AC_SUBST(helpfile_engbdir)
423 desktopentrydir=$datadir/applications
424 serviceentrydir=`$PKG_CONFIG dbus-1 --variable=session_bus_services_dir`
425 pixmapdir=$datadir/pixmaps
427 # Application icon install directories
428 icon_26x26dir=$datadir/icons/hicolor/26x26
429 icon_34x34dir=$datadir/icons/hicolor/34x34
430 icon_40x40dir=$datadir/icons/hicolor/40x40
431 icon_50x50dir=$datadir/icons/hicolor/50x50
432 icon_scalabledir=$datadir/icons/hicolor/scalable
436 # Define as variables in Makefiles
437 AC_SUBST(desktopentrydir)
438 AC_SUBST(serviceentrydir)
441 AC_SUBST(icon_26x26dir)
442 AC_SUBST(icon_34x34dir)
443 AC_SUBST(icon_40x40dir)
444 AC_SUBST(icon_50x50dir)
445 AC_SUBST(icon_scalabledir)
446 AC_SUBST(pluginlibdir)
447 AC_SUBST(plugindesktopentrydir)
449 AC_DEFINE_UNQUOTED([LOCALEDIR], "${localedir}", [Runtime locale catalog files path])
450 AC_DEFINE_UNQUOTED([PIXMAPDIR], "${pixmapdir}", [Runtime pixmap files path])
452 # Produce output files
455 libs/libgtkgps/Makefile \
456 libs/libgtkmap/Makefile \
459 docs/reference/Makefile \
460 docs/reference/libgtkmap/Makefile \
467 if test x$enable_hildon = xyes; then
468 AC_MSG_NOTICE([** Hildon support enabled])
471 if test x$enable_770 = xyes; then
472 AC_MSG_NOTICE([** Tablet support enabled])
475 if test x$enable_itbtdbus = xyes; then
476 AC_MSG_NOTICE([** Tablet bluetooth D-Bus support enabled])
479 if test x$enable_bluez = xyes; then
480 AC_MSG_NOTICE([** Bluez support enabled])
483 if test x$enable_btdbus = xyes; then
484 AC_MSG_NOTICE([** Bluez D-Bus support enabled])
487 if test x$enable_gpsd = xyes; then
488 AC_MSG_NOTICE([** GPSD support enabled])
491 if test x$enable_gypsy = xyes; then
492 AC_MSG_NOTICE([** Gypsy D-Bus GPS support enabled])
495 if test x$enable_gst = xyes; then
496 AC_MSG_NOTICE([** Gstreamer support enabled])
499 if test "x$HAVE_ESPEAK" = "xyes"; then
500 AC_MSG_NOTICE([** espeak support enabled])
503 if test x$enable_cairo = xyes; then
504 AC_MSG_NOTICE([** Using cairo for graphics])
507 if test x$enable_opengl = xyes; then
508 AC_MSG_NOTICE([** Using OpenGL])