Merge branch 'ke' into ke-lua
[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 - 2010 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.0, 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 IT_PROG_INTLTOOL([0.35.0])
132
133
134 dnl checks for functions
135 AC_CHECK_FUNCS(strverscmp access fsync fflush)
136
137
138 # Check target architecture
139
140 # Check for Win32
141 AC_MSG_CHECKING([for some Win32 platform])
142 case "$target_os" in
143   mingw* | cygwin*)
144     platform_win32=yes
145     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
146     ;;
147   *)
148     platform_win32=no
149     ;;
150 esac
151 AC_MSG_RESULT([$platform_win32])
152 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
153
154 AC_MSG_CHECKING([for native Win32])
155 case "$target_os" in
156   mingw*)
157     os_win32=yes
158     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
159     os_unix=no
160     PATHSEP=';'
161     ;;
162   *)
163     os_win32=no
164     os_unix=yes
165     PATHSEP=':'
166     ;;
167 esac
168 AC_MSG_RESULT([$os_win32])
169 AC_SUBST(PATHSEP)
170 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
171 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
172
173 if test "$os_win32" = "yes"; then
174   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
175   AC_CHECK_TOOL(WINDRES, windres, :)
176 else
177   WINDRES=":"
178 fi
179
180 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
181 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
182 AC_SUBST(WINDRES)
183
184 dnl reasonable guesses for where stuff is installed
185 if test "x$prefix" = "xNONE"; then
186   prefix="/usr/local"
187 else
188   prefix=$prefix
189 fi
190
191 AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.))
192 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
193
194 threads="auto"
195 AC_ARG_ENABLE([threads],
196   AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
197
198 have_gthread="no"
199 if test "x${threads}" != "xno" ; then
200   PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
201 fi
202
203 if test "x$have_gthread" != "xno"; then
204         AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
205         GLIB_CFLAGS="$GTHREAD_CFLAGS"
206         GLIB_LIBS="$GTHREAD_LIBS"
207 fi
208
209
210 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
211 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
212
213 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
214             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
215 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
216             htmldir=$withval, htmldir="$readmedir/html")
217
218 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
219 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
220
221 AC_PATH_PROG(GNOME_DOC_TOOL, gnome-doc-tool)
222
223 AC_SUBST(readmedir)
224 AC_SUBST(htmldir)
225
226 eval "eval appdir=${datadir}/${PACKAGE}"
227 AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
228 AC_SUBST(appdir)
229
230 eval "eval gq_bindir=${prefix}/lib/${PACKAGE}"
231 AC_DEFINE_UNQUOTED([GQ_BIN_DIR], "$gq_bindir", [Location of helper scripts and executables])
232 AC_SUBST(gq_bindir)
233
234 #  LIRC support
235 # ----------------------------------------------------------------------
236
237 dnl Check for LIRC client support
238 AC_MSG_CHECKING(if LIRC support is enabled)
239 lirc=no
240 AC_ARG_ENABLE([lirc],
241   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
242 [
243 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
244   AC_MSG_RESULT(yes)
245   lirc=yes
246 else
247   AC_MSG_RESULT(no)
248   lirc=no
249 fi], AC_MSG_RESULT(no))
250
251
252 AC_ARG_WITH(lirc-prefix,
253 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
254 [
255 for dir in `echo "$withval" | tr : ' '`; do
256   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
257   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
258   done
259 ])
260
261 HAVE_LIRC=no
262 if test "x${lirc}" != "xno" ; then
263   AC_CHECK_HEADER(lirc/lirc_client.h,
264     [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])],,)],)
265 fi
266 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
267
268
269 #  LCMS support
270 # ----------------------------------------------------------------------
271
272 AC_ARG_ENABLE([lcms],
273   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
274     [liblcms=$enableval], [liblcms=auto])
275
276 if test "x${liblcms}" != "xno"; then
277   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
278     [
279       HAVE_LCMS=yes
280       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
281     ],
282     [
283       HAVE_LCMS=no
284       AC_MSG_WARN([$LCMS_PKG_ERRORS])
285     ])
286 else
287   HAVE_LCMS=disabled
288 fi
289
290 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
291 AC_SUBST(LCMS_CFLAGS)
292 AC_SUBST(LCMS_LIBS)
293
294 #  libjpeg support
295 # ----------------------------------------------------------------------
296
297 AC_ARG_ENABLE([jpeg],
298   AC_HELP_STRING([--disable-jpeg], [disable direct jpeg support]),
299     [libjpeg=$enableval], [libjpeg=auto])
300
301 if test "x${libjpeg}" != "xno"; then
302   AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
303       HAVE_JPEG=yes
304       JPEG_LIBS=-ljpeg
305       AC_DEFINE(HAVE_JPEG, 1, [define to enable use of custom jpeg loader]),
306       HAVE_JPEG=no)
307 else
308   HAVE_JPEG=disabled
309 fi
310
311 AM_CONDITIONAL(HAVE_JPEG, [test "x$HAVE_JPEG" = xyes])
312 AC_SUBST(JPEG_CFLAGS)
313 AC_SUBST(JPEG_LIBS)
314
315
316 #  libtiff support
317 # ----------------------------------------------------------------------
318
319 AC_ARG_ENABLE([tiff],
320   AC_HELP_STRING([--disable-tiff], [disable direct tiff support]),
321     [libtiff=$enableval], [libtiff=auto])
322
323 if test "x${libtiff}" != "xno"; then
324   AC_CHECK_LIB(tiff, TIFFClientOpen,
325       HAVE_TIFF=yes
326       TIFF_LIBS=-ltiff
327       AC_DEFINE(HAVE_TIFF, 1, [define to enable use of custom tiff loader]),
328       HAVE_TIFF=no)
329 else
330   HAVE_TIFF=disabled
331 fi
332
333 AM_CONDITIONAL(HAVE_TIFF, [test "x$HAVE_TIFF" = xyes])
334 AC_SUBST(TIFF_CFLAGS)
335 AC_SUBST(TIFF_LIBS)
336
337
338 #  Exiv2 support
339 # ----------------------------------------------------------------------
340
341 AC_ARG_ENABLE([exiv2],
342   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
343     [libexiv2=$enableval], [libexiv2=auto])
344
345 if test "x${libexiv2}" != "xno"; then
346   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
347     [
348       HAVE_EXIV2=yes
349       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
350     ],
351     [
352       HAVE_EXIV2=no
353       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
354     ])
355 else
356   HAVE_EXIV2=disabled
357 fi
358
359 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
360 AC_SUBST(EXIV2_CFLAGS)
361 AC_SUBST(EXIV2_LIBS)
362
363
364 #  Gettext support
365 # ----------------------------------------------------------------------
366
367 dnl Set of available languages
368 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
369 AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
370
371 GETTEXT_PACKAGE=$PACKAGE
372 AC_SUBST(GETTEXT_PACKAGE)
373 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
374 AM_GLIB_GNU_GETTEXT
375 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
376
377 AC_SUBST(CFLAGS)
378 AC_SUBST(CXXFLAGS)
379 AC_SUBST(CPPFLAGS)
380 AC_SUBST(LDFLAGS)
381
382
383 #  Libchamplain support - used for GPS map facility - experimental
384 # ----------------------------------------------------------------------
385
386 AC_ARG_ENABLE([gps],
387   AC_HELP_STRING([--enable-gps], [enable GPS map support - experimental]),
388     [libgps=$enableval], [libgps=auto])
389
390 if test "x${libgps}" = "xyes"; then
391   PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.4 >= 0.4],
392     [
393       HAVE_LIBCHAMPLAIN=yes
394       AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of GPS maps])
395     ],
396     [
397       HAVE_LIBCHAMPLAIN=no
398       AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
399     ])
400 else
401   HAVE_LIBCHAMPLAIN=disabled
402 fi
403
404 if test "x${libgps}" = "xyes"; then
405   PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.4 >= 0.4],
406     [
407       HAVE_LIBCHAMPLAIN_GTK=yes
408       AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of GPS maps])
409     ],
410     [
411       HAVE_LIBCHAMPLAIN_GTK=no
412       AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
413     ])
414 else
415   HAVE_LIBCHAMPLAIN_GTK=disabled
416 fi
417
418 AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
419 AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
420 AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
421
422 #  Lua support
423 # ----------------------------------------------------------------------
424
425 AC_ARG_ENABLE([lua],
426   AC_HELP_STRING([--disable-lua], [disable lua support]),
427     [liblua=$enableval], [liblua=auto])
428
429 if test "x${liblua}" != "xno"; then
430   PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1,
431     [
432       HAVE_LUA=yes
433       AC_DEFINE(HAVE_LUA, 1, [define to enable lua support])
434     ],
435     [
436       HAVE_LUA=no
437       AC_MSG_WARN([$LUA_PKG_ERRORS])
438     ])
439 else
440   HAVE_LUA=disabled
441 fi
442
443 AM_CONDITIONAL(HAVE_LUA, [test "x$HAVE_LUA" = xyes])
444 AC_SUBST(LUA_CFLAGS)
445 AC_SUBST(LUA_LIBS)
446
447 # ----------------------------------------------------------------------
448
449 AH_TOP([
450 /** \file
451  * \short autogenerated definition by autoheader.
452  * \author Bruclik
453  */
454
455 /*
456  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
457  *  Copyright (C) 2008 - 2010 The Geeqie Team
458  *
459  *  This program is free software; you can redistribute it and/or modify
460  *  it under the terms of the GNU General Public License as published by
461  *  the Free Software Foundation; either version 2 of the License, or
462  *  (at your option) any later version.
463  *
464  *  This program is distributed in the hope that it will be useful,
465  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
466  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
467  *  GNU General Public License for more details.
468  */
469
470 #ifndef _INCLUDE_CONFIG_H
471 #define _INCLUDE_CONFIG_H
472 ])
473
474 AH_BOTTOM([#endif])
475
476 dnl Write the output
477 dnl
478
479 AC_CONFIG_FILES([
480     Makefile
481     src/Makefile
482     src/icons/Makefile
483     src/icons/svg/Makefile
484     po/Makefile.in
485     doc/Makefile
486     plugins/Makefile
487     plugins/symlink/Makefile
488     plugins/rotate/Makefile
489     plugins/ufraw/Makefile
490     plugins/import/Makefile
491     geeqie.spec
492 ])
493
494 AC_OUTPUT
495 dnl Print the results
496 dnl
497
498 cat > config.report << END
499
500      Config results:
501     -=-=-=-=-=-=-=-=-
502
503 Package:
504   Name:          $PACKAGE_NAME
505   Version:       $PACKAGE_VERSION
506   Patch version: $GQ_PATCH_VERSION
507   Date:          $GQ_PATCH_DATE
508
509 Architecture:
510   UNIX:          $os_unix
511   Win32:         $platform_win32 (native: $os_win32)
512
513 Flags:
514   Geeqie:        $GQ_CFLAGS
515   DEFS:          $DEFS
516   CPPFLAGS:      $__CPPFLAGS
517   CFLAGS:        $CFLAGS
518   CXXFLAGS:      $CXXFLAGS
519   Gtk:           $GTK_CFLAGS
520   Glib:          $GLIB_CFLAGS
521   Thread:        $GTHREAD_LIBS
522   Others:        $JPEG_LIBS $TIFF_LIBS $LCMS_LIBS $EXIV2_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS $LUA_LIBS
523
524 Localization:
525   NLS support:   $USE_NLS
526   LINGUAS:       $LINGUAS
527
528 Settings:
529   Developer:     $__IS_DEVELOPER
530   Debug flags:   $__IS_DEBUG_FLAGS
531   Debug log:     $__IS_DEBUG_LOG
532   Deprecated:    $__IS_DEPRECATED
533
534 Support:
535   LCMS:          $HAVE_LCMS
536   Exiv2:         $HAVE_EXIV2
537   Lirc:          $HAVE_LIRC
538   Libchamplain:         $HAVE_LIBCHAMPLAIN
539   Libchamplain-gtk:     $HAVE_LIBCHAMPLAIN_GTK
540   Lua:           $HAVE_LUA
541
542 Documentation:
543   Doxygen:       $DOXYGEN
544   Formats:       $doxy_formats_report
545   doc-tool:      $GNOME_DOC_TOOL
546
547 END
548
549 cat config.report
550 cat <<EOF
551
552   Now you can type "make" to build Geeqie
553   (or you take blue pill and the story ends :)
554
555 EOF
556