Fix a small issue with strptime
[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 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
296 #  Exiv2 support
297 # ----------------------------------------------------------------------
298
299 AC_ARG_ENABLE([exiv2],
300   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
301     [libexiv2=$enableval], [libexiv2=auto])
302
303 if test "x${libexiv2}" != "xno"; then
304   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
305     [
306       HAVE_EXIV2=yes
307       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
308     ],
309     [
310       HAVE_EXIV2=no
311       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
312     ])
313 else
314   HAVE_EXIV2=disabled
315 fi
316
317 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
318 AC_SUBST(EXIV2_CFLAGS)
319 AC_SUBST(EXIV2_LIBS)
320
321
322 #  Gettext support
323 # ----------------------------------------------------------------------
324
325 dnl Set of available languages
326 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
327 AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
328
329 GETTEXT_PACKAGE=$PACKAGE
330 AC_SUBST(GETTEXT_PACKAGE)
331 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
332 AM_GLIB_GNU_GETTEXT
333 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
334
335 AC_SUBST(CFLAGS)
336 AC_SUBST(CXXFLAGS)
337 AC_SUBST(CPPFLAGS)
338 AC_SUBST(LDFLAGS)
339
340
341 #  Libchamplain support - used for GPS map facility - experimental
342 # ----------------------------------------------------------------------
343
344 AC_ARG_ENABLE([gps],
345   AC_HELP_STRING([--enable-gps], [enable GPS map support - experimental]),
346     [libgps=$enableval], [libgps=auto])
347
348 if test "x${libgps}" = "xyes"; then
349   PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.4 >= 0.4],
350     [
351       HAVE_LIBCHAMPLAIN=yes
352       AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of GPS maps])
353     ],
354     [
355       HAVE_LIBCHAMPLAIN=no
356       AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
357     ])
358 else
359   HAVE_LIBCHAMPLAIN=disabled
360 fi
361
362 if test "x${libgps}" = "xyes"; then
363   PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.4 >= 0.4],
364     [
365       HAVE_LIBCHAMPLAIN_GTK=yes
366       AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of GPS maps])
367     ],
368     [
369       HAVE_LIBCHAMPLAIN_GTK=no
370       AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
371     ])
372 else
373   HAVE_LIBCHAMPLAIN_GTK=disabled
374 fi
375
376 AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
377 AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
378 AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
379
380 AH_TOP([
381 /** \file
382  * \short autogenerated definition by autoheader.
383  * \author Bruclik
384  */
385
386 /*
387  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
388  *  Copyright (C) 2008 - 2010 The Geeqie Team
389  *
390  *  This program is free software; you can redistribute it and/or modify
391  *  it under the terms of the GNU General Public License as published by
392  *  the Free Software Foundation; either version 2 of the License, or
393  *  (at your option) any later version.
394  *
395  *  This program is distributed in the hope that it will be useful,
396  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
397  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
398  *  GNU General Public License for more details.
399  */
400
401 #ifndef _INCLUDE_CONFIG_H
402 #define _INCLUDE_CONFIG_H
403 ])
404
405 AH_BOTTOM([#endif])
406
407 dnl Write the output
408 dnl
409
410 AC_CONFIG_FILES([
411     Makefile
412     src/Makefile
413     src/icons/Makefile
414     src/icons/svg/Makefile
415     po/Makefile.in
416     doc/Makefile
417     plugins/Makefile
418     plugins/symlink/Makefile
419     plugins/rotate/Makefile
420     plugins/ufraw/Makefile
421     plugins/import/Makefile
422     geeqie.spec
423 ])
424
425 AC_OUTPUT
426 dnl Print the results
427 dnl
428
429 cat > config.report << END
430
431      Config results:
432     -=-=-=-=-=-=-=-=-
433
434 Package:
435   Name:          $PACKAGE_NAME
436   Version:       $PACKAGE_VERSION
437   Patch version: $GQ_PATCH_VERSION
438   Date:          $GQ_PATCH_DATE
439
440 Architecture:
441   UNIX:          $os_unix
442   Win32:         $platform_win32 (native: $os_win32)
443
444 Flags:
445   Geeqie:        $GQ_CFLAGS
446   DEFS:          $DEFS
447   CPPFLAGS:      $__CPPFLAGS
448   CFLAGS:        $CFLAGS
449   CXXFLAGS:      $CXXFLAGS
450   Gtk:           $GTK_CFLAGS
451   Glib:          $GLIB_CFLAGS
452   Thread:        $GTHREAD_LIBS
453   Others:        $LCMS_LIBS $EXIV2_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS
454
455 Localization:
456   NLS support:   $USE_NLS
457   LINGUAS:       $LINGUAS
458
459 Settings:
460   Developer:     $__IS_DEVELOPER
461   Debug flags:   $__IS_DEBUG_FLAGS
462   Debug log:     $__IS_DEBUG_LOG
463   Deprecated:    $__IS_DEPRECATED
464
465 Support:
466   LCMS:          $HAVE_LCMS
467   Exiv2:         $HAVE_EXIV2
468   Lirc:          $HAVE_LIRC
469   Libchamplain:         $HAVE_LIBCHAMPLAIN
470   Libchamplain-gtk:     $HAVE_LIBCHAMPLAIN_GTK
471
472 Documentation:
473   Doxygen:       $DOXYGEN
474   Formats:       $doxy_formats_report
475   doc-tool:      $GNOME_DOC_TOOL
476
477 END
478
479 cat config.report
480 cat <<EOF
481
482   Now you can type "make" to build Geeqie
483   (or you take blue pill and the story ends :)
484
485 EOF
486