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