updated libchamplain code
[geeqie.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.  -*- Autoconf
2  -*-
3
4 dnl This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
5 dnl Copyright (C) 2008 - 2012 The Geeqie Team
6 dnl
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16
17 AC_PREREQ(2.57)
18 AC_INIT(geeqie, 1.1, geeqie-devel@lists.sourceforge.net)
19
20 # Check for rightly dirs
21 AC_CONFIG_SRCDIR([src/main.c])
22
23 AC_CONFIG_AUX_DIR(auxdir)
24 AM_INIT_AUTOMAKE
25
26 AC_CONFIG_HEADER([config.h])
27
28 # Only for developers
29 AM_MAINTAINER_MODE
30
31 AC_ARG_ENABLE(developer, [
32 Development options:
33 AC_HELP_STRING([--enable-developer], [turn on developers mode [default=no]])],
34 [
35   __IS_DEVELOPER=yes
36 ],
37 [
38 if test "x${enable_developer}" != "xyes"
39 then
40   __IS_DEVELOPER=no
41 else
42   __IS_DEVELOPER=yes
43 fi
44 ])
45
46 DX_HTML_FEATURE(ON)
47 DX_CHM_FEATURE(OFF)
48 DX_CHI_FEATURE(OFF)
49 DX_MAN_FEATURE(OFF)
50 DX_RTF_FEATURE(OFF)
51 DX_XML_FEATURE(OFF)
52 DX_PDF_FEATURE(OFF)
53 DX_PS_FEATURE(OFF)
54
55 DX_INIT_DOXYGEN($PACKAGE_NAME, doxygen.conf, doc/doxygen)
56
57 #  Debug support
58 # ----------------------------------------------------------------------
59
60 dnl Debugging option
61 dnl FIXME: official release convert default to 'no'
62 dnl
63
64 AC_ARG_ENABLE([debug-flags], [
65 Development options:
66 AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
67 [
68 if test "x${enable_developer}" != "xyes"
69 then
70   enable_debug_flags="no"
71 else
72   enable_debug_flags="yes"
73 fi
74 ])
75
76 AC_ARG_ENABLE([debug-log], [
77 Development options:
78 AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
79
80 if test "x${enable_debug_flags}" != "xno"
81 then
82   if test "x${enable_developer}" = "xyes"
83   then
84     CXXFLAGS="${CXXFLAGS} -Wall"
85     CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
86   fi
87   __COMMONFLAGS="-g -O0 -Wextra -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -Wno-unused-parameter -Wformat -Wformat-security -DGQ_DEBUG_PATH_UTF8=1"
88   CXXFLAGS="${CXXFLAGS} ${__COMMONFLAGS}"
89   CFLAGS="${CFLAGS} ${__COMMONFLAGS} -Wimplicit-int -Werror-implicit-function-declaration"
90   __IS_DEBUG_FLAGS=yes
91 else
92   __IS_DEBUG_FLAGS=no
93 fi
94
95 if test "x${enable_debug_log}" != "xno"
96 then
97   AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
98   __IS_DEBUG_LOG=yes
99 else
100   __IS_DEBUG_LOG=no
101 fi
102
103 AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
104
105 AC_ARG_ENABLE(deprecated, [
106 AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [],
107 [
108 if test "x${enable_developer}" != "xyes"
109 then
110   enable_deprecated="no"
111 else
112   enable_deprecated="yes"
113 fi
114 ])
115
116 if test "x${enable_deprecated}" != "xno"
117 then
118   CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
119   CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
120   __IS_DEPRECATED=yes
121 else
122   __IS_DEPRECATED=no
123 fi
124
125
126 AC_ISC_POSIX
127 AC_PROG_CC
128 AC_PROG_CXX
129 AC_STDC_HEADERS
130 AC_ARG_PROGRAM
131 AC_SYS_LARGEFILE
132 IT_PROG_INTLTOOL([0.35.0])
133
134
135 dnl checks for functions
136 AC_CHECK_FUNCS(strverscmp access fsync fflush)
137
138
139 # Check target architecture
140
141 # Check for Win32
142 AC_MSG_CHECKING([for some Win32 platform])
143 case "$target_os" in
144   mingw* | cygwin*)
145     platform_win32=yes
146     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
147     ;;
148   *)
149     platform_win32=no
150     ;;
151 esac
152 AC_MSG_RESULT([$platform_win32])
153 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
154
155 AC_MSG_CHECKING([for native Win32])
156 case "$target_os" in
157   mingw*)
158     os_win32=yes
159     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
160     os_unix=no
161     PATHSEP=';'
162     ;;
163   *)
164     os_win32=no
165     os_unix=yes
166     PATHSEP=':'
167     ;;
168 esac
169 AC_MSG_RESULT([$os_win32])
170 AC_SUBST(PATHSEP)
171 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
172 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
173
174 if test "$os_win32" = "yes"; then
175   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
176   AC_CHECK_TOOL(WINDRES, windres, :)
177 else
178   WINDRES=":"
179 fi
180
181 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
182 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
183 AC_SUBST(WINDRES)
184
185 dnl reasonable guesses for where stuff is installed
186 if test "x$prefix" = "xNONE"; then
187   prefix="/usr/local"
188 else
189   prefix=$prefix
190 fi
191
192 AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.))
193 AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--disable-gtk3], [use gtk2 instead of gtk3]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], [yes], [no])])
194
195 if test x$gtk3 == xyes; then
196     m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,AC_MSG_ERROR(GTK+ >= 3.0.0 not installed.))])
197 else
198     m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.12.0,,AC_MSG_ERROR(GTK+ >= 2.12.0 not installed.))])
199 fi
200
201 threads="auto"
202 AC_ARG_ENABLE([threads],
203   AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
204
205 have_gthread="no"
206 if test "x${threads}" != "xno" ; then
207   PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
208 fi
209
210 if test "x$have_gthread" != "xno"; then
211         AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
212         GLIB_CFLAGS="$GTHREAD_CFLAGS"
213         GLIB_LIBS="$GTHREAD_LIBS"
214 fi
215
216
217 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
218 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
219
220 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
221             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
222 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
223             htmldir=$withval, htmldir="$readmedir/html")
224
225 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
226 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
227
228 AC_PATH_PROG(GNOME_DOC_TOOL, gnome-doc-tool)
229
230 AC_SUBST(readmedir)
231 AC_SUBST(htmldir)
232
233 eval "eval appdir=${datadir}/${PACKAGE}"
234 AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
235 AC_SUBST(appdir)
236
237 eval "eval gq_bindir=${prefix}/lib/${PACKAGE}"
238 AC_DEFINE_UNQUOTED([GQ_BIN_DIR], "$gq_bindir", [Location of helper scripts and executables])
239 AC_SUBST(gq_bindir)
240
241 #  LIRC support
242 # ----------------------------------------------------------------------
243
244 dnl Check for LIRC client support
245 AC_MSG_CHECKING(if LIRC support is enabled)
246 lirc=no
247 AC_ARG_ENABLE([lirc],
248   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
249 [
250 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
251   AC_MSG_RESULT(yes)
252   lirc=yes
253 else
254   AC_MSG_RESULT(no)
255   lirc=no
256 fi], AC_MSG_RESULT(no))
257
258
259 AC_ARG_WITH(lirc-prefix,
260 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
261 [
262 for dir in `echo "$withval" | tr : ' '`; do
263   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
264   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
265   done
266 ])
267
268 HAVE_LIRC=no
269 if test "x${lirc}" != "xno" ; then
270   AC_CHECK_HEADER(lirc/lirc_client.h,
271     [AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=yes;LIBS=-llirc_client $LIBS;AC_DEFINE([HAVE_LIRC],[],[Define to 1 if LIRC must be used])],,)],)
272 fi
273 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
274
275
276 #  LCMS support
277 # ----------------------------------------------------------------------
278
279 AC_ARG_ENABLE([lcms],
280   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
281     [liblcms=$enableval], [liblcms=auto])
282
283 if test "x${liblcms}" != "xno"; then
284   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
285     [
286       HAVE_LCMS=yes
287       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
288     ],
289     [
290       HAVE_LCMS=no
291       AC_MSG_WARN([$LCMS_PKG_ERRORS])
292     ])
293 else
294   HAVE_LCMS=disabled
295 fi
296
297 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
298 AC_SUBST(LCMS_CFLAGS)
299 AC_SUBST(LCMS_LIBS)
300
301 #  libjpeg support
302 # ----------------------------------------------------------------------
303
304 AC_ARG_ENABLE([jpeg],
305   AC_HELP_STRING([--disable-jpeg], [disable direct jpeg support]),
306     [libjpeg=$enableval], [libjpeg=auto])
307
308 if test "x${libjpeg}" != "xno"; then
309   AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
310       HAVE_JPEG=yes
311       JPEG_LIBS=-ljpeg
312       AC_DEFINE(HAVE_JPEG, 1, [define to enable use of custom jpeg loader]),
313       HAVE_JPEG=no)
314 else
315   HAVE_JPEG=disabled
316 fi
317
318 AM_CONDITIONAL(HAVE_JPEG, [test "x$HAVE_JPEG" = xyes])
319 AC_SUBST(JPEG_CFLAGS)
320 AC_SUBST(JPEG_LIBS)
321
322
323 #  libtiff support
324 # ----------------------------------------------------------------------
325
326 AC_ARG_ENABLE([tiff],
327   AC_HELP_STRING([--disable-tiff], [disable direct tiff support]),
328     [libtiff=$enableval], [libtiff=auto])
329
330 if test "x${libtiff}" != "xno"; then
331   AC_CHECK_LIB(tiff, TIFFClientOpen,
332       HAVE_TIFF=yes
333       TIFF_LIBS=-ltiff
334       AC_DEFINE(HAVE_TIFF, 1, [define to enable use of custom tiff loader]),
335       HAVE_TIFF=no)
336 else
337   HAVE_TIFF=disabled
338 fi
339
340 AM_CONDITIONAL(HAVE_TIFF, [test "x$HAVE_TIFF" = xyes])
341 AC_SUBST(TIFF_CFLAGS)
342 AC_SUBST(TIFF_LIBS)
343
344
345 #  Exiv2 support
346 # ----------------------------------------------------------------------
347
348 AC_ARG_ENABLE([exiv2],
349   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
350     [libexiv2=$enableval], [libexiv2=auto])
351
352 if test "x${libexiv2}" != "xno"; then
353   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
354     [
355       HAVE_EXIV2=yes
356       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
357     ],
358     [
359       HAVE_EXIV2=no
360       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
361     ])
362 else
363   HAVE_EXIV2=disabled
364 fi
365
366 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
367 AC_SUBST(EXIV2_CFLAGS)
368 AC_SUBST(EXIV2_LIBS)
369
370
371 #  Gettext support
372 # ----------------------------------------------------------------------
373
374 dnl Set of available languages
375 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
376 AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
377
378 GETTEXT_PACKAGE=$PACKAGE
379 AC_SUBST(GETTEXT_PACKAGE)
380 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
381 AM_GLIB_GNU_GETTEXT
382 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
383
384 AC_SUBST(CFLAGS)
385 AC_SUBST(CXXFLAGS)
386 AC_SUBST(CPPFLAGS)
387 AC_SUBST(LDFLAGS)
388
389
390 #  Libchamplain support - used for GPS map facility - experimental
391 # ----------------------------------------------------------------------
392
393 AC_ARG_ENABLE([gps],
394   AC_HELP_STRING([--enable-gps], [enable GPS map support - experimental]),
395     [libgps=$enableval], [libgps=auto])
396
397 if test "x${libgps}" = "xyes"; then
398   PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.12 >= 0.12],
399     [
400       HAVE_LIBCHAMPLAIN=yes
401       AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of GPS maps])
402     ],
403     [
404       HAVE_LIBCHAMPLAIN=no
405       AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
406     ])
407 else
408   HAVE_LIBCHAMPLAIN=disabled
409 fi
410
411 if test "x${libgps}" = "xyes"; then
412   PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.12 >= 0.12],
413     [
414       HAVE_LIBCHAMPLAIN_GTK=yes
415       AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of GPS maps])
416     ],
417     [
418       HAVE_LIBCHAMPLAIN_GTK=no
419       AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
420     ])
421 else
422   HAVE_LIBCHAMPLAIN_GTK=disabled
423 fi
424
425 AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
426 AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
427 AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
428
429 AH_TOP([
430 /** \file
431  * \short autogenerated definition by autoheader.
432  * \author Bruclik
433  */
434
435 /*
436  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
437  *  Copyright (C) 2008 - 2012 The Geeqie Team
438  *
439  *  This program is free software; you can redistribute it and/or modify
440  *  it under the terms of the GNU General Public License as published by
441  *  the Free Software Foundation; either version 2 of the License, or
442  *  (at your option) any later version.
443  *
444  *  This program is distributed in the hope that it will be useful,
445  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
446  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
447  *  GNU General Public License for more details.
448  */
449
450 #ifndef _INCLUDE_CONFIG_H
451 #define _INCLUDE_CONFIG_H
452 ])
453
454 AH_BOTTOM([#endif])
455
456 dnl Write the output
457 dnl
458
459 AC_CONFIG_FILES([
460     Makefile
461     src/Makefile
462     src/icons/Makefile
463     src/icons/svg/Makefile
464     po/Makefile.in
465     doc/Makefile
466     plugins/Makefile
467     plugins/symlink/Makefile
468     plugins/rotate/Makefile
469     plugins/ufraw/Makefile
470     plugins/import/Makefile
471     geeqie.spec
472 ])
473
474 AC_OUTPUT
475 dnl Print the results
476 dnl
477
478 cat > config.report << END
479
480      Config results:
481     -=-=-=-=-=-=-=-=-
482
483 Package:
484   Name:          $PACKAGE_NAME
485   Version:       $PACKAGE_VERSION
486   Patch version: $GQ_PATCH_VERSION
487   Date:          $GQ_PATCH_DATE
488
489 Architecture:
490   UNIX:          $os_unix
491   Win32:         $platform_win32 (native: $os_win32)
492
493 Flags:
494   Geeqie:        $GQ_CFLAGS
495   DEFS:          $DEFS
496   CPPFLAGS:      $__CPPFLAGS
497   CFLAGS:        $CFLAGS
498   CXXFLAGS:      $CXXFLAGS
499   Gtk:           $GTK_CFLAGS
500   Glib:          $GLIB_CFLAGS
501   Thread:        $GTHREAD_LIBS
502   Others:        $JPEG_LIBS $TIFF_LIBS $LCMS_LIBS $EXIV2_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS
503
504 Localization:
505   NLS support:   $USE_NLS
506   LINGUAS:       $LINGUAS
507
508 Settings:
509   Developer:     $__IS_DEVELOPER
510   Debug flags:   $__IS_DEBUG_FLAGS
511   Debug log:     $__IS_DEBUG_LOG
512   Deprecated:    $__IS_DEPRECATED
513
514 Support:
515   LCMS:          $HAVE_LCMS
516   Exiv2:         $HAVE_EXIV2
517   Lirc:          $HAVE_LIRC
518   Libchamplain:         $HAVE_LIBCHAMPLAIN
519   Libchamplain-gtk:     $HAVE_LIBCHAMPLAIN_GTK
520
521 Documentation:
522   Doxygen:       $DOXYGEN
523   Formats:       $doxy_formats_report
524   doc-tool:      $GNOME_DOC_TOOL
525
526 END
527
528 cat config.report
529 cat <<EOF
530
531   Now you can type "make" to build Geeqie
532   (or you take blue pill and the story ends :)
533
534 EOF
535