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