Add debug versions of path_to_utf8() and path_from_utf8() which allows to report...
[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.0alpha3, 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 #  Debug support
47 # ----------------------------------------------------------------------
48
49 dnl Debugging option
50 dnl FIXME: official release convert default to 'no'
51 dnl
52
53 AC_ARG_ENABLE([debug-flags], [
54 Development options:
55 AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
56 [
57 if test "x${enable_developer}" != "xyes"
58 then
59   enable_debug_flags="no"
60 else
61   enable_debug_flags="yes"
62 fi
63 ])
64
65 AC_ARG_ENABLE([debug-log], [
66 Development options:
67 AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
68
69 if test "x${enable_debug_flags}" != "xno"
70 then
71   if test "x${enable_developer}" == "xyes"
72   then
73     CXXFLAGS="${CXXFLAGS} -Wall"
74     CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
75   fi
76   __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"
77   CXXFLAGS="${CXXFLAGS} ${__COMMONFLAGS}"
78   CFLAGS="${CFLAGS} ${__COMMONFLAGS} -Wimplicit-int -Werror-implicit-function-declaration"
79   __IS_DEBUG_FLAGS=yes
80 else
81   __IS_DEBUG_FLAGS=no
82 fi
83
84 if test "x${enable_debug_log}" != "xno"
85 then
86   AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
87   __IS_DEBUG_LOG=yes
88 else
89   __IS_DEBUG_LOG=no
90 fi
91
92 AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
93
94 AC_ARG_ENABLE(deprecated, [
95 AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [], 
96 [
97 if test "x${enable_developer}" != "xyes"
98 then
99   enable_deprecated="no"
100 else
101   enable_deprecated="yes"
102 fi
103 ])
104
105 if test "x${enable_deprecated}" != "xno"
106 then
107   CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
108   CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
109   __IS_DEPRECATED=yes
110 else
111   __IS_DEPRECATED=no
112 fi
113
114
115 AC_ISC_POSIX
116 AC_PROG_CC
117 AC_PROG_CXX
118 AC_STDC_HEADERS
119 AC_ARG_PROGRAM
120
121 dnl checks for functions
122 AC_CHECK_FUNCS(strverscmp access fsync fflush)
123
124
125 # Check target architecture
126
127 # Check for Win32
128 AC_MSG_CHECKING([for some Win32 platform])
129 case "$target_os" in
130   mingw* | cygwin*)
131     platform_win32=yes
132     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
133     ;;
134   *)
135     platform_win32=no
136     ;;
137 esac
138 AC_MSG_RESULT([$platform_win32])
139 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
140
141 AC_MSG_CHECKING([for native Win32])
142 case "$target_os" in
143   mingw*)
144     os_win32=yes
145     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
146     os_unix=no
147     PATHSEP=';'
148     ;;
149   *)
150     os_win32=no
151     os_unix=yes
152     PATHSEP=':'
153     ;;
154 esac
155 AC_MSG_RESULT([$os_win32])
156 AC_SUBST(PATHSEP)
157 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
158 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
159
160 if test "$os_win32" = "yes"; then
161   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
162   AC_CHECK_TOOL(WINDRES, windres, :)
163 else
164   WINDRES=":"
165 fi
166
167 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
168 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
169 AC_SUBST(WINDRES)
170
171 dnl reasonable guesses for where stuff is installed
172 if test "x$prefix" = "xNONE"; then
173   prefix="/usr/local"
174 else
175   prefix=$prefix
176 fi
177
178 AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.))
179 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
180
181 threads="auto"
182 AC_ARG_ENABLE([threads],
183   AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
184
185 have_gthread="no"
186 if test "x${threads}" != "xno" ; then
187   PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
188 fi
189
190 if test "x$have_gthread" != "xno"; then
191         AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
192         GLIB_CFLAGS="$GTHREAD_CFLAGS"
193         GLIB_LIBS="$GTHREAD_LIBS"
194 fi
195
196
197 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
198 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
199
200 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
201             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
202 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
203             htmldir=$withval, htmldir="$readmedir/html")
204
205 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
206 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
207
208 AC_SUBST(readmedir)
209 AC_SUBST(htmldir)
210
211 eval "eval appdir=${datadir}/${PACKAGE}"
212 AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
213
214 #  LIRC support
215 # ----------------------------------------------------------------------
216
217 dnl Check for LIRC client support
218 AC_MSG_CHECKING(if LIRC support is enabled)
219 lirc=no
220 AC_ARG_ENABLE([lirc],
221   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
222 [
223 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
224   AC_MSG_RESULT(yes)
225   lirc=yes
226 else
227   AC_MSG_RESULT(no)
228   lirc=no
229 fi], AC_MSG_RESULT(no))
230
231
232 AC_ARG_WITH(lirc-prefix,
233 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
234 [
235 for dir in `echo "$withval" | tr : ' '`; do
236   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
237   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
238   done
239 ])
240
241 HAVE_LIRC=no
242 if test "x${lirc}" != "xno" ; then
243   AC_CHECK_HEADER(lirc/lirc_client.h,
244     [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])],,)],)
245 fi
246 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
247
248
249 #  LCMS support
250 # ----------------------------------------------------------------------
251
252 AC_ARG_ENABLE([lcms],
253   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
254     [liblcms=$enableval], [liblcms=auto])
255
256 if test "x${liblcms}" != "xno"; then
257   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
258     [
259       HAVE_LCMS=yes
260       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
261     ],
262     [
263       HAVE_LCMS=no
264       AC_MSG_WARN([$LCMS_PKG_ERRORS])
265     ])
266 else
267   HAVE_LCMS=disabled
268 fi
269         
270 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
271 AC_SUBST(LCMS_CFLAGS)
272 AC_SUBST(LCMS_LIBS)
273
274
275 #  Exiv2 support
276 # ----------------------------------------------------------------------
277
278 AC_ARG_ENABLE([exiv2],
279   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
280     [libexiv2=$enableval], [libexiv2=auto])
281
282 if test "x${libexiv2}" != "xno"; then
283   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
284     [
285       HAVE_EXIV2=yes
286       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
287     ],
288     [
289       HAVE_EXIV2=no
290       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
291     ])
292 else
293   HAVE_EXIV2=disabled
294 fi
295         
296 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
297 AC_SUBST(EXIV2_CFLAGS)
298 AC_SUBST(EXIV2_LIBS)
299
300
301 #  Gettext support
302 # ----------------------------------------------------------------------
303
304 dnl Set of available languages
305 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
306 AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
307
308 GETTEXT_PACKAGE=$PACKAGE
309 AC_SUBST(GETTEXT_PACKAGE)
310 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
311 AM_GLIB_GNU_GETTEXT
312 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
313
314 AC_SUBST(CFLAGS)
315 AC_SUBST(CXXFLAGS)
316 AC_SUBST(CPPFLAGS)
317 AC_SUBST(LDFLAGS)
318
319
320 AH_TOP([
321 /** @file config.h
322  * autogenerated definition by autoheader.
323  * @author Bruclik
324  */
325  
326 /*
327  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
328  *  Copyright (C) 2008 - 2009 The Geeqie Team
329  *  
330  *  This program is free software; you can redistribute it and/or modify
331  *  it under the terms of the GNU General Public License as published by
332  *  the Free Software Foundation; either version 2 of the License, or 
333  *  (at your option) any later version.
334  *  
335  *  This program is distributed in the hope that it will be useful,
336  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
337  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
338  *  GNU General Public License for more details.
339  */ 
340  
341 #ifndef _INCLUDE_CONFIG_H
342 #define _INCLUDE_CONFIG_H
343 ])
344
345 AH_BOTTOM([#endif])
346
347 dnl Write the output
348 dnl
349
350 AC_CONFIG_FILES([
351     Makefile
352     src/Makefile
353     src/icons/Makefile
354     src/icons/svg/Makefile
355     po/Makefile.in
356     doc/Makefile
357     plugins/Makefile
358     plugins/symlink/Makefile
359     geeqie.spec
360 ])
361
362 AC_OUTPUT
363 dnl Print the results
364 dnl
365
366 cat > config.report << END
367
368      Config results:
369     -=-=-=-=-=-=-=-=-
370
371 Package:
372   Name:          $PACKAGE_NAME
373   Version:       $PACKAGE_VERSION
374   Patch version: $GQ_PATCH_VERSION
375   Date:          $GQ_PATCH_DATE
376
377 Architecture:
378   UNIX:          $os_unix
379   Win32:         $platform_win32 (native: $os_win32)
380
381 Flags:
382   Geeqie:        $GQ_CFLAGS
383   DEFS:          $DEFS
384   CPPFLAGS:      $__CPPFLAGS
385   CFLAGS:        $CFLAGS
386   CXXFLAGS:      $CXXFLAGS
387   Gtk:           $GTK_CFLAGS
388   Glib:          $GLIB_CFLAGS
389   Thread:        $GTHREAD_LIBS
390   Others:        $LCMS_LIBS $EXIV2_LIBS
391
392 Localization:
393   NLS support:   $USE_NLS
394   LINGUAS:       $LINGUAS
395
396 Settings:
397   Developer:     $__IS_DEVELOPER
398   Debug flags:   $__IS_DEBUG_FLAGS
399   Debug log:     $__IS_DEBUG_LOG
400   Deprecated:    $__IS_DEPRECATED
401
402 Support:
403   LCMS:          $HAVE_LCMS
404   Exiv2:         $HAVE_EXIV2
405   Lirc:          $HAVE_LIRC
406
407 Documentation:
408   Doxygen:       $DOXYGEN
409   Formats:       $doxy_formats_report
410 END
411
412 cat config.report
413 cat <<EOF
414
415   Now you can type "make" to build Geeqie
416   (or you take blue pill and the story ends :)
417
418 EOF
419