Fix AM_CFLAGS and AM_CXXFLAGS from @1701
[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 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_SUBST(readmedir)
222 AC_SUBST(htmldir)
223
224 eval "eval appdir=${datadir}/${PACKAGE}"
225 AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
226
227 eval "eval gq_bindir=${prefix}/lib/${PACKAGE}"
228 AC_DEFINE_UNQUOTED([GQ_BIN_DIR], "$gq_bindir", [Location of helper scripts and executables])
229
230 #  LIRC support
231 # ----------------------------------------------------------------------
232
233 dnl Check for LIRC client support
234 AC_MSG_CHECKING(if LIRC support is enabled)
235 lirc=no
236 AC_ARG_ENABLE([lirc],
237   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
238 [
239 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
240   AC_MSG_RESULT(yes)
241   lirc=yes
242 else
243   AC_MSG_RESULT(no)
244   lirc=no
245 fi], AC_MSG_RESULT(no))
246
247
248 AC_ARG_WITH(lirc-prefix,
249 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
250 [
251 for dir in `echo "$withval" | tr : ' '`; do
252   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
253   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
254   done
255 ])
256
257 HAVE_LIRC=no
258 if test "x${lirc}" != "xno" ; then
259   AC_CHECK_HEADER(lirc/lirc_client.h,
260     [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])],,)],)
261 fi
262 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
263
264
265 #  LCMS support
266 # ----------------------------------------------------------------------
267
268 AC_ARG_ENABLE([lcms],
269   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
270     [liblcms=$enableval], [liblcms=auto])
271
272 if test "x${liblcms}" != "xno"; then
273   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
274     [
275       HAVE_LCMS=yes
276       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
277     ],
278     [
279       HAVE_LCMS=no
280       AC_MSG_WARN([$LCMS_PKG_ERRORS])
281     ])
282 else
283   HAVE_LCMS=disabled
284 fi
285
286 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
287 AC_SUBST(LCMS_CFLAGS)
288 AC_SUBST(LCMS_LIBS)
289
290
291 #  Exiv2 support
292 # ----------------------------------------------------------------------
293
294 AC_ARG_ENABLE([exiv2],
295   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
296     [libexiv2=$enableval], [libexiv2=auto])
297
298 if test "x${libexiv2}" != "xno"; then
299   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
300     [
301       HAVE_EXIV2=yes
302       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
303     ],
304     [
305       HAVE_EXIV2=no
306       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
307     ])
308 else
309   HAVE_EXIV2=disabled
310 fi
311
312 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
313 AC_SUBST(EXIV2_CFLAGS)
314 AC_SUBST(EXIV2_LIBS)
315
316
317 #  Gettext support
318 # ----------------------------------------------------------------------
319
320 dnl Set of available languages
321 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
322 AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
323
324 GETTEXT_PACKAGE=$PACKAGE
325 AC_SUBST(GETTEXT_PACKAGE)
326 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
327 AM_GLIB_GNU_GETTEXT
328 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
329
330 AC_SUBST(CFLAGS)
331 AC_SUBST(CXXFLAGS)
332 AC_SUBST(CPPFLAGS)
333 AC_SUBST(LDFLAGS)
334
335
336 #  Libchamplain support - used for GPS map facility - experimental
337 # ----------------------------------------------------------------------
338
339 AC_ARG_ENABLE([gps],
340   AC_HELP_STRING([--enable-gps], [enable GPS map support - experimental]),
341     [libgps=$enableval], [libgps=auto])
342
343 if test "x${libgps}" == "xyes"; then
344   PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.3 >= 0.3],
345     [
346       HAVE_LIBCHAMPLAIN=yes
347       AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of GPS maps])
348     ],
349     [
350       HAVE_LIBCHAMPLAIN=no
351       AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
352     ])
353 else
354   HAVE_LIBCHAMPLAIN=disabled
355 fi
356
357 if test "x${libgps}" == "xyes"; then
358   PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.3 >= 0.3],
359     [
360       HAVE_LIBCHAMPLAIN_GTK=yes
361       AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of GPS maps])
362     ],
363     [
364       HAVE_LIBCHAMPLAIN_GTK=no
365       AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
366     ])
367 else
368   HAVE_LIBCHAMPLAIN_GTK=disabled
369 fi
370
371 AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
372 AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
373 AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
374
375 AH_TOP([
376 /** \file
377  * \short autogenerated definition by autoheader.
378  * \author Bruclik
379  */
380
381 /*
382  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
383  *  Copyright (C) 2008 - 2009 The Geeqie Team
384  *
385  *  This program is free software; you can redistribute it and/or modify
386  *  it under the terms of the GNU General Public License as published by
387  *  the Free Software Foundation; either version 2 of the License, or
388  *  (at your option) any later version.
389  *
390  *  This program is distributed in the hope that it will be useful,
391  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
392  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
393  *  GNU General Public License for more details.
394  */
395
396 #ifndef _INCLUDE_CONFIG_H
397 #define _INCLUDE_CONFIG_H
398 ])
399
400 AH_BOTTOM([#endif])
401
402 dnl Write the output
403 dnl
404
405 AC_CONFIG_FILES([
406     Makefile
407     src/Makefile
408     src/icons/Makefile
409     src/icons/svg/Makefile
410     po/Makefile.in
411     doc/Makefile
412     plugins/Makefile
413     plugins/symlink/Makefile
414     plugins/rotate/Makefile
415     plugins/ufraw/Makefile
416     geeqie.spec
417 ])
418
419 AC_OUTPUT
420 dnl Print the results
421 dnl
422
423 cat > config.report << END
424
425      Config results:
426     -=-=-=-=-=-=-=-=-
427
428 Package:
429   Name:          $PACKAGE_NAME
430   Version:       $PACKAGE_VERSION
431   Patch version: $GQ_PATCH_VERSION
432   Date:          $GQ_PATCH_DATE
433
434 Architecture:
435   UNIX:          $os_unix
436   Win32:         $platform_win32 (native: $os_win32)
437
438 Flags:
439   Geeqie:        $GQ_CFLAGS
440   DEFS:          $DEFS
441   CPPFLAGS:      $__CPPFLAGS
442   CFLAGS:        $CFLAGS
443   CXXFLAGS:      $CXXFLAGS
444   Gtk:           $GTK_CFLAGS
445   Glib:          $GLIB_CFLAGS
446   Thread:        $GTHREAD_LIBS
447   Others:        $LCMS_LIBS $EXIV2_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS
448
449 Localization:
450   NLS support:   $USE_NLS
451   LINGUAS:       $LINGUAS
452
453 Settings:
454   Developer:     $__IS_DEVELOPER
455   Debug flags:   $__IS_DEBUG_FLAGS
456   Debug log:     $__IS_DEBUG_LOG
457   Deprecated:    $__IS_DEPRECATED
458
459 Support:
460   LCMS:          $HAVE_LCMS
461   Exiv2:         $HAVE_EXIV2
462   Lirc:          $HAVE_LIRC
463   Libchamplain:         $HAVE_LIBCHAMPLAIN
464   Libchamplain-gtk:     $HAVE_LIBCHAMPLAIN_GTK
465
466 Documentation:
467   Doxygen:       $DOXYGEN
468   Formats:       $doxy_formats_report
469 END
470
471 cat config.report
472 cat <<EOF
473
474   Now you can type "make" to build Geeqie
475   (or you take blue pill and the story ends :)
476
477 EOF
478