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